From 1f1a6f3e1a86fc886e8f69abf092087a438cd8a3 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Sun, 17 Sep 2023 17:11:32 +0300 Subject: [PATCH 01/47] feat: use @lidofinance/ui-faq on stake page --- .env.example | 2 + env-dynamics.mjs | 2 + features/home/stake-faq/stake-faq.tsx | 51 +- package.json | 3 + public/faq.md | 288 +++++++++++ yarn.lock | 697 +++++++++++++++++++++++++- 6 files changed, 1014 insertions(+), 29 deletions(-) create mode 100644 public/faq.md diff --git a/.env.example b/.env.example index 611b7d0ce..6bdd214e9 100644 --- a/.env.example +++ b/.env.example @@ -63,3 +63,5 @@ MATOMO_URL= # WalletConnect project ID WALLETCONNECT_PROJECT_ID= + +FAQ_CONTENT_URL= diff --git a/env-dynamics.mjs b/env-dynamics.mjs index 4ef13480d..6e84746bf 100644 --- a/env-dynamics.mjs +++ b/env-dynamics.mjs @@ -32,3 +32,5 @@ export const ethAPIBasePath = process.env.ETH_API_BASE_PATH; export const wqAPIBasePath = process.env.WQ_API_BASE_PATH; /** @type string */ export const walletconnectProjectId = process.env.WALLETCONNECT_PROJECT_ID; +/** @type string */ +export const faqContentUrl = process.env.FAQ_CONTENT_URL; diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index 81d15da80..d15d2f48c 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -1,37 +1,36 @@ -import { FC } from 'react'; +import { FC, useEffect, useState } from 'react'; +import { FaqAccordion, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { dynamics } from 'config'; import { Section } from 'shared/components'; import { useMatomoEventHandle } from 'shared/hooks'; -import { - WhatIsLido, - HowDoesLidoWork, - LidoEthApr, - WhatIsSteth, - HowCanIGetSteth, - SafeWorkWithLido, - HowCanIUseSteth, - WhereCanICoverMySteth, - RisksOfStakingWithLido, - LidoFee, - HowCanIUnstakeSteth, -} from './list'; - export const StakeFaq: FC = () => { + const [foundPage, setFoundPage] = useState(undefined); + + useEffect(() => { + void (async () => { + try { + const pageIdentification = 'stake'; + const pages = await getFAQ(dynamics.faqContentUrl); + + setFoundPage( + pages.find( + (page: PageFAQ) => page['identification'] === pageIdentification, + ), + ); + } catch { + // noop + } + })(); + }, []); + const onClickHandler = useMatomoEventHandle(); return (
- - - - - - - - - - - +
); }; diff --git a/package.json b/package.json index e0edd5d3b..aec8a75a9 100644 --- a/package.json +++ b/package.json @@ -42,12 +42,15 @@ "@lidofinance/next-pages": "^0.28.0", "@lidofinance/rpc": "^0.28.0", "@lidofinance/satanizer": "^0.32.0", + "@lidofinance/ui-faq": "file:.yalc/@lidofinance/ui-faq", "@types/cors": "^2.8.12", "@types/js-cookie": "^3.0.0", "@types/ms": "^0.7.31", "@types/nprogress": "^0.2.0", "@types/react-transition-group": "^4.4.3", + "axios": "^1.5.0", "bignumber.js": "9.1.0", + "cache-manager": "^5.2.3", "copy-to-clipboard": "^3.3.1", "cors": "^2.8.5", "date-fns": "2.29.2", diff --git a/public/faq.md b/public/faq.md new file mode 100644 index 000000000..9965127c0 --- /dev/null +++ b/public/faq.md @@ -0,0 +1,288 @@ +--- +pages: + - identification: stake + faq: + - question: What is Lido? + answer: + Lido is the name of a family of open-source peer-to-system software + tools deployed and functioning on the Ethereum, Solana, and Polygon + blockchain networks. The software enables users to mint transferable + utility tokens, which receive rewards linked to the related validation + activities of writing data to the blockchain, while the tokens can be + used in other on-chain activities. + - question: How does Lido work? + answer: + While each network works differently, generally, the Lido protocols + batch user tokens to stake with validators and route the staking + packages to network staking contracts. Users mint amounts of stTokens + which correspond to the amount of tokens sent as stake and they + receive staking rewards. When they unstake, they burn the stToken to + initiate the network-specific withdrawal process to withdraw the + balance of stake and rewards. + - question: Is it safe to work with Lido? + answer: >- + In order to work safe, Lido fits the next points: + + + * Open-sourcing & continuous review of all code. + + * Committee of elected, best-in-class validators to minimise staking risk. + + * Use of non-custodial staking service to eliminate counterparty risk. + + * Use of DAO for governance decisions & to manage risk factors. + + * Lido has been audited by Certora, StateMind, Hexens, ChainSecurity, Oxorio, MixBytes, SigmaPrime, Quantstamp. Lido audits can be found in more detail [here](https://github.com/lidofinance/audits). + + + Usually when staking ETH you choose only one validator. In the case of Lido you stake across many validators, minimising your staking risk. + - question: What are the risks of staking with Lido? + answer: >- + There exist a number of potential risks when staking using liquid + staking protocols. + + + * Smart contract security + + There is an inherent risk that Lido could contain a smart contract vulnerability or bug. The Lido code is open-sourced, audited and covered by an extensive bug bounty program to minimise this risk. To mitigate smart contract risks, all of the core Lido contracts are audited. Audit reports can be found [here](https://github.com/lidofinance/audits#lido-protocol-audits). Besides, Lido is covered with a massive [Immunefi bug bounty program](https://immunefi.com/bounty/lido/). + * Slashing risk + + Validators risk staking penalties, with up to 100% of staked funds at risk if validators fail. To minimise this risk, Lido stakes across multiple professional and reputable node operators with heterogeneous setups, with additional mitigation in the form of self-coverage. + * stToken price risk + + Users risk an exchange price of stTokens which is lower than inherent value due to withdrawal restrictions on Lido, making arbitrage and risk-free market-making impossible. The Lido DAO is driven to mitigate the above risks and eliminate them entirely to the extent possible. Despite this, they may still exist and, as such, it is our duty to communicate them. + + The Lido DAO is driven to mitigate the above risks and eliminate them entirely to the extent possible. Despite this, they may still exist. + - question: What is Lido staking APR for Ethereum? + answer: >- + Lido staking APR for Ethereum = Protocol APR * (1 - Protocol fee) + + + Protocol APR — the overall Consensus Layer (CL) and Execution Layer (EL) rewards received by Lido validators to total pooled ETH estimated as the moving average of the last seven days. + + + Protocol fee — Lido applies a 10% fee on staking rewards that are split between node operators and the DAO Treasury. + + + More about Lido staking APR for Ethereum you could find on the [Ethereum landing page](https://lido.fi/ethereum) and in our [Docs](https://docs.lido.fi/#liquid-staking). + - question: What fee is applied by Lido? What is this used for? + answer: + The protocol applies a 10% fee on staking rewards. This fee is split + between node operators and the Lido DAO. That means the users receive + 90% of the staking rewards returned by the networks. + - question: What is stETH? + answer: + stETH is a transferable rebasing utility token representing a share of + the total ETH staked through the protocol, which consists of user + deposits and staking rewards. Because stETH rebases daily, it + communicates the position of the share daily. + - answer: + You can get stETH many ways, including interacting with the smart + contract directly.Yet, it is much easier to use a [Lido Ethereum + staking widget](https://stake.lido.fi/) and in other [DEX Lido + integrations](https://lido.fi/lido-ecosystem?tokens=stETH&categories=Get). + question: How can I get stETH? + - answer: You can use your stETH as collateral, for lending, + and [more](https://lido.fi/lido-ecosystem). + question: How can I use stETH? + - answer: >- + There are multiple coverage and insurer providers with different + products for stETH: + + + * [Bridge Mutual](https://bridgemutual.io/) + + * [Idle Finance](https://idle.finance/) + + * [Nexus Mutual](https://nexusmutual.io/) + + * [Ribbon Finance](https://app.ribbon.finance/) + + * [Chainproof](https://www.chainproof.co/) + + + Check with providers for coverage and insurer conditions. + question: Where can I cover my stETH? + - answer: You can use our [Withdrawals Request and Claim + tabs](https://stake.lido.fi/withdrawals/claim) to unstake stETH and + receive ETH at a 1:1 ratio. Under normal circumstances, withdrawal + period can take anywhere between 1-5 days. After that, you can claim + your ETH using the Claim tab. Also, you can exchange stETH on [DEX + Lido + integrations](https://lido.fi/lido-ecosystem?tokens=stETH&categories=Get). + question: How can I unstake stETH? + - identification: wrap + faq: + - answer: + wstETH (wrapped stETH) is a non-rebasing version of stETH. Unlike the + stETH balance, which updates every day and communicates your share of + rewards, the wstETH balance stays the same while the stETH balance + updates inside the wrapper daily. + question: What is wstETH? + - answer: + You can wrap your stETH or ETH tokens using [Wrap & Unwrap staking + widget](https://stake.lido.fi/wrap) or [DEX Lido + integrations](https://lido.fi/lido-ecosystem?tokens=wstETH&categories=Get) + question: How can I get wstETH? + - answer: wstETH is useful + across [L2](https://lido.fi/lido-ecosystem?networks=arbitrum%2Coptimism) and + other [DeFi protocols](https://lido.fi/lido-ecosystem?tokens=wstETH), + which are based on constant balance tokens. + question: How can I use wstETH? + - answer: + Yes, wrapped stETH gets staking rewards at the same rate as regular + stETH. When you keep your stETH in a wrapper you cannot see your daily + staking rewards. However, when you unwrap your wstETH your new stETH + balance will have increased relative to pre-wrapped amount to reflect + your received rewards. + question: Do I get my staking rewards if I wrap stETH to wstETH? + - answer: No, staking rewards accrue to wstETH automatically. + question: Do I need to claim my staking rewards if I wrap stETH to wstETH? + - answer: You can unwrap your wstETH tokens using [Wrap & Unwrap staking + widget](https://stake.lido.fi/wrap/unwrap). + question: How could I unwrap wstETH back to stETH? + - answer: + No, you can transform your wstETH to ETH using the [Withdrawals Request + and Claim tabs](https://stake.lido.fi/withdrawals). Note that, under + the hood, wstETH will unwrap to stETH first, so your request will be + denominated in stETH. + question: Do I need to unwrap my wstETH before requesting withdrawals? + - identification: withdrawals + faq: + - answer: + Users can unstake their stETH or wstETH through withdrawals. Upon + unstaking stETH, they will receive ETH at a 1:1 ratio. When unstaking + wstETH, the unwrapping process will take place seamlessly in the + background. + question: What are withdrawals? + - answer: >- + The withdrawal process is simple and has two steps: + + + 1. **Request withdrawal**: Lock your stETH/wstETH by issuing a withdrawal request. ETH is sourced to fulfill the request, and then locked stETH is burned, which marks the withdrawal request as claimable. Under normal circumstances, this can take anywhere between 1-5 days. + + 2. **Claim**: Claim your ETH after the withdrawal request has been processed. + question: How does the withdrawal process work? + - answer: + Press the [Request tab](https://stake.lido.fi/withdrawals/request), + choose an amount of stETH/wstETH to withdraw, then press ‘Request + withdrawal’. Confirm the transaction using your wallet and press + ‘Claim’ on the [Claim + tab](https://stake.lido.fi/withdrawals/claim) once it is ready. + question: How do I withdraw? + - answer: Yes. Stakers can transform their stETH to ETH 1:1 using + the [Request](https://stake.lido.fi/withdrawals/request) and [Claim](https://stake.lido.fi/withdrawals/claim) tabs. + question: Can I transform my stETH to ETH? + - answer: Yes. You can transform your wstETH to ETH using + the [Request](https://stake.lido.fi/withdrawals/request) and [Claim](https://stake.lido.fi/withdrawals/claim) tabs. + Note that, under the hood, wstETH will unwrap to stETH first, so your + request will be denominated in stETH. + question: Can I transform my wstETH to ETH? + - answer: + When you request to withdraw wstETH, it is automatically unwrapped into + stETH, which then gets transformed into ETH. The main withdrawal + period is when stETH is transformed into ETH. That's why you see the + amount pending denominated in stETH. + question: + When I try to withdraw wstETH, why do I see the stETH amount in my + request? + - answer: + Under normal circumstances, the stETH/wstETH withdrawal period can take + anywhere between 1-5 days. After that, you can claim your ETH using + the [Claim tab](https://stake.lido.fi/withdrawals/claim). + question: How long does it take to withdraw? + - answer: |- + * The amount of stETH in the queue. + * Perfomance of the validator poolside. + * Exit queue on the Beacon chain. + * Demand for staking and unstaking. + question: What are the factors affecting the withdrawal time? + - answer: + No. After you request a withdrawal, the stETH/wstETH submitted for + unstaking will not receive staking rewards on top of your submitted + balance. + question: Do I still get rewards after I withdraw? + - answer: + There’s no withdrawal fee, but as with any Ethereum interaction, there + will be a network gas fee. Lido does not collect a fee when you + request a withdrawal. + question: Is there a fee for withdrawal? + - answer: + The amount you can claim may differ from your initial request due to a + slashing occurrence and penalties. For these reasons, the total + claimable reward amount could be reduced. + question: Why is the claimable amount may differ from my requested amount? + - answer: + Turbo mode is a default mode used unless an emergency event affects the + Ethereum network. In Turbo Mode, withdrawal requests are fulfilled + quickly, using all available ETH from user deposits and rewards. + question: What is Turbo mode? + - answer: >- + Bunker mode is an emergency mode that activates under three worst-case + conditions (when penalties are large enough to significantly impact + the protocol’s rewards). + + + Importantly, Bunker mode allows for orderly withdrawals to be still processed, albeit more slowly, during chaotic tail-risk scenarios (e.g. mass slashings or a significant portion of validators going offline). + question: What is Bunker mode? + - answer: >- + Bunker mode is triggered under three conditions when the penalties + might be big enough to have a significant impact on the protocol’s + rewards: + + + 1. Mass slashing. + + 2. Penalties exceeding rewards in the current period between two Oracle reports. + + 3. Lower than expected Lido validators' performance in the current period between two Oracle reports and penalties exceeding rewards at the end of it. + question: What scenarios can cause Bunker mode? + - answer: >- + Slashing is a penalty that affects validators for intentional or + accidental misbehavior. + + + Mass slashing event is when slashing penalties are big enough to have the impact on Protocol's rewards in the current frame or in the future, esp. midterm penalties. + + + Slashing penalties are spread across stakers and may lower your total reward amount. For more information, check out [What Are Staking/Validator Penalties](https://help.lido.fi/en/articles/5232780-what-are-staking-validator-penalties). + question: What is slashing? + - answer: + Most often, the stETH/wstETH withdrawal period will be from 1-5 days. + However, if any scenarios cause Bunker mode to happen, this could be + extended. + question: + If Bunker mode happens when I’ve already submitted a withdrawal + request, do I need to wait longer? + - answer: >- + Request size should be at least 100 wei (in stETH), and at + most 1,000 stETH. + + + If you want to withdraw more than 1,000 stETH, your withdrawal request will be split into several requests, but you will still only pay one transaction fee. + question: Is there any minimum or maximum amount of stETH/wstETH I can withdraw? + - answer: "Each withdrawal request is represented by an NFT: the NFT is + automatically minted for you when you send a request. You will need to + add it to your wallet to be able to monitor the request status. When + the request is ready for the claim, the NFT will change it's + appearance." + question: What is Lido NFT? + - answer: >- + Different wallets have specific functionality for adding and working + with NFT. Most often, you need to find the specific NFT Address and + Token ID. These parameters you can find on Etherscan. Visit Etherscan, + add your wallet, and locate the NFT transaction. Once located, open + the NFT transaction, and you will see the Address and Token ID. + + + If you are a MetaMask user, use [this guide](https://help.lido.fi/en/articles/7858367-how-do-i-add-the-lido-nft-to-metamask). + question: How do I add the Lido NFT to my wallet? + - answer: + Maybe your wallet doesn’t support the automatic changing of the NFT + view. To renew the NFT, you can import the Address and Token ID of + your NFT, and it could change it's appearance to a new “Ready to + claim” one. + question: + What could be the reason why my NFT's view did not update even though + my request was ready to be claimed? +--- diff --git a/yarn.lock b/yarn.lock index 657c663fd..664d2763a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2647,6 +2647,18 @@ resolved "https://registry.yarnpkg.com/@lidofinance/satanizer/-/satanizer-0.32.0.tgz#3ea01a94b7b5c58751a9e3030f6134c83cecefaf" integrity sha512-gHoZM8l/AWWT1YyZf+4/IViAxGuALZNo29b4bWvmEGJw/Xv0ChRPP2/xLEugdk03T16r8vxww3j/tAYTTzGzQw== +"@lidofinance/ui-faq@file:.yalc/@lidofinance/ui-faq": + version "0.0.0" + dependencies: + js-yaml "^4.1.0" + mdast "^3.0.0" + react-markdown "^8.0.7" + remark-directive "^2.0.1" + remark-frontmatter "^4.0.1" + remark-parse "^10.0.2" + remark-stringify "^10.0.3" + unified "^10.1.2" + "@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz#64df34e2f12e68e78ac57e571d25ec07fa460ca9" @@ -3572,7 +3584,7 @@ dependencies: "@types/node" "*" -"@types/debug@^4.1.7": +"@types/debug@^4.0.0", "@types/debug@^4.1.7": version "4.1.8" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ== @@ -3586,6 +3598,13 @@ dependencies: "@types/node" "*" +"@types/hast@^2.0.0": + version "2.3.6" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.6.tgz#bb8b05602112a26d22868acb70c4b20984ec7086" + integrity sha512-47rJE80oqPmFdVDCD7IheXBrVdwuBgsYwoczFvKmwfo2Mzsnt+V9OONsYauFmICb6lQPpCuXYJWejBNs4pDJRg== + dependencies: + "@types/unist" "^2" + "@types/hoist-non-react-statics@*": version "3.3.1" resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" @@ -3693,7 +3712,7 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== -"@types/prop-types@*": +"@types/prop-types@*", "@types/prop-types@^15.0.0": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== @@ -3781,6 +3800,11 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== +"@types/unist@^2": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.8.tgz#bb197b9639aa1a04cf464a617fe800cccd92ad5c" + integrity sha512-d0XxK3YTObnWVp6rZuev3c49+j4Lo8g4L1ZRm9z5L0xpoZycUPshHgczK5gsUMaZOstjVYYi09p5gYvUtfChYw== + "@types/winston@^2.4.4": version "2.4.4" resolved "https://registry.yarnpkg.com/@types/winston/-/winston-2.4.4.tgz#48cc744b7b42fad74b9a2e8490e0112bd9a3d08d" @@ -4721,6 +4745,15 @@ axios@^1.3.4: form-data "^4.0.0" proxy-from-env "^1.1.0" +axios@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267" + integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + axobject-query@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" @@ -4833,6 +4866,11 @@ bail@^1.0.0: resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -5012,6 +5050,14 @@ builtin-modules@^3.3.0: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== +cache-manager@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/cache-manager/-/cache-manager-5.2.3.tgz#b6a8b4469c57fdfdae1deed7f81ea9e057c7eade" + integrity sha512-9OErI8fksFkxAMJ8Mco0aiZSdphyd90HcKiOMJQncSlU1yq/9lHHxrT8PDayxrmr9IIIZPOAEfXuGSD7g29uog== + dependencies: + lodash.clonedeep "^4.5.0" + lru-cache "^9.1.2" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -5091,21 +5137,41 @@ character-entities-html4@^1.0.0: resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + character-entities@^1.0.0: version "1.2.4" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + character-reference-invalid@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -5266,6 +5332,11 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + command-line-args@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" @@ -5515,6 +5586,13 @@ decamelize@^1.1.0, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" @@ -5586,6 +5664,11 @@ depd@^1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + detect-browser@5.3.0, detect-browser@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" @@ -5611,6 +5694,11 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + dijkstrajs@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.2.tgz#2e48c0d3b825462afe75ab4ad5e829c8ece36257" @@ -6454,6 +6542,13 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fault@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" + integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== + dependencies: + format "^0.2.0" + fb-watchman@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" @@ -6560,6 +6655,11 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -6889,6 +6989,11 @@ hast-util-whitespace@^1.0.0: resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz#e4fe77c4a9ae1cb2e6c25e02df0043d0164f6e41" integrity sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A== +hast-util-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" + integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== + hey-listen@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" @@ -7015,6 +7120,11 @@ ini@^1.3.4: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer@^6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" @@ -7060,6 +7170,11 @@ is-alphabetical@^1.0.0: resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" @@ -7068,6 +7183,14 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + is-arguments@^1.0.4, is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -7162,6 +7285,11 @@ is-decimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + is-extendable@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -7211,6 +7339,11 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + is-map@^2.0.1, is-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -7253,6 +7386,11 @@ is-plain-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -7973,6 +8111,11 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + kuler@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" @@ -8099,6 +8242,11 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -8191,6 +8339,11 @@ longest-streak@^2.0.0: resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -8219,6 +8372,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lru-cache@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.2.tgz#255fdbc14b75589d6d0e73644ca167a8db506835" + integrity sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ== + make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -8255,6 +8413,28 @@ mdast-util-definitions@^4.0.0: dependencies: unist-util-visit "^2.0.0" +mdast-util-definitions@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +mdast-util-directive@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-2.2.4.tgz#e397ed699ec83938cb4a48dc1cec3ae69cbd7aa3" + integrity sha512-sK3ojFP+jpj1n7Zo5ZKvoxP1MvLyzVG63+gm40Z/qI00avzdPCYxt7RBMgofwAva9gBjbDBWVRB/i+UD+fUCzQ== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-from-markdown "^1.3.0" + mdast-util-to-markdown "^1.5.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-visit-parents "^5.1.3" + mdast-util-from-markdown@^0.8.0: version "0.8.5" resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" @@ -8266,6 +8446,41 @@ mdast-util-from-markdown@^0.8.0: parse-entities "^2.0.0" unist-util-stringify-position "^2.0.0" +mdast-util-from-markdown@^1.0.0, mdast-util-from-markdown@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-frontmatter@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.1.tgz#79c46d7414eb9d3acabe801ee4a70a70b75e5af1" + integrity sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + micromark-extension-frontmatter "^1.0.0" + +mdast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463" + integrity sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg== + dependencies: + "@types/mdast" "^3.0.0" + unist-util-is "^5.0.0" + mdast-util-to-hast@^10.0.0: version "10.2.0" resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz#61875526a017d8857b71abc9333942700b2d3604" @@ -8280,6 +8495,20 @@ mdast-util-to-hast@^10.0.0: unist-util-position "^3.0.0" unist-util-visit "^2.0.0" +mdast-util-to-hast@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-definitions "^5.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + mdast-util-to-markdown@^0.6.0: version "0.6.5" resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" @@ -8292,11 +8521,37 @@ mdast-util-to-markdown@^0.6.0: repeat-string "^1.0.0" zwitch "^1.0.0" +mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0, mdast-util-to-markdown@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" + integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + mdast-util-to-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + +mdast@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast/-/mdast-3.0.0.tgz#626bce9603ed43fb6fb053245a6e4a17f4457aa8" + integrity sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g== + mdn-data@2.0.28: version "2.0.28" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" @@ -8349,6 +8604,223 @@ mersenne-twister@^1.1.0: resolved "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a" integrity sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA== +micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-extension-directive@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/micromark-extension-directive/-/micromark-extension-directive-2.2.1.tgz#181751e433a0f2cdfbccc520eb1da42d63cbe4bd" + integrity sha512-ZFKZkNaEqAP86IghX1X7sE8NNnx6kFNq9mSBRvEHjArutTCJZ3LYg6VH151lXVb1JHpmIcW/7rX25oMoIHuSug== + dependencies: + micromark-factory-space "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + parse-entities "^4.0.0" + uvu "^0.5.0" + +micromark-extension-frontmatter@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.1.1.tgz#2946643938e491374145d0c9aacc3249e38a865f" + integrity sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ== + dependencies: + fault "^2.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + micromark@~2.11.0: version "2.11.4" resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" @@ -8445,6 +8917,11 @@ motion@10.16.2: "@motionone/utils" "^10.15.1" "@motionone/vue" "^10.16.2" +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + mrmime@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" @@ -8838,6 +9315,20 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" + integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== + dependencies: + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -9090,7 +9581,7 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.6.2, prop-types@^15.8.1: +prop-types@^15.0.0, prop-types@^15.6.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -9106,6 +9597,11 @@ property-information@^5.0.0: dependencies: xtend "^4.0.0" +property-information@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.3.0.tgz#ba4a06ec6b4e1e90577df9931286953cdf4282c3" + integrity sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg== + proxy-compare@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.1.tgz#17818e33d1653fbac8c2ec31406bce8a2966f600" @@ -9256,6 +9752,27 @@ react-jazzicon@^1.0.4: dependencies: mersenne-twister "^1.1.0" +react-markdown@^8.0.7: + version "8.0.7" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.7.tgz#c8dbd1b9ba5f1c5e7e5f2a44de465a3caafdf89b" + integrity sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ== + dependencies: + "@types/hast" "^2.0.0" + "@types/prop-types" "^15.0.0" + "@types/unist" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^2.0.0" + prop-types "^15.0.0" + property-information "^6.0.0" + react-is "^18.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.0" + unified "^10.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + react-toastify@7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-7.0.4.tgz#7d0b743f2b96f65754264ca6eae31911a82378db" @@ -9426,6 +9943,16 @@ regjsparser@^0.9.1: dependencies: jsesc "~0.5.0" +remark-directive@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-2.0.1.tgz#1c32d9df8d839a75ba3478112d21fe883635b48e" + integrity sha512-oosbsUAkU/qmUE78anLaJePnPis4ihsE7Agp0T/oqTzvTea8pOiaYEtfInU/+xMOVTS9PN5AhGOiaIVe4GD8gw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-directive "^2.0.0" + micromark-extension-directive "^2.0.0" + unified "^10.0.0" + remark-external-links@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/remark-external-links/-/remark-external-links-8.0.0.tgz#308de69482958b5d1cd3692bc9b725ce0240f345" @@ -9437,6 +9964,16 @@ remark-external-links@^8.0.0: space-separated-tokens "^1.0.0" unist-util-visit "^2.0.0" +remark-frontmatter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz#84560f7ccef114ef076d3d3735be6d69f8922309" + integrity sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-frontmatter "^1.0.0" + micromark-extension-frontmatter "^1.0.0" + unified "^10.0.0" + remark-html@^13.0.1: version "13.0.2" resolved "https://registry.yarnpkg.com/remark-html/-/remark-html-13.0.2.tgz#de5f052749ff61fc904c9708c155c88a2e2655dc" @@ -9446,6 +9983,15 @@ remark-html@^13.0.1: hast-util-to-html "^7.0.0" mdast-util-to-hast "^10.0.0" +remark-parse@^10.0.0, remark-parse@^10.0.2: + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" + integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + remark-parse@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" @@ -9453,6 +9999,25 @@ remark-parse@^9.0.0: dependencies: mdast-util-from-markdown "^0.8.0" +remark-rehype@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^12.1.0" + unified "^10.0.0" + +remark-stringify@^10.0.3: + version "10.0.3" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.3.tgz#83b43f2445c4ffbb35b606f967d121b2b6d69717" + integrity sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.0.0" + unified "^10.0.0" + remark-stringify@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894" @@ -9631,6 +10196,13 @@ rxjs@^7.8.0: dependencies: tslib "^2.1.0" +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + safe-array-concat@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" @@ -9865,6 +10437,11 @@ space-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -10046,6 +10623,14 @@ stringify-entities@^3.0.1: character-entities-legacy "^1.0.0" xtend "^4.0.0" +stringify-entities@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" @@ -10111,6 +10696,13 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +style-to-object@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.2.tgz#a8247057111dea8bd3b8a1a66d2d0c9cf9218a54" + integrity sha512-1JGpfPB3lo42ZX8cuPrheZbfQ6kqPPnPHlKMyeRYtfKD+0jG+QsXgXN57O/dvJlzlB2elI6dGmrPnl5VPQFPaA== + dependencies: + inline-style-parser "0.1.1" + styled-components@5.3.5: version "5.3.5" resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.5.tgz#a750a398d01f1ca73af16a241dec3da6deae5ec4" @@ -10340,6 +10932,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" @@ -10355,6 +10952,11 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + ts-api-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" @@ -10594,6 +11196,19 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unified@^10.0.0, unified@^10.1.2: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + unified@^9.1.0: version "9.2.2" resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" @@ -10616,16 +11231,35 @@ unist-util-generated@^1.0.0: resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== +unist-util-generated@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== + unist-util-is@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-position@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== +unist-util-position@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" @@ -10633,6 +11267,13 @@ unist-util-stringify-position@^2.0.0: dependencies: "@types/unist" "^2.0.2" +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-visit-parents@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" @@ -10641,6 +11282,14 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" +unist-util-visit-parents@^5.1.1, unist-util-visit-parents@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" @@ -10650,6 +11299,15 @@ unist-util-visit@^2.0.0: unist-util-is "^4.0.0" unist-util-visit-parents "^3.0.0" +unist-util-visit@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -10730,6 +11388,16 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -10773,6 +11441,14 @@ vfile-message@^2.0.0: "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" +vfile-message@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" @@ -10783,6 +11459,16 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" +vfile@^5.0.0: + version "5.3.7" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + wagmi@0.12.19: version "0.12.19" resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.12.19.tgz#5f5038330907f70c033ea51ef8a9136289567256" @@ -11075,3 +11761,8 @@ zwitch@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== From 4c6d3b03868f865dc4e6f3e71ede229aeef34278 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Mon, 18 Sep 2023 02:04:21 +0300 Subject: [PATCH 02/47] feat: matomoEventMap pass to @lidofinance/ui-faq --- config/index.ts | 1 + config/matomoFaq.ts | 8 ++++++++ features/home/stake-faq/stake-faq.tsx | 12 ++++++++---- package.json | 1 + yarn.lock | 5 +++++ 5 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 config/matomoFaq.ts diff --git a/config/index.ts b/config/index.ts index 40dc96d3a..2f1884099 100644 --- a/config/index.ts +++ b/config/index.ts @@ -17,3 +17,4 @@ export * from './units'; export * from './metrics'; export * from './rateLimit'; export * from './matomoClickEvents'; +export * from './matomoFaq'; diff --git a/config/matomoFaq.ts b/config/matomoFaq.ts new file mode 100644 index 000000000..8f1ac1951 --- /dev/null +++ b/config/matomoFaq.ts @@ -0,0 +1,8 @@ +import { MATOMO_CLICK_EVENTS } from './matomoClickEvents'; + +export const matomoEventMap = new Map(); + +matomoEventMap.set( + 'https://lido.fi/lido-ecosystem?tokens=stETH&categories=Get', + MATOMO_CLICK_EVENTS.faqHowCanIUnstakeStEthIntegrations, +); diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index d15d2f48c..e5b4aacec 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -1,8 +1,8 @@ import { FC, useEffect, useState } from 'react'; import { FaqAccordion, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; -import { dynamics } from 'config'; +import { dynamics, matomoEventMap } from 'config'; import { Section } from 'shared/components'; -import { useMatomoEventHandle } from 'shared/hooks'; +// import { useMatomoEventHandle } from 'shared/hooks'; export const StakeFaq: FC = () => { const [foundPage, setFoundPage] = useState(undefined); @@ -18,18 +18,22 @@ export const StakeFaq: FC = () => { (page: PageFAQ) => page['identification'] === pageIdentification, ), ); + + return () => {}; } catch { // noop } })(); }, []); - const onClickHandler = useMatomoEventHandle(); + // const onClickHandler = useMatomoEventHandle(); return ( -
+ //
+
); diff --git a/package.json b/package.json index aec8a75a9..5df7d8566 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "@lidofinance/next-api-wrapper": "^0.28.0", "@lidofinance/next-ip-rate-limit": "^0.28.0", "@lidofinance/next-pages": "^0.28.0", + "@lidofinance/next-ui-primitives": "^0.36.0", "@lidofinance/rpc": "^0.28.0", "@lidofinance/satanizer": "^0.32.0", "@lidofinance/ui-faq": "file:.yalc/@lidofinance/ui-faq", diff --git a/yarn.lock b/yarn.lock index 664d2763a..2c903e278 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2635,6 +2635,11 @@ resolved "https://registry.yarnpkg.com/@lidofinance/next-pages/-/next-pages-0.28.0.tgz#87bfd8a4eefe9d446dfa5b8d9909ecc5e1fc7a34" integrity sha512-rtiRpEbzHlCGqnad3uXOGVdu6zq7pFlgoyWY/SCOvimzJdAYfNWEQs4rOP8quiOqMQxCqUAbpmoz2/WKkibLQA== +"@lidofinance/next-ui-primitives@^0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@lidofinance/next-ui-primitives/-/next-ui-primitives-0.36.0.tgz#3e5d722a07ab7e29c50ff0a35eee1cf5fbe348c6" + integrity sha512-aNNT0bSJ2KGWRr0BEGri5cTVMOw0Zh+DJC5bBuOZyFlnpLjU3xiKYRNwOq8i4cZRb50K117KuZB8Azx3mqATVQ== + "@lidofinance/rpc@^0.28.0": version "0.28.0" resolved "https://registry.yarnpkg.com/@lidofinance/rpc/-/rpc-0.28.0.tgz#f96590fef8bf418cd32a2835753df6a69a568cdc" From b4156446eda535ea37469f18e412cf23dd4ef3e8 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Thu, 21 Sep 2023 12:03:48 +0300 Subject: [PATCH 03/47] chore: deps --- package.json | 11 +++++++++-- yarn.lock | 14 ++++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5df7d8566..59badd72a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,6 @@ "name": "lido-staking-widget", "version": "1.60.1", "private": true, - "type": "module", "license": "GPL-3.0-or-later", "scripts": { "dev": "node server.mjs", @@ -18,6 +17,14 @@ "test:unit": "jest", "test:e2e": "playwright test" }, + "imports": { + "react/jsx-dev-runtime": "react/jsx-dev-runtime.js", + "react/jsx-runtime": "react/jsx-runtime.js" + }, + "alias": { + "react/jsx-dev-runtime": "react/jsx-dev-runtime.js", + "react/jsx-runtime": "react/jsx-runtime.js" + }, "dependencies": { "@ethersproject/bignumber": "^5.7.0", "@ethersproject/bytes": "^5.7.0", @@ -40,7 +47,7 @@ "@lidofinance/next-api-wrapper": "^0.28.0", "@lidofinance/next-ip-rate-limit": "^0.28.0", "@lidofinance/next-pages": "^0.28.0", - "@lidofinance/next-ui-primitives": "^0.36.0", + "@lidofinance/next-ui-primitives": "file:.yalc/@lidofinance/next-ui-primitives", "@lidofinance/rpc": "^0.28.0", "@lidofinance/satanizer": "^0.32.0", "@lidofinance/ui-faq": "file:.yalc/@lidofinance/ui-faq", diff --git a/yarn.lock b/yarn.lock index 2c903e278..90df5aeb2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2635,10 +2635,10 @@ resolved "https://registry.yarnpkg.com/@lidofinance/next-pages/-/next-pages-0.28.0.tgz#87bfd8a4eefe9d446dfa5b8d9909ecc5e1fc7a34" integrity sha512-rtiRpEbzHlCGqnad3uXOGVdu6zq7pFlgoyWY/SCOvimzJdAYfNWEQs4rOP8quiOqMQxCqUAbpmoz2/WKkibLQA== -"@lidofinance/next-ui-primitives@^0.36.0": - version "0.36.0" - resolved "https://registry.yarnpkg.com/@lidofinance/next-ui-primitives/-/next-ui-primitives-0.36.0.tgz#3e5d722a07ab7e29c50ff0a35eee1cf5fbe348c6" - integrity sha512-aNNT0bSJ2KGWRr0BEGri5cTVMOw0Zh+DJC5bBuOZyFlnpLjU3xiKYRNwOq8i4cZRb50K117KuZB8Azx3mqATVQ== +"@lidofinance/next-ui-primitives@^0.37.0": + version "0.37.0" + resolved "https://registry.yarnpkg.com/@lidofinance/next-ui-primitives/-/next-ui-primitives-0.37.0.tgz#19b8e9314041d3d0c8d91387633424117682a6e6" + integrity sha512-nEescISWOGoCe7BAqLNoIlqH8ool4PSSlgY4WWC+LToRITzUVBzIveXjzrb5YKOWMHMuTB8+JgaKbozjf08d9g== "@lidofinance/rpc@^0.28.0": version "0.28.0" @@ -2658,6 +2658,7 @@ js-yaml "^4.1.0" mdast "^3.0.0" react-markdown "^8.0.7" + react-to-text "^2.0.1" remark-directive "^2.0.1" remark-frontmatter "^4.0.1" remark-parse "^10.0.2" @@ -9778,6 +9779,11 @@ react-markdown@^8.0.7: unist-util-visit "^4.0.0" vfile "^5.0.0" +react-to-text@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/react-to-text/-/react-to-text-2.0.1.tgz#6a6c1b6c9cf2de6a7e7117b6fff1d7b25d1b4cd3" + integrity sha512-4lGuxY+/PqASinxrv7/ydE8wGdnZCGsTNIFiO6DKykzy703jI5pc0/fyyB6BNrBWmtYJ7H9dGY80PJ3V1/8UIg== + react-toastify@7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-7.0.4.tgz#7d0b743f2b96f65754264ca6eae31911a82378db" From 66b530771e8a0cae8c1b3ec91798e40a6fdc95a4 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Thu, 21 Sep 2023 12:08:44 +0300 Subject: [PATCH 04/47] fix: react/jsx-runtime --- next.config.mjs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/next.config.mjs b/next.config.mjs index 017b68021..0f807268b 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -98,6 +98,14 @@ export default withBundleAnalyzer({ }, ); + config.resolve.alias = { + ...config.resolve.alias, + + // Remove after upgrade to React 18 + "react/jsx-dev-runtime": "react/jsx-dev-runtime.js", + "react/jsx-runtime": "react/jsx-runtime.js" + } + return config; }, async headers() { From e0bc5e574532292edcda3cdb42602abd44623879 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Thu, 21 Sep 2023 12:11:11 +0300 Subject: [PATCH 05/47] feat: auto gen of matomo event (draft) --- features/home/stake-faq/stake-faq.tsx | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index e5b4aacec..1d8216aa5 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -1,8 +1,8 @@ -import { FC, useEffect, useState } from 'react'; +import React, { FC, useEffect, useState } from 'react'; +import { trackEvent } from '@lidofinance/analytics-matomo'; import { FaqAccordion, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; -import { dynamics, matomoEventMap } from 'config'; +import { dynamics } from 'config'; import { Section } from 'shared/components'; -// import { useMatomoEventHandle } from 'shared/hooks'; export const StakeFaq: FC = () => { const [foundPage, setFoundPage] = useState(undefined); @@ -26,14 +26,16 @@ export const StakeFaq: FC = () => { })(); }, []); - // const onClickHandler = useMatomoEventHandle(); - return ( - //
{ + const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; + // _faq___ + const nameEvent = `eth_widget_faq_stake_${questionId}_${linkContent}`; + trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + }} />
); From 59ddaf84bb01d41aeedd9721a414976c8537d91c Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Thu, 21 Sep 2023 12:32:34 +0300 Subject: [PATCH 06/47] feat: remove old source code FAQ --- config/index.ts | 1 - config/matomoClickEvents.ts | 128 ------------------ config/matomoFaq.ts | 8 -- .../stake-faq/list/how-can-i-get-steth.tsx | 36 ----- .../list/how-can-i-unstake-steth.tsx | 40 ------ .../stake-faq/list/how-can-i-use-steth.tsx | 20 --- .../stake-faq/list/how-does-lido-work.tsx | 18 --- features/home/stake-faq/list/index.ts | 11 -- features/home/stake-faq/list/lido-eth-apr.tsx | 37 ----- features/home/stake-faq/list/lido-fee.tsx | 26 ---- .../list/risks-of-staking-with-lido.tsx | 67 --------- .../stake-faq/list/safe-work-with-lido.tsx | 40 ------ features/home/stake-faq/list/what-is-lido.tsx | 17 --- .../home/stake-faq/list/what-is-steth.tsx | 15 -- .../list/where-can-i-cover-my-steth.tsx | 61 --------- .../withdrawals-faq/list/add-nft.tsx | 27 ---- .../list/bunker-mode-reasons.tsx | 27 ---- .../withdrawals-faq/list/bunker-mode.tsx | 18 --- .../list/bunker-while-request-ongoing.tsx | 14 -- .../list/claimable-amount-difference.tsx | 19 --- .../list/convert-steth-to-eth.tsx | 19 --- .../list/convert-wsteth-to-eth.tsx | 21 --- .../list/how-does-withdrawals-work.tsx | 24 ---- .../list/how-long-to-withdraw.tsx | 17 --- .../withdrawals-faq/list/how-to-withdraw.tsx | 22 --- .../withdrawals-faq/list/lido-nft.tsx | 15 -- .../withdrawals-faq/list/nft-not-change.tsx | 14 -- .../list/rewards-after-withdraw.tsx | 13 -- .../withdrawals-faq/list/separate-claim.tsx | 14 -- .../withdrawals-faq/list/turbo-mode.tsx | 13 -- .../list/unstake-amount-boundaries.tsx | 28 ---- .../list/what-are-withdrawals.tsx | 14 -- .../withdrawals-faq/list/what-is-slashing.tsx | 34 ----- .../withdrawals-faq/list/why-steth.tsx | 14 -- .../withdrawals-faq/list/withdrawaal-fee.tsx | 13 -- .../list/withdrawal-period-circumstances.tsx | 17 --- .../list/do-i-get-my-staking-rewards.tsx | 16 --- .../do-i-need-to-claim-my-staking-rewards.tsx | 10 -- .../list/do_i_need_to_unwrap_my_wsteth.tsx | 29 ---- .../wrap-faq/list/how-can-i-get-wsteth.tsx | 35 ----- .../wrap-faq/list/how-can-i-use-wsteth.tsx | 29 ---- .../how-could-i-unwrap-wsteth-to-steth.tsx | 30 ---- features/wsteth/shared/wrap-faq/list/index.ts | 7 - .../shared/wrap-faq/list/what-is-wsteth.tsx | 15 -- lib/faqList.ts | 33 ----- shared/components/faq/faq.tsx | 65 --------- shared/components/index.ts | 1 - 47 files changed, 1192 deletions(-) delete mode 100644 config/matomoFaq.ts delete mode 100644 features/home/stake-faq/list/how-can-i-get-steth.tsx delete mode 100644 features/home/stake-faq/list/how-can-i-unstake-steth.tsx delete mode 100644 features/home/stake-faq/list/how-can-i-use-steth.tsx delete mode 100644 features/home/stake-faq/list/how-does-lido-work.tsx delete mode 100644 features/home/stake-faq/list/index.ts delete mode 100644 features/home/stake-faq/list/lido-eth-apr.tsx delete mode 100644 features/home/stake-faq/list/lido-fee.tsx delete mode 100644 features/home/stake-faq/list/risks-of-staking-with-lido.tsx delete mode 100644 features/home/stake-faq/list/safe-work-with-lido.tsx delete mode 100644 features/home/stake-faq/list/what-is-lido.tsx delete mode 100644 features/home/stake-faq/list/what-is-steth.tsx delete mode 100644 features/home/stake-faq/list/where-can-i-cover-my-steth.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/add-nft.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/bunker-mode-reasons.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/bunker-mode.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/bunker-while-request-ongoing.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/claimable-amount-difference.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/convert-steth-to-eth.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/convert-wsteth-to-eth.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/how-does-withdrawals-work.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/how-long-to-withdraw.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/how-to-withdraw.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/lido-nft.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/nft-not-change.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/rewards-after-withdraw.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/separate-claim.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/turbo-mode.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/unstake-amount-boundaries.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/what-are-withdrawals.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/what-is-slashing.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/why-steth.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/withdrawaal-fee.tsx delete mode 100644 features/withdrawals/withdrawals-faq/list/withdrawal-period-circumstances.tsx delete mode 100644 features/wsteth/shared/wrap-faq/list/do-i-get-my-staking-rewards.tsx delete mode 100644 features/wsteth/shared/wrap-faq/list/do-i-need-to-claim-my-staking-rewards.tsx delete mode 100644 features/wsteth/shared/wrap-faq/list/do_i_need_to_unwrap_my_wsteth.tsx delete mode 100644 features/wsteth/shared/wrap-faq/list/how-can-i-get-wsteth.tsx delete mode 100644 features/wsteth/shared/wrap-faq/list/how-can-i-use-wsteth.tsx delete mode 100644 features/wsteth/shared/wrap-faq/list/how-could-i-unwrap-wsteth-to-steth.tsx delete mode 100644 features/wsteth/shared/wrap-faq/list/index.ts delete mode 100644 features/wsteth/shared/wrap-faq/list/what-is-wsteth.tsx delete mode 100644 lib/faqList.ts delete mode 100644 shared/components/faq/faq.tsx diff --git a/config/index.ts b/config/index.ts index 2f1884099..40dc96d3a 100644 --- a/config/index.ts +++ b/config/index.ts @@ -17,4 +17,3 @@ export * from './units'; export * from './metrics'; export * from './rateLimit'; export * from './matomoClickEvents'; -export * from './matomoFaq'; diff --git a/config/matomoClickEvents.ts b/config/matomoClickEvents.ts index 1143cdcda..0dd7d44c3 100644 --- a/config/matomoClickEvents.ts +++ b/config/matomoClickEvents.ts @@ -10,28 +10,6 @@ export const enum MATOMO_CLICK_EVENTS_TYPES { oneInchDiscount = 'oneInchDiscount', viewEtherscanOnStakePage = 'viewEtherscanOnStakePage', l2BannerStake = 'l2BannerStake', - // FAQ - faqSafeWorkWithLidoAudits = 'faqSafeWorkWithLidoAudits', - faqLidoEthAprEthLandingPage = 'faqLidoEthAprEthLandingPage', - faqLidoEthAprDocs = 'faqLidoEthAprDocs', - faqHowCanIGetStEthWidget = 'faqHowCanIGetStEthWidget', - faqHowCanIGetStEthIntegrations = 'faqHowCanIGetStEthIntegrations', - faqHowCanIUseSteth = 'faqHowCanIUseSteth', - faqWhereCanICoverBridgeMutual = 'faqWhereCanICoverBridgeMutual', - faqWhereCanICoverIdleFinance = 'faqWhereCanICoverIdleFinance', - faqWhereCanICoverNexusMutual = 'faqWhereCanICoverNexusMutual', - faqWhereCanICoverRibbonFinance = 'faqWhereCanICoverRibbonFinance', - faqWhereCanICoverChainproof = 'faqWhereCanICoverChainproof', - faqRisksOfStakingReports = 'faqRisksOfStakingReports', - faqRisksOfStakingImmunefiBugBounty = 'faqRisksOfStakingImmunefiBugBounty', - faqHowCanIUnstakeStEthWithdrawals = 'faqHowCanIUnstakeStEthWithdrawals', - faqHowCanIUnstakeStEthIntegrations = 'faqHowCanIUnstakeStEthIntegrations', - faqHowCanIGetWstethWrapLink = 'faqHowCanIGetWstethWrapLink', - faqHowCanIGetWstethIntegrationsLink = 'faqHowCanIGetWstethIntegrationsLink', - faqHowDoIUnwrapWstethUnwrapLink = 'faqHowDoIUnwrapWstethUnwrapLink', - faqHowCanIUseWstethL2 = 'faqHowCanIUseWstethL2', - faqHowCanIUseWstethDefiProtocols = 'faqHowCanIUseWstethDefiProtocols', - faqDoINeedToUnwrapMyWstethWithdrawalsTabs = 'faqDoINeedToUnwrapMyWstethWithdrawalsTabs', // /wrap page l2BannerWrap = 'l2BannerWrap', wrapTokenSelectSTETH = 'wrapTokenSelectSteth', @@ -102,112 +80,6 @@ export const MATOMO_CLICK_EVENTS: Record< 'Push "Learn more" at the L2 banner on "Stake" tab', 'eth_widget_banner_l2_stake', ], - // FAQ - [MATOMO_CLICK_EVENTS_TYPES.faqSafeWorkWithLidoAudits]: [ - 'Ethereum_Staking_Widget', - 'Push «here» in FAQ Is it safe to work with Lido', - 'eth_widget_faq_safeWorkWithLido_here', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqLidoEthAprEthLandingPage]: [ - 'Ethereum_Staking_Widget', - 'Push «Ethereum landing page» in FAQ What is Lido staking APR for Ethereum? on stake widget', - 'eth_widget_faq_lidoEthApr_ethereumLandingPage', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqLidoEthAprDocs]: [ - 'Ethereum_Staking_Widget', - 'Push «Docs» in FAQ What is Lido staking APR for Ethereum? on stake widget', - 'eth_widget_faq_lidoEthApr_docs', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqHowCanIGetStEthWidget]: [ - 'Ethereum_Staking_Widget', - 'Push «Lido Ethereum staking widget» in FAQ How can I get stETH? on stake widget', - 'eth_widget_faq_howCanIGetStEth_lidoEthereumStakingWidget', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqHowCanIGetStEthIntegrations]: [ - 'Ethereum_Staking_Widget', - 'Push «DEX Lido integrations» in FAQ How can I get stETH? on stake widget', - 'eth_widget_faq_howCanIGetStEth_dexLidoIntegrations', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqHowCanIUseSteth]: [ - 'Ethereum_Staking_Widget', - 'Push «more» in FAQ How can I use stETH? on stake widget', - 'eth_widget_faq_howCanIUseSteth_more', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqWhereCanICoverBridgeMutual]: [ - 'Ethereum_Staking_Widget', - 'Push «Bridge Mutual» in FAQ Where can I cover my stETH? on stake widget', - 'eth_widget_faq_wherecanicover_bridgemutual', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqWhereCanICoverIdleFinance]: [ - 'Ethereum_Staking_Widget', - 'Push «Idle Finance» in FAQ Where can I cover my stETH? on stake widget', - 'eth_widget_faq_wherecanicover_idlefinance', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqWhereCanICoverNexusMutual]: [ - 'Ethereum_Staking_Widget', - 'Push «Nexus Mutual» in FAQ Where can I cover my stETH? on stake widget', - 'eth_widget_faq_wherecanicover_nexusmutual', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqWhereCanICoverRibbonFinance]: [ - 'Ethereum_Staking_Widget', - 'Push «Ribbon Finance» in FAQ Where can I cover my stETH? on stake widget', - 'eth_widget_faq_wherecanicover_ribbonfinance', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqWhereCanICoverChainproof]: [ - 'Ethereum_Staking_Widget', - 'Push «Chainproof» in FAQ Where can I cover my stETH? on stake widget', - 'eth_widget_faq_wherecanicover_сhainproof', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqRisksOfStakingReports]: [ - 'Ethereum_Staking_Widget', - 'Push "here" in FAQ What are the risks of staking with Lido? on stake widget', - 'eth_widget_faq_risksofstaking_reports', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqRisksOfStakingImmunefiBugBounty]: [ - 'Ethereum_Staking_Widget', - 'Push "Immunefi bug bounty program" in FAQ What are the risks of staking with Lido? on stake widget', - 'eth_widget_faq_risksofstaking_immunefibugbounty', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqHowCanIUnstakeStEthWithdrawals]: [ - 'Ethereum_Staking_Widget', - 'Push «Withdrawals Request and Claim tabs» in FAQ How can I unstake stETH? on stake widget', - 'eth_widget_faq_howCanIUnstakeStEth_withdrawalsRequestAndClaimTabs', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqHowCanIUnstakeStEthIntegrations]: [ - 'Ethereum_Staking_Widget', - 'Push «DEX Lido integrations» in FAQ How can I unstake stETH? on stake widget', - 'eth_widget_faq_howCanIUnstakeStEth_dexLidoIntegrations', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqHowCanIGetWstethWrapLink]: [ - 'Ethereum_Staking_Widget', - 'Push «Wrap & Unwrap staking widget» in FAQ How can I get wstETH', - 'eth_widget_faq_howgetwsteth_wrap', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqHowCanIGetWstethIntegrationsLink]: [ - 'Ethereum_Staking_Widget', - 'Push «DEX Lido integrations» in FAQ How can I get wstETH', - 'eth_widget_faq_howgetwsteth_dexLidoIntegrations', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqHowDoIUnwrapWstethUnwrapLink]: [ - 'Ethereum_Staking_Widget', - 'Push «stake.lido.fi/wrap/unwrap» How do I unwrap wstETH back to stETH?', - 'eth_widget_faq_howunwrapwsteth_unwrap', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqHowCanIUseWstethL2]: [ - 'Ethereum_Staking_Widget', - 'Push «L2» How can I use wstETH?', - 'eth_widget_faq_howCanIUseWstETH_l2', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqHowCanIUseWstethDefiProtocols]: [ - 'Ethereum_Staking_Widget', - 'Push «DeFi protocols» How can I use wstETH?', - 'eth_widget_faq_howCanIUseWstETH_defiProtocols', - ], - [MATOMO_CLICK_EVENTS_TYPES.faqDoINeedToUnwrapMyWstethWithdrawalsTabs]: [ - 'Ethereum_Staking_Widget', - 'Push «Withdrawals Request and Claim tabs» Do I need to unwrap my wstETH before requesting withdrawals?', - 'eth_widget_faq_doINeedToUnwrapMyWsteth_withdrawalsRequestAndClaimTabs', - ], // /wrap page [MATOMO_CLICK_EVENTS_TYPES.l2BannerWrap]: [ 'Ethereum_Staking_Widget', diff --git a/config/matomoFaq.ts b/config/matomoFaq.ts deleted file mode 100644 index 8f1ac1951..000000000 --- a/config/matomoFaq.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { MATOMO_CLICK_EVENTS } from './matomoClickEvents'; - -export const matomoEventMap = new Map(); - -matomoEventMap.set( - 'https://lido.fi/lido-ecosystem?tokens=stETH&categories=Get', - MATOMO_CLICK_EVENTS.faqHowCanIUnstakeStEthIntegrations, -); diff --git a/features/home/stake-faq/list/how-can-i-get-steth.tsx b/features/home/stake-faq/list/how-can-i-get-steth.tsx deleted file mode 100644 index 7f958d6d6..000000000 --- a/features/home/stake-faq/list/how-can-i-get-steth.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { FC } from 'react'; -import { Accordion, Link as OuterLink } from '@lidofinance/lido-ui'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; -import { trackMatomoEvent } from 'config/trackMatomoEvent'; -import { LocalLink } from 'shared/components/local-link'; - -export const HowCanIGetSteth: FC = () => { - return ( - -

- You can get stETH many ways, including interacting with the smart - contract directly.Yet, it is much easier to use a{' '} - - - trackMatomoEvent( - MATOMO_CLICK_EVENTS_TYPES.faqHowCanIGetStEthWidget, - ) - } - aria-hidden="true" - > - Lido Ethereum staking widget - - {' '} - and in other{' '} - - DEX Lido integrations - - . -

-
- ); -}; diff --git a/features/home/stake-faq/list/how-can-i-unstake-steth.tsx b/features/home/stake-faq/list/how-can-i-unstake-steth.tsx deleted file mode 100644 index ccefdab3d..000000000 --- a/features/home/stake-faq/list/how-can-i-unstake-steth.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { FC } from 'react'; -import { Accordion, Link as OuterLink } from '@lidofinance/lido-ui'; -import { LocalLink } from 'shared/components/local-link'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; -import { trackMatomoEvent } from 'config/trackMatomoEvent'; - -export const HowCanIUnstakeSteth: FC = () => { - return ( - -

- You can use our{' '} - - - trackMatomoEvent( - MATOMO_CLICK_EVENTS_TYPES.faqHowCanIUnstakeStEthWithdrawals, - ) - } - aria-hidden="true" - > - Withdrawals Request and Claim tabs - - {' '} - to unstake stETH and receive ETH at a 1:1 ratio. Under normal - circumstances, withdrawal period can take anywhere between 1-5 days. - After that, you can claim your ETH using the Claim tab. Also, you can - exchange stETH on{' '} - - DEX Lido integrations - - . -

-
- ); -}; diff --git a/features/home/stake-faq/list/how-can-i-use-steth.tsx b/features/home/stake-faq/list/how-can-i-use-steth.tsx deleted file mode 100644 index 64efd0805..000000000 --- a/features/home/stake-faq/list/how-can-i-use-steth.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { FC } from 'react'; -import { Accordion, Link } from '@lidofinance/lido-ui'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; - -export const HowCanIUseSteth: FC = () => { - return ( - -

- You can use your stETH as collateral, for lending, and{' '} - - more - - . -

-
- ); -}; diff --git a/features/home/stake-faq/list/how-does-lido-work.tsx b/features/home/stake-faq/list/how-does-lido-work.tsx deleted file mode 100644 index f263cd3de..000000000 --- a/features/home/stake-faq/list/how-does-lido-work.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; - -export const HowDoesLidoWork: FC = () => { - return ( - -

- While each network works differently, generally, the Lido protocols - batch user tokens to stake with validators and route the staking - packages to network staking contracts. Users mint amounts of stTokens - which correspond to the amount of tokens sent as stake and they receive - staking rewards. When they unstake, they burn the stToken to initiate - the network-specific withdrawal process to withdraw the balance of stake - and rewards. -

-
- ); -}; diff --git a/features/home/stake-faq/list/index.ts b/features/home/stake-faq/list/index.ts deleted file mode 100644 index 4f0670c8e..000000000 --- a/features/home/stake-faq/list/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from './how-does-lido-work'; -export * from './lido-fee'; -export * from './risks-of-staking-with-lido'; -export * from './safe-work-with-lido'; -export * from './how-can-i-unstake-steth'; -export * from './how-can-i-use-steth'; -export * from './how-can-i-get-steth'; -export * from './what-is-lido'; -export * from './lido-eth-apr'; -export * from './what-is-steth'; -export * from './where-can-i-cover-my-steth'; diff --git a/features/home/stake-faq/list/lido-eth-apr.tsx b/features/home/stake-faq/list/lido-eth-apr.tsx deleted file mode 100644 index d51ba8a1c..000000000 --- a/features/home/stake-faq/list/lido-eth-apr.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { FC } from 'react'; -import { Accordion, Link } from '@lidofinance/lido-ui'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; - -export const LidoEthApr: FC = () => { - return ( - -

Lido staking APR for Ethereum = Protocol APR * (1 - Protocol fee)

-

- Protocol APR — the overall Consensus Layer (CL) and Execution Layer (EL) - rewards received by Lido validators to total pooled ETH estimated as the - moving average of the last seven days. -

-

- Protocol fee — Lido applies a 10% fee on staking rewards that are split - between node operators and the DAO Treasury. -

-

- More about Lido staking APR for Ethereum you could find on the{' '} - - Ethereum landing page - {' '} - and in our{' '} - - Docs - - . -

-
- ); -}; diff --git a/features/home/stake-faq/list/lido-fee.tsx b/features/home/stake-faq/list/lido-fee.tsx deleted file mode 100644 index 4f35579fc..000000000 --- a/features/home/stake-faq/list/lido-fee.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; -import { useContractSWR, useSTETHContractRPC } from '@lido-sdk/react'; -import { DATA_UNAVAILABLE } from 'config'; - -export const LidoFee: FC = () => { - const contractRpc = useSTETHContractRPC(); - const lidoFee = useContractSWR({ - contract: contractRpc, - method: 'getFee', - }); - const feeValue = - lidoFee.initialLoading || !lidoFee.data - ? DATA_UNAVAILABLE - : `${lidoFee.data / 100}%`; - - return ( - -

- The protocol applies a {feeValue} fee on staking rewards. This fee is - split between node operators and the Lido DAO. That means the users - receive 90% of the staking rewards returned by the networks. -

-
- ); -}; diff --git a/features/home/stake-faq/list/risks-of-staking-with-lido.tsx b/features/home/stake-faq/list/risks-of-staking-with-lido.tsx deleted file mode 100644 index f17cd9ea3..000000000 --- a/features/home/stake-faq/list/risks-of-staking-with-lido.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import { FC } from 'react'; -import { Accordion, Link } from '@lidofinance/lido-ui'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; - -export const RisksOfStakingWithLido: FC = () => { - return ( - -

- There exist a number of potential risks when staking using liquid - staking protocols. -

-
    -
  • - Smart contract security -

    - There is an inherent risk that Lido could contain a smart contract - vulnerability or bug. The Lido code is open-sourced, audited and - covered by an extensive bug bounty program to minimise this risk. To - mitigate smart contract risks, all of the core Lido contracts are - audited. Audit reports can be found{' '} - - here - - . Besides, Lido is covered with a massive{' '} - - Immunefi bug bounty program - - . -

    -
  • -
  • - Slashing risk -

    - Validators risk staking penalties, with up to 100% of staked funds - at risk if validators fail. To minimise this risk, Lido stakes - across multiple professional and reputable node operators with - heterogeneous setups, with additional mitigation in the form of - self-coverage. -

    -
  • -
  • - stToken price risk -

    - Users risk an exchange price of stTokens which is lower than - inherent value due to withdrawal restrictions on Lido, making - arbitrage and risk-free market-making impossible. The Lido DAO is - driven to mitigate the above risks and eliminate them entirely to - the extent possible. Despite this, they may still exist and, as - such, it is our duty to communicate them. -

    -
  • -
-

- The Lido DAO is driven to mitigate the above risks and eliminate them - entirely to the extent possible. Despite this, they may still exist. -

-
- ); -}; diff --git a/features/home/stake-faq/list/safe-work-with-lido.tsx b/features/home/stake-faq/list/safe-work-with-lido.tsx deleted file mode 100644 index cbcb28f0b..000000000 --- a/features/home/stake-faq/list/safe-work-with-lido.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { FC } from 'react'; -import { Accordion, Link } from '@lidofinance/lido-ui'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; - -export const SafeWorkWithLido: FC = () => { - return ( - - In order to work safe, Lido fits the next points: -
    -
  • Open-sourcing & continuous review of all code.
  • -
  • - Committee of elected, best-in-class validators to minimise staking - risk. -
  • -
  • - Use of non-custodial staking service to eliminate counterparty risk. -
  • -
  • - Use of DAO for governance decisions & to manage risk factors. -
  • -
  • - Lido has been audited by Certora, StateMind, Hexens, ChainSecurity, - Oxorio, MixBytes, SigmaPrime, Quantstamp. Lido audits can be found in - more detail{' '} - - here - - . -
  • -
-

- Usually when staking ETH you choose only one validator. In the case of - Lido you stake across many validators, minimising your staking risk. -

-
- ); -}; diff --git a/features/home/stake-faq/list/what-is-lido.tsx b/features/home/stake-faq/list/what-is-lido.tsx deleted file mode 100644 index ea86bf430..000000000 --- a/features/home/stake-faq/list/what-is-lido.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; - -export const WhatIsLido: FC = () => { - return ( - -

- Lido is the name of a family of open-source peer-to-system software - tools deployed and functioning on the Ethereum, Solana, and Polygon - blockchain networks. The software enables users to mint transferable - utility tokens, which receive rewards linked to the related validation - activities of writing data to the blockchain, while the tokens can be - used in other on-chain activities. -

-
- ); -}; diff --git a/features/home/stake-faq/list/what-is-steth.tsx b/features/home/stake-faq/list/what-is-steth.tsx deleted file mode 100644 index 5f0514184..000000000 --- a/features/home/stake-faq/list/what-is-steth.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; - -export const WhatIsSteth: FC = () => { - return ( - -

- stETH is a transferable rebasing utility token representing a share of - the total ETH staked through the protocol, which consists of user - deposits and staking rewards. Because stETH rebases daily, it - communicates the position of the share daily. -

-
- ); -}; diff --git a/features/home/stake-faq/list/where-can-i-cover-my-steth.tsx b/features/home/stake-faq/list/where-can-i-cover-my-steth.tsx deleted file mode 100644 index 594a28004..000000000 --- a/features/home/stake-faq/list/where-can-i-cover-my-steth.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { FC } from 'react'; -import { Accordion, Link } from '@lidofinance/lido-ui'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; - -export const WhereCanICoverMySteth: FC = () => { - return ( - - - There are multiple coverage and insurer providers with different - products for stETH: - -
    -
  • - - Bridge Mutual - -
  • -
  • - - Idle Finance - -
  • -
  • - - Nexus Mutual - -
  • -
  • - - Ribbon Finance - -
  • -
  • - - Chainproof - -
  • -
-

Check with providers for coverage and insurer conditions.

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/add-nft.tsx b/features/withdrawals/withdrawals-faq/list/add-nft.tsx deleted file mode 100644 index c98ca8ea8..000000000 --- a/features/withdrawals/withdrawals-faq/list/add-nft.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { Accordion, Link } from '@lidofinance/lido-ui'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; -import { LINK_ADD_NFT_GUIDE } from 'config/external-links'; - -export const HowToAddNFT = () => { - return ( - -

- Different wallets have specific functionality for adding and working - with NFT. Most often, you need to find the specific NFT Address and - Token ID. These parameters you can find on Etherscan. Visit Etherscan, - add your wallet, and locate the NFT transaction. Once located, open the - NFT transaction, and you will see the Address and Token ID. -

-

- If you are a MetaMask user, use{' '} - - this guide - - . -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/bunker-mode-reasons.tsx b/features/withdrawals/withdrawals-faq/list/bunker-mode-reasons.tsx deleted file mode 100644 index 0c8bb5947..000000000 --- a/features/withdrawals/withdrawals-faq/list/bunker-mode-reasons.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -export const BunkerModeReasons: React.FC = () => { - return ( - -

- Bunker mode is triggered under three conditions when the penalties might - be big enough to have a significant impact on the protocol’s rewards: -

-
    -
  1. Mass slashing.
  2. -
  3. - Penalties exceeding rewards in the current period between two Oracle - reports. -
  4. -
  5. - Lower than expected Lido validators' performance in the current - period between two Oracle reports and penalties exceeding rewards at - the end of it. -
  6. -
-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/bunker-mode.tsx b/features/withdrawals/withdrawals-faq/list/bunker-mode.tsx deleted file mode 100644 index 265035f66..000000000 --- a/features/withdrawals/withdrawals-faq/list/bunker-mode.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -export const BunkerMode: React.FC = () => { - return ( - -

- Bunker mode is an emergency mode that activates under three worst-case - conditions (when penalties are large enough to significantly impact the - protocol’s rewards). -

-

- Importantly, Bunker mode allows for orderly withdrawals to be still - processed, albeit more slowly, during chaotic tail-risk scenarios (e.g. - mass slashings or a significant portion of validators going offline). -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/bunker-while-request-ongoing.tsx b/features/withdrawals/withdrawals-faq/list/bunker-while-request-ongoing.tsx deleted file mode 100644 index 243faf9c0..000000000 --- a/features/withdrawals/withdrawals-faq/list/bunker-while-request-ongoing.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { NoBr } from '../styles'; -import { Accordion } from '@lidofinance/lido-ui'; - -export const BunkerWhileRequestOngoing: React.FC = () => { - return ( - -

- Most often, the stETH/wstETH withdrawal period will be from{' '} - 1-5 days. However, if any scenarios cause Bunker mode to - happen, this could be extended. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/claimable-amount-difference.tsx b/features/withdrawals/withdrawals-faq/list/claimable-amount-difference.tsx deleted file mode 100644 index cda9f8c36..000000000 --- a/features/withdrawals/withdrawals-faq/list/claimable-amount-difference.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -type ClaimableAmountDifferenceProps = { - title: string; -}; - -export const ClaimableAmountDifference: React.FC< - ClaimableAmountDifferenceProps -> = ({ title }) => { - return ( - -

- The amount you can claim may differ from your initial request due to a - slashing occurrence and penalties. For these reasons, the total - claimable reward amount could be reduced. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/convert-steth-to-eth.tsx b/features/withdrawals/withdrawals-faq/list/convert-steth-to-eth.tsx deleted file mode 100644 index 9d3ca9bd8..000000000 --- a/features/withdrawals/withdrawals-faq/list/convert-steth-to-eth.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -import { - WITHDRAWAL_REQUEST_PATH, - WITHDRAWAL_CLAIM_PATH, -} from 'features/withdrawals/withdrawals-constants'; -import { LocalLink } from 'shared/components/local-link'; - -export const ConvertSTETHtoETH: React.FC = () => { - return ( - -

- Yes. Stakers can transform their stETH to ETH 1:1 using the{' '} - Request and{' '} - Claim tabs. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/convert-wsteth-to-eth.tsx b/features/withdrawals/withdrawals-faq/list/convert-wsteth-to-eth.tsx deleted file mode 100644 index 71c7081dd..000000000 --- a/features/withdrawals/withdrawals-faq/list/convert-wsteth-to-eth.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; -import { LocalLink } from 'shared/components/local-link'; -import { - WITHDRAWAL_CLAIM_PATH, - WITHDRAWAL_REQUEST_PATH, -} from 'features/withdrawals/withdrawals-constants'; - -export const ConvertWSTETHtoETH: FC = () => { - return ( - -

- Yes. You can transform your wstETH to ETH using the{' '} - Request and{' '} - Claim tabs. Note - that, under the hood, wstETH will unwrap to stETH first, so your request - will be denominated in stETH. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/how-does-withdrawals-work.tsx b/features/withdrawals/withdrawals-faq/list/how-does-withdrawals-work.tsx deleted file mode 100644 index 52510c0e9..000000000 --- a/features/withdrawals/withdrawals-faq/list/how-does-withdrawals-work.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; -import { NoBr } from '../styles'; - -export const HowDoesWithdrawalsWork: FC = () => { - return ( - -

The withdrawal process is simple and has two steps:

-
    -
  1. - Request withdrawal: Lock your stETH/wstETH by issuing a - withdrawal request. ETH is sourced to fulfill the request, and then - locked stETH is burned, which marks the withdrawal request as - claimable. Under normal circumstances, this can take anywhere between{' '} - 1-5 days. -
  2. -
  3. - Claim: Claim your ETH after the withdrawal request has been - processed. -
  4. -
-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/how-long-to-withdraw.tsx b/features/withdrawals/withdrawals-faq/list/how-long-to-withdraw.tsx deleted file mode 100644 index fc02e8a19..000000000 --- a/features/withdrawals/withdrawals-faq/list/how-long-to-withdraw.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { NoBr } from '../styles'; -import { Accordion } from '@lidofinance/lido-ui'; -import { LocalLink } from 'shared/components/local-link'; -import { WITHDRAWAL_CLAIM_PATH } from 'features/withdrawals/withdrawals-constants'; - -export const HowLongToWithdraw: React.FC = () => { - return ( - -

- Under normal circumstances, the stETH/wstETH withdrawal period can take - anywhere between 1-5 days. After that, you can claim your - ETH using the  - Claim tab. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/how-to-withdraw.tsx b/features/withdrawals/withdrawals-faq/list/how-to-withdraw.tsx deleted file mode 100644 index b39e6cadc..000000000 --- a/features/withdrawals/withdrawals-faq/list/how-to-withdraw.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; -import { LocalLink } from 'shared/components/local-link'; -import { - WITHDRAWAL_CLAIM_PATH, - WITHDRAWAL_REQUEST_PATH, -} from 'features/withdrawals/withdrawals-constants'; - -export const HowToWithdraw: FC = () => { - return ( - -

- Press the{' '} - Request tab, - choose an amount of stETH/wstETH to withdraw, then press ‘Request - withdrawal’. Confirm the transaction using your wallet and press ‘Claim’ - on the Claim tab{' '} - once it is ready. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/lido-nft.tsx b/features/withdrawals/withdrawals-faq/list/lido-nft.tsx deleted file mode 100644 index d9e9c65d8..000000000 --- a/features/withdrawals/withdrawals-faq/list/lido-nft.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -export const LidoNFT: React.FC = () => { - return ( - -

- Each withdrawal request is represented by an NFT: the NFT is - automatically minted for you when you send a request. You will need to - add it to your wallet to be able to monitor the request status. When the - request is ready for the claim, the NFT will change it's - appearance. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/nft-not-change.tsx b/features/withdrawals/withdrawals-faq/list/nft-not-change.tsx deleted file mode 100644 index 015bf57f7..000000000 --- a/features/withdrawals/withdrawals-faq/list/nft-not-change.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -export const NFTNotChange: React.FC = () => { - return ( - -

- Maybe your wallet doesn’t support the automatic changing of the NFT - view. To renew the NFT, you can import the Address and Token ID of your - NFT, and it could change it's appearance to a new “Ready to claim” - one. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/rewards-after-withdraw.tsx b/features/withdrawals/withdrawals-faq/list/rewards-after-withdraw.tsx deleted file mode 100644 index 7ddb55b83..000000000 --- a/features/withdrawals/withdrawals-faq/list/rewards-after-withdraw.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -export const RewardsAfterWithdraw: React.FC = () => { - return ( - -

- No. After you request a withdrawal, the stETH/wstETH submitted for - unstaking will not receive staking rewards on top of your submitted - balance. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/separate-claim.tsx b/features/withdrawals/withdrawals-faq/list/separate-claim.tsx deleted file mode 100644 index 2144d3c94..000000000 --- a/features/withdrawals/withdrawals-faq/list/separate-claim.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; -import { LocalLink } from 'shared/components/local-link'; -import { WITHDRAWAL_CLAIM_PATH } from 'features/withdrawals/withdrawals-constants'; - -export const SeparateClaim: React.FC = () => { - return ( - -

- Yes. You can choose the requests you want to claim in the ‘Request List’ - on the Claim tab. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/turbo-mode.tsx b/features/withdrawals/withdrawals-faq/list/turbo-mode.tsx deleted file mode 100644 index 8f249f290..000000000 --- a/features/withdrawals/withdrawals-faq/list/turbo-mode.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -export const TurboMode: React.FC = () => { - return ( - -

- Turbo mode is a default mode used unless an emergency event affects the - Ethereum network. In Turbo Mode, withdrawal requests are fulfilled - quickly, using all available ETH from user deposits and rewards. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/unstake-amount-boundaries.tsx b/features/withdrawals/withdrawals-faq/list/unstake-amount-boundaries.tsx deleted file mode 100644 index 58f8050d2..000000000 --- a/features/withdrawals/withdrawals-faq/list/unstake-amount-boundaries.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -import { weiToEth } from 'utils'; -import { LOCALE } from 'config'; -import { useWithdrawals } from 'features/withdrawals/contexts/withdrawals-context'; - -const formatAmount = (value: number | undefined) => - value ? value.toLocaleString(LOCALE, { maximumFractionDigits: 18 }) : '...'; - -export const UnstakeAmountBoundaries: React.FC = () => { - const { maxAmount, minAmount } = useWithdrawals(); - const minAmountDisplay = formatAmount(Number(minAmount)); - const maxAmountDisplay = formatAmount(maxAmount && weiToEth(maxAmount)); - - return ( - -

- Request size should be at least {minAmountDisplay} wei (in stETH), and - at most {maxAmountDisplay} stETH. -

-

- If you want to withdraw more than {maxAmountDisplay} stETH, your - withdrawal request will be split into several requests, but you will - still only pay one transaction fee. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/what-are-withdrawals.tsx b/features/withdrawals/withdrawals-faq/list/what-are-withdrawals.tsx deleted file mode 100644 index db3f6d037..000000000 --- a/features/withdrawals/withdrawals-faq/list/what-are-withdrawals.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -export const WhatAreWithdrawals: React.FC = () => { - return ( - -

- Users can unstake their stETH or wstETH through withdrawals. Upon - unstaking stETH, they will receive ETH at a 1:1 ratio. When unstaking - wstETH, the unwrapping process will take place seamlessly in the - background. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/what-is-slashing.tsx b/features/withdrawals/withdrawals-faq/list/what-is-slashing.tsx deleted file mode 100644 index 6317d819c..000000000 --- a/features/withdrawals/withdrawals-faq/list/what-is-slashing.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { Accordion, Link } from '@lidofinance/lido-ui'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; - -const PENALTIES_INFO_LINK = - 'https://help.lido.fi/en/articles/5232780-what-are-staking-validator-penalties'; - -export const WhatIsSlashing: React.FC = () => { - return ( - -

- Slashing is a penalty that affects validators for intentional or - accidental misbehavior. -

-

- Mass slashing event is when slashing penalties are big enough to have - the impact on Protocol's rewards in the current frame or in the - future, esp. midterm penalties. -

-

- Slashing penalties are spread across stakers and may lower your total - reward amount. For more information, check out{' '} - - What Are Staking/Validator Penalties - - . -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/why-steth.tsx b/features/withdrawals/withdrawals-faq/list/why-steth.tsx deleted file mode 100644 index f8459fde8..000000000 --- a/features/withdrawals/withdrawals-faq/list/why-steth.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -export const WhySTETH: React.FC = () => { - return ( - -

- When you request to withdraw wstETH, it is automatically unwrapped into - stETH, which then gets transformed into ETH. The main withdrawal period - is when stETH is transformed into ETH. That's why you see the - amount pending denominated in stETH. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/withdrawaal-fee.tsx b/features/withdrawals/withdrawals-faq/list/withdrawaal-fee.tsx deleted file mode 100644 index e91b9c169..000000000 --- a/features/withdrawals/withdrawals-faq/list/withdrawaal-fee.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -export const WithdrawalFee: React.FC = () => { - return ( - -

- There’s no withdrawal fee, but as with any Ethereum interaction, there - will be a network gas fee. Lido does not collect a fee when you request - a withdrawal. -

-
- ); -}; diff --git a/features/withdrawals/withdrawals-faq/list/withdrawal-period-circumstances.tsx b/features/withdrawals/withdrawals-faq/list/withdrawal-period-circumstances.tsx deleted file mode 100644 index da5813f00..000000000 --- a/features/withdrawals/withdrawals-faq/list/withdrawal-period-circumstances.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { Accordion } from '@lidofinance/lido-ui'; - -export const WithdrawalPeriodCircumstances: React.FC = () => { - return ( - -
    -
  • The amount of stETH in the queue.
  • -
  • Perfomance of the validator poolside.
  • -
  • Exit queue on the Beacon chain.
  • -
  • Demand for staking and unstaking.
  • -
-
- ); -}; diff --git a/features/wsteth/shared/wrap-faq/list/do-i-get-my-staking-rewards.tsx b/features/wsteth/shared/wrap-faq/list/do-i-get-my-staking-rewards.tsx deleted file mode 100644 index 7d6b76f96..000000000 --- a/features/wsteth/shared/wrap-faq/list/do-i-get-my-staking-rewards.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; - -export const DoIGetMyStakingRewards: FC = () => { - return ( - -

- Yes, wrapped stETH gets staking rewards at the same rate as regular - stETH. When you keep your stETH in a wrapper you cannot see your daily - staking rewards. However, when you unwrap your wstETH your new stETH - balance will have increased relative to pre-wrapped amount to reflect - your received rewards. -

-
- ); -}; diff --git a/features/wsteth/shared/wrap-faq/list/do-i-need-to-claim-my-staking-rewards.tsx b/features/wsteth/shared/wrap-faq/list/do-i-need-to-claim-my-staking-rewards.tsx deleted file mode 100644 index 05c4c538c..000000000 --- a/features/wsteth/shared/wrap-faq/list/do-i-need-to-claim-my-staking-rewards.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; - -export const DoINeedToClaimMyStakingRewards: FC = () => { - return ( - -

No, staking rewards accrue to wstETH automatically.

-
- ); -}; diff --git a/features/wsteth/shared/wrap-faq/list/do_i_need_to_unwrap_my_wsteth.tsx b/features/wsteth/shared/wrap-faq/list/do_i_need_to_unwrap_my_wsteth.tsx deleted file mode 100644 index 97c9ce3c2..000000000 --- a/features/wsteth/shared/wrap-faq/list/do_i_need_to_unwrap_my_wsteth.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; -import { LocalLink } from 'shared/components/local-link'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; -import { trackMatomoEvent } from 'config/trackMatomoEvent'; - -export const DoINeedToUnwrapMyWsteth: FC = () => { - return ( - -

- No, you can transform your wstETH to ETH using the{' '} - - - trackMatomoEvent( - MATOMO_CLICK_EVENTS_TYPES.faqDoINeedToUnwrapMyWstethWithdrawalsTabs, - ) - } - aria-hidden="true" - > - Withdrawals Request and Claim tabs - - - . Note that, under the hood, wstETH will unwrap to stETH first, so your - request will be denominated in stETH. -

-
- ); -}; diff --git a/features/wsteth/shared/wrap-faq/list/how-can-i-get-wsteth.tsx b/features/wsteth/shared/wrap-faq/list/how-can-i-get-wsteth.tsx deleted file mode 100644 index 90dd23258..000000000 --- a/features/wsteth/shared/wrap-faq/list/how-can-i-get-wsteth.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { FC } from 'react'; -import { Accordion, Link as OuterLink } from '@lidofinance/lido-ui'; - -import { LocalLink } from 'shared/components/local-link'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; -import { trackMatomoEvent } from 'config/trackMatomoEvent'; - -export const HowCanIGetWsteth: FC = () => { - return ( - -

- You can wrap your stETH or ETH tokens using{' '} - - - trackMatomoEvent( - MATOMO_CLICK_EVENTS_TYPES.faqHowCanIGetWstethWrapLink, - ) - } - aria-hidden="true" - > - Wrap & Unwrap staking widget - - {' '} - or{' '} - - DEX Lido integrations - -

-
- ); -}; diff --git a/features/wsteth/shared/wrap-faq/list/how-can-i-use-wsteth.tsx b/features/wsteth/shared/wrap-faq/list/how-can-i-use-wsteth.tsx deleted file mode 100644 index c0b63fffd..000000000 --- a/features/wsteth/shared/wrap-faq/list/how-can-i-use-wsteth.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { FC } from 'react'; -import { Accordion, Link } from '@lidofinance/lido-ui'; -import { MATOMO_CLICK_EVENTS_TYPES } from '../../../../../config'; - -export const HowCanIUseWsteth: FC = () => { - return ( - -

- wstETH is useful across{' '} - - L2 - {' '} - and other{' '} - - DeFi protocols - - , which are based on constant balance tokens. -

-
- ); -}; diff --git a/features/wsteth/shared/wrap-faq/list/how-could-i-unwrap-wsteth-to-steth.tsx b/features/wsteth/shared/wrap-faq/list/how-could-i-unwrap-wsteth-to-steth.tsx deleted file mode 100644 index 5b8d004fe..000000000 --- a/features/wsteth/shared/wrap-faq/list/how-could-i-unwrap-wsteth-to-steth.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { FC } from 'react'; - -import { Accordion } from '@lidofinance/lido-ui'; - -import { LocalLink } from 'shared/components/local-link'; -import { MATOMO_CLICK_EVENTS_TYPES } from 'config'; -import { trackMatomoEvent } from 'config/trackMatomoEvent'; - -export const HowCouldIUnwrapWstethToSteth: FC = () => { - return ( - -

- You can unwrap your wstETH tokens using{' '} - - - trackMatomoEvent( - MATOMO_CLICK_EVENTS_TYPES.faqHowDoIUnwrapWstethUnwrapLink, - ) - } - aria-hidden="true" - > - Wrap & Unwrap staking widget - - - . -

-
- ); -}; diff --git a/features/wsteth/shared/wrap-faq/list/index.ts b/features/wsteth/shared/wrap-faq/list/index.ts deleted file mode 100644 index aaad7792b..000000000 --- a/features/wsteth/shared/wrap-faq/list/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from './what-is-wsteth'; -export * from './how-can-i-get-wsteth'; -export * from './how-can-i-use-wsteth'; -export * from './do-i-get-my-staking-rewards'; -export * from './do-i-need-to-claim-my-staking-rewards'; -export * from './how-could-i-unwrap-wsteth-to-steth'; -export * from './do_i_need_to_unwrap_my_wsteth'; diff --git a/features/wsteth/shared/wrap-faq/list/what-is-wsteth.tsx b/features/wsteth/shared/wrap-faq/list/what-is-wsteth.tsx deleted file mode 100644 index b0aef15ef..000000000 --- a/features/wsteth/shared/wrap-faq/list/what-is-wsteth.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { FC } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; - -export const WhatIsWsteth: FC = () => { - return ( - -

- wstETH (wrapped stETH) is a non-rebasing version of stETH. Unlike the - stETH balance, which updates every day and communicates your share of - rewards, the wstETH balance stays the same while the stETH balance - updates inside the wrapper daily. -

-
- ); -}; diff --git a/lib/faqList.ts b/lib/faqList.ts deleted file mode 100644 index 8dd9f16b7..000000000 --- a/lib/faqList.ts +++ /dev/null @@ -1,33 +0,0 @@ -import matter from 'gray-matter'; -import remark from 'remark'; -import html from 'remark-html'; -import externalLinks from 'remark-external-links'; - -export interface FAQItem { - id: string; - content: string; - title: string; -} - -export const getFaqList = async (list: string[]): Promise => { - return Promise.all( - list.map(async (id) => { - const fileContents = await import(`faq/${id}.md`); - const matterResult = matter(fileContents.default); - - const processedContent = await remark() - .use(externalLinks, { target: '_blank', rel: ['nofollow', 'noopener'] }) - .use(html) - .process(matterResult.content); - - const content = processedContent.toString(); - const title = String(matterResult.data.title || id); - - return { - id, - content, - title, - }; - }), - ); -}; diff --git a/shared/components/faq/faq.tsx b/shared/components/faq/faq.tsx deleted file mode 100644 index 199b512d7..000000000 --- a/shared/components/faq/faq.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import { FC, memo } from 'react'; -import { Accordion } from '@lidofinance/lido-ui'; -import styled from 'styled-components'; -import { Section } from 'shared/components'; -import { replaceAll } from 'utils/replaceAll'; -import { FAQItem } from 'lib/faqList'; - -export interface FaqProps { - faqList: FAQItem[]; - replacements?: { - [key: string]: string; - }; -} - -const FaqItem = styled.div` - p { - margin: 0 0 1.6em; - } - - p + ul, - p + ol, - ul + p, - ol + p { - margin-top: -1.6em; - } - - ul > li, - ol > li { - margin-top: 0; - margin-bottom: 0; - - & > p { - margin-top: 0; - margin-bottom: 0; - } - } - - a { - text-decoration: none; - } -`; - -export const Faq: FC = memo(({ faqList, replacements }) => { - return ( -
- {faqList.map(({ id, title, content }, index) => { - const html = replaceAll(content, replacements); - - return ( - - - - ); - })} -
- ); -}); diff --git a/shared/components/index.ts b/shared/components/index.ts index 518e48cef..b056e6016 100644 --- a/shared/components/index.ts +++ b/shared/components/index.ts @@ -1,6 +1,5 @@ export { Layout } from './layout/layout'; export { PopupWrapper } from './popup-wrapper/popup-wrapper'; -export { Faq } from './faq/faq'; export { Header } from './header/header'; export { Footer } from './footer/footer'; export { AbuseWarning } from './abuse-warning/abuse-warning'; From 5687df588a961f3f53c00bc4559a544887cc759b Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Thu, 21 Sep 2023 12:33:11 +0300 Subject: [PATCH 07/47] feat: example faq.md --- public/faq.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/public/faq.md b/public/faq.md index 9965127c0..0bf72250b 100644 --- a/public/faq.md +++ b/public/faq.md @@ -10,6 +10,7 @@ pages: utility tokens, which receive rewards linked to the related validation activities of writing data to the blockchain, while the tokens can be used in other on-chain activities. + questionId: WhatIsLido - question: How does Lido work? answer: While each network works differently, generally, the Lido protocols @@ -19,6 +20,7 @@ pages: receive staking rewards. When they unstake, they burn the stToken to initiate the network-specific withdrawal process to withdraw the balance of stake and rewards. + questionId: HowDoesLidoWork - question: Is it safe to work with Lido? answer: >- In order to work safe, Lido fits the next points: @@ -36,6 +38,7 @@ pages: Usually when staking ETH you choose only one validator. In the case of Lido you stake across many validators, minimising your staking risk. + questionId: qID - question: What are the risks of staking with Lido? answer: >- There exist a number of potential risks when staking using liquid @@ -53,6 +56,7 @@ pages: Users risk an exchange price of stTokens which is lower than inherent value due to withdrawal restrictions on Lido, making arbitrage and risk-free market-making impossible. The Lido DAO is driven to mitigate the above risks and eliminate them entirely to the extent possible. Despite this, they may still exist and, as such, it is our duty to communicate them. The Lido DAO is driven to mitigate the above risks and eliminate them entirely to the extent possible. Despite this, they may still exist. + questionId: qID - question: What is Lido staking APR for Ethereum? answer: >- Lido staking APR for Ethereum = Protocol APR * (1 - Protocol fee) @@ -65,26 +69,31 @@ pages: More about Lido staking APR for Ethereum you could find on the [Ethereum landing page](https://lido.fi/ethereum) and in our [Docs](https://docs.lido.fi/#liquid-staking). + questionId: qID - question: What fee is applied by Lido? What is this used for? answer: The protocol applies a 10% fee on staking rewards. This fee is split between node operators and the Lido DAO. That means the users receive 90% of the staking rewards returned by the networks. + questionId: qID - question: What is stETH? answer: stETH is a transferable rebasing utility token representing a share of the total ETH staked through the protocol, which consists of user deposits and staking rewards. Because stETH rebases daily, it communicates the position of the share daily. + questionId: qID - answer: You can get stETH many ways, including interacting with the smart contract directly.Yet, it is much easier to use a [Lido Ethereum staking widget](https://stake.lido.fi/) and in other [DEX Lido integrations](https://lido.fi/lido-ecosystem?tokens=stETH&categories=Get). question: How can I get stETH? + questionId: qID - answer: You can use your stETH as collateral, for lending, and [more](https://lido.fi/lido-ecosystem). question: How can I use stETH? + questionId: qID - answer: >- There are multiple coverage and insurer providers with different products for stETH: @@ -103,6 +112,7 @@ pages: Check with providers for coverage and insurer conditions. question: Where can I cover my stETH? + questionId: qID - answer: You can use our [Withdrawals Request and Claim tabs](https://stake.lido.fi/withdrawals/claim) to unstake stETH and receive ETH at a 1:1 ratio. Under normal circumstances, withdrawal @@ -111,6 +121,7 @@ pages: Lido integrations](https://lido.fi/lido-ecosystem?tokens=stETH&categories=Get). question: How can I unstake stETH? + questionId: qID - identification: wrap faq: - answer: @@ -119,16 +130,19 @@ pages: rewards, the wstETH balance stays the same while the stETH balance updates inside the wrapper daily. question: What is wstETH? + questionId: qID - answer: You can wrap your stETH or ETH tokens using [Wrap & Unwrap staking widget](https://stake.lido.fi/wrap) or [DEX Lido integrations](https://lido.fi/lido-ecosystem?tokens=wstETH&categories=Get) question: How can I get wstETH? + questionId: qID - answer: wstETH is useful across [L2](https://lido.fi/lido-ecosystem?networks=arbitrum%2Coptimism) and other [DeFi protocols](https://lido.fi/lido-ecosystem?tokens=wstETH), which are based on constant balance tokens. question: How can I use wstETH? + questionId: qID - answer: Yes, wrapped stETH gets staking rewards at the same rate as regular stETH. When you keep your stETH in a wrapper you cannot see your daily @@ -136,17 +150,21 @@ pages: balance will have increased relative to pre-wrapped amount to reflect your received rewards. question: Do I get my staking rewards if I wrap stETH to wstETH? + questionId: qID - answer: No, staking rewards accrue to wstETH automatically. question: Do I need to claim my staking rewards if I wrap stETH to wstETH? + questionId: qID - answer: You can unwrap your wstETH tokens using [Wrap & Unwrap staking widget](https://stake.lido.fi/wrap/unwrap). question: How could I unwrap wstETH back to stETH? + questionId: qID - answer: No, you can transform your wstETH to ETH using the [Withdrawals Request and Claim tabs](https://stake.lido.fi/withdrawals). Note that, under the hood, wstETH will unwrap to stETH first, so your request will be denominated in stETH. question: Do I need to unwrap my wstETH before requesting withdrawals? + questionId: qID - identification: withdrawals faq: - answer: @@ -155,6 +173,7 @@ pages: wstETH, the unwrapping process will take place seamlessly in the background. question: What are withdrawals? + questionId: qID - answer: >- The withdrawal process is simple and has two steps: @@ -163,6 +182,7 @@ pages: 2. **Claim**: Claim your ETH after the withdrawal request has been processed. question: How does the withdrawal process work? + questionId: qID - answer: Press the [Request tab](https://stake.lido.fi/withdrawals/request), choose an amount of stETH/wstETH to withdraw, then press ‘Request @@ -170,14 +190,17 @@ pages: ‘Claim’ on the [Claim tab](https://stake.lido.fi/withdrawals/claim) once it is ready. question: How do I withdraw? + questionId: qID - answer: Yes. Stakers can transform their stETH to ETH 1:1 using the [Request](https://stake.lido.fi/withdrawals/request) and [Claim](https://stake.lido.fi/withdrawals/claim) tabs. question: Can I transform my stETH to ETH? + questionId: qID - answer: Yes. You can transform your wstETH to ETH using the [Request](https://stake.lido.fi/withdrawals/request) and [Claim](https://stake.lido.fi/withdrawals/claim) tabs. Note that, under the hood, wstETH will unwrap to stETH first, so your request will be denominated in stETH. question: Can I transform my wstETH to ETH? + questionId: qID - answer: When you request to withdraw wstETH, it is automatically unwrapped into stETH, which then gets transformed into ETH. The main withdrawal @@ -186,37 +209,44 @@ pages: question: When I try to withdraw wstETH, why do I see the stETH amount in my request? + questionId: qID - answer: Under normal circumstances, the stETH/wstETH withdrawal period can take anywhere between 1-5 days. After that, you can claim your ETH using the [Claim tab](https://stake.lido.fi/withdrawals/claim). question: How long does it take to withdraw? + questionId: qID - answer: |- * The amount of stETH in the queue. * Perfomance of the validator poolside. * Exit queue on the Beacon chain. * Demand for staking and unstaking. question: What are the factors affecting the withdrawal time? + questionId: qID - answer: No. After you request a withdrawal, the stETH/wstETH submitted for unstaking will not receive staking rewards on top of your submitted balance. question: Do I still get rewards after I withdraw? + questionId: qID - answer: There’s no withdrawal fee, but as with any Ethereum interaction, there will be a network gas fee. Lido does not collect a fee when you request a withdrawal. question: Is there a fee for withdrawal? + questionId: qID - answer: The amount you can claim may differ from your initial request due to a slashing occurrence and penalties. For these reasons, the total claimable reward amount could be reduced. question: Why is the claimable amount may differ from my requested amount? + questionId: qID - answer: Turbo mode is a default mode used unless an emergency event affects the Ethereum network. In Turbo Mode, withdrawal requests are fulfilled quickly, using all available ETH from user deposits and rewards. question: What is Turbo mode? + questionId: qID - answer: >- Bunker mode is an emergency mode that activates under three worst-case conditions (when penalties are large enough to significantly impact @@ -225,6 +255,7 @@ pages: Importantly, Bunker mode allows for orderly withdrawals to be still processed, albeit more slowly, during chaotic tail-risk scenarios (e.g. mass slashings or a significant portion of validators going offline). question: What is Bunker mode? + questionId: qID - answer: >- Bunker mode is triggered under three conditions when the penalties might be big enough to have a significant impact on the protocol’s @@ -237,6 +268,7 @@ pages: 3. Lower than expected Lido validators' performance in the current period between two Oracle reports and penalties exceeding rewards at the end of it. question: What scenarios can cause Bunker mode? + questionId: qID - answer: >- Slashing is a penalty that affects validators for intentional or accidental misbehavior. @@ -247,6 +279,7 @@ pages: Slashing penalties are spread across stakers and may lower your total reward amount. For more information, check out [What Are Staking/Validator Penalties](https://help.lido.fi/en/articles/5232780-what-are-staking-validator-penalties). question: What is slashing? + questionId: qID - answer: Most often, the stETH/wstETH withdrawal period will be from 1-5 days. However, if any scenarios cause Bunker mode to happen, this could be @@ -254,6 +287,7 @@ pages: question: If Bunker mode happens when I’ve already submitted a withdrawal request, do I need to wait longer? + questionId: qID - answer: >- Request size should be at least 100 wei (in stETH), and at most 1,000 stETH. @@ -261,12 +295,14 @@ pages: If you want to withdraw more than 1,000 stETH, your withdrawal request will be split into several requests, but you will still only pay one transaction fee. question: Is there any minimum or maximum amount of stETH/wstETH I can withdraw? + questionId: qID - answer: "Each withdrawal request is represented by an NFT: the NFT is automatically minted for you when you send a request. You will need to add it to your wallet to be able to monitor the request status. When the request is ready for the claim, the NFT will change it's appearance." question: What is Lido NFT? + questionId: qID - answer: >- Different wallets have specific functionality for adding and working with NFT. Most often, you need to find the specific NFT Address and @@ -277,6 +313,7 @@ pages: If you are a MetaMask user, use [this guide](https://help.lido.fi/en/articles/7858367-how-do-i-add-the-lido-nft-to-metamask). question: How do I add the Lido NFT to my wallet? + questionId: qID - answer: Maybe your wallet doesn’t support the automatic changing of the NFT view. To renew the NFT, you can import the Address and Token ID of @@ -285,4 +322,5 @@ pages: question: What could be the reason why my NFT's view did not update even though my request was ready to be claimed? + questionId: qID --- From 8429f924bff4fe52b1e25792a167633833985499 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Thu, 21 Sep 2023 12:34:50 +0300 Subject: [PATCH 08/47] feat: use FaqAccordion from `@lidofinance/ui-faq` on withdrawals pages --- .../withdrawals/withdrawals-faq/claim-faq.tsx | 63 ++++++++------- .../withdrawals-faq/request-faq.tsx | 79 ++++++++----------- 2 files changed, 68 insertions(+), 74 deletions(-) diff --git a/features/withdrawals/withdrawals-faq/claim-faq.tsx b/features/withdrawals/withdrawals-faq/claim-faq.tsx index 80ddd6dd0..afff13d29 100644 --- a/features/withdrawals/withdrawals-faq/claim-faq.tsx +++ b/features/withdrawals/withdrawals-faq/claim-faq.tsx @@ -1,37 +1,42 @@ -import { useMatomoEventHandle } from 'shared/hooks'; - +import React, { useEffect, useState } from 'react'; +import { trackEvent } from '@lidofinance/analytics-matomo'; +import { FaqAccordion, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { dynamics } from 'config'; import { Section } from 'shared/components'; -import { WhatAreWithdrawals } from './list/what-are-withdrawals'; -import { HowDoesWithdrawalsWork } from './list/how-does-withdrawals-work'; -import { HowToWithdraw } from './list/how-to-withdraw'; -import { ConvertSTETHtoETH } from './list/convert-steth-to-eth'; -import { ConvertWSTETHtoETH } from './list/convert-wsteth-to-eth'; -import { WhySTETH } from './list/why-steth'; -import { SeparateClaim } from './list/separate-claim'; -import { ClaimableAmountDifference } from './list/claimable-amount-difference'; -import { WhatIsSlashing } from './list/what-is-slashing'; -import { LidoNFT } from './list/lido-nft'; -import { HowToAddNFT } from './list/add-nft'; -import { NFTNotChange } from './list/nft-not-change'; - export const ClaimFaq: React.FC = () => { - const onClickHandler = useMatomoEventHandle(); + const [foundPage, setFoundPage] = useState(undefined); + + useEffect(() => { + void (async () => { + try { + const pageIdentification = 'withdrawals-claim'; + const pages = await getFAQ(dynamics.faqContentUrl); + + setFoundPage( + pages.find( + (page: PageFAQ) => page['identification'] === pageIdentification, + ), + ); + + return () => {}; + } catch { + // noop + } + })(); + }, []); return ( -
- - - - - - - - - - - - +
+ { + const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; + // Make event like `_faq___` + const nameEvent = `eth_widget_faq_withdrawalsClaim_${questionId}_${linkContent}`; + trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + }} + />
); }; diff --git a/features/withdrawals/withdrawals-faq/request-faq.tsx b/features/withdrawals/withdrawals-faq/request-faq.tsx index c82659bc1..9dd6c50c0 100644 --- a/features/withdrawals/withdrawals-faq/request-faq.tsx +++ b/features/withdrawals/withdrawals-faq/request-faq.tsx @@ -1,59 +1,48 @@ -import { useMatomoEventHandle } from 'shared/hooks'; - // import { Button } from '@lidofinance/lido-ui'; +import React, { useEffect, useState } from 'react'; +import { FaqAccordion, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { trackEvent } from '@lidofinance/analytics-matomo'; +import { dynamics } from 'config'; import { Section } from 'shared/components'; // import { ButtonLinkWrap } from './styles'; -import { WhatAreWithdrawals } from './list/what-are-withdrawals'; -import { HowDoesWithdrawalsWork } from './list/how-does-withdrawals-work'; -import { HowToWithdraw } from './list/how-to-withdraw'; -import { ConvertSTETHtoETH } from './list/convert-steth-to-eth'; -import { ConvertWSTETHtoETH } from './list/convert-wsteth-to-eth'; -import { WhySTETH } from './list/why-steth'; -import { HowLongToWithdraw } from './list/how-long-to-withdraw'; -import { WithdrawalPeriodCircumstances } from './list/withdrawal-period-circumstances'; -import { WithdrawalFee } from './list/withdrawaal-fee'; -import { ClaimableAmountDifference } from './list/claimable-amount-difference'; -import { TurboMode } from './list/turbo-mode'; -import { BunkerMode } from './list/bunker-mode'; -import { BunkerModeReasons } from './list/bunker-mode-reasons'; -import { WhatIsSlashing } from './list/what-is-slashing'; -import { RewardsAfterWithdraw } from './list/rewards-after-withdraw'; -import { BunkerWhileRequestOngoing } from './list/bunker-while-request-ongoing'; -import { UnstakeAmountBoundaries } from './list/unstake-amount-boundaries'; -import { LidoNFT } from './list/lido-nft'; -import { HowToAddNFT } from './list/add-nft'; -import { NFTNotChange } from './list/nft-not-change'; - // TODO: Replace this link when it will be finalized // const LEARN_MORE_LINK = // 'https://hackmd.io/@lido/SyaJQsZoj#Lido-on-Ethereum-Withdrawals-Landscape'; export const RequestFaq: React.FC = () => { - const onClickHandler = useMatomoEventHandle(); + const [foundPage, setFoundPage] = useState(undefined); + + useEffect(() => { + void (async () => { + try { + const pageIdentification = 'withdrawals-request'; + const pages = await getFAQ(dynamics.faqContentUrl); + + setFoundPage( + pages.find( + (page: PageFAQ) => page['identification'] === pageIdentification, + ), + ); + + return () => {}; + } catch { + // noop + } + })(); + }, []); return ( -
- - - - - - - - - - - - - - - - - - - - +
+ { + const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; + // Make event like `_faq___` + const nameEvent = `eth_widget_faq_withdrawalsRequest_${questionId}_${linkContent}`; + trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + }} + /> {/* Date: Thu, 21 Sep 2023 12:35:10 +0300 Subject: [PATCH 09/47] feat: use FaqAccordion from `@lidofinance/ui-faq` on wrap and unwrap pages --- features/wsteth/shared/wrap-faq/wrap-faq.tsx | 54 ++++++++++++-------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index e213dadbe..195afb141 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -1,28 +1,42 @@ +import React, { useEffect, useState } from 'react'; +import { trackEvent } from '@lidofinance/analytics-matomo'; +import { FaqAccordion, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { dynamics } from 'config'; import { Section } from 'shared/components'; -import { useMatomoEventHandle } from 'shared/hooks'; - -import { - WhatIsWsteth, - HowCanIGetWsteth, - HowCanIUseWsteth, - DoIGetMyStakingRewards, - DoINeedToClaimMyStakingRewards, - HowCouldIUnwrapWstethToSteth, - DoINeedToUnwrapMyWsteth, -} from './list'; export const WrapFaq = () => { - const onClickHandler = useMatomoEventHandle(); + const [foundPage, setFoundPage] = useState(undefined); + + useEffect(() => { + void (async () => { + try { + const pageIdentification = 'wrapOrUnwrap'; + const pages = await getFAQ(dynamics.faqContentUrl); + + setFoundPage( + pages.find( + (page: PageFAQ) => page['identification'] === pageIdentification, + ), + ); + + return () => {}; + } catch { + // noop + } + })(); + }, []); return ( -
- - - - - - - +
+ { + const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; + // Make event like `_faq___` + const nameEvent = `eth_widget_faq_wrapOrUnwrap_${questionId}_${linkContent}`; + trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + }} + />
); }; From 8e9d1d66b8f28bf5cd9bfb3caf7343513a26dffa Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Thu, 21 Sep 2023 12:35:38 +0300 Subject: [PATCH 10/47] docs: change comment --- features/home/stake-faq/stake-faq.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index 1d8216aa5..343582869 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -32,7 +32,7 @@ export const StakeFaq: FC = () => { faqList={foundPage?.faq} onLinkClick={({ questionId, question, linkContent }) => { const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; - // _faq___ + // Make event like `_faq___` const nameEvent = `eth_widget_faq_stake_${questionId}_${linkContent}`; trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); }} From d6daa8525196432e473ee6a3e3c8097168be5d0d Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Thu, 21 Sep 2023 13:46:49 +0300 Subject: [PATCH 11/47] refactor: pageIdentification in wrap-faq --- features/wsteth/shared/wrap-faq/wrap-faq.tsx | 2 +- public/faq.md | 63 +++++++++++--------- 2 files changed, 37 insertions(+), 28 deletions(-) diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index 195afb141..36f95fc4f 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -10,7 +10,7 @@ export const WrapFaq = () => { useEffect(() => { void (async () => { try { - const pageIdentification = 'wrapOrUnwrap'; + const pageIdentification = 'wrap-and-unwrap'; const pages = await getFAQ(dynamics.faqContentUrl); setFoundPage( diff --git a/public/faq.md b/public/faq.md index 0bf72250b..46724a3ef 100644 --- a/public/faq.md +++ b/public/faq.md @@ -38,7 +38,7 @@ pages: Usually when staking ETH you choose only one validator. In the case of Lido you stake across many validators, minimising your staking risk. - questionId: qID + questionId: IsItSafeToWorkWithLido - question: What are the risks of staking with Lido? answer: >- There exist a number of potential risks when staking using liquid @@ -56,7 +56,7 @@ pages: Users risk an exchange price of stTokens which is lower than inherent value due to withdrawal restrictions on Lido, making arbitrage and risk-free market-making impossible. The Lido DAO is driven to mitigate the above risks and eliminate them entirely to the extent possible. Despite this, they may still exist and, as such, it is our duty to communicate them. The Lido DAO is driven to mitigate the above risks and eliminate them entirely to the extent possible. Despite this, they may still exist. - questionId: qID + questionId: whatAreTheRisksOfStakingWithLido - question: What is Lido staking APR for Ethereum? answer: >- Lido staking APR for Ethereum = Protocol APR * (1 - Protocol fee) @@ -69,31 +69,31 @@ pages: More about Lido staking APR for Ethereum you could find on the [Ethereum landing page](https://lido.fi/ethereum) and in our [Docs](https://docs.lido.fi/#liquid-staking). - questionId: qID + questionId: whatIsLidoStakingAPRForEthereum - question: What fee is applied by Lido? What is this used for? answer: The protocol applies a 10% fee on staking rewards. This fee is split between node operators and the Lido DAO. That means the users receive 90% of the staking rewards returned by the networks. - questionId: qID + questionId: whatFeeIsAppliedByLidoWhatIsThisUsedFor - question: What is stETH? answer: stETH is a transferable rebasing utility token representing a share of the total ETH staked through the protocol, which consists of user deposits and staking rewards. Because stETH rebases daily, it communicates the position of the share daily. - questionId: qID + questionId: whatIsStETH - answer: You can get stETH many ways, including interacting with the smart contract directly.Yet, it is much easier to use a [Lido Ethereum staking widget](https://stake.lido.fi/) and in other [DEX Lido integrations](https://lido.fi/lido-ecosystem?tokens=stETH&categories=Get). question: How can I get stETH? - questionId: qID + questionId: howCanIGetStETH - answer: You can use your stETH as collateral, for lending, and [more](https://lido.fi/lido-ecosystem). question: How can I use stETH? - questionId: qID + questionId: howCanIUseStETH? - answer: >- There are multiple coverage and insurer providers with different products for stETH: @@ -112,7 +112,7 @@ pages: Check with providers for coverage and insurer conditions. question: Where can I cover my stETH? - questionId: qID + questionId: whereCanICoverMyStETH - answer: You can use our [Withdrawals Request and Claim tabs](https://stake.lido.fi/withdrawals/claim) to unstake stETH and receive ETH at a 1:1 ratio. Under normal circumstances, withdrawal @@ -121,8 +121,8 @@ pages: Lido integrations](https://lido.fi/lido-ecosystem?tokens=stETH&categories=Get). question: How can I unstake stETH? - questionId: qID - - identification: wrap + questionId: howCanIUnstakeStETH + - identification: wrap-and-unwrap faq: - answer: wstETH (wrapped stETH) is a non-rebasing version of stETH. Unlike the @@ -130,19 +130,19 @@ pages: rewards, the wstETH balance stays the same while the stETH balance updates inside the wrapper daily. question: What is wstETH? - questionId: qID + questionId: WhatIsWstETH - answer: You can wrap your stETH or ETH tokens using [Wrap & Unwrap staking widget](https://stake.lido.fi/wrap) or [DEX Lido integrations](https://lido.fi/lido-ecosystem?tokens=wstETH&categories=Get) question: How can I get wstETH? - questionId: qID + questionId: howCanIGetWstETH - answer: wstETH is useful across [L2](https://lido.fi/lido-ecosystem?networks=arbitrum%2Coptimism) and other [DeFi protocols](https://lido.fi/lido-ecosystem?tokens=wstETH), which are based on constant balance tokens. question: How can I use wstETH? - questionId: qID + questionId: howCanIUseWstETH - answer: Yes, wrapped stETH gets staking rewards at the same rate as regular stETH. When you keep your stETH in a wrapper you cannot see your daily @@ -150,22 +150,22 @@ pages: balance will have increased relative to pre-wrapped amount to reflect your received rewards. question: Do I get my staking rewards if I wrap stETH to wstETH? - questionId: qID + questionId: doIGetMyStakingRewardsIfIWrapStETHToWstETH - answer: No, staking rewards accrue to wstETH automatically. question: Do I need to claim my staking rewards if I wrap stETH to wstETH? - questionId: qID + questionId: doINeedToClaimMyStakingRewardsIfIWrapStETHToWstETH - answer: You can unwrap your wstETH tokens using [Wrap & Unwrap staking widget](https://stake.lido.fi/wrap/unwrap). question: How could I unwrap wstETH back to stETH? - questionId: qID + questionId: howCouldIUnwrapWstETHBackToStETH? - answer: No, you can transform your wstETH to ETH using the [Withdrawals Request and Claim tabs](https://stake.lido.fi/withdrawals). Note that, under the hood, wstETH will unwrap to stETH first, so your request will be denominated in stETH. question: Do I need to unwrap my wstETH before requesting withdrawals? - questionId: qID - - identification: withdrawals + questionId: doINeedToUnwrapMyWstETHBeforeRequestingWithdrawals + - identification: withdrawals-claim faq: - answer: Users can unstake their stETH or wstETH through withdrawals. Upon @@ -173,7 +173,7 @@ pages: wstETH, the unwrapping process will take place seamlessly in the background. question: What are withdrawals? - questionId: qID + questionId: whatAreWithdrawals - answer: >- The withdrawal process is simple and has two steps: @@ -182,7 +182,7 @@ pages: 2. **Claim**: Claim your ETH after the withdrawal request has been processed. question: How does the withdrawal process work? - questionId: qID + questionId: howDoesTheWithdrawalProcessWork - answer: Press the [Request tab](https://stake.lido.fi/withdrawals/request), choose an amount of stETH/wstETH to withdraw, then press ‘Request @@ -190,17 +190,17 @@ pages: ‘Claim’ on the [Claim tab](https://stake.lido.fi/withdrawals/claim) once it is ready. question: How do I withdraw? - questionId: qID + questionId: howDoIWithdraw - answer: Yes. Stakers can transform their stETH to ETH 1:1 using the [Request](https://stake.lido.fi/withdrawals/request) and [Claim](https://stake.lido.fi/withdrawals/claim) tabs. question: Can I transform my stETH to ETH? - questionId: qID + questionId: canITransformMyStETHToETH - answer: Yes. You can transform your wstETH to ETH using the [Request](https://stake.lido.fi/withdrawals/request) and [Claim](https://stake.lido.fi/withdrawals/claim) tabs. Note that, under the hood, wstETH will unwrap to stETH first, so your request will be denominated in stETH. question: Can I transform my wstETH to ETH? - questionId: qID + questionId: canITransformMyWstETHToETH - answer: When you request to withdraw wstETH, it is automatically unwrapped into stETH, which then gets transformed into ETH. The main withdrawal @@ -209,26 +209,26 @@ pages: question: When I try to withdraw wstETH, why do I see the stETH amount in my request? - questionId: qID + questionId: whenITryToWithdrawWstETHWhyDoISeeTheStETHAmountInMyRequest - answer: Under normal circumstances, the stETH/wstETH withdrawal period can take anywhere between 1-5 days. After that, you can claim your ETH using the [Claim tab](https://stake.lido.fi/withdrawals/claim). question: How long does it take to withdraw? - questionId: qID + questionId: howLongDoesItTakeToWithdraw - answer: |- * The amount of stETH in the queue. * Perfomance of the validator poolside. * Exit queue on the Beacon chain. * Demand for staking and unstaking. question: What are the factors affecting the withdrawal time? - questionId: qID + questionId: whatAreTheFactorsAffectingTheWithdrawalTime - answer: No. After you request a withdrawal, the stETH/wstETH submitted for unstaking will not receive staking rewards on top of your submitted balance. question: Do I still get rewards after I withdraw? - questionId: qID + questionId: doIStillGetRewardsAfterIWithdraw? - answer: There’s no withdrawal fee, but as with any Ethereum interaction, there will be a network gas fee. Lido does not collect a fee when you @@ -323,4 +323,13 @@ pages: What could be the reason why my NFT's view did not update even though my request was ready to be claimed? questionId: qID + - identification: withdrawals-request + faq: + - question: What are withdrawals? + questionId: whatAreWithdrawals + answer: + Users can unstake their stETH or wstETH through withdrawals. Upon + unstaking stETH, they will receive ETH at a 1:1 ratio. When unstaking + wstETH, the unwrapping process will take place seamlessly in the + background. --- From 39258af03b81e6d780b0198ba221667c35ac1310 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 10 Oct 2023 13:37:42 +0300 Subject: [PATCH 12/47] chore: add @lidofinance/ui-faq and @lidofinance/next-ui-primitives --- package.json | 4 ++-- yarn.lock | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index b7beef0e9..2e9b95ae8 100644 --- a/package.json +++ b/package.json @@ -40,10 +40,10 @@ "@lidofinance/next-api-wrapper": "^0.28.0", "@lidofinance/next-ip-rate-limit": "^0.28.0", "@lidofinance/next-pages": "^0.28.0", - "@lidofinance/next-ui-primitives": "file:.yalc/@lidofinance/next-ui-primitives", + "@lidofinance/next-ui-primitives": "^0.39.0", "@lidofinance/rpc": "^0.28.0", "@lidofinance/satanizer": "^0.32.0", - "@lidofinance/ui-faq": "file:.yalc/@lidofinance/ui-faq", + "@lidofinance/ui-faq": "^0.39.0", "axios": "^1.5.0", "bignumber.js": "9.1.0", "cache-manager": "^5.2.3", diff --git a/yarn.lock b/yarn.lock index 3059b1f4c..dc73dabb0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2702,8 +2702,10 @@ resolved "https://registry.yarnpkg.com/@lidofinance/next-pages/-/next-pages-0.28.0.tgz#87bfd8a4eefe9d446dfa5b8d9909ecc5e1fc7a34" integrity sha512-rtiRpEbzHlCGqnad3uXOGVdu6zq7pFlgoyWY/SCOvimzJdAYfNWEQs4rOP8quiOqMQxCqUAbpmoz2/WKkibLQA== -"@lidofinance/next-ui-primitives@file:.yalc/@lidofinance/next-ui-primitives": - version "0.0.0" +"@lidofinance/next-ui-primitives@^0.39.0": + version "0.39.0" + resolved "https://registry.yarnpkg.com/@lidofinance/next-ui-primitives/-/next-ui-primitives-0.39.0.tgz#56844b2fab36fb5aadf21c43fe99aa48f1c1d4b9" + integrity sha512-4oXrWBxnti5hCc8UYdRO8sUE7ME1ciE00dGtkSIM3CdwT0c1VLktLHQZa9L1POJBK2OggJWVGg19tJwF4D+yPQ== "@lidofinance/rpc@^0.28.0": version "0.28.0" @@ -2717,8 +2719,10 @@ resolved "https://registry.yarnpkg.com/@lidofinance/satanizer/-/satanizer-0.32.0.tgz#3ea01a94b7b5c58751a9e3030f6134c83cecefaf" integrity sha512-gHoZM8l/AWWT1YyZf+4/IViAxGuALZNo29b4bWvmEGJw/Xv0ChRPP2/xLEugdk03T16r8vxww3j/tAYTTzGzQw== -"@lidofinance/ui-faq@file:.yalc/@lidofinance/ui-faq": - version "0.0.0" +"@lidofinance/ui-faq@^0.39.0": + version "0.39.0" + resolved "https://registry.yarnpkg.com/@lidofinance/ui-faq/-/ui-faq-0.39.0.tgz#6bc082b74a2c1e8f36ed0e3f17af289730b995b0" + integrity sha512-jjF4a3sUxEEJQVnRkgMh7i5+fYhBhceAokhOrY2xBz9RbcHbnkBCCSwcf6/kd9mEijnLFKzSLxaF+DHEEkUGyA== dependencies: js-yaml "^4.1.0" mdast "^3.0.0" From 03c5141e9eaf78f5dd690ee1867a42606db1d090 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 10 Oct 2023 18:46:41 +0300 Subject: [PATCH 13/47] feat(index page): fetch a faq on ssr --- features/home/stake-faq/stake-faq.tsx | 57 +++++++++++---------------- next.config.mjs | 3 ++ pages/index.tsx | 39 ++++++++++++++++-- 3 files changed, 61 insertions(+), 38 deletions(-) diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index 343582869..e538580a1 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -1,42 +1,29 @@ -import React, { FC, useEffect, useState } from 'react'; -import { trackEvent } from '@lidofinance/analytics-matomo'; -import { FaqAccordion, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; -import { dynamics } from 'config'; -import { Section } from 'shared/components'; - -export const StakeFaq: FC = () => { - const [foundPage, setFoundPage] = useState(undefined); +import React, { FC } from 'react'; - useEffect(() => { - void (async () => { - try { - const pageIdentification = 'stake'; - const pages = await getFAQ(dynamics.faqContentUrl); +import { trackEvent } from '@lidofinance/analytics-matomo'; +import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; - setFoundPage( - pages.find( - (page: PageFAQ) => page['identification'] === pageIdentification, - ), - ); +import { Section } from 'shared/components'; +import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; - return () => {}; - } catch { - // noop - } - })(); - }, []); +interface StakeFaqProps { + faqList?: FAQItem[]; +} +export const StakeFaq: FC = ({ faqList }) => { return ( -
- { - const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; - // Make event like `_faq___` - const nameEvent = `eth_widget_faq_stake_${questionId}_${linkContent}`; - trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); - }} - /> -
+ +
+ { + const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; + // Make event like `_faq___` + const nameEvent = `eth_widget_faq_stake_${questionId}_${linkContent}`; + trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + }} + /> +
+
); }; diff --git a/next.config.mjs b/next.config.mjs index bbd8322ec..10d78e418 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -64,6 +64,8 @@ export const CACHE_CONTROL_PAGES = [ export const CACHE_CONTROL_VALUE = 'public, max-age=15, s-max-age=30, stale-if-error=604800, stale-while-revalidate=172800'; +export const faqContentUrl = process.env.FAQ_CONTENT_URL; + const withBundleAnalyzer = NextBundleAnalyzer({ enabled: analyzeBundle, }); @@ -171,5 +173,6 @@ export default withBundleAnalyzer({ ethAPIBasePath, rewardsBackendAPI, defaultChain, + faqContentUrl, }, }); diff --git a/pages/index.tsx b/pages/index.tsx index fcd4a7c0f..ab79a858a 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,10 +1,19 @@ import { FC } from 'react'; +import { GetStaticProps } from 'next'; import Head from 'next/head'; + +import { getFAQ, FAQItem, PageFAQ } from '@lidofinance/ui-faq'; + +import { serverRuntimeConfig } from 'config'; import { Wallet, StakeForm, LidoStats, StakeFaq } from 'features/home'; import { Layout } from 'shared/components'; -import NoSSRWrapper from '../shared/components/no-ssr-wrapper'; +import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; -const Home: FC = () => ( +interface HomeProps { + faqList?: FAQItem[]; +} + +const Home: FC = ({ faqList }) => ( <> ( - + ); export default Home; + +export const getStaticProps: GetStaticProps = async () => { + const pageIdentification = 'stake'; + let foundPage: PageFAQ | undefined = undefined; + + try { + const pages = await getFAQ(serverRuntimeConfig.faqContentUrl); + + foundPage = pages.find( + (page: PageFAQ) => page['identification'] === pageIdentification, + ); + } catch { + // noop + } + + return { + props: { + faqList: foundPage?.faq, + }, + // 15 minutes + // TODO: config + revalidate: 900, + }; +}; From 2fe166f8be36b54a40c52e9d0aa03c996f68e3f4 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 10 Oct 2023 18:47:19 +0300 Subject: [PATCH 14/47] feat(wrap/unwrap page): fetch a faq on ssr --- features/wsteth/shared/wrap-faq/wrap-faq.tsx | 57 ++++++++------------ features/wsteth/wrap-unwrap-tabs.tsx | 12 +++-- pages/wrap/[[...mode]].tsx | 28 ++++++++-- 3 files changed, 54 insertions(+), 43 deletions(-) diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index 36f95fc4f..66ff117cd 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -1,42 +1,29 @@ -import React, { useEffect, useState } from 'react'; -import { trackEvent } from '@lidofinance/analytics-matomo'; -import { FaqAccordion, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; -import { dynamics } from 'config'; -import { Section } from 'shared/components'; - -export const WrapFaq = () => { - const [foundPage, setFoundPage] = useState(undefined); +import React, { FC } from 'react'; - useEffect(() => { - void (async () => { - try { - const pageIdentification = 'wrap-and-unwrap'; - const pages = await getFAQ(dynamics.faqContentUrl); +import { trackEvent } from '@lidofinance/analytics-matomo'; +import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; - setFoundPage( - pages.find( - (page: PageFAQ) => page['identification'] === pageIdentification, - ), - ); +import { Section } from 'shared/components'; +import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; - return () => {}; - } catch { - // noop - } - })(); - }, []); +interface WrapFaqProps { + faqList?: FAQItem[]; +} +export const WrapFaq: FC = ({ faqList }) => { return ( -
- { - const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; - // Make event like `_faq___` - const nameEvent = `eth_widget_faq_wrapOrUnwrap_${questionId}_${linkContent}`; - trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); - }} - /> -
+ +
+ { + const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; + // Make event like `_faq___` + const nameEvent = `eth_widget_faq_wrapOrUnwrap_${questionId}_${linkContent}`; + trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + }} + /> +
+
); }; diff --git a/features/wsteth/wrap-unwrap-tabs.tsx b/features/wsteth/wrap-unwrap-tabs.tsx index 807cd3cfb..82fb65a5b 100644 --- a/features/wsteth/wrap-unwrap-tabs.tsx +++ b/features/wsteth/wrap-unwrap-tabs.tsx @@ -1,9 +1,12 @@ -import { Switch } from 'shared/components/switch'; +import { FAQItem } from '@lidofinance/ui-faq'; + import { Wallet } from 'features/wsteth/shared/wallet'; import { WrapForm } from 'features/wsteth/wrap/wrap-form/wrap-form'; +import { Switch } from 'shared/components/switch'; +import NoSsrWrapper from 'shared/components/no-ssr-wrapper'; + import { UnwrapForm } from './unwrap/unwrap-form'; import { WrapFaq } from './shared/wrap-faq/wrap-faq'; -import NoSsrWrapper from 'shared/components/no-ssr-wrapper'; const NAV_ROUTES = [ { name: 'Wrap', path: '/wrap' }, @@ -12,9 +15,10 @@ const NAV_ROUTES = [ type WrapUnwrapLayoutProps = { mode: 'wrap' | 'unwrap'; + faqList?: FAQItem[]; }; -export const WrapUnwrapTabs = ({ mode }: WrapUnwrapLayoutProps) => { +export const WrapUnwrapTabs = ({ mode, faqList }: WrapUnwrapLayoutProps) => { const isUnwrapMode = mode === 'unwrap'; return ( <> @@ -23,7 +27,7 @@ export const WrapUnwrapTabs = ({ mode }: WrapUnwrapLayoutProps) => { {isUnwrapMode ? : } - + ); }; diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index 696a4c044..62cad5751 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -1,10 +1,13 @@ import { FC } from 'react'; import { GetStaticPaths, GetStaticProps } from 'next'; import Head from 'next/head'; +import { FAQItem, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; + +import { serverRuntimeConfig } from 'config'; import { Layout } from 'shared/components'; import { WrapUnwrapTabs } from 'features/wsteth/wrap-unwrap-tabs'; -const WrapPage: FC = ({ mode }) => { +const WrapPage: FC = ({ mode, faqList }) => { return ( = ({ mode }) => { Wrap | Lido - + ); }; @@ -23,6 +26,7 @@ export default WrapPage; type WrapModePageProps = { mode: 'wrap' | 'unwrap'; + faqList?: FAQItem[]; }; type WrapModePageParams = { @@ -41,9 +45,25 @@ export const getStaticProps: GetStaticProps< WrapModePageProps, WrapModePageParams > = async ({ params }) => { + // FAQ + const pageIdentification = 'wrap-and-unwrap'; + let foundPage: PageFAQ | undefined = undefined; + + try { + const pages = await getFAQ(serverRuntimeConfig.faqContentUrl); + + foundPage = pages.find( + (page: PageFAQ) => page['identification'] === pageIdentification, + ); + } catch { + // noop + } + const faqProps = { faqList: foundPage?.faq, revalidate: 900 }; // TODO: config + + // Mode const mode = params?.mode; - if (!mode) return { props: { mode: 'wrap' } }; - if (mode[0] === 'unwrap') return { props: { mode: 'unwrap' } }; + if (!mode) return { props: { mode: 'wrap', ...faqProps } }; + if (mode[0] === 'unwrap') return { props: { mode: 'unwrap', ...faqProps } }; return { notFound: true }; }; From 712831bcbc5bec57ca1ec4731bdabab233d1638e Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 10 Oct 2023 22:46:21 +0300 Subject: [PATCH 15/47] feat(withdrawals page): fetch a faq on ssr --- env-dynamics.mjs | 2 - features/withdrawals/claim/claim.tsx | 10 ++- features/withdrawals/request/request.tsx | 18 +++-- .../withdrawals/withdrawals-faq/claim-faq.tsx | 57 ++++++--------- .../withdrawals-faq/request-faq.tsx | 71 ++++++++----------- features/withdrawals/withdrawals-tabs.tsx | 20 ++++-- pages/withdrawals/[mode].tsx | 50 +++++++++++-- 7 files changed, 133 insertions(+), 95 deletions(-) diff --git a/env-dynamics.mjs b/env-dynamics.mjs index 6e84746bf..4ef13480d 100644 --- a/env-dynamics.mjs +++ b/env-dynamics.mjs @@ -32,5 +32,3 @@ export const ethAPIBasePath = process.env.ETH_API_BASE_PATH; export const wqAPIBasePath = process.env.WQ_API_BASE_PATH; /** @type string */ export const walletconnectProjectId = process.env.WALLETCONNECT_PROJECT_ID; -/** @type string */ -export const faqContentUrl = process.env.FAQ_CONTENT_URL; diff --git a/features/withdrawals/claim/claim.tsx b/features/withdrawals/claim/claim.tsx index 4590c584c..60ac7a8f2 100644 --- a/features/withdrawals/claim/claim.tsx +++ b/features/withdrawals/claim/claim.tsx @@ -1,3 +1,5 @@ +import { FAQItem } from '@lidofinance/ui-faq'; + import { TransactionModalProvider } from 'shared/transaction-modal/transaction-modal-context'; import { ClaimFaq } from 'features/withdrawals/withdrawals-faq/claim-faq'; @@ -6,13 +8,17 @@ import { TxClaimModal } from './tx-modal'; import { ClaimWallet } from './wallet'; import { ClaimFormProvider } from './claim-form-context'; -export const Claim = () => { +type ClaimProps = { + faqList?: FAQItem[]; +}; + +export const Claim = ({ faqList }: ClaimProps) => { return ( - + diff --git a/features/withdrawals/request/request.tsx b/features/withdrawals/request/request.tsx index c6458178b..f5858f39a 100644 --- a/features/withdrawals/request/request.tsx +++ b/features/withdrawals/request/request.tsx @@ -1,17 +1,25 @@ -import { RequestFormProvider } from './request-form-context'; -import { RequestFaq } from '../withdrawals-faq/request-faq'; +import { FAQItem } from '@lidofinance/ui-faq'; + +import { TransactionModalProvider } from 'shared/transaction-modal'; + import { RequestForm } from './form'; +import { RequestFormProvider } from './request-form-context'; import { TxRequestModal } from './tx-modal'; import { RequestWallet } from './wallet'; -import { TransactionModalProvider } from 'shared/transaction-modal'; -export const Request = () => { +import { RequestFaq } from '../withdrawals-faq/request-faq'; + +type RequestProps = { + faqList?: FAQItem[]; +}; + +export const Request = ({ faqList }: RequestProps) => { return ( - + diff --git a/features/withdrawals/withdrawals-faq/claim-faq.tsx b/features/withdrawals/withdrawals-faq/claim-faq.tsx index afff13d29..0727aba84 100644 --- a/features/withdrawals/withdrawals-faq/claim-faq.tsx +++ b/features/withdrawals/withdrawals-faq/claim-faq.tsx @@ -1,42 +1,29 @@ -import React, { useEffect, useState } from 'react'; -import { trackEvent } from '@lidofinance/analytics-matomo'; -import { FaqAccordion, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; -import { dynamics } from 'config'; -import { Section } from 'shared/components'; - -export const ClaimFaq: React.FC = () => { - const [foundPage, setFoundPage] = useState(undefined); +import React, { FC } from 'react'; - useEffect(() => { - void (async () => { - try { - const pageIdentification = 'withdrawals-claim'; - const pages = await getFAQ(dynamics.faqContentUrl); +import { trackEvent } from '@lidofinance/analytics-matomo'; +import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; - setFoundPage( - pages.find( - (page: PageFAQ) => page['identification'] === pageIdentification, - ), - ); +import { Section } from 'shared/components'; +import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; - return () => {}; - } catch { - // noop - } - })(); - }, []); +type ClaimFaqProps = { + faqList?: FAQItem[]; +}; +export const ClaimFaq: FC = ({ faqList }) => { return ( -
- { - const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; - // Make event like `_faq___` - const nameEvent = `eth_widget_faq_withdrawalsClaim_${questionId}_${linkContent}`; - trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); - }} - /> -
+ +
+ { + const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; + // Make event like `_faq___` + const nameEvent = `eth_widget_faq_withdrawalsClaim_${questionId}_${linkContent}`; + trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + }} + /> +
+
); }; diff --git a/features/withdrawals/withdrawals-faq/request-faq.tsx b/features/withdrawals/withdrawals-faq/request-faq.tsx index 9dd6c50c0..3997d55e1 100644 --- a/features/withdrawals/withdrawals-faq/request-faq.tsx +++ b/features/withdrawals/withdrawals-faq/request-faq.tsx @@ -1,56 +1,43 @@ +import React, { FC } from 'react'; + // import { Button } from '@lidofinance/lido-ui'; -import React, { useEffect, useState } from 'react'; -import { FaqAccordion, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; import { trackEvent } from '@lidofinance/analytics-matomo'; -import { dynamics } from 'config'; + import { Section } from 'shared/components'; +import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; // import { ButtonLinkWrap } from './styles'; // TODO: Replace this link when it will be finalized // const LEARN_MORE_LINK = // 'https://hackmd.io/@lido/SyaJQsZoj#Lido-on-Ethereum-Withdrawals-Landscape'; -export const RequestFaq: React.FC = () => { - const [foundPage, setFoundPage] = useState(undefined); - - useEffect(() => { - void (async () => { - try { - const pageIdentification = 'withdrawals-request'; - const pages = await getFAQ(dynamics.faqContentUrl); - - setFoundPage( - pages.find( - (page: PageFAQ) => page['identification'] === pageIdentification, - ), - ); - - return () => {}; - } catch { - // noop - } - })(); - }, []); +type RequestFaqProps = { + faqList?: FAQItem[]; +}; +export const RequestFaq: FC = ({ faqList }) => { return ( -
- { - const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; - // Make event like `_faq___` - const nameEvent = `eth_widget_faq_withdrawalsRequest_${questionId}_${linkContent}`; - trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); - }} - /> + +
+ { + const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; + // Make event like `_faq___` + const nameEvent = `eth_widget_faq_withdrawalsRequest_${questionId}_${linkContent}`; + trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + }} + /> - {/* - - */} -
+ {/* + + */} +
+ ); }; diff --git a/features/withdrawals/withdrawals-tabs.tsx b/features/withdrawals/withdrawals-tabs.tsx index b2ed25cbe..bb153c9fe 100644 --- a/features/withdrawals/withdrawals-tabs.tsx +++ b/features/withdrawals/withdrawals-tabs.tsx @@ -1,10 +1,10 @@ +import { FAQItem } from '@lidofinance/ui-faq'; + import { Switch } from 'shared/components'; import { ClaimDataProvider } from './contexts/claim-data-context'; import { useWithdrawals } from './contexts/withdrawals-context'; - import { Claim } from './claim'; - import { Request } from './request'; import { @@ -23,12 +23,24 @@ const withdrawalRoutes = [ }, ]; -export const WithdrawalsTabs = () => { +type WithdrawalsTabsProps = { + faqListRequest?: FAQItem[]; + faqListClaim?: FAQItem[]; +}; + +export const WithdrawalsTabs = ({ + faqListRequest, + faqListClaim, +}: WithdrawalsTabsProps) => { const { isClaimTab } = useWithdrawals(); return ( - {isClaimTab ? : } + {isClaimTab ? ( + + ) : ( + + )} ); }; diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index 781c9607a..ebf21d519 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -3,13 +3,19 @@ import { GetStaticPaths, GetStaticProps } from 'next'; import Head from 'next/head'; import { useWeb3 } from 'reef-knot/web3-react'; -import { Layout } from 'shared/components'; -import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; +import { FAQItem, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { serverRuntimeConfig } from 'config'; import { WithdrawalsTabs } from 'features/withdrawals'; import { WithdrawalsProvider } from 'features/withdrawals/contexts/withdrawals-context'; +import { Layout } from 'shared/components'; +import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; -const Withdrawals: FC = ({ mode }) => { +const Withdrawals: FC = ({ + mode, + faqListRequest, + faqListClaim, +}) => { const { account, chainId } = useWeb3(); return ( @@ -23,7 +29,11 @@ const Withdrawals: FC = ({ mode }) => { {/* In order to simplify side effects of switching wallets we remount the whole widget, resetting all internal state */} - + @@ -36,6 +46,11 @@ type WithdrawalsModePageParams = { mode: 'request' | 'claim'; }; +type WithdrawalsModePageProps = WithdrawalsModePageParams & { + faqListRequest?: FAQItem[]; + faqListClaim?: FAQItem[]; +}; + export const getStaticPaths: GetStaticPaths< WithdrawalsModePageParams > = async () => { @@ -49,6 +64,31 @@ export const getStaticProps: GetStaticProps< WithdrawalsModePageParams, WithdrawalsModePageParams > = async ({ params }) => { + // FAQ + const pageIdentificationRequest = 'withdrawals-request'; + const pageIdentificationClaim = 'withdrawals-claim'; + let foundPageRequest: PageFAQ | undefined = undefined; + let foundPageClaim: PageFAQ | undefined = undefined; + + try { + const pages = await getFAQ(serverRuntimeConfig.faqContentUrl); + + foundPageRequest = pages.find( + (page: PageFAQ) => page['identification'] === pageIdentificationRequest, + ); + foundPageClaim = pages.find( + (page: PageFAQ) => page['identification'] === pageIdentificationClaim, + ); + } catch { + // noop + } + const faqProps = { + faqListRequest: foundPageRequest?.faq, + faqListClaim: foundPageClaim?.faq, + revalidate: 900, + }; // TODO: config + + // Mode if (!params?.mode) return { notFound: true }; - return { props: { mode: params.mode } }; + return { props: { mode: params.mode, ...faqProps } }; }; From de46d208784b6c6a4512c0521e68e111ac13afcf Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 10 Oct 2023 23:31:53 +0300 Subject: [PATCH 16/47] refactor: faqAccordion onLinkClick DRY --- features/home/stake-faq/stake-faq.tsx | 9 +++------ .../withdrawals/withdrawals-faq/claim-faq.tsx | 9 +++------ .../withdrawals/withdrawals-faq/request-faq.tsx | 10 +++------- features/wsteth/shared/wrap-faq/wrap-faq.tsx | 9 +++------ pages/wrap/[[...mode]].tsx | 2 +- utils/faq-matomo.ts | 17 +++++++++++++++++ 6 files changed, 30 insertions(+), 26 deletions(-) create mode 100644 utils/faq-matomo.ts diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index e538580a1..919ffdda5 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -1,10 +1,10 @@ import React, { FC } from 'react'; -import { trackEvent } from '@lidofinance/analytics-matomo'; import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; +import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; interface StakeFaqProps { faqList?: FAQItem[]; @@ -16,11 +16,8 @@ export const StakeFaq: FC = ({ faqList }) => {
{ - const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; - // Make event like `_faq___` - const nameEvent = `eth_widget_faq_stake_${questionId}_${linkContent}`; - trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + onLinkClick={(props) => { + faqAccordionOnLinkClick({ pageId: 'stake', ...props }); }} />
diff --git a/features/withdrawals/withdrawals-faq/claim-faq.tsx b/features/withdrawals/withdrawals-faq/claim-faq.tsx index 0727aba84..7f7088fe9 100644 --- a/features/withdrawals/withdrawals-faq/claim-faq.tsx +++ b/features/withdrawals/withdrawals-faq/claim-faq.tsx @@ -1,10 +1,10 @@ import React, { FC } from 'react'; -import { trackEvent } from '@lidofinance/analytics-matomo'; import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; +import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type ClaimFaqProps = { faqList?: FAQItem[]; @@ -16,11 +16,8 @@ export const ClaimFaq: FC = ({ faqList }) => {
{ - const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; - // Make event like `_faq___` - const nameEvent = `eth_widget_faq_withdrawalsClaim_${questionId}_${linkContent}`; - trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + onLinkClick={(props) => { + faqAccordionOnLinkClick({ pageId: 'withdrawalsClaim', ...props }); }} />
diff --git a/features/withdrawals/withdrawals-faq/request-faq.tsx b/features/withdrawals/withdrawals-faq/request-faq.tsx index 3997d55e1..7fb0212f8 100644 --- a/features/withdrawals/withdrawals-faq/request-faq.tsx +++ b/features/withdrawals/withdrawals-faq/request-faq.tsx @@ -1,11 +1,10 @@ import React, { FC } from 'react'; -// import { Button } from '@lidofinance/lido-ui'; import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; -import { trackEvent } from '@lidofinance/analytics-matomo'; import { Section } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; +import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; // import { ButtonLinkWrap } from './styles'; // TODO: Replace this link when it will be finalized @@ -22,11 +21,8 @@ export const RequestFaq: FC = ({ faqList }) => {
{ - const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; - // Make event like `_faq___` - const nameEvent = `eth_widget_faq_withdrawalsRequest_${questionId}_${linkContent}`; - trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + onLinkClick={(props) => { + faqAccordionOnLinkClick({ pageId: 'withdrawalsRequest', ...props }); }} /> diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index 66ff117cd..ed3b61187 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -1,10 +1,10 @@ import React, { FC } from 'react'; -import { trackEvent } from '@lidofinance/analytics-matomo'; import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; +import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; interface WrapFaqProps { faqList?: FAQItem[]; @@ -16,11 +16,8 @@ export const WrapFaq: FC = ({ faqList }) => {
{ - const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; - // Make event like `_faq___` - const nameEvent = `eth_widget_faq_wrapOrUnwrap_${questionId}_${linkContent}`; - trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); + onLinkClick={(props) => { + faqAccordionOnLinkClick({ pageId: 'wrapOrUnwrap', ...props }); }} />
diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index 62cad5751..326d8dbc1 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -17,7 +17,7 @@ const WrapPage: FC = ({ mode, faqList }) => { Wrap | Lido - + ); }; diff --git a/utils/faq-matomo.ts b/utils/faq-matomo.ts new file mode 100644 index 000000000..10a09ad06 --- /dev/null +++ b/utils/faq-matomo.ts @@ -0,0 +1,17 @@ +import { trackEvent } from '@lidofinance/analytics-matomo'; +import { FAQAccordionOnLinkClickProps } from '@lidofinance/ui-faq'; + +export type FaqAccordionOnLinkClickFactoryProps = + FAQAccordionOnLinkClickProps & { pageId: string }; + +export const faqAccordionOnLinkClick = ({ + pageId, + questionId, + question, + linkContent, +}: FaqAccordionOnLinkClickFactoryProps) => { + const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; + // Make event like `_faq___` + const nameEvent = `eth_widget_faq_${pageId}_${questionId}_${linkContent}`; + trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); +}; From 6cfdf10dfd4433052cbb0c8a473cfa337d1357b3 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 10 Oct 2023 23:50:55 +0300 Subject: [PATCH 17/47] refactor: faq revalidate from config --- config/faq.ts | 2 ++ config/index.ts | 1 + pages/index.tsx | 6 ++---- pages/withdrawals/[mode].tsx | 6 +++--- pages/wrap/[[...mode]].tsx | 4 ++-- 5 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 config/faq.ts diff --git a/config/faq.ts b/config/faq.ts new file mode 100644 index 000000000..2cda982ce --- /dev/null +++ b/config/faq.ts @@ -0,0 +1,2 @@ +// 15 minutes +export const FAQ_REVALIDATE_SECS = 900; diff --git a/config/index.ts b/config/index.ts index 40dc96d3a..f8c14f719 100644 --- a/config/index.ts +++ b/config/index.ts @@ -5,6 +5,7 @@ export * from './aggregator'; export * from './api'; export * from './cache'; export * from './estimate'; +export * from './faq'; export * from './locale'; export * from './metrics'; export * from './oracle'; diff --git a/pages/index.tsx b/pages/index.tsx index ab79a858a..bb457aa65 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -4,7 +4,7 @@ import Head from 'next/head'; import { getFAQ, FAQItem, PageFAQ } from '@lidofinance/ui-faq'; -import { serverRuntimeConfig } from 'config'; +import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; import { Wallet, StakeForm, LidoStats, StakeFaq } from 'features/home'; import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; @@ -53,8 +53,6 @@ export const getStaticProps: GetStaticProps = async () => { props: { faqList: foundPage?.faq, }, - // 15 minutes - // TODO: config - revalidate: 900, + revalidate: FAQ_REVALIDATE_SECS, }; }; diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index ebf21d519..5a75dee8a 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -5,7 +5,7 @@ import { useWeb3 } from 'reef-knot/web3-react'; import { FAQItem, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; -import { serverRuntimeConfig } from 'config'; +import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; import { WithdrawalsTabs } from 'features/withdrawals'; import { WithdrawalsProvider } from 'features/withdrawals/contexts/withdrawals-context'; import { Layout } from 'shared/components'; @@ -85,8 +85,8 @@ export const getStaticProps: GetStaticProps< const faqProps = { faqListRequest: foundPageRequest?.faq, faqListClaim: foundPageClaim?.faq, - revalidate: 900, - }; // TODO: config + revalidate: FAQ_REVALIDATE_SECS, + }; // Mode if (!params?.mode) return { notFound: true }; diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index 326d8dbc1..4a700eff6 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -3,7 +3,7 @@ import { GetStaticPaths, GetStaticProps } from 'next'; import Head from 'next/head'; import { FAQItem, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; -import { serverRuntimeConfig } from 'config'; +import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; import { Layout } from 'shared/components'; import { WrapUnwrapTabs } from 'features/wsteth/wrap-unwrap-tabs'; @@ -58,7 +58,7 @@ export const getStaticProps: GetStaticProps< } catch { // noop } - const faqProps = { faqList: foundPage?.faq, revalidate: 900 }; // TODO: config + const faqProps = { faqList: foundPage?.faq, revalidate: FAQ_REVALIDATE_SECS }; // Mode const mode = params?.mode; From 88f910a2b3dbecac14d62eae274d8477c569fb79 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Wed, 11 Oct 2023 15:52:41 +0300 Subject: [PATCH 18/47] feat: axios instance with metrics and timeout --- config/axiosRequestTimeouts.ts | 1 + config/index.ts | 2 +- utils/axios/clientAxios.ts | 19 ++++++++ utils/axios/index.ts | 3 ++ utils/axios/instance.ts | 16 +++++++ utils/axios/internalAxiosError.ts | 15 +++++++ utilsApi/serverAxios.ts | 73 +++++++++++++++++++++++++++++++ 7 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 config/axiosRequestTimeouts.ts create mode 100644 utils/axios/clientAxios.ts create mode 100644 utils/axios/index.ts create mode 100644 utils/axios/instance.ts create mode 100644 utils/axios/internalAxiosError.ts create mode 100644 utilsApi/serverAxios.ts diff --git a/config/axiosRequestTimeouts.ts b/config/axiosRequestTimeouts.ts new file mode 100644 index 000000000..9a92cef03 --- /dev/null +++ b/config/axiosRequestTimeouts.ts @@ -0,0 +1 @@ +export const AXIOS_REQUEST_TIMEOUT_MS = 3000; diff --git a/config/index.ts b/config/index.ts index 55df7e7f6..0386f40ac 100644 --- a/config/index.ts +++ b/config/index.ts @@ -3,11 +3,11 @@ export const { serverRuntimeConfig } = getConfig(); export { default as dynamics } from './dynamics'; export * from './aggregator'; export * from './api'; +export * from './axiosRequestTimeouts'; export * from './cache'; export * from './estimate'; export * from './faq'; export * from './locale'; -export * from './metrics'; export * from './rpc'; export * from './steth'; export * from './storage'; diff --git a/utils/axios/clientAxios.ts b/utils/axios/clientAxios.ts new file mode 100644 index 000000000..8122700dc --- /dev/null +++ b/utils/axios/clientAxios.ts @@ -0,0 +1,19 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { AxiosError, CreateAxiosDefaults } from 'axios'; +import { _createAxios } from './instance'; +import { InternalAxiosError } from './internalAxiosError'; + +const errorHandler = (error: AxiosError) => { + return Promise.reject(new InternalAxiosError(error)); +}; + +export const createClientAxios = (axiosConfig?: CreateAxiosDefaults) => { + const instance = _createAxios(axiosConfig); + + instance.interceptors.request.use(null, errorHandler); + instance.interceptors.response.use(null, errorHandler); + + return instance; +}; + +export const clientAxios = createClientAxios(); diff --git a/utils/axios/index.ts b/utils/axios/index.ts new file mode 100644 index 000000000..3feafc3eb --- /dev/null +++ b/utils/axios/index.ts @@ -0,0 +1,3 @@ +export * from './clientAxios'; +export * from './instance'; +export * from './internalAxiosError'; diff --git a/utils/axios/instance.ts b/utils/axios/instance.ts new file mode 100644 index 000000000..4c2337555 --- /dev/null +++ b/utils/axios/instance.ts @@ -0,0 +1,16 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import Axios, { CreateAxiosDefaults } from 'axios'; +import { AXIOS_REQUEST_TIMEOUT_MS } from 'config'; + +declare module 'axios' { + export interface InternalAxiosRequestConfig { + metadata: any; + } +} + +export const _createAxios = (config?: CreateAxiosDefaults) => { + return Axios.create({ + timeout: AXIOS_REQUEST_TIMEOUT_MS, + ...(config ?? {}), + }); +}; diff --git a/utils/axios/internalAxiosError.ts b/utils/axios/internalAxiosError.ts new file mode 100644 index 000000000..0aa80ab9d --- /dev/null +++ b/utils/axios/internalAxiosError.ts @@ -0,0 +1,15 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { AxiosError } from 'axios'; + +export class InternalAxiosError extends Error { + /* + * We must not add error as public property, + * otherwise logs will have all info about request & response, + * which will bloat logs on grafana with useless information. + */ + constructor(error: AxiosError) { + super( + `Request ${error.config?.method} to ${error.config?.url} failed: ${error.status} <${error.code}>`, + ); + } +} diff --git a/utilsApi/serverAxios.ts b/utilsApi/serverAxios.ts new file mode 100644 index 000000000..2c56f0eee --- /dev/null +++ b/utilsApi/serverAxios.ts @@ -0,0 +1,73 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { CreateAxiosDefaults } from 'axios'; +import { getStatusLabel } from '@lidofinance/api-metrics'; +import { _createAxios, InternalAxiosError } from 'utils/axios'; +import Metrics from './metrics'; + +export const createServerAxios = (axiosConfig?: CreateAxiosDefaults) => { + const instance = _createAxios(axiosConfig); + + instance.interceptors.request.use( + (config) => { + const requestURL = config.url; + if (requestURL == null) { + return config; + } + + config.metadata ??= {}; + config.metadata.startTime = Date.now(); + return config; + }, + (error) => { + return Promise.reject(new InternalAxiosError(error)); + }, + ); + + instance.interceptors.response.use( + (response) => { + const requestURL = response.config.url; + if (requestURL == null) { + return response; + } + + const startTime = response.config.metadata.startTime; + if (startTime == null) { + return response; + } + + const endTime = Date.now(); + const hostname = new URL(requestURL).hostname; + const status = getStatusLabel(response.status); + Metrics.request.apiTimingsExternal + .labels({ status, hostname }) + .observe((endTime - startTime) / 1000); + + return response; + }, + (error) => { + const requestURL = error.config.url; + if (requestURL == null) { + // looks like this is not an axios error + return Promise.reject(error); + } + + const startTime = error.response.config.metadata.startTime; + if (startTime == null) { + return Promise.reject(error); + } + + const endTime = Date.now(); + const hostname = new URL(requestURL).hostname; + const status = getStatusLabel(error.response.status); + Metrics.request.apiTimingsExternal + .labels({ status, hostname }) + .observe((endTime - startTime) / 1000); + + return Promise.reject(new InternalAxiosError(error)); + }, + ); + + return instance; +}; + +export const serverAxios = createServerAxios(); From d751de221ead1ea900f618471003630babfe8022 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Wed, 11 Oct 2023 16:07:12 +0300 Subject: [PATCH 19/47] feat: use axios for getting a FAQ --- pages/index.tsx | 15 +++++++++++---- pages/withdrawals/[mode].tsx | 21 ++++++++++++++------- pages/wrap/[[...mode]].tsx | 18 ++++++++++++++---- 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/pages/index.tsx b/pages/index.tsx index d322ab23a..15973c2e6 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -9,9 +9,10 @@ import { Wallet, StakeForm, LidoStats, StakeFaq } from 'features/home'; import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; +import { serverAxios } from 'utilsApi/serverAxios'; interface HomeProps { - faqList?: FAQItem[]; + faqList?: FAQItem[] | null; } const Home: FC = ({ faqList }) => { @@ -30,7 +31,7 @@ const Home: FC = ({ faqList }) => { - + ); }; @@ -42,7 +43,10 @@ export const getStaticProps: GetStaticProps = async () => { let foundPage: PageFAQ | undefined = undefined; try { - const pages = await getFAQ(serverRuntimeConfig.faqContentUrl); + const pages = await getFAQ(serverRuntimeConfig.faqContentUrl, { + axiosInstance: serverAxios, + cache: false, + }); foundPage = pages.find( (page: PageFAQ) => page['identification'] === pageIdentification, @@ -53,7 +57,10 @@ export const getStaticProps: GetStaticProps = async () => { return { props: { - faqList: foundPage?.faq, + // We can't use `undefined` here. + // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. + // Will be error: SerializableError: Error serializing `.faqListRequest` returned from `getStaticProps`. + faqList: foundPage?.faq || null, }, revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index 047991d4f..037f9e12a 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -10,6 +10,7 @@ import { WithdrawalsProvider } from 'features/withdrawals/contexts/withdrawals-c import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; +import { serverAxios } from 'utilsApi/serverAxios'; const Withdrawals: FC = ({ mode, @@ -30,8 +31,8 @@ const Withdrawals: FC = ({ @@ -46,8 +47,8 @@ type WithdrawalsModePageParams = { }; type WithdrawalsModePageProps = WithdrawalsModePageParams & { - faqListRequest?: FAQItem[]; - faqListClaim?: FAQItem[]; + faqListRequest?: FAQItem[] | null; + faqListClaim?: FAQItem[] | null; }; export const getStaticPaths: GetStaticPaths< @@ -70,7 +71,10 @@ export const getStaticProps: GetStaticProps< let foundPageClaim: PageFAQ | undefined = undefined; try { - const pages = await getFAQ(serverRuntimeConfig.faqContentUrl); + const pages = await getFAQ(serverRuntimeConfig.faqContentUrl, { + axiosInstance: serverAxios, + cache: false, + }); foundPageRequest = pages.find( (page: PageFAQ) => page['identification'] === pageIdentificationRequest, @@ -82,8 +86,11 @@ export const getStaticProps: GetStaticProps< // noop } const faqProps = { - faqListRequest: foundPageRequest?.faq, - faqListClaim: foundPageClaim?.faq, + // We can't use `undefined` here. + // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. + // Will be error: SerializableError: Error serializing `.faqListRequest` returned from `getStaticProps`. + faqListRequest: foundPageRequest?.faq || null, + faqListClaim: foundPageClaim?.faq || null, revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index 03d40cdfd..9b3ddea5e 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -7,6 +7,7 @@ import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; import { WrapUnwrapTabs } from 'features/wsteth/wrap-unwrap-tabs'; import { Layout } from 'shared/components'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; +import { serverAxios } from 'utilsApi/serverAxios'; const WrapPage: FC = ({ mode, faqList }) => { const key = useWeb3Key(); @@ -20,7 +21,7 @@ const WrapPage: FC = ({ mode, faqList }) => { Wrap | Lido - + ); }; @@ -29,7 +30,7 @@ export default WrapPage; type WrapModePageProps = { mode: 'wrap' | 'unwrap'; - faqList?: FAQItem[]; + faqList?: FAQItem[] | null; }; type WrapModePageParams = { @@ -53,7 +54,10 @@ export const getStaticProps: GetStaticProps< let foundPage: PageFAQ | undefined = undefined; try { - const pages = await getFAQ(serverRuntimeConfig.faqContentUrl); + const pages = await getFAQ(serverRuntimeConfig.faqContentUrl, { + axiosInstance: serverAxios, + cache: false, + }); foundPage = pages.find( (page: PageFAQ) => page['identification'] === pageIdentification, @@ -61,7 +65,13 @@ export const getStaticProps: GetStaticProps< } catch { // noop } - const faqProps = { faqList: foundPage?.faq, revalidate: FAQ_REVALIDATE_SECS }; + // We can't use `undefined` here. + // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. + // Will be error: SerializableError: Error serializing `.faqListRequest` returned from `getStaticProps`. + const faqProps = { + faqList: foundPage?.faq || null, + revalidate: FAQ_REVALIDATE_SECS, + }; // Mode const mode = params?.mode; From db72017fe98e6052bda18d31d57c6525b38d81df Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Wed, 11 Oct 2023 16:12:59 +0300 Subject: [PATCH 20/47] feat: hide FAQ block if faqList not available --- features/home/stake-faq/stake-faq.tsx | 18 ++++++++------- .../withdrawals/withdrawals-faq/claim-faq.tsx | 18 ++++++++------- .../withdrawals-faq/request-faq.tsx | 23 +++++++++++-------- features/wsteth/shared/wrap-faq/wrap-faq.tsx | 18 ++++++++------- 4 files changed, 44 insertions(+), 33 deletions(-) diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index 919ffdda5..2761c37ff 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -13,14 +13,16 @@ interface StakeFaqProps { export const StakeFaq: FC = ({ faqList }) => { return ( -
- { - faqAccordionOnLinkClick({ pageId: 'stake', ...props }); - }} - /> -
+ {faqList && ( +
+ { + faqAccordionOnLinkClick({ pageId: 'stake', ...props }); + }} + /> +
+ )}
); }; diff --git a/features/withdrawals/withdrawals-faq/claim-faq.tsx b/features/withdrawals/withdrawals-faq/claim-faq.tsx index 7f7088fe9..ef59bb461 100644 --- a/features/withdrawals/withdrawals-faq/claim-faq.tsx +++ b/features/withdrawals/withdrawals-faq/claim-faq.tsx @@ -13,14 +13,16 @@ type ClaimFaqProps = { export const ClaimFaq: FC = ({ faqList }) => { return ( -
- { - faqAccordionOnLinkClick({ pageId: 'withdrawalsClaim', ...props }); - }} - /> -
+ {faqList && ( +
+ { + faqAccordionOnLinkClick({ pageId: 'withdrawalsClaim', ...props }); + }} + /> +
+ )}
); }; diff --git a/features/withdrawals/withdrawals-faq/request-faq.tsx b/features/withdrawals/withdrawals-faq/request-faq.tsx index 7fb0212f8..217936c1c 100644 --- a/features/withdrawals/withdrawals-faq/request-faq.tsx +++ b/features/withdrawals/withdrawals-faq/request-faq.tsx @@ -18,22 +18,27 @@ type RequestFaqProps = { export const RequestFaq: FC = ({ faqList }) => { return ( -
- { - faqAccordionOnLinkClick({ pageId: 'withdrawalsRequest', ...props }); - }} - /> + {faqList && ( +
+ { + faqAccordionOnLinkClick({ + pageId: 'withdrawalsRequest', + ...props, + }); + }} + /> - {/* */} -
+
+ )}
); }; diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index ed3b61187..108cd8691 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -13,14 +13,16 @@ interface WrapFaqProps { export const WrapFaq: FC = ({ faqList }) => { return ( -
- { - faqAccordionOnLinkClick({ pageId: 'wrapOrUnwrap', ...props }); - }} - /> -
+ {faqList && ( +
+ { + faqAccordionOnLinkClick({ pageId: 'wrapOrUnwrap', ...props }); + }} + /> +
+ )}
); }; From 7f9eaf565411b3a857f15a25807dbd799e6586d2 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Wed, 11 Oct 2023 16:16:14 +0300 Subject: [PATCH 21/47] feat: warn logs --- pages/index.tsx | 2 +- pages/withdrawals/[mode].tsx | 2 +- pages/wrap/[[...mode]].tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/index.tsx b/pages/index.tsx index 15973c2e6..3ecba9a17 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -52,7 +52,7 @@ export const getStaticProps: GetStaticProps = async () => { (page: PageFAQ) => page['identification'] === pageIdentification, ); } catch { - // noop + console.warn('FAQ not available on stake page!'); } return { diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index 037f9e12a..592754d73 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -83,7 +83,7 @@ export const getStaticProps: GetStaticProps< (page: PageFAQ) => page['identification'] === pageIdentificationClaim, ); } catch { - // noop + console.warn('FAQ not available on withdrawals page!'); } const faqProps = { // We can't use `undefined` here. diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index 9b3ddea5e..13883fdc4 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -63,7 +63,7 @@ export const getStaticProps: GetStaticProps< (page: PageFAQ) => page['identification'] === pageIdentification, ); } catch { - // noop + console.warn('FAQ not available on wrap/unwrap page!'); } // We can't use `undefined` here. // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. From 0a464a892750379a808e21442e5605e0beb487a8 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Wed, 11 Oct 2023 17:08:33 +0300 Subject: [PATCH 22/47] refactor: use type instead of interface --- pages/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/index.tsx b/pages/index.tsx index 3ecba9a17..fddba89d0 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -11,9 +11,9 @@ import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; import { serverAxios } from 'utilsApi/serverAxios'; -interface HomeProps { +type HomeProps = { faqList?: FAQItem[] | null; -} +}; const Home: FC = ({ faqList }) => { const key = useWeb3Key(); From 1d60039f38aa305948ac6442f49e7d4cbfe92b6d Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Fri, 10 Nov 2023 14:42:24 +0300 Subject: [PATCH 23/47] refactor: faq on wrap/unwrap page --- .env.example | 2 +- .gitignore | 1 + config/axiosRequestTimeouts.ts | 1 - config/index.ts | 1 - features/home/stake-faq/stake-faq.tsx | 5 +- .../withdrawals/withdrawals-faq/claim-faq.tsx | 5 +- .../withdrawals-faq/request-faq.tsx | 5 +- features/wsteth/shared/wrap-faq/wrap-faq.tsx | 20 ++-- features/wsteth/wrap-unwrap-tabs.tsx | 8 +- next.config.mjs | 4 +- package.json | 4 +- pages/index.tsx | 65 ++++++------- pages/withdrawals/[mode].tsx | 91 ++++++++++--------- pages/wrap/[[...mode]].tsx | 42 ++++----- utils/standardFetcher.ts | 14 ++- utilsApi/get-faq.ts | 27 ++++++ yarn.lock | 33 +------ 17 files changed, 167 insertions(+), 161 deletions(-) delete mode 100644 config/axiosRequestTimeouts.ts create mode 100644 utilsApi/get-faq.ts diff --git a/.env.example b/.env.example index da743958a..5f80d39b9 100644 --- a/.env.example +++ b/.env.example @@ -51,4 +51,4 @@ MATOMO_URL= # WalletConnect project ID WALLETCONNECT_PROJECT_ID= -FAQ_CONTENT_URL= +FAQ_CONTENT_HOST= diff --git a/.gitignore b/.gitignore index 842040602..2775b236c 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ yarn-error.log* .idea /public/runtime/ +/public/ethereum-staking-widget/ diff --git a/config/axiosRequestTimeouts.ts b/config/axiosRequestTimeouts.ts deleted file mode 100644 index 9a92cef03..000000000 --- a/config/axiosRequestTimeouts.ts +++ /dev/null @@ -1 +0,0 @@ -export const AXIOS_REQUEST_TIMEOUT_MS = 3000; diff --git a/config/index.ts b/config/index.ts index 0386f40ac..9b84db003 100644 --- a/config/index.ts +++ b/config/index.ts @@ -3,7 +3,6 @@ export const { serverRuntimeConfig } = getConfig(); export { default as dynamics } from './dynamics'; export * from './aggregator'; export * from './api'; -export * from './axiosRequestTimeouts'; export * from './cache'; export * from './estimate'; export * from './faq'; diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index 2761c37ff..d38b43bf0 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -3,7 +3,6 @@ import React, { FC } from 'react'; import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; -import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; interface StakeFaqProps { @@ -12,7 +11,7 @@ interface StakeFaqProps { export const StakeFaq: FC = ({ faqList }) => { return ( - + <> {faqList && (
= ({ faqList }) => { />
)} -
+ ); }; diff --git a/features/withdrawals/withdrawals-faq/claim-faq.tsx b/features/withdrawals/withdrawals-faq/claim-faq.tsx index ef59bb461..d080f58d5 100644 --- a/features/withdrawals/withdrawals-faq/claim-faq.tsx +++ b/features/withdrawals/withdrawals-faq/claim-faq.tsx @@ -3,7 +3,6 @@ import React, { FC } from 'react'; import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; -import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type ClaimFaqProps = { @@ -12,7 +11,7 @@ type ClaimFaqProps = { export const ClaimFaq: FC = ({ faqList }) => { return ( - + <> {faqList && (
= ({ faqList }) => { />
)} -
+ ); }; diff --git a/features/withdrawals/withdrawals-faq/request-faq.tsx b/features/withdrawals/withdrawals-faq/request-faq.tsx index 217936c1c..271f507dc 100644 --- a/features/withdrawals/withdrawals-faq/request-faq.tsx +++ b/features/withdrawals/withdrawals-faq/request-faq.tsx @@ -3,7 +3,6 @@ import React, { FC } from 'react'; import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; -import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; // import { ButtonLinkWrap } from './styles'; @@ -17,7 +16,7 @@ type RequestFaqProps = { export const RequestFaq: FC = ({ faqList }) => { return ( - + <> {faqList && (
= ({ faqList }) => { */}
)} -
+ ); }; diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index 108cd8691..688b91bf9 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -1,28 +1,30 @@ import React, { FC } from 'react'; -import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; +import { FaqAccordion, PageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; -import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; interface WrapFaqProps { - faqList?: FAQItem[]; + pageFAQ?: PageFAQ; } -export const WrapFaq: FC = ({ faqList }) => { +export const WrapFaq: FC = ({ pageFAQ }) => { return ( - - {faqList && ( + <> + {pageFAQ && (
{ - faqAccordionOnLinkClick({ pageId: 'wrapOrUnwrap', ...props }); + faqAccordionOnLinkClick({ + pageId: pageFAQ.pageIdentification, + ...props, + }); }} />
)} -
+ ); }; diff --git a/features/wsteth/wrap-unwrap-tabs.tsx b/features/wsteth/wrap-unwrap-tabs.tsx index 82fb65a5b..716578adf 100644 --- a/features/wsteth/wrap-unwrap-tabs.tsx +++ b/features/wsteth/wrap-unwrap-tabs.tsx @@ -1,4 +1,4 @@ -import { FAQItem } from '@lidofinance/ui-faq'; +import { PageFAQ } from '@lidofinance/ui-faq'; import { Wallet } from 'features/wsteth/shared/wallet'; import { WrapForm } from 'features/wsteth/wrap/wrap-form/wrap-form'; @@ -15,10 +15,10 @@ const NAV_ROUTES = [ type WrapUnwrapLayoutProps = { mode: 'wrap' | 'unwrap'; - faqList?: FAQItem[]; + pageFAQ?: PageFAQ; }; -export const WrapUnwrapTabs = ({ mode, faqList }: WrapUnwrapLayoutProps) => { +export const WrapUnwrapTabs = ({ mode, pageFAQ }: WrapUnwrapLayoutProps) => { const isUnwrapMode = mode === 'unwrap'; return ( <> @@ -26,8 +26,8 @@ export const WrapUnwrapTabs = ({ mode, faqList }: WrapUnwrapLayoutProps) => { {isUnwrapMode ? : } + - ); }; diff --git a/next.config.mjs b/next.config.mjs index 3a9ca57a3..434f09591 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -49,7 +49,7 @@ export const CACHE_CONTROL_PAGES = [ export const CACHE_CONTROL_VALUE = 'public, max-age=15, s-max-age=30, stale-if-error=604800, stale-while-revalidate=172800'; -export const faqContentUrl = process.env.FAQ_CONTENT_URL; +export const faqContentHost = process.env.FAQ_CONTENT_HOST; const withBundleAnalyzer = NextBundleAnalyzer({ enabled: analyzeBundle, @@ -157,6 +157,6 @@ export default withBundleAnalyzer({ ethAPIBasePath, rewardsBackendAPI, defaultChain, - faqContentUrl, + faqContentHost, }, }); diff --git a/package.json b/package.json index 7c0aed38f..78e090c20 100644 --- a/package.json +++ b/package.json @@ -43,10 +43,8 @@ "@lidofinance/next-ui-primitives": "^0.39.0", "@lidofinance/rpc": "^0.28.0", "@lidofinance/satanizer": "^0.32.0", - "@lidofinance/ui-faq": "^0.39.0", - "axios": "^1.5.0", + "@lidofinance/ui-faq": "file:.yalc/@lidofinance/ui-faq", "bignumber.js": "9.1.0", - "cache-manager": "^5.2.3", "copy-to-clipboard": "^3.3.1", "cors": "^2.8.5", "date-fns": "2.29.2", diff --git a/pages/index.tsx b/pages/index.tsx index fddba89d0..0c8e16c45 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,18 +1,19 @@ import { FC } from 'react'; -import { GetStaticProps } from 'next'; +// import { GetStaticProps } from 'next'; import Head from 'next/head'; -import { getFAQ, FAQItem, PageFAQ } from '@lidofinance/ui-faq'; +// import { getFAQ, FAQItem, PageFAQ } from '@lidofinance/ui-faq'; -import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; +// import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; import { Wallet, StakeForm, LidoStats, StakeFaq } from 'features/home'; import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -import { serverAxios } from 'utilsApi/serverAxios'; +// import { serverAxios } from 'utilsApi/serverAxios'; type HomeProps = { - faqList?: FAQItem[] | null; + // faqList?: FAQItem[] | null; + faqList: null; }; const Home: FC = ({ faqList }) => { @@ -38,30 +39,30 @@ const Home: FC = ({ faqList }) => { export default Home; -export const getStaticProps: GetStaticProps = async () => { - const pageIdentification = 'stake'; - let foundPage: PageFAQ | undefined = undefined; - - try { - const pages = await getFAQ(serverRuntimeConfig.faqContentUrl, { - axiosInstance: serverAxios, - cache: false, - }); - - foundPage = pages.find( - (page: PageFAQ) => page['identification'] === pageIdentification, - ); - } catch { - console.warn('FAQ not available on stake page!'); - } - - return { - props: { - // We can't use `undefined` here. - // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. - // Will be error: SerializableError: Error serializing `.faqListRequest` returned from `getStaticProps`. - faqList: foundPage?.faq || null, - }, - revalidate: FAQ_REVALIDATE_SECS, - }; -}; +// export const getStaticProps: GetStaticProps = async () => { +// const pageIdentification = 'stake'; +// let foundPage: PageFAQ | undefined = undefined; +// +// try { +// const pages = await getFAQ(serverRuntimeConfig.faqContentUrl, { +// axiosInstance: serverAxios, +// cache: false, +// }); +// +// foundPage = pages.find( +// (page: PageFAQ) => page['identification'] === pageIdentification, +// ); +// } catch { +// console.warn('FAQ not available on stake page!'); +// } +// +// return { +// props: { +// // We can't use `undefined` here. +// // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. +// // Will be error: SerializableError: Error serializing `.faqListRequest` returned from `getStaticProps`. +// faqList: foundPage?.faq || null, +// }, +// revalidate: FAQ_REVALIDATE_SECS, +// }; +// }; diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index 592754d73..ba7988001 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -1,16 +1,17 @@ import { FC } from 'react'; -import { GetStaticPaths, GetStaticProps } from 'next'; +// import { GetStaticPaths, GetStaticProps } from 'next'; +import { GetStaticPaths } from 'next'; import Head from 'next/head'; -import { FAQItem, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; +// import { FAQItem, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; -import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; +// import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; import { WithdrawalsTabs } from 'features/withdrawals'; import { WithdrawalsProvider } from 'features/withdrawals/contexts/withdrawals-context'; import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -import { serverAxios } from 'utilsApi/serverAxios'; +// import { serverAxios } from 'utilsApi/serverAxios'; const Withdrawals: FC = ({ mode, @@ -47,8 +48,10 @@ type WithdrawalsModePageParams = { }; type WithdrawalsModePageProps = WithdrawalsModePageParams & { - faqListRequest?: FAQItem[] | null; - faqListClaim?: FAQItem[] | null; + // faqListRequest?: FAQItem[] | null; + // faqListClaim?: FAQItem[] | null; + faqListRequest?: null; + faqListClaim?: null; }; export const getStaticPaths: GetStaticPaths< @@ -60,41 +63,41 @@ export const getStaticPaths: GetStaticPaths< }; }; -export const getStaticProps: GetStaticProps< - WithdrawalsModePageParams, - WithdrawalsModePageParams -> = async ({ params }) => { - // FAQ - const pageIdentificationRequest = 'withdrawals-request'; - const pageIdentificationClaim = 'withdrawals-claim'; - let foundPageRequest: PageFAQ | undefined = undefined; - let foundPageClaim: PageFAQ | undefined = undefined; - - try { - const pages = await getFAQ(serverRuntimeConfig.faqContentUrl, { - axiosInstance: serverAxios, - cache: false, - }); - - foundPageRequest = pages.find( - (page: PageFAQ) => page['identification'] === pageIdentificationRequest, - ); - foundPageClaim = pages.find( - (page: PageFAQ) => page['identification'] === pageIdentificationClaim, - ); - } catch { - console.warn('FAQ not available on withdrawals page!'); - } - const faqProps = { - // We can't use `undefined` here. - // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. - // Will be error: SerializableError: Error serializing `.faqListRequest` returned from `getStaticProps`. - faqListRequest: foundPageRequest?.faq || null, - faqListClaim: foundPageClaim?.faq || null, - revalidate: FAQ_REVALIDATE_SECS, - }; - - // Mode - if (!params?.mode) return { notFound: true }; - return { props: { mode: params.mode, ...faqProps } }; -}; +// export const getStaticProps: GetStaticProps< +// WithdrawalsModePageParams, +// WithdrawalsModePageParams +// > = async ({ params }) => { +// // FAQ +// const pageIdentificationRequest = 'withdrawals-request'; +// const pageIdentificationClaim = 'withdrawals-claim'; +// let foundPageRequest: PageFAQ | undefined = undefined; +// let foundPageClaim: PageFAQ | undefined = undefined; +// +// try { +// const pages = await getFAQ(serverRuntimeConfig.faqContentUrl, { +// axiosInstance: serverAxios, +// cache: false, +// }); +// +// foundPageRequest = pages.find( +// (page: PageFAQ) => page['identification'] === pageIdentificationRequest, +// ); +// foundPageClaim = pages.find( +// (page: PageFAQ) => page['identification'] === pageIdentificationClaim, +// ); +// } catch { +// console.warn('FAQ not available on withdrawals page!'); +// } +// const faqProps = { +// // We can't use `undefined` here. +// // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. +// // Will be error: SerializableError: Error serializing `.faqListRequest` returned from `getStaticProps`. +// faqListRequest: foundPageRequest?.faq || null, +// faqListClaim: foundPageClaim?.faq || null, +// revalidate: FAQ_REVALIDATE_SECS, +// }; +// +// // Mode +// if (!params?.mode) return { notFound: true }; +// return { props: { mode: params.mode, ...faqProps } }; +// }; diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index 13883fdc4..72d6dc4e5 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -1,15 +1,15 @@ import { FC } from 'react'; import { GetStaticPaths, GetStaticProps } from 'next'; import Head from 'next/head'; -import { FAQItem, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { parseFAQ, PageFAQ } from '@lidofinance/ui-faq'; -import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; +import { FAQ_REVALIDATE_SECS } from 'config'; import { WrapUnwrapTabs } from 'features/wsteth/wrap-unwrap-tabs'; import { Layout } from 'shared/components'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -import { serverAxios } from 'utilsApi/serverAxios'; +import { getFaq } from 'utilsApi/get-faq'; -const WrapPage: FC = ({ mode, faqList }) => { +const WrapPage: FC = ({ mode, pageFAQ }) => { const key = useWeb3Key(); return ( @@ -21,7 +21,7 @@ const WrapPage: FC = ({ mode, faqList }) => { Wrap | Lido - + ); }; @@ -30,7 +30,7 @@ export default WrapPage; type WrapModePageProps = { mode: 'wrap' | 'unwrap'; - faqList?: FAQItem[] | null; + pageFAQ: PageFAQ | null; }; type WrapModePageParams = { @@ -50,33 +50,31 @@ export const getStaticProps: GetStaticProps< WrapModePageParams > = async ({ params }) => { // FAQ - const pageIdentification = 'wrap-and-unwrap'; - let foundPage: PageFAQ | undefined = undefined; + let pageFAQ: PageFAQ | null = null; try { - const pages = await getFAQ(serverRuntimeConfig.faqContentUrl, { - axiosInstance: serverAxios, - cache: false, - }); - - foundPage = pages.find( - (page: PageFAQ) => page['identification'] === pageIdentification, + const rawFaqData = await getFaq( + 'ethereum-staking-widget/faq-wrap-and-unwrap-page.md', ); + if (rawFaqData) { + pageFAQ = await parseFAQ(rawFaqData); + } } catch { console.warn('FAQ not available on wrap/unwrap page!'); } - // We can't use `undefined` here. - // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. - // Will be error: SerializableError: Error serializing `.faqListRequest` returned from `getStaticProps`. - const faqProps = { - faqList: foundPage?.faq || null, + + const pageFaqProps = { + // We can't use `undefined` with `pageFAQ`. + // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. + pageFAQ: pageFAQ || null, revalidate: FAQ_REVALIDATE_SECS, }; // Mode const mode = params?.mode; - if (!mode) return { props: { mode: 'wrap', ...faqProps } }; - if (mode[0] === 'unwrap') return { props: { mode: 'unwrap', ...faqProps } }; + if (!mode) return { props: { mode: 'wrap', ...pageFaqProps } }; + if (mode[0] === 'unwrap') + return { props: { mode: 'unwrap', ...pageFaqProps } }; return { notFound: true }; }; diff --git a/utils/standardFetcher.ts b/utils/standardFetcher.ts index f877bbac0..0a21795b7 100644 --- a/utils/standardFetcher.ts +++ b/utils/standardFetcher.ts @@ -20,14 +20,24 @@ const extractError = async (response: Response) => { type StandardFetcher = (url: string, params?: RequestInit) => Promise; export const standardFetcher: StandardFetcher = async (url, params) => { - const response = await fetch(url, { + const requestInit = { ...DEFAULT_PARAMS, ...params, - }); + }; + + const response = await fetch(url, requestInit); if (!response.ok) { throw new FetcherError(await extractError(response), response.status); } + if ( + requestInit?.headers && + 'Content-type' in requestInit.headers && + requestInit.headers['Content-type'].indexOf('text/html') > -1 + ) { + return await response.text(); + } + return await response.json(); }; diff --git a/utilsApi/get-faq.ts b/utilsApi/get-faq.ts new file mode 100644 index 000000000..3f6f8e640 --- /dev/null +++ b/utilsApi/get-faq.ts @@ -0,0 +1,27 @@ +import { serverRuntimeConfig } from 'config'; +import { standardFetcher } from 'utils/standardFetcher'; +import { responseTimeExternalMetricWrapper } from './fetchApiWrapper'; + +export const getFaq = async (path: string): Promise => { + console.debug('[getFaq] Started fetching from CMS...'); + const cmsHost = serverRuntimeConfig.faqContentHost; + + const data = await responseTimeExternalMetricWrapper({ + payload: cmsHost, + request: () => + standardFetcher(`${cmsHost}/${path}`, { + method: 'GET', + headers: { + 'Content-type': 'text/html', + }, + }), + }); + + if (!data) { + console.error('[getFaq] Request to CMS failed'); + return null; + } + + console.debug('[getFaq] Fetched from CMS was successes'); + return data; +}; diff --git a/yarn.lock b/yarn.lock index 820f3f193..93a205b35 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2726,10 +2726,8 @@ resolved "https://registry.yarnpkg.com/@lidofinance/satanizer/-/satanizer-0.32.0.tgz#3ea01a94b7b5c58751a9e3030f6134c83cecefaf" integrity sha512-gHoZM8l/AWWT1YyZf+4/IViAxGuALZNo29b4bWvmEGJw/Xv0ChRPP2/xLEugdk03T16r8vxww3j/tAYTTzGzQw== -"@lidofinance/ui-faq@^0.39.0": - version "0.39.0" - resolved "https://registry.yarnpkg.com/@lidofinance/ui-faq/-/ui-faq-0.39.0.tgz#6bc082b74a2c1e8f36ed0e3f17af289730b995b0" - integrity sha512-jjF4a3sUxEEJQVnRkgMh7i5+fYhBhceAokhOrY2xBz9RbcHbnkBCCSwcf6/kd9mEijnLFKzSLxaF+DHEEkUGyA== +"@lidofinance/ui-faq@file:.yalc/@lidofinance/ui-faq": + version "0.0.0" dependencies: js-yaml "^4.1.0" mdast "^3.0.0" @@ -4838,15 +4836,6 @@ axios@^1.3.4: form-data "^4.0.0" proxy-from-env "^1.1.0" -axios@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.1.tgz#11fbaa11fc35f431193a9564109c88c1f27b585f" - integrity sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - axobject-query@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" @@ -5138,14 +5127,6 @@ builtin-modules@^3.3.0: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== -cache-manager@^5.2.3: - version "5.2.4" - resolved "https://registry.yarnpkg.com/cache-manager/-/cache-manager-5.2.4.tgz#01bebe2cc6bef993e3e959d59d3a25a3f2658df1" - integrity sha512-gkuCjug16NdGvKm/sydxGVx17uffrSWcEe2xraBtwRCgdYcFxwJAla4OYpASAZT2yhSoxgDiWL9XH6IAChcZJA== - dependencies: - lodash.clonedeep "^4.5.0" - lru-cache "^10.0.1" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -8330,11 +8311,6 @@ lodash.camelcase@^4.3.0: resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -8446,11 +8422,6 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lru-cache@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" - integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" From f18011e90a666f8741118dd2b006b4d872ecb16c Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Mon, 20 Nov 2023 23:28:41 +0300 Subject: [PATCH 24/47] fix(deps): lido ui ESM supported (temp fix) --- package.json | 2 +- yarn.lock | 25 +++++++++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 78e090c20..b381989a3 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@lidofinance/api-rpc": "^0.28.0", "@lidofinance/eth-api-providers": "^0.28.0", "@lidofinance/eth-providers": "^0.28.0", - "@lidofinance/lido-ui": "^3.12.0", + "@lidofinance/lido-ui": "3.16.0", "@lidofinance/lido-ui-blocks": "2.10.2", "@lidofinance/next-api-wrapper": "^0.28.0", "@lidofinance/next-ip-rate-limit": "^0.28.0", diff --git a/yarn.lock b/yarn.lock index 93a205b35..164fef022 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2676,10 +2676,26 @@ dependencies: "@lidofinance/blocks-connect-wallet-modal" "2.11.2" -"@lidofinance/lido-ui@^3.12.0": - version "3.12.0" - resolved "https://registry.yarnpkg.com/@lidofinance/lido-ui/-/lido-ui-3.12.0.tgz#b53fcfc752adecd5fb3cf89d42ed17da085080de" - integrity sha512-COCnfqKpj0hrnY3BxCaZRbS7cRaUuI0lotrMC6jS5QVlsxcp1dJzDWzPzrFnO+7s+y7TFikMA5JRfQTVJowJHg== +"@lidofinance/lido-ui@3.14.1": + version "3.14.1" + resolved "https://registry.yarnpkg.com/@lidofinance/lido-ui/-/lido-ui-3.14.1.tgz#780d32c3321295a40d44c352a307029a2b574e43" + integrity sha512-8vqv1E9ldPAIAceANPrh1alLPFWbYzz8AO6RhNbtFms+yPd5P2nSh5OopBLB1G2HE4lGFF0c3OXbMgyEcq9pEQ== + dependencies: + "@styled-system/should-forward-prop" "5.1.5" + "@swc/helpers" "^0.4.11" + "@swc/plugin-styled-components" "^1.2.10" + react-collapsed "3.0.2" + react-jazzicon "^1.0.4" + react-toastify "7.0.4" + react-transition-group "4" + styled-system "5.1.5" + ua-parser-js "^1.0.35" + use-callback-ref "1.2.5" + +"@lidofinance/lido-ui@3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@lidofinance/lido-ui/-/lido-ui-3.16.0.tgz#11a89db8f0ae0ed1a1be396f354fff59273ef4be" + integrity sha512-rT9bwoautHsqijBrH4Ow81Frx7nJQObMyqK5RWjdQHCXeh2MYyYGf3zqqf7kqKyRRdDEjyD31LQVRuS8QAqeDg== dependencies: "@styled-system/should-forward-prop" "5.1.5" "@swc/helpers" "^0.4.11" @@ -2729,6 +2745,7 @@ "@lidofinance/ui-faq@file:.yalc/@lidofinance/ui-faq": version "0.0.0" dependencies: + "@lidofinance/lido-ui" "3.14.1" js-yaml "^4.1.0" mdast "^3.0.0" react-markdown "^8.0.7" From 93b4512edd219854a9384930d482b0cd10a151cc Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 21 Nov 2023 00:03:50 +0300 Subject: [PATCH 25/47] refactor: fetch FAQ from CMS on widget side, use pageFAQ in FAQ --- features/home/stake-faq/stake-faq.tsx | 15 +-- features/withdrawals/claim/claim.tsx | 8 +- features/withdrawals/request/request.tsx | 8 +- .../withdrawals/withdrawals-faq/claim-faq.tsx | 15 +-- .../withdrawals-faq/request-faq.tsx | 12 +-- features/withdrawals/withdrawals-tabs.tsx | 14 +-- features/wsteth/shared/wrap-faq/wrap-faq.tsx | 2 +- features/wsteth/wrap-unwrap-tabs.tsx | 3 +- package.json | 2 + pages/index.tsx | 67 ++++++------ pages/withdrawals/[mode].tsx | 100 +++++++++--------- pages/wrap/[[...mode]].tsx | 1 + 12 files changed, 126 insertions(+), 121 deletions(-) diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index d38b43bf0..6f32741ed 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -1,23 +1,26 @@ import React, { FC } from 'react'; -import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; +import { FaqAccordion, PageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; interface StakeFaqProps { - faqList?: FAQItem[]; + pageFAQ?: PageFAQ; } -export const StakeFaq: FC = ({ faqList }) => { +export const StakeFaq: FC = ({ pageFAQ }) => { return ( <> - {faqList && ( + {pageFAQ && pageFAQ.faq && (
{ - faqAccordionOnLinkClick({ pageId: 'stake', ...props }); + faqAccordionOnLinkClick({ + pageId: pageFAQ.pageIdentification, + ...props, + }); }} />
diff --git a/features/withdrawals/claim/claim.tsx b/features/withdrawals/claim/claim.tsx index 60ac7a8f2..ab9aeff4e 100644 --- a/features/withdrawals/claim/claim.tsx +++ b/features/withdrawals/claim/claim.tsx @@ -1,4 +1,4 @@ -import { FAQItem } from '@lidofinance/ui-faq'; +import { PageFAQ } from '@lidofinance/ui-faq'; import { TransactionModalProvider } from 'shared/transaction-modal/transaction-modal-context'; import { ClaimFaq } from 'features/withdrawals/withdrawals-faq/claim-faq'; @@ -9,16 +9,16 @@ import { ClaimWallet } from './wallet'; import { ClaimFormProvider } from './claim-form-context'; type ClaimProps = { - faqList?: FAQItem[]; + pageFAQ?: PageFAQ; }; -export const Claim = ({ faqList }: ClaimProps) => { +export const Claim = ({ pageFAQ }: ClaimProps) => { return ( - + diff --git a/features/withdrawals/request/request.tsx b/features/withdrawals/request/request.tsx index f5858f39a..28c2f8af9 100644 --- a/features/withdrawals/request/request.tsx +++ b/features/withdrawals/request/request.tsx @@ -1,4 +1,4 @@ -import { FAQItem } from '@lidofinance/ui-faq'; +import { PageFAQ } from '@lidofinance/ui-faq'; import { TransactionModalProvider } from 'shared/transaction-modal'; @@ -10,16 +10,16 @@ import { RequestWallet } from './wallet'; import { RequestFaq } from '../withdrawals-faq/request-faq'; type RequestProps = { - faqList?: FAQItem[]; + pageFAQ?: PageFAQ; }; -export const Request = ({ faqList }: RequestProps) => { +export const Request = ({ pageFAQ }: RequestProps) => { return ( - + diff --git a/features/withdrawals/withdrawals-faq/claim-faq.tsx b/features/withdrawals/withdrawals-faq/claim-faq.tsx index d080f58d5..481701861 100644 --- a/features/withdrawals/withdrawals-faq/claim-faq.tsx +++ b/features/withdrawals/withdrawals-faq/claim-faq.tsx @@ -1,23 +1,26 @@ import React, { FC } from 'react'; -import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; +import { FaqAccordion, PageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type ClaimFaqProps = { - faqList?: FAQItem[]; + pageFAQ?: PageFAQ; }; -export const ClaimFaq: FC = ({ faqList }) => { +export const ClaimFaq: FC = ({ pageFAQ }) => { return ( <> - {faqList && ( + {pageFAQ && pageFAQ.faq && (
{ - faqAccordionOnLinkClick({ pageId: 'withdrawalsClaim', ...props }); + faqAccordionOnLinkClick({ + pageId: pageFAQ.pageIdentification, + ...props, + }); }} />
diff --git a/features/withdrawals/withdrawals-faq/request-faq.tsx b/features/withdrawals/withdrawals-faq/request-faq.tsx index 271f507dc..6ccd91622 100644 --- a/features/withdrawals/withdrawals-faq/request-faq.tsx +++ b/features/withdrawals/withdrawals-faq/request-faq.tsx @@ -1,6 +1,6 @@ import React, { FC } from 'react'; -import { FaqAccordion, FAQItem } from '@lidofinance/ui-faq'; +import { FaqAccordion, PageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; @@ -11,19 +11,19 @@ import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; // 'https://hackmd.io/@lido/SyaJQsZoj#Lido-on-Ethereum-Withdrawals-Landscape'; type RequestFaqProps = { - faqList?: FAQItem[]; + pageFAQ?: PageFAQ; }; -export const RequestFaq: FC = ({ faqList }) => { +export const RequestFaq: FC = ({ pageFAQ }) => { return ( <> - {faqList && ( + {pageFAQ && pageFAQ.faq && (
{ faqAccordionOnLinkClick({ - pageId: 'withdrawalsRequest', + pageId: pageFAQ.pageIdentification, ...props, }); }} diff --git a/features/withdrawals/withdrawals-tabs.tsx b/features/withdrawals/withdrawals-tabs.tsx index bb153c9fe..5ec764221 100644 --- a/features/withdrawals/withdrawals-tabs.tsx +++ b/features/withdrawals/withdrawals-tabs.tsx @@ -1,4 +1,4 @@ -import { FAQItem } from '@lidofinance/ui-faq'; +import { PageFAQ } from '@lidofinance/ui-faq'; import { Switch } from 'shared/components'; @@ -24,22 +24,22 @@ const withdrawalRoutes = [ ]; type WithdrawalsTabsProps = { - faqListRequest?: FAQItem[]; - faqListClaim?: FAQItem[]; + pageRequestFAQ?: PageFAQ; + pageClaimFAQ?: PageFAQ; }; export const WithdrawalsTabs = ({ - faqListRequest, - faqListClaim, + pageRequestFAQ, + pageClaimFAQ, }: WithdrawalsTabsProps) => { const { isClaimTab } = useWithdrawals(); return ( {isClaimTab ? ( - + ) : ( - + )} ); diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index 688b91bf9..522317158 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -12,7 +12,7 @@ interface WrapFaqProps { export const WrapFaq: FC = ({ pageFAQ }) => { return ( <> - {pageFAQ && ( + {pageFAQ && pageFAQ.faq && (
{ {isUnwrapMode ? : } - + + ); }; diff --git a/package.json b/package.json index b381989a3..447ca163f 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,8 @@ "react-dom": "^18.2.0", "react-hook-form": "^7.45.2", "react-is": "^18.2.0", + "react-markdown": "^8.0.7", + "react-to-text": "^2.0.1", "react-transition-group": "^4.4.2", "reef-knot": "^1.8.0", "remark": "^13.0.0", diff --git a/pages/index.tsx b/pages/index.tsx index 0c8e16c45..87f647765 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,22 +1,21 @@ import { FC } from 'react'; -// import { GetStaticProps } from 'next'; +import { GetStaticProps } from 'next'; import Head from 'next/head'; -// import { getFAQ, FAQItem, PageFAQ } from '@lidofinance/ui-faq'; +import { parseFAQ, PageFAQ } from '@lidofinance/ui-faq'; -// import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; +import { FAQ_REVALIDATE_SECS } from 'config'; import { Wallet, StakeForm, LidoStats, StakeFaq } from 'features/home'; import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -// import { serverAxios } from 'utilsApi/serverAxios'; +import { getFaq } from '../utilsApi/get-faq'; type HomeProps = { - // faqList?: FAQItem[] | null; - faqList: null; + pageFAQ: PageFAQ | null; }; -const Home: FC = ({ faqList }) => { +const Home: FC = ({ pageFAQ }) => { const key = useWeb3Key(); return ( = ({ faqList }) => { + - + ); }; export default Home; -// export const getStaticProps: GetStaticProps = async () => { -// const pageIdentification = 'stake'; -// let foundPage: PageFAQ | undefined = undefined; -// -// try { -// const pages = await getFAQ(serverRuntimeConfig.faqContentUrl, { -// axiosInstance: serverAxios, -// cache: false, -// }); -// -// foundPage = pages.find( -// (page: PageFAQ) => page['identification'] === pageIdentification, -// ); -// } catch { -// console.warn('FAQ not available on stake page!'); -// } -// -// return { -// props: { -// // We can't use `undefined` here. -// // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. -// // Will be error: SerializableError: Error serializing `.faqListRequest` returned from `getStaticProps`. -// faqList: foundPage?.faq || null, -// }, -// revalidate: FAQ_REVALIDATE_SECS, -// }; -// }; +export const getStaticProps: GetStaticProps = async () => { + // FAQ + let pageFAQ: PageFAQ | null = null; + + try { + const rawFaqData = await getFaq( + 'ethereum-staking-widget/faq-stake-page.md', + ); + if (rawFaqData) { + pageFAQ = await parseFAQ(rawFaqData); + } + } catch { + console.warn('FAQ not available on stake page!'); + } + + return { + props: { + // We can't use `undefined` with `pageFAQ`. + // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. + pageFAQ: pageFAQ || null, + }, + revalidate: FAQ_REVALIDATE_SECS, + }; +}; diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index ba7988001..dda547e3a 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -1,22 +1,21 @@ import { FC } from 'react'; -// import { GetStaticPaths, GetStaticProps } from 'next'; -import { GetStaticPaths } from 'next'; +import { GetStaticPaths, GetStaticProps } from 'next'; import Head from 'next/head'; -// import { FAQItem, getFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { parseFAQ, PageFAQ } from '@lidofinance/ui-faq'; -// import { serverRuntimeConfig, FAQ_REVALIDATE_SECS } from 'config'; +import { FAQ_REVALIDATE_SECS } from 'config'; import { WithdrawalsTabs } from 'features/withdrawals'; import { WithdrawalsProvider } from 'features/withdrawals/contexts/withdrawals-context'; import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -// import { serverAxios } from 'utilsApi/serverAxios'; +import { getFaq } from '../../utilsApi/get-faq'; const Withdrawals: FC = ({ mode, - faqListRequest, - faqListClaim, + pageRequestFAQ, + pageClaimFAQ, }) => { const key = useWeb3Key(); @@ -32,8 +31,8 @@ const Withdrawals: FC = ({ @@ -48,10 +47,8 @@ type WithdrawalsModePageParams = { }; type WithdrawalsModePageProps = WithdrawalsModePageParams & { - // faqListRequest?: FAQItem[] | null; - // faqListClaim?: FAQItem[] | null; - faqListRequest?: null; - faqListClaim?: null; + pageRequestFAQ?: PageFAQ; + pageClaimFAQ?: PageFAQ; }; export const getStaticPaths: GetStaticPaths< @@ -63,41 +60,42 @@ export const getStaticPaths: GetStaticPaths< }; }; -// export const getStaticProps: GetStaticProps< -// WithdrawalsModePageParams, -// WithdrawalsModePageParams -// > = async ({ params }) => { -// // FAQ -// const pageIdentificationRequest = 'withdrawals-request'; -// const pageIdentificationClaim = 'withdrawals-claim'; -// let foundPageRequest: PageFAQ | undefined = undefined; -// let foundPageClaim: PageFAQ | undefined = undefined; -// -// try { -// const pages = await getFAQ(serverRuntimeConfig.faqContentUrl, { -// axiosInstance: serverAxios, -// cache: false, -// }); -// -// foundPageRequest = pages.find( -// (page: PageFAQ) => page['identification'] === pageIdentificationRequest, -// ); -// foundPageClaim = pages.find( -// (page: PageFAQ) => page['identification'] === pageIdentificationClaim, -// ); -// } catch { -// console.warn('FAQ not available on withdrawals page!'); -// } -// const faqProps = { -// // We can't use `undefined` here. -// // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. -// // Will be error: SerializableError: Error serializing `.faqListRequest` returned from `getStaticProps`. -// faqListRequest: foundPageRequest?.faq || null, -// faqListClaim: foundPageClaim?.faq || null, -// revalidate: FAQ_REVALIDATE_SECS, -// }; -// -// // Mode -// if (!params?.mode) return { notFound: true }; -// return { props: { mode: params.mode, ...faqProps } }; -// }; +export const getStaticProps: GetStaticProps< + WithdrawalsModePageParams, + WithdrawalsModePageParams +> = async ({ params }) => { + // FAQ + let pageRequestFAQ: PageFAQ | null = null; + let pageClaimFAQ: PageFAQ | null = null; + + try { + // FAQ request + const rawRequestFaqData = await getFaq( + 'ethereum-staking-widget/faq-withdrawals-page-request-tab.md', + ); + if (rawRequestFaqData) { + pageRequestFAQ = await parseFAQ(rawRequestFaqData); + } + + // FAQ claim + const rawClaimFaqData = await getFaq( + 'ethereum-staking-widget/faq-withdrawals-page-claim-tab.md', + ); + if (rawClaimFaqData) { + pageClaimFAQ = await parseFAQ(rawClaimFaqData); + } + } catch { + console.warn('FAQ not available on withdrawals page!'); + } + const faqProps = { + // We can't use `undefined` with `pageRequestFAQ` and `pageClaimFAQ`. + // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. + pageRequestFAQ: pageRequestFAQ || null, + pageClaimFAQ: pageClaimFAQ || null, + revalidate: FAQ_REVALIDATE_SECS, + }; + + // Mode + if (!params?.mode) return { notFound: true }; + return { props: { mode: params.mode, ...faqProps } }; +}; diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index 72d6dc4e5..b5f11e8d7 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -1,6 +1,7 @@ import { FC } from 'react'; import { GetStaticPaths, GetStaticProps } from 'next'; import Head from 'next/head'; + import { parseFAQ, PageFAQ } from '@lidofinance/ui-faq'; import { FAQ_REVALIDATE_SECS } from 'config'; From 244d939fa73e83bf1a33175d92fc190e116a9a93 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 21 Nov 2023 10:53:07 +0300 Subject: [PATCH 26/47] revert: remove axios --- utils/axios/clientAxios.ts | 19 -------- utils/axios/index.ts | 3 -- utils/axios/instance.ts | 16 ------- utils/axios/internalAxiosError.ts | 15 ------- utilsApi/serverAxios.ts | 73 ------------------------------- 5 files changed, 126 deletions(-) delete mode 100644 utils/axios/clientAxios.ts delete mode 100644 utils/axios/index.ts delete mode 100644 utils/axios/instance.ts delete mode 100644 utils/axios/internalAxiosError.ts delete mode 100644 utilsApi/serverAxios.ts diff --git a/utils/axios/clientAxios.ts b/utils/axios/clientAxios.ts deleted file mode 100644 index 8122700dc..000000000 --- a/utils/axios/clientAxios.ts +++ /dev/null @@ -1,19 +0,0 @@ -// eslint-disable-next-line import/no-extraneous-dependencies -import { AxiosError, CreateAxiosDefaults } from 'axios'; -import { _createAxios } from './instance'; -import { InternalAxiosError } from './internalAxiosError'; - -const errorHandler = (error: AxiosError) => { - return Promise.reject(new InternalAxiosError(error)); -}; - -export const createClientAxios = (axiosConfig?: CreateAxiosDefaults) => { - const instance = _createAxios(axiosConfig); - - instance.interceptors.request.use(null, errorHandler); - instance.interceptors.response.use(null, errorHandler); - - return instance; -}; - -export const clientAxios = createClientAxios(); diff --git a/utils/axios/index.ts b/utils/axios/index.ts deleted file mode 100644 index 3feafc3eb..000000000 --- a/utils/axios/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './clientAxios'; -export * from './instance'; -export * from './internalAxiosError'; diff --git a/utils/axios/instance.ts b/utils/axios/instance.ts deleted file mode 100644 index 4c2337555..000000000 --- a/utils/axios/instance.ts +++ /dev/null @@ -1,16 +0,0 @@ -// eslint-disable-next-line import/no-extraneous-dependencies -import Axios, { CreateAxiosDefaults } from 'axios'; -import { AXIOS_REQUEST_TIMEOUT_MS } from 'config'; - -declare module 'axios' { - export interface InternalAxiosRequestConfig { - metadata: any; - } -} - -export const _createAxios = (config?: CreateAxiosDefaults) => { - return Axios.create({ - timeout: AXIOS_REQUEST_TIMEOUT_MS, - ...(config ?? {}), - }); -}; diff --git a/utils/axios/internalAxiosError.ts b/utils/axios/internalAxiosError.ts deleted file mode 100644 index 0aa80ab9d..000000000 --- a/utils/axios/internalAxiosError.ts +++ /dev/null @@ -1,15 +0,0 @@ -// eslint-disable-next-line import/no-extraneous-dependencies -import { AxiosError } from 'axios'; - -export class InternalAxiosError extends Error { - /* - * We must not add error as public property, - * otherwise logs will have all info about request & response, - * which will bloat logs on grafana with useless information. - */ - constructor(error: AxiosError) { - super( - `Request ${error.config?.method} to ${error.config?.url} failed: ${error.status} <${error.code}>`, - ); - } -} diff --git a/utilsApi/serverAxios.ts b/utilsApi/serverAxios.ts deleted file mode 100644 index 2c56f0eee..000000000 --- a/utilsApi/serverAxios.ts +++ /dev/null @@ -1,73 +0,0 @@ -// eslint-disable-next-line import/no-extraneous-dependencies -import { CreateAxiosDefaults } from 'axios'; -import { getStatusLabel } from '@lidofinance/api-metrics'; -import { _createAxios, InternalAxiosError } from 'utils/axios'; -import Metrics from './metrics'; - -export const createServerAxios = (axiosConfig?: CreateAxiosDefaults) => { - const instance = _createAxios(axiosConfig); - - instance.interceptors.request.use( - (config) => { - const requestURL = config.url; - if (requestURL == null) { - return config; - } - - config.metadata ??= {}; - config.metadata.startTime = Date.now(); - return config; - }, - (error) => { - return Promise.reject(new InternalAxiosError(error)); - }, - ); - - instance.interceptors.response.use( - (response) => { - const requestURL = response.config.url; - if (requestURL == null) { - return response; - } - - const startTime = response.config.metadata.startTime; - if (startTime == null) { - return response; - } - - const endTime = Date.now(); - const hostname = new URL(requestURL).hostname; - const status = getStatusLabel(response.status); - Metrics.request.apiTimingsExternal - .labels({ status, hostname }) - .observe((endTime - startTime) / 1000); - - return response; - }, - (error) => { - const requestURL = error.config.url; - if (requestURL == null) { - // looks like this is not an axios error - return Promise.reject(error); - } - - const startTime = error.response.config.metadata.startTime; - if (startTime == null) { - return Promise.reject(error); - } - - const endTime = Date.now(); - const hostname = new URL(requestURL).hostname; - const status = getStatusLabel(error.response.status); - Metrics.request.apiTimingsExternal - .labels({ status, hostname }) - .observe((endTime - startTime) / 1000); - - return Promise.reject(new InternalAxiosError(error)); - }, - ); - - return instance; -}; - -export const serverAxios = createServerAxios(); From f7d1c57ae2bdc89f5b80726b59ea0ade8adbf343 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 21 Nov 2023 10:53:39 +0300 Subject: [PATCH 27/47] refactor: code style --- utilsApi/get-faq.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utilsApi/get-faq.ts b/utilsApi/get-faq.ts index 3f6f8e640..38448a908 100644 --- a/utilsApi/get-faq.ts +++ b/utilsApi/get-faq.ts @@ -3,7 +3,7 @@ import { standardFetcher } from 'utils/standardFetcher'; import { responseTimeExternalMetricWrapper } from './fetchApiWrapper'; export const getFaq = async (path: string): Promise => { - console.debug('[getFaq] Started fetching from CMS...'); + console.debug(`[getFaq] Started fetching the '${path}' from CMS...`); const cmsHost = serverRuntimeConfig.faqContentHost; const data = await responseTimeExternalMetricWrapper({ @@ -18,10 +18,10 @@ export const getFaq = async (path: string): Promise => { }); if (!data) { - console.error('[getFaq] Request to CMS failed'); + console.error(`[getFaq] Request the '${path}' to CMS failed!`); return null; } - console.debug('[getFaq] Fetched from CMS was successes'); + console.debug(`[getFaq] Fetched the '${path}' from CMS was successes!`); return data; }; From 76d5f89f5e6719fee4e589fe8a09a5d7dbf5941f Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 21 Nov 2023 10:54:36 +0300 Subject: [PATCH 28/47] chore(deps): remove react-markdown and react-to-text --- package.json | 2 -- yarn.lock | 6 ------ 2 files changed, 8 deletions(-) diff --git a/package.json b/package.json index 447ca163f..b381989a3 100644 --- a/package.json +++ b/package.json @@ -66,8 +66,6 @@ "react-dom": "^18.2.0", "react-hook-form": "^7.45.2", "react-is": "^18.2.0", - "react-markdown": "^8.0.7", - "react-to-text": "^2.0.1", "react-transition-group": "^4.4.2", "reef-knot": "^1.8.0", "remark": "^13.0.0", diff --git a/yarn.lock b/yarn.lock index 164fef022..a668a6222 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2749,7 +2749,6 @@ js-yaml "^4.1.0" mdast "^3.0.0" react-markdown "^8.0.7" - react-to-text "^2.0.1" remark-directive "^2.0.1" remark-frontmatter "^4.0.1" remark-parse "^10.0.2" @@ -9852,11 +9851,6 @@ react-markdown@^8.0.7: unist-util-visit "^4.0.0" vfile "^5.0.0" -react-to-text@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/react-to-text/-/react-to-text-2.0.1.tgz#6a6c1b6c9cf2de6a7e7117b6fff1d7b25d1b4cd3" - integrity sha512-4lGuxY+/PqASinxrv7/ydE8wGdnZCGsTNIFiO6DKykzy703jI5pc0/fyyB6BNrBWmtYJ7H9dGY80PJ3V1/8UIg== - react-toastify@7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-7.0.4.tgz#7d0b743f2b96f65754264ca6eae31911a82378db" From 5f8c95b852ffa615a1c99a576cba220b67e8eed4 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 21 Nov 2023 11:20:42 +0300 Subject: [PATCH 29/47] fix: matomo event name generator --- utils/faq-matomo.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/utils/faq-matomo.ts b/utils/faq-matomo.ts index 10a09ad06..f6f57911a 100644 --- a/utils/faq-matomo.ts +++ b/utils/faq-matomo.ts @@ -12,6 +12,8 @@ export const faqAccordionOnLinkClick = ({ }: FaqAccordionOnLinkClickFactoryProps) => { const actionEvent = `Push «${linkContent}» in FAQ ${question} on stake widget`; // Make event like `_faq___` - const nameEvent = `eth_widget_faq_${pageId}_${questionId}_${linkContent}`; + // The `link_content` may be with ' ' - space + const nameEvent = + `eth_widget_faq_${pageId}_${questionId}_${linkContent}`.replace(' ', '_'); trackEvent('Ethereum_Staking_Widget', actionEvent, nameEvent); }; From 49d50bbf62c735e3b8e7471537a125f222b94251 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 21 Nov 2023 11:22:42 +0300 Subject: [PATCH 30/47] chore(deps): remove @lidofinance/lido-ui-blocks --- package.json | 1 - yarn.lock | 12 ------------ 2 files changed, 13 deletions(-) diff --git a/package.json b/package.json index b381989a3..3e391d133 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,6 @@ "@lidofinance/eth-api-providers": "^0.28.0", "@lidofinance/eth-providers": "^0.28.0", "@lidofinance/lido-ui": "3.16.0", - "@lidofinance/lido-ui-blocks": "2.10.2", "@lidofinance/next-api-wrapper": "^0.28.0", "@lidofinance/next-ip-rate-limit": "^0.28.0", "@lidofinance/next-pages": "^0.28.0", diff --git a/yarn.lock b/yarn.lock index a668a6222..fd5c3270c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2647,11 +2647,6 @@ resolved "https://registry.yarnpkg.com/@lidofinance/api-rpc/-/api-rpc-0.28.0.tgz#68d5a061a2b06cf1c3bc9c211df48a4a54b2a721" integrity sha512-6ImH3J50XMhERM1QzoTNTpFBAP829pzHoHODegBErXmCf+bKrvWoFE9oYhhfXwfiZeQ/34W96NRk/D9DwDzivA== -"@lidofinance/blocks-connect-wallet-modal@2.11.2": - version "2.11.2" - resolved "https://registry.yarnpkg.com/@lidofinance/blocks-connect-wallet-modal/-/blocks-connect-wallet-modal-2.11.2.tgz#a8593384e92a1f5535a42f76ee8fcc22bd5c0318" - integrity sha512-En9QkhSuFrbtBMFonDAW+49ypvOrxxDmdRh2ly9YKogQ2Rag0caKdmT3QVXW+kh+qKYVegQklftGmSQX0Fnb0w== - "@lidofinance/eslint-config@^0.34.0": version "0.34.0" resolved "https://registry.yarnpkg.com/@lidofinance/eslint-config/-/eslint-config-0.34.0.tgz#5ee60bcf6c2da39bcb712a0169d7365dceb08cfb" @@ -2669,13 +2664,6 @@ resolved "https://registry.yarnpkg.com/@lidofinance/eth-providers/-/eth-providers-0.28.0.tgz#069dfcd66f97418298646abd2742e8e997c6fbbb" integrity sha512-oH2nU7jVPkn1mii56vp3gBFZNFR/LysxiKBUwV2freFoizQHNLeWWjU1b8a+l1I020LzbxHcatOkV6z9ur5YfA== -"@lidofinance/lido-ui-blocks@2.10.2": - version "2.10.2" - resolved "https://registry.yarnpkg.com/@lidofinance/lido-ui-blocks/-/lido-ui-blocks-2.10.2.tgz#f5075ea2a6524006ee0b145b61495472b4d678d0" - integrity sha512-2UDI1N7FypwQuqspQb8HCts5qeWbFp9iwtxRJL1gHIpzlz5VqqRS4xTpFdkIDDYS3Z/nrNMhZ9DlNqK6rRxafw== - dependencies: - "@lidofinance/blocks-connect-wallet-modal" "2.11.2" - "@lidofinance/lido-ui@3.14.1": version "3.14.1" resolved "https://registry.yarnpkg.com/@lidofinance/lido-ui/-/lido-ui-3.14.1.tgz#780d32c3321295a40d44c352a307029a2b574e43" From 7e1d4bac10d388d371a6cc6ea48db5302b8670ff Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 21 Nov 2023 15:35:17 +0300 Subject: [PATCH 31/47] refactor: page faq's checks --- features/home/stake-faq/stake-faq.tsx | 34 +++++++------- .../withdrawals/withdrawals-faq/claim-faq.tsx | 30 +++++++------ .../withdrawals-faq/request-faq.tsx | 44 ++++++++++--------- features/wsteth/shared/wrap-faq/wrap-faq.tsx | 34 +++++++------- 4 files changed, 75 insertions(+), 67 deletions(-) diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index 6f32741ed..01f656b95 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -1,30 +1,32 @@ import React, { FC } from 'react'; -import { FaqAccordion, PageFAQ } from '@lidofinance/ui-faq'; +import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; -interface StakeFaqProps { +type StakeFaqProps = { pageFAQ?: PageFAQ; -} +}; export const StakeFaq: FC = ({ pageFAQ }) => { + if (!pageFAQ || !isPageFAQ(pageFAQ)) { + return null; + } + return ( <> - {pageFAQ && pageFAQ.faq && ( -
- { - faqAccordionOnLinkClick({ - pageId: pageFAQ.pageIdentification, - ...props, - }); - }} - /> -
- )} +
+ { + faqAccordionOnLinkClick({ + pageId: pageFAQ.pageIdentification, + ...props, + }); + }} + /> +
); }; diff --git a/features/withdrawals/withdrawals-faq/claim-faq.tsx b/features/withdrawals/withdrawals-faq/claim-faq.tsx index 481701861..350e2dbd2 100644 --- a/features/withdrawals/withdrawals-faq/claim-faq.tsx +++ b/features/withdrawals/withdrawals-faq/claim-faq.tsx @@ -1,6 +1,6 @@ import React, { FC } from 'react'; -import { FaqAccordion, PageFAQ } from '@lidofinance/ui-faq'; +import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; @@ -10,21 +10,23 @@ type ClaimFaqProps = { }; export const ClaimFaq: FC = ({ pageFAQ }) => { + if (!pageFAQ || !isPageFAQ(pageFAQ)) { + return null; + } + return ( <> - {pageFAQ && pageFAQ.faq && ( -
- { - faqAccordionOnLinkClick({ - pageId: pageFAQ.pageIdentification, - ...props, - }); - }} - /> -
- )} +
+ { + faqAccordionOnLinkClick({ + pageId: pageFAQ.pageIdentification, + ...props, + }); + }} + /> +
); }; diff --git a/features/withdrawals/withdrawals-faq/request-faq.tsx b/features/withdrawals/withdrawals-faq/request-faq.tsx index 6ccd91622..a49416cbe 100644 --- a/features/withdrawals/withdrawals-faq/request-faq.tsx +++ b/features/withdrawals/withdrawals-faq/request-faq.tsx @@ -1,6 +1,6 @@ import React, { FC } from 'react'; -import { FaqAccordion, PageFAQ } from '@lidofinance/ui-faq'; +import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; @@ -15,29 +15,31 @@ type RequestFaqProps = { }; export const RequestFaq: FC = ({ pageFAQ }) => { + if (!pageFAQ || !isPageFAQ(pageFAQ)) { + return null; + } + return ( <> - {pageFAQ && pageFAQ.faq && ( -
- { - faqAccordionOnLinkClick({ - pageId: pageFAQ.pageIdentification, - ...props, - }); - }} - /> +
+ { + faqAccordionOnLinkClick({ + pageId: pageFAQ.pageIdentification, + ...props, + }); + }} + /> - {/* - - */} -
- )} + {/* + + */} +
); }; diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index 522317158..6a8595b3c 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -1,30 +1,32 @@ import React, { FC } from 'react'; -import { FaqAccordion, PageFAQ } from '@lidofinance/ui-faq'; +import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; -interface WrapFaqProps { +type WrapFaqProps = { pageFAQ?: PageFAQ; -} +}; export const WrapFaq: FC = ({ pageFAQ }) => { + if (!pageFAQ || !isPageFAQ(pageFAQ)) { + return null; + } + return ( <> - {pageFAQ && pageFAQ.faq && ( -
- { - faqAccordionOnLinkClick({ - pageId: pageFAQ.pageIdentification, - ...props, - }); - }} - /> -
- )} +
+ { + faqAccordionOnLinkClick({ + pageId: pageFAQ.pageIdentification, + ...props, + }); + }} + /> +
); }; From 28181a95317d20f00aea4478ca7c6779866db0d2 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Fri, 1 Dec 2023 19:48:59 +0300 Subject: [PATCH 32/47] refactor(FAQ): support IPFS SPA and DRY --- features/home/home-page-regular.tsx | 34 ++--------------------- features/ipfs/home-page-ipfs.tsx | 36 ++++++++++++++++++++---- pages/index.tsx | 43 +++++++++++++++++++++++++++-- pages/withdrawals/[mode].tsx | 34 +++++------------------ pages/wrap/[[...mode]].tsx | 28 +++++-------------- utilsApi/get-faq.ts | 18 +++++++++++- 6 files changed, 104 insertions(+), 89 deletions(-) diff --git a/features/home/home-page-regular.tsx b/features/home/home-page-regular.tsx index 24d4f3b1e..a17a0b197 100644 --- a/features/home/home-page-regular.tsx +++ b/features/home/home-page-regular.tsx @@ -1,26 +1,23 @@ import { FC, Fragment } from 'react'; -import { GetStaticProps } from 'next'; import Head from 'next/head'; -import { parseFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { PageFAQ } from '@lidofinance/ui-faq'; -import { FAQ_REVALIDATE_SECS } from 'config'; import { GoerliSunsetBanner } from 'shared/banners/goerli-sunset'; import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -import { getFaq } from 'utilsApi/get-faq'; import { Wallet } from './wallet/wallet'; import { StakeForm } from './stake-form/stake-form'; import { StakeFaq } from './stake-faq/stake-faq'; import { LidoStats } from './lido-stats/lido-stats'; -type HomeProps = { +export type HomePageRegularProps = { pageFAQ?: PageFAQ | null; }; -const HomePageRegular: FC = ({ pageFAQ }) => { +const HomePageRegular: FC = ({ pageFAQ }) => { const key = useWeb3Key(); return ( @@ -48,28 +45,3 @@ const HomePageRegular: FC = ({ pageFAQ }) => { }; export default HomePageRegular; - -export const getStaticProps: GetStaticProps = async () => { - // FAQ - let pageFAQ: PageFAQ | null = null; - - try { - const rawFaqData = await getFaq( - 'ethereum-staking-widget/faq-stake-page.md', - ); - if (rawFaqData) { - pageFAQ = await parseFAQ(rawFaqData); - } - } catch { - console.warn('FAQ not available on stake page!'); - } - - return { - props: { - // We can't use `undefined` with `pageFAQ`. - // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. - pageFAQ: pageFAQ || null, - }, - revalidate: FAQ_REVALIDATE_SECS, - }; -}; diff --git a/features/ipfs/home-page-ipfs.tsx b/features/ipfs/home-page-ipfs.tsx index d205078e4..cb062568a 100644 --- a/features/ipfs/home-page-ipfs.tsx +++ b/features/ipfs/home-page-ipfs.tsx @@ -1,6 +1,8 @@ import { FC, useMemo, useEffect } from 'react'; import { useRouter } from 'next/router'; +import { PageFAQ } from '@lidofinance/ui-faq'; + import { getPathWithoutFirstSlash, HOME_PATH, @@ -37,7 +39,19 @@ const IPFS_ROUTABLE_PAGES = [ getPathWithoutFirstSlash(SETTINGS_PATH), ]; -const HomePageIpfs: FC = () => { +export type HomePageIpfsProps = { + stakePageFAQ?: PageFAQ | null; + wrapModePageFAQ?: PageFAQ | null; + withdrawalsPageRequestFAQ?: PageFAQ | null; + withdrawalsPageClaimFAQ?: PageFAQ | null; +}; + +const HomePageIpfs: FC = ({ + stakePageFAQ, + wrapModePageFAQ, + withdrawalsPageRequestFAQ, + withdrawalsPageClaimFAQ, +}) => { const router = useRouter(); const { asPath } = router; @@ -75,18 +89,28 @@ const HomePageIpfs: FC = () => { switch (parsedPath[0]) { case getPathWithoutFirstSlash(WRAP_PATH): { if (parsedPath[1] === 'unwrap') { - spaPage = ; + spaPage = ; } else { - spaPage = ; + spaPage = ; } break; } case getPathWithoutFirstSlash(WITHDRAWALS_PATH): { if (parsedPath[1] === 'claim') { - spaPage = ; + spaPage = ( + + ); } else { - spaPage = ; + spaPage = ( + + ); } break; } @@ -107,7 +131,7 @@ const HomePageIpfs: FC = () => { } default: { - spaPage = ; + spaPage = ; } } diff --git a/pages/index.tsx b/pages/index.tsx index 84fda7e4e..edbb7a949 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,6 +1,43 @@ -import { dynamics } from 'config'; +import { GetStaticProps } from 'next'; -import HomePageRegular from 'features/home/home-page-regular'; -import HomePageIpfs from 'features/ipfs/home-page-ipfs'; +import { FAQ_REVALIDATE_SECS, dynamics } from 'config'; +import HomePageRegular, { + HomePageRegularProps, +} from 'features/home/home-page-regular'; +import HomePageIpfs, { HomePageIpfsProps } from 'features/ipfs/home-page-ipfs'; +import { getFAQ } from 'utilsApi/get-faq'; export default dynamics.ipfsMode ? HomePageIpfs : HomePageRegular; + +export const getStaticProps: GetStaticProps< + HomePageRegularProps | HomePageIpfsProps +> = async () => { + const stakePageFAQPath = 'ethereum-staking-widget/faq-stake-page.md'; + + // FAQ for IPFS SPA + if (process.env.IPFS_MODE) { + return { + props: { + stakePageFAQ: await getFAQ(stakePageFAQPath), + wrapModePageFAQ: await getFAQ( + 'ethereum-staking-widget/faq-wrap-and-unwrap-page.md', + ), + withdrawalsPageRequestFAQ: await getFAQ( + 'ethereum-staking-widget/faq-withdrawals-page-request-tab.md', + ), + withdrawalsPageClaimFAQ: await getFAQ( + 'ethereum-staking-widget/faq-withdrawals-page-claim-tab.md', + ), + }, + revalidate: FAQ_REVALIDATE_SECS, + }; + } + + // FAQ for home page regular + return { + props: { + pageFAQ: await getFAQ(stakePageFAQPath), + }, + revalidate: FAQ_REVALIDATE_SECS, + }; +}; diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index de5d5aad0..95697c12d 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -2,7 +2,7 @@ import { FC } from 'react'; import { GetStaticPaths, GetStaticProps } from 'next'; import Head from 'next/head'; -import { parseFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { PageFAQ } from '@lidofinance/ui-faq'; import { FAQ_REVALIDATE_SECS } from 'config'; import { WithdrawalsTabs } from 'features/withdrawals'; @@ -10,7 +10,7 @@ import { WithdrawalsProvider } from 'features/withdrawals/contexts/withdrawals-c import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -import { getFaq } from '../../utilsApi/get-faq'; +import { getFAQ } from 'utilsApi/get-faq'; const Withdrawals: FC = ({ mode, @@ -65,33 +65,13 @@ export const getStaticProps: GetStaticProps< WithdrawalsModePageParams > = async ({ params }) => { // FAQ - let pageRequestFAQ: PageFAQ | null = null; - let pageClaimFAQ: PageFAQ | null = null; - - try { - // FAQ request - const rawRequestFaqData = await getFaq( + const faqProps = { + pageRequestFAQ: await getFAQ( 'ethereum-staking-widget/faq-withdrawals-page-request-tab.md', - ); - if (rawRequestFaqData) { - pageRequestFAQ = await parseFAQ(rawRequestFaqData); - } - - // FAQ claim - const rawClaimFaqData = await getFaq( + ), + pageClaimFAQ: await getFAQ( 'ethereum-staking-widget/faq-withdrawals-page-claim-tab.md', - ); - if (rawClaimFaqData) { - pageClaimFAQ = await parseFAQ(rawClaimFaqData); - } - } catch { - console.warn('FAQ not available on withdrawals page!'); - } - const faqProps = { - // We can't use `undefined` with `pageRequestFAQ` and `pageClaimFAQ`. - // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. - pageRequestFAQ: pageRequestFAQ || null, - pageClaimFAQ: pageClaimFAQ || null, + ), revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index c7e8cf0b3..c717382a4 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -2,13 +2,13 @@ import { FC } from 'react'; import { GetStaticPaths, GetStaticProps } from 'next'; import Head from 'next/head'; -import { parseFAQ, PageFAQ } from '@lidofinance/ui-faq'; +import { PageFAQ } from '@lidofinance/ui-faq'; import { FAQ_REVALIDATE_SECS } from 'config'; import { WrapUnwrapTabs } from 'features/wsteth/wrap-unwrap-tabs'; import { Layout } from 'shared/components'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -import { getFaq } from 'utilsApi/get-faq'; +import { getFAQ } from 'utilsApi/get-faq'; const WrapPage: FC = ({ mode, pageFAQ }) => { const key = useWeb3Key(); @@ -51,31 +51,17 @@ export const getStaticProps: GetStaticProps< WrapModePageParams > = async ({ params }) => { // FAQ - let pageFAQ: PageFAQ | null = null; - - try { - const rawFaqData = await getFaq( + const faqProps = { + pageFAQ: await getFAQ( 'ethereum-staking-widget/faq-wrap-and-unwrap-page.md', - ); - if (rawFaqData) { - pageFAQ = await parseFAQ(rawFaqData); - } - } catch { - console.warn('FAQ not available on wrap/unwrap page!'); - } - - const pageFaqProps = { - // We can't use `undefined` with `pageFAQ`. - // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. - pageFAQ: pageFAQ || null, + ), revalidate: FAQ_REVALIDATE_SECS, }; // Mode const mode = params?.mode; - if (!mode) return { props: { mode: 'wrap', ...pageFaqProps } }; - if (mode[0] === 'unwrap') - return { props: { mode: 'unwrap', ...pageFaqProps } }; + if (!mode) return { props: { mode: 'wrap', ...faqProps } }; + if (mode[0] === 'unwrap') return { props: { mode: 'unwrap', ...faqProps } }; return { notFound: true }; }; diff --git a/utilsApi/get-faq.ts b/utilsApi/get-faq.ts index 38448a908..b34273e80 100644 --- a/utilsApi/get-faq.ts +++ b/utilsApi/get-faq.ts @@ -1,8 +1,9 @@ +import { PageFAQ, parseFAQ } from '@lidofinance/ui-faq'; import { serverRuntimeConfig } from 'config'; import { standardFetcher } from 'utils/standardFetcher'; import { responseTimeExternalMetricWrapper } from './fetchApiWrapper'; -export const getFaq = async (path: string): Promise => { +export const fetchFAQ = async (path: string): Promise => { console.debug(`[getFaq] Started fetching the '${path}' from CMS...`); const cmsHost = serverRuntimeConfig.faqContentHost; @@ -25,3 +26,18 @@ export const getFaq = async (path: string): Promise => { console.debug(`[getFaq] Fetched the '${path}' from CMS was successes!`); return data; }; + +export const getFAQ = async (path: string): Promise => { + try { + const rawFaqData = await fetchFAQ(path); + + // We can't use `undefined` with Next `getStaticProps`. + // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. + if (!rawFaqData) return null; + + return await parseFAQ(rawFaqData); + } catch (err) { + console.error(`Fetch or parse FAQ (${path}) raised exception: ${err}`); + return null; + } +}; From 1970a1050a5c26e7d299a3c0a3c93331281f33b2 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Fri, 1 Dec 2023 19:51:38 +0300 Subject: [PATCH 33/47] refactor(utilsApi FAQ): rename file --- pages/index.tsx | 2 +- pages/withdrawals/[mode].tsx | 2 +- pages/wrap/[[...mode]].tsx | 2 +- utilsApi/{get-faq.ts => faq.ts} | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename utilsApi/{get-faq.ts => faq.ts} (100%) diff --git a/pages/index.tsx b/pages/index.tsx index edbb7a949..f2a5b9f72 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -5,7 +5,7 @@ import HomePageRegular, { HomePageRegularProps, } from 'features/home/home-page-regular'; import HomePageIpfs, { HomePageIpfsProps } from 'features/ipfs/home-page-ipfs'; -import { getFAQ } from 'utilsApi/get-faq'; +import { getFAQ } from 'utilsApi/faq'; export default dynamics.ipfsMode ? HomePageIpfs : HomePageRegular; diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index 95697c12d..4187198db 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -10,7 +10,7 @@ import { WithdrawalsProvider } from 'features/withdrawals/contexts/withdrawals-c import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -import { getFAQ } from 'utilsApi/get-faq'; +import { getFAQ } from 'utilsApi/faq'; const Withdrawals: FC = ({ mode, diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index c717382a4..652638367 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -8,7 +8,7 @@ import { FAQ_REVALIDATE_SECS } from 'config'; import { WrapUnwrapTabs } from 'features/wsteth/wrap-unwrap-tabs'; import { Layout } from 'shared/components'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -import { getFAQ } from 'utilsApi/get-faq'; +import { getFAQ } from 'utilsApi/faq'; const WrapPage: FC = ({ mode, pageFAQ }) => { const key = useWeb3Key(); diff --git a/utilsApi/get-faq.ts b/utilsApi/faq.ts similarity index 100% rename from utilsApi/get-faq.ts rename to utilsApi/faq.ts From a09d2e47d56ca01516d64e65983f26c398e0c854 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Mon, 4 Dec 2023 13:22:26 +0300 Subject: [PATCH 34/47] refactor(FAQ): revalidate FAQ in IPFS mode on Stake Page --- .env.example | 2 +- env-dynamics.mjs | 3 ++ features/home/home-page-regular.tsx | 6 ++- features/home/stake-faq/stake-faq.tsx | 18 +++++++-- features/ipfs/home-page-ipfs.tsx | 54 +++++++++++++++++++------ next.config.mjs | 4 +- pages/index.tsx | 42 ++++++++++++------- pages/withdrawals/[mode].tsx | 13 +++--- pages/wrap/[[...mode]].tsx | 8 ++-- shared/hooks/use-faq-on-client.ts | 33 +++++++++++++++ utils/faq.ts | 54 +++++++++++++++++++++++++ utils/fetcher-with-service-response.ts | 56 ++++++++++++++++++++++++++ utils/standardFetcher.ts | 14 +------ utilsApi/faq.ts | 43 ++++++++++++-------- 14 files changed, 275 insertions(+), 75 deletions(-) create mode 100644 shared/hooks/use-faq-on-client.ts create mode 100644 utils/faq.ts create mode 100644 utils/fetcher-with-service-response.ts diff --git a/.env.example b/.env.example index 4e6d94e2b..1854c3a3f 100644 --- a/.env.example +++ b/.env.example @@ -58,4 +58,4 @@ WALLETCONNECT_PROJECT_ID= # ETH Stake Widget API for IPFS mode WIDGET_API_BASE_PATH_FOR_IPFS= -FAQ_CONTENT_HOST= +FAQ_CONTENT_PART_OF_URL= diff --git a/env-dynamics.mjs b/env-dynamics.mjs index 60d85d5c3..12b6eb7a3 100644 --- a/env-dynamics.mjs +++ b/env-dynamics.mjs @@ -47,3 +47,6 @@ export const prefillUnsafeElRpcUrls17000 = process.env.PREFILL_UNSAFE_EL_RPC_URL /** @type string */ export const widgetApiBasePathForIpfs = process.env.WIDGET_API_BASE_PATH_FOR_IPFS; + +/** @type string */ +export const faqContentPartOfUrl = process.env.FAQ_CONTENT_PART_OF_URL; diff --git a/features/home/home-page-regular.tsx b/features/home/home-page-regular.tsx index a17a0b197..f51b7c9ab 100644 --- a/features/home/home-page-regular.tsx +++ b/features/home/home-page-regular.tsx @@ -15,9 +15,11 @@ import { LidoStats } from './lido-stats/lido-stats'; export type HomePageRegularProps = { pageFAQ?: PageFAQ | null; + // IPFS actual only! + eTag?: string | null; }; -const HomePageRegular: FC = ({ pageFAQ }) => { +const HomePageRegular: FC = ({ pageFAQ, eTag }) => { const key = useWeb3Key(); return ( @@ -38,7 +40,7 @@ const HomePageRegular: FC = ({ pageFAQ }) => { - + ); diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index 01f656b95..0caa9fb7b 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -3,14 +3,22 @@ import React, { FC } from 'react'; import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; +import { useFetchFaqOnClientIfETagWereChanged } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type StakeFaqProps = { pageFAQ?: PageFAQ; + eTag?: string; }; -export const StakeFaq: FC = ({ pageFAQ }) => { - if (!pageFAQ || !isPageFAQ(pageFAQ)) { +export const StakeFaq: FC = ({ pageFAQ, eTag }) => { + // This hook actual on IPFS only (see: the `eTag` prop drilling)! + const { data: pageFaqIpfsMode } = useFetchFaqOnClientIfETagWereChanged( + '/faq-stake-page.md', + eTag, + ); + + if (!pageFAQ || (!isPageFAQ(pageFAQ) && !pageFaqIpfsMode)) { return null; } @@ -18,10 +26,12 @@ export const StakeFaq: FC = ({ pageFAQ }) => { <>
{ faqAccordionOnLinkClick({ - pageId: pageFAQ.pageIdentification, + pageId: + pageFaqIpfsMode?.pageIdentification || + pageFAQ?.pageIdentification, ...props, }); }} diff --git a/features/ipfs/home-page-ipfs.tsx b/features/ipfs/home-page-ipfs.tsx index cb062568a..c107d53e7 100644 --- a/features/ipfs/home-page-ipfs.tsx +++ b/features/ipfs/home-page-ipfs.tsx @@ -40,17 +40,29 @@ const IPFS_ROUTABLE_PAGES = [ ]; export type HomePageIpfsProps = { - stakePageFAQ?: PageFAQ | null; - wrapModePageFAQ?: PageFAQ | null; - withdrawalsPageRequestFAQ?: PageFAQ | null; - withdrawalsPageClaimFAQ?: PageFAQ | null; + stakePage?: { + faq: PageFAQ | null; + eTag?: string | null; + }; + wrapPage?: { + faq: PageFAQ | null; + eTag?: string | null; + }; + withdrawalsPageRequest?: { + faq: PageFAQ | null; + eTag?: string | null; + }; + withdrawalsPageClaim?: { + faq: PageFAQ | null; + eTag?: string | null; + }; }; const HomePageIpfs: FC = ({ - stakePageFAQ, - wrapModePageFAQ, - withdrawalsPageRequestFAQ, - withdrawalsPageClaimFAQ, + stakePage, + wrapPage, + withdrawalsPageRequest, + withdrawalsPageClaim, }) => { const router = useRouter(); const { asPath } = router; @@ -89,9 +101,21 @@ const HomePageIpfs: FC = ({ switch (parsedPath[0]) { case getPathWithoutFirstSlash(WRAP_PATH): { if (parsedPath[1] === 'unwrap') { - spaPage = ; + spaPage = ( + + ); } else { - spaPage = ; + spaPage = ( + + ); } break; } @@ -101,14 +125,16 @@ const HomePageIpfs: FC = ({ spaPage = ( ); } else { spaPage = ( ); } @@ -131,7 +157,9 @@ const HomePageIpfs: FC = ({ } default: { - spaPage = ; + spaPage = ( + + ); } } diff --git a/next.config.mjs b/next.config.mjs index c91083c2e..0b110969a 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -55,7 +55,7 @@ export const CACHE_CONTROL_PAGES = [ export const CACHE_CONTROL_VALUE = 'public, max-age=15, s-max-age=30, stale-if-error=604800, stale-while-revalidate=172800'; -export const faqContentHost = process.env.FAQ_CONTENT_HOST; +export const faqContentPartOfUrl = process.env.FAQ_CONTENT_PART_OF_URL; const withBundleAnalyzer = NextBundleAnalyzer({ enabled: analyzeBundle, @@ -183,6 +183,6 @@ export default withBundleAnalyzer({ rewardsBackendAPI, defaultChain, developmentMode, - faqContentHost, + faqContentPartOfUrl, }, }); diff --git a/pages/index.tsx b/pages/index.tsx index f2a5b9f72..9926dc540 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -5,38 +5,52 @@ import HomePageRegular, { HomePageRegularProps, } from 'features/home/home-page-regular'; import HomePageIpfs, { HomePageIpfsProps } from 'features/ipfs/home-page-ipfs'; -import { getFAQ } from 'utilsApi/faq'; +import { getFaqSSR } from 'utilsApi/faq'; export default dynamics.ipfsMode ? HomePageIpfs : HomePageRegular; export const getStaticProps: GetStaticProps< HomePageRegularProps | HomePageIpfsProps > = async () => { - const stakePageFAQPath = 'ethereum-staking-widget/faq-stake-page.md'; + const stakePageFAQPath = '/faq-stake-page.md'; // FAQ for IPFS SPA if (process.env.IPFS_MODE) { + const stakePageFAQ = await getFaqSSR(stakePageFAQPath); + const wrapPageFAQ = await getFaqSSR('/faq-wrap-and-unwrap-page.md'); + const withdrawalsPageRequestFAQ = await getFaqSSR( + '/faq-withdrawals-page-request-tab.md', + ); + const withdrawalsPageClaimFAQ = await getFaqSSR( + '/faq-withdrawals-page-claim-tab.md', + ); + return { props: { - stakePageFAQ: await getFAQ(stakePageFAQPath), - wrapModePageFAQ: await getFAQ( - 'ethereum-staking-widget/faq-wrap-and-unwrap-page.md', - ), - withdrawalsPageRequestFAQ: await getFAQ( - 'ethereum-staking-widget/faq-withdrawals-page-request-tab.md', - ), - withdrawalsPageClaimFAQ: await getFAQ( - 'ethereum-staking-widget/faq-withdrawals-page-claim-tab.md', - ), + stakePage: { + faq: stakePageFAQ?.faq, + eTag: stakePageFAQ?.eTag, + }, + wrapPage: { + faq: wrapPageFAQ?.faq, + eTag: wrapPageFAQ?.eTag, + }, + withdrawalsPageRequest: { + faq: withdrawalsPageRequestFAQ?.faq, + eTag: withdrawalsPageRequestFAQ?.eTag, + }, + withdrawalsPageClaim: { + faq: withdrawalsPageClaimFAQ?.faq, + eTag: withdrawalsPageClaimFAQ?.eTag, + }, }, - revalidate: FAQ_REVALIDATE_SECS, }; } // FAQ for home page regular return { props: { - pageFAQ: await getFAQ(stakePageFAQPath), + pageFAQ: (await getFaqSSR(stakePageFAQPath))?.faq, }, revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index 4187198db..f7791f65f 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -10,7 +10,7 @@ import { WithdrawalsProvider } from 'features/withdrawals/contexts/withdrawals-c import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -import { getFAQ } from 'utilsApi/faq'; +import { getFaqSSR } from 'utilsApi/faq'; const Withdrawals: FC = ({ mode, @@ -49,6 +49,8 @@ type WithdrawalsModePageParams = { type WithdrawalsModePageProps = WithdrawalsModePageParams & { pageRequestFAQ?: PageFAQ | null; pageClaimFAQ?: PageFAQ | null; + // IPFS actual only! + eTag?: string | null; }; export const getStaticPaths: GetStaticPaths< @@ -66,12 +68,9 @@ export const getStaticProps: GetStaticProps< > = async ({ params }) => { // FAQ const faqProps = { - pageRequestFAQ: await getFAQ( - 'ethereum-staking-widget/faq-withdrawals-page-request-tab.md', - ), - pageClaimFAQ: await getFAQ( - 'ethereum-staking-widget/faq-withdrawals-page-claim-tab.md', - ), + pageRequestFAQ: (await getFaqSSR('/faq-withdrawals-page-request-tab.md')) + ?.faq, + pageClaimFAQ: (await getFaqSSR('/faq-withdrawals-page-claim-tab.md'))?.faq, revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index 652638367..b6a7c2499 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -8,7 +8,7 @@ import { FAQ_REVALIDATE_SECS } from 'config'; import { WrapUnwrapTabs } from 'features/wsteth/wrap-unwrap-tabs'; import { Layout } from 'shared/components'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; -import { getFAQ } from 'utilsApi/faq'; +import { getFaqSSR } from 'utilsApi/faq'; const WrapPage: FC = ({ mode, pageFAQ }) => { const key = useWeb3Key(); @@ -32,6 +32,8 @@ export default WrapPage; type WrapModePageProps = { mode: 'wrap' | 'unwrap'; pageFAQ?: PageFAQ | null; + // IPFS actual only! + eTag?: string | null; }; type WrapModePageParams = { @@ -52,9 +54,7 @@ export const getStaticProps: GetStaticProps< > = async ({ params }) => { // FAQ const faqProps = { - pageFAQ: await getFAQ( - 'ethereum-staking-widget/faq-wrap-and-unwrap-page.md', - ), + pageFAQ: (await getFaqSSR('/faq-wrap-and-unwrap-page.md'))?.faq, revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/shared/hooks/use-faq-on-client.ts b/shared/hooks/use-faq-on-client.ts new file mode 100644 index 000000000..068ad9508 --- /dev/null +++ b/shared/hooks/use-faq-on-client.ts @@ -0,0 +1,33 @@ +import { useLidoSWR, SWRResponse } from '@lido-sdk/react'; +import { isPageFAQ, PageFAQ } from '@lidofinance/ui-faq'; + +import { getFaqOnClient } from 'utils/faq'; +import { STRATEGY_CONSTANT } from 'utils/swrStrategies'; + +export const useFetchFaqOnClientIfETagWereChanged = ( + faqPath: string, + eTag?: string | null, +): SWRResponse => { + return useLidoSWR( + ['swr:useFetchFaqOnClientIfETagWereChanged', faqPath, eTag], + async () => { + if (!eTag) { + return undefined; + } + + const respFaq = await getFaqOnClient('/faq-stake-page.md'); + + if ( + !respFaq || + !respFaq.faq || + !isPageFAQ(respFaq.faq) || + eTag !== respFaq?.eTag + ) { + return undefined; + } + + return respFaq.faq; + }, + STRATEGY_CONSTANT, + ); +}; diff --git a/utils/faq.ts b/utils/faq.ts new file mode 100644 index 000000000..50711317b --- /dev/null +++ b/utils/faq.ts @@ -0,0 +1,54 @@ +import { PageFAQ, parseFAQ } from '@lidofinance/ui-faq'; + +import { dynamics } from 'config'; +import { fetcherWithServiceResponse } from 'utils/fetcher-with-service-response'; + +export const fetchFaqOnClient = async ( + path: string, +): Promise> | null> => { + console.debug( + `[fetchFaqOnClient] Started fetching the '${path}' from CMS...`, + ); + + const resp = await fetcherWithServiceResponse( + `${dynamics.faqContentPartOfUrl}/${path}`, + { + method: 'GET', + headers: { + 'Content-type': 'text/html', + }, + }, + ); + + if (!resp || !resp.data) { + console.error(`[fetchFaqOnClient] Request the '${path}' to CMS failed!`); + return null; + } + + console.debug( + `[fetchFaqOnClient] Fetched the '${path}' from CMS was successes!`, + ); + return resp; +}; + +export const getFaqOnClient = async ( + path: string, +): Promise<{ faq?: PageFAQ | null; eTag?: string | null } | null> => { + try { + const rawFaqResp = await fetchFaqOnClient(path); + + // We can't use `undefined` with Next `getStaticProps`. + // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. + if (!rawFaqResp || !rawFaqResp.data) return null; + + return { + faq: await parseFAQ(rawFaqResp.data), + eTag: rawFaqResp?.headers?.get('ETag'), + }; + } catch (err) { + console.error( + `[getFaqOnClient] Fetch or parse FAQ (${path}) raised exception: ${err}`, + ); + return null; + } +}; diff --git a/utils/fetcher-with-service-response.ts b/utils/fetcher-with-service-response.ts new file mode 100644 index 000000000..043caec3f --- /dev/null +++ b/utils/fetcher-with-service-response.ts @@ -0,0 +1,56 @@ +import { extractErrorMessage } from 'utils'; +import { FetcherError } from './fetcherError'; + +const DEFAULT_PARAMS = { + method: 'GET', + headers: { + 'Content-type': 'application/json', + }, +}; + +const extractError = async (response: Response) => { + try { + const error = await response.json(); + return extractErrorMessage(error); + } catch (error) { + return 'An error occurred while fetching the data'; + } +}; + +// Pick || Headers +type FetcherWithServiceResponse = ( + url: string, + params?: RequestInit, +) => Promise<{ data: T; headers: Headers }>; + +export const fetcherWithServiceResponse: FetcherWithServiceResponse = async ( + url, + params, +) => { + const requestInit = { + ...DEFAULT_PARAMS, + ...params, + }; + + const response = await fetch(url, requestInit); + + if (!response.ok) { + throw new FetcherError(await extractError(response), response.status); + } + + if ( + requestInit?.headers && + 'Content-type' in requestInit.headers && + requestInit.headers['Content-type'].indexOf('text/html') > -1 + ) { + return { + data: await response.text(), + headers: response.headers, + }; + } + + return { + data: await response.json(), + headers: response.headers, + }; +}; diff --git a/utils/standardFetcher.ts b/utils/standardFetcher.ts index 0a21795b7..f877bbac0 100644 --- a/utils/standardFetcher.ts +++ b/utils/standardFetcher.ts @@ -20,24 +20,14 @@ const extractError = async (response: Response) => { type StandardFetcher = (url: string, params?: RequestInit) => Promise; export const standardFetcher: StandardFetcher = async (url, params) => { - const requestInit = { + const response = await fetch(url, { ...DEFAULT_PARAMS, ...params, - }; - - const response = await fetch(url, requestInit); + }); if (!response.ok) { throw new FetcherError(await extractError(response), response.status); } - if ( - requestInit?.headers && - 'Content-type' in requestInit.headers && - requestInit.headers['Content-type'].indexOf('text/html') > -1 - ) { - return await response.text(); - } - return await response.json(); }; diff --git a/utilsApi/faq.ts b/utilsApi/faq.ts index b34273e80..eccec5bb4 100644 --- a/utilsApi/faq.ts +++ b/utilsApi/faq.ts @@ -1,16 +1,20 @@ import { PageFAQ, parseFAQ } from '@lidofinance/ui-faq'; + import { serverRuntimeConfig } from 'config'; -import { standardFetcher } from 'utils/standardFetcher'; +import { fetcherWithServiceResponse } from 'utils/fetcher-with-service-response'; + import { responseTimeExternalMetricWrapper } from './fetchApiWrapper'; -export const fetchFAQ = async (path: string): Promise => { - console.debug(`[getFaq] Started fetching the '${path}' from CMS...`); - const cmsHost = serverRuntimeConfig.faqContentHost; +export const fetchFaqSSR = async ( + path: string, +): Promise> | null> => { + console.debug(`[fetchFaqSSR] Started fetching the '${path}' from CMS...`); + const cmsPartOfUrl = serverRuntimeConfig.faqContentPartOfUrl; - const data = await responseTimeExternalMetricWrapper({ - payload: cmsHost, + const resp = await responseTimeExternalMetricWrapper({ + payload: cmsPartOfUrl, request: () => - standardFetcher(`${cmsHost}/${path}`, { + fetcherWithServiceResponse(`${cmsPartOfUrl}/${path}`, { method: 'GET', headers: { 'Content-type': 'text/html', @@ -18,26 +22,33 @@ export const fetchFAQ = async (path: string): Promise => { }), }); - if (!data) { - console.error(`[getFaq] Request the '${path}' to CMS failed!`); + if (!resp || !resp.data) { + console.error(`[fetchFaqSSR] Request the '${path}' to CMS failed!`); return null; } - console.debug(`[getFaq] Fetched the '${path}' from CMS was successes!`); - return data; + console.debug(`[fetchFaqSSR] Fetched the '${path}' from CMS was successes!`); + return resp; }; -export const getFAQ = async (path: string): Promise => { +export const getFaqSSR = async ( + path: string, +): Promise<{ faq?: PageFAQ | null; eTag?: string | null } | null> => { try { - const rawFaqData = await fetchFAQ(path); + const rawFaqResp = await fetchFaqSSR(path); // We can't use `undefined` with Next `getStaticProps`. // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. - if (!rawFaqData) return null; + if (!rawFaqResp || !rawFaqResp.data) return null; - return await parseFAQ(rawFaqData); + return { + faq: await parseFAQ(rawFaqResp.data), + eTag: rawFaqResp?.headers?.get('ETag'), + }; } catch (err) { - console.error(`Fetch or parse FAQ (${path}) raised exception: ${err}`); + console.error( + `[getFaqSSR] Fetch or parse FAQ (${path}) raised exception: ${err}`, + ); return null; } }; From acb67a1b8ec209f75cc52271022ae540197209eb Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Mon, 4 Dec 2023 14:42:44 +0300 Subject: [PATCH 35/47] refactor(FAQ): revalidate FAQ in IPFS mode in all pages --- features/home/home-page-regular.tsx | 6 ++-- features/home/stake-faq/stake-faq.tsx | 2 +- features/ipfs/home-page-ipfs.tsx | 10 +++--- features/withdrawals/claim/claim.tsx | 9 +++-- features/withdrawals/request/request.tsx | 9 +++-- .../withdrawals/withdrawals-faq/claim-faq.tsx | 12 +++++-- .../withdrawals-faq/request-faq.tsx | 12 +++++-- features/withdrawals/withdrawals-tabs.tsx | 26 ++++++++++----- features/wsteth/shared/wrap-faq/wrap-faq.tsx | 18 +++++++--- features/wsteth/wrap-unwrap-tabs.tsx | 9 +++-- pages/index.tsx | 33 +++++-------------- pages/withdrawals/[mode].tsx | 10 ++++-- pages/wrap/[[...mode]].tsx | 13 ++++++-- shared/hooks/use-faq-on-client.ts | 2 +- 14 files changed, 105 insertions(+), 66 deletions(-) diff --git a/features/home/home-page-regular.tsx b/features/home/home-page-regular.tsx index f51b7c9ab..a4922b026 100644 --- a/features/home/home-page-regular.tsx +++ b/features/home/home-page-regular.tsx @@ -16,10 +16,10 @@ import { LidoStats } from './lido-stats/lido-stats'; export type HomePageRegularProps = { pageFAQ?: PageFAQ | null; // IPFS actual only! - eTag?: string | null; + faqETag?: string | null; }; -const HomePageRegular: FC = ({ pageFAQ, eTag }) => { +const HomePageRegular: FC = ({ pageFAQ, faqETag }) => { const key = useWeb3Key(); return ( @@ -40,7 +40,7 @@ const HomePageRegular: FC = ({ pageFAQ, eTag }) => { - + ); diff --git a/features/home/stake-faq/stake-faq.tsx b/features/home/stake-faq/stake-faq.tsx index 0caa9fb7b..f04c6067a 100644 --- a/features/home/stake-faq/stake-faq.tsx +++ b/features/home/stake-faq/stake-faq.tsx @@ -8,7 +8,7 @@ import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type StakeFaqProps = { pageFAQ?: PageFAQ; - eTag?: string; + eTag?: string | null; }; export const StakeFaq: FC = ({ pageFAQ, eTag }) => { diff --git a/features/ipfs/home-page-ipfs.tsx b/features/ipfs/home-page-ipfs.tsx index c107d53e7..dfa4fd612 100644 --- a/features/ipfs/home-page-ipfs.tsx +++ b/features/ipfs/home-page-ipfs.tsx @@ -105,7 +105,7 @@ const HomePageIpfs: FC = ({ ); } else { @@ -113,7 +113,7 @@ const HomePageIpfs: FC = ({ ); } @@ -126,7 +126,7 @@ const HomePageIpfs: FC = ({ ); } else { @@ -134,7 +134,7 @@ const HomePageIpfs: FC = ({ ); } @@ -158,7 +158,7 @@ const HomePageIpfs: FC = ({ default: { spaPage = ( - + ); } } diff --git a/features/withdrawals/claim/claim.tsx b/features/withdrawals/claim/claim.tsx index ab9aeff4e..e668bf2e9 100644 --- a/features/withdrawals/claim/claim.tsx +++ b/features/withdrawals/claim/claim.tsx @@ -9,16 +9,19 @@ import { ClaimWallet } from './wallet'; import { ClaimFormProvider } from './claim-form-context'; type ClaimProps = { - pageFAQ?: PageFAQ; + faq?: { + pageFAQ?: PageFAQ; + eTag?: string | null; + }; }; -export const Claim = ({ pageFAQ }: ClaimProps) => { +export const Claim = ({ faq }: ClaimProps) => { return ( - + diff --git a/features/withdrawals/request/request.tsx b/features/withdrawals/request/request.tsx index 28c2f8af9..f93869c0b 100644 --- a/features/withdrawals/request/request.tsx +++ b/features/withdrawals/request/request.tsx @@ -10,16 +10,19 @@ import { RequestWallet } from './wallet'; import { RequestFaq } from '../withdrawals-faq/request-faq'; type RequestProps = { - pageFAQ?: PageFAQ; + faq?: { + pageFAQ?: PageFAQ; + eTag?: string | null; + }; }; -export const Request = ({ pageFAQ }: RequestProps) => { +export const Request = ({ faq }: RequestProps) => { return ( - + diff --git a/features/withdrawals/withdrawals-faq/claim-faq.tsx b/features/withdrawals/withdrawals-faq/claim-faq.tsx index 350e2dbd2..2714f9b89 100644 --- a/features/withdrawals/withdrawals-faq/claim-faq.tsx +++ b/features/withdrawals/withdrawals-faq/claim-faq.tsx @@ -3,14 +3,22 @@ import React, { FC } from 'react'; import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; +import { useFetchFaqOnClientIfETagWereChanged } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type ClaimFaqProps = { pageFAQ?: PageFAQ; + eTag?: string | null; }; -export const ClaimFaq: FC = ({ pageFAQ }) => { - if (!pageFAQ || !isPageFAQ(pageFAQ)) { +export const ClaimFaq: FC = ({ pageFAQ, eTag }) => { + // This hook actual on IPFS only (see: the `eTag` prop drilling)! + const { data: pageFaqIpfsMode } = useFetchFaqOnClientIfETagWereChanged( + '/faq-withdrawals-page-claim-tab.md', + eTag, + ); + + if (!pageFAQ || (!isPageFAQ(pageFAQ) && !pageFaqIpfsMode)) { return null; } diff --git a/features/withdrawals/withdrawals-faq/request-faq.tsx b/features/withdrawals/withdrawals-faq/request-faq.tsx index a49416cbe..9dd96f191 100644 --- a/features/withdrawals/withdrawals-faq/request-faq.tsx +++ b/features/withdrawals/withdrawals-faq/request-faq.tsx @@ -3,6 +3,7 @@ import React, { FC } from 'react'; import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; +import { useFetchFaqOnClientIfETagWereChanged } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; // import { ButtonLinkWrap } from './styles'; @@ -12,10 +13,17 @@ import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type RequestFaqProps = { pageFAQ?: PageFAQ; + eTag?: string | null; }; -export const RequestFaq: FC = ({ pageFAQ }) => { - if (!pageFAQ || !isPageFAQ(pageFAQ)) { +export const RequestFaq: FC = ({ pageFAQ, eTag }) => { + // This hook actual on IPFS only (see: the `eTag` prop drilling)! + const { data: pageFaqIpfsMode } = useFetchFaqOnClientIfETagWereChanged( + '/faq-withdrawals-page-request-tab.md', + eTag, + ); + + if (!pageFAQ || (!isPageFAQ(pageFAQ) && !pageFaqIpfsMode)) { return null; } diff --git a/features/withdrawals/withdrawals-tabs.tsx b/features/withdrawals/withdrawals-tabs.tsx index b8f5b48ee..69d8695fd 100644 --- a/features/withdrawals/withdrawals-tabs.tsx +++ b/features/withdrawals/withdrawals-tabs.tsx @@ -21,23 +21,33 @@ const withdrawalRoutes = [ ]; type WithdrawalsTabsProps = { - pageRequestFAQ?: PageFAQ; - pageClaimFAQ?: PageFAQ; + faq?: { + pageRequestFAQ?: PageFAQ; + pageClaimFAQ?: PageFAQ; + eTag?: string | null; + }; }; -export const WithdrawalsTabs = ({ - pageRequestFAQ, - pageClaimFAQ, -}: WithdrawalsTabsProps) => { +export const WithdrawalsTabs = ({ faq }: WithdrawalsTabsProps) => { const { isClaimTab } = useWithdrawals(); return ( {isClaimTab ? ( - + ) : ( - + )} ); diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index 6a8595b3c..620b16c10 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -3,14 +3,22 @@ import React, { FC } from 'react'; import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; import { Section } from 'shared/components'; +import { useFetchFaqOnClientIfETagWereChanged } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type WrapFaqProps = { pageFAQ?: PageFAQ; + eTag?: string | null; }; -export const WrapFaq: FC = ({ pageFAQ }) => { - if (!pageFAQ || !isPageFAQ(pageFAQ)) { +export const WrapFaq: FC = ({ pageFAQ, eTag }) => { + // This hook actual on IPFS only (see: the `eTag` prop drilling)! + const { data: pageFaqIpfsMode } = useFetchFaqOnClientIfETagWereChanged( + '/faq-wrap-and-unwrap-page.md', + eTag, + ); + + if (!pageFAQ || (!isPageFAQ(pageFAQ) && !pageFaqIpfsMode)) { return null; } @@ -18,10 +26,12 @@ export const WrapFaq: FC = ({ pageFAQ }) => { <>
{ faqAccordionOnLinkClick({ - pageId: pageFAQ.pageIdentification, + pageId: + pageFaqIpfsMode?.pageIdentification || + pageFAQ?.pageIdentification, ...props, }); }} diff --git a/features/wsteth/wrap-unwrap-tabs.tsx b/features/wsteth/wrap-unwrap-tabs.tsx index 2ec987e22..b77366c00 100644 --- a/features/wsteth/wrap-unwrap-tabs.tsx +++ b/features/wsteth/wrap-unwrap-tabs.tsx @@ -18,10 +18,13 @@ const NAV_ROUTES = [ type WrapUnwrapLayoutProps = { mode: 'wrap' | 'unwrap'; - pageFAQ?: PageFAQ; + faq: { + pageFAQ?: PageFAQ; + eTag?: string | null; + }; }; -export const WrapUnwrapTabs = ({ mode, pageFAQ }: WrapUnwrapLayoutProps) => { +export const WrapUnwrapTabs = ({ mode, faq }: WrapUnwrapLayoutProps) => { const isUnwrapMode = mode === 'unwrap'; return ( <> @@ -32,7 +35,7 @@ export const WrapUnwrapTabs = ({ mode, pageFAQ }: WrapUnwrapLayoutProps) => { {isUnwrapMode ? : } - + ); }; diff --git a/pages/index.tsx b/pages/index.tsx index 9926dc540..609c36ffc 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -16,33 +16,16 @@ export const getStaticProps: GetStaticProps< // FAQ for IPFS SPA if (process.env.IPFS_MODE) { - const stakePageFAQ = await getFaqSSR(stakePageFAQPath); - const wrapPageFAQ = await getFaqSSR('/faq-wrap-and-unwrap-page.md'); - const withdrawalsPageRequestFAQ = await getFaqSSR( - '/faq-withdrawals-page-request-tab.md', - ); - const withdrawalsPageClaimFAQ = await getFaqSSR( - '/faq-withdrawals-page-claim-tab.md', - ); - return { props: { - stakePage: { - faq: stakePageFAQ?.faq, - eTag: stakePageFAQ?.eTag, - }, - wrapPage: { - faq: wrapPageFAQ?.faq, - eTag: wrapPageFAQ?.eTag, - }, - withdrawalsPageRequest: { - faq: withdrawalsPageRequestFAQ?.faq, - eTag: withdrawalsPageRequestFAQ?.eTag, - }, - withdrawalsPageClaim: { - faq: withdrawalsPageClaimFAQ?.faq, - eTag: withdrawalsPageClaimFAQ?.eTag, - }, + stakePage: (await getFaqSSR(stakePageFAQPath)) ?? undefined, + wrapPage: + (await getFaqSSR('/faq-wrap-and-unwrap-page.md')) ?? undefined, + withdrawalsPageRequest: + (await getFaqSSR('/faq-withdrawals-page-request-tab.md')) ?? + undefined, + withdrawalsPageClaim: + (await getFaqSSR('/faq-withdrawals-page-claim-tab.md')) ?? undefined, }, }; } diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index f7791f65f..f06d32ed6 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -16,6 +16,7 @@ const Withdrawals: FC = ({ mode, pageRequestFAQ, pageClaimFAQ, + faqETag, }) => { const key = useWeb3Key(); @@ -31,8 +32,11 @@ const Withdrawals: FC = ({ @@ -50,7 +54,7 @@ type WithdrawalsModePageProps = WithdrawalsModePageParams & { pageRequestFAQ?: PageFAQ | null; pageClaimFAQ?: PageFAQ | null; // IPFS actual only! - eTag?: string | null; + faqETag?: string | null; }; export const getStaticPaths: GetStaticPaths< diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index b6a7c2499..5dd37e654 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -10,7 +10,7 @@ import { Layout } from 'shared/components'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; import { getFaqSSR } from 'utilsApi/faq'; -const WrapPage: FC = ({ mode, pageFAQ }) => { +const WrapPage: FC = ({ mode, pageFAQ, faqETag }) => { const key = useWeb3Key(); return ( @@ -22,7 +22,14 @@ const WrapPage: FC = ({ mode, pageFAQ }) => { Wrap | Lido - + ); }; @@ -33,7 +40,7 @@ type WrapModePageProps = { mode: 'wrap' | 'unwrap'; pageFAQ?: PageFAQ | null; // IPFS actual only! - eTag?: string | null; + faqETag?: string | null; }; type WrapModePageParams = { diff --git a/shared/hooks/use-faq-on-client.ts b/shared/hooks/use-faq-on-client.ts index 068ad9508..158f87065 100644 --- a/shared/hooks/use-faq-on-client.ts +++ b/shared/hooks/use-faq-on-client.ts @@ -15,7 +15,7 @@ export const useFetchFaqOnClientIfETagWereChanged = ( return undefined; } - const respFaq = await getFaqOnClient('/faq-stake-page.md'); + const respFaq = await getFaqOnClient(faqPath); if ( !respFaq || From de65edf08f0e1cf2ceef8ddbb66d990c844880be Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 5 Dec 2023 11:43:25 +0300 Subject: [PATCH 36/47] fix: useFetchFaqOnClientIfETagWereChanged --- shared/hooks/use-faq-on-client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/hooks/use-faq-on-client.ts b/shared/hooks/use-faq-on-client.ts index 158f87065..cb0a0a37c 100644 --- a/shared/hooks/use-faq-on-client.ts +++ b/shared/hooks/use-faq-on-client.ts @@ -21,7 +21,7 @@ export const useFetchFaqOnClientIfETagWereChanged = ( !respFaq || !respFaq.faq || !isPageFAQ(respFaq.faq) || - eTag !== respFaq?.eTag + eTag === respFaq?.eTag ) { return undefined; } From 948c65f8298b9fda51c3fe46eeb5df6a348d0dcb Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Wed, 6 Dec 2023 15:46:00 +0300 Subject: [PATCH 37/47] chore: remove .yalc, get @lidofinance/ui-faq from npm --- package.json | 2 +- yarn.lock | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index d70211e93..363863b8c 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@lidofinance/next-ui-primitives": "^0.39.0", "@lidofinance/rpc": "^0.28.0", "@lidofinance/satanizer": "^0.32.0", - "@lidofinance/ui-faq": "file:.yalc/@lidofinance/ui-faq", + "@lidofinance/ui-faq": "0.39.1", "bignumber.js": "9.1.0", "copy-to-clipboard": "^3.3.1", "cors": "^2.8.5", diff --git a/yarn.lock b/yarn.lock index 843136f09..faf7a4da8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2288,8 +2288,10 @@ resolved "https://registry.yarnpkg.com/@lidofinance/satanizer/-/satanizer-0.32.0.tgz#3ea01a94b7b5c58751a9e3030f6134c83cecefaf" integrity sha512-gHoZM8l/AWWT1YyZf+4/IViAxGuALZNo29b4bWvmEGJw/Xv0ChRPP2/xLEugdk03T16r8vxww3j/tAYTTzGzQw== -"@lidofinance/ui-faq@file:.yalc/@lidofinance/ui-faq": - version "0.0.0" +"@lidofinance/ui-faq@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@lidofinance/ui-faq/-/ui-faq-0.39.1.tgz#8a88fe1e5a8388f7aa1cff8b0a6347844bcfb480" + integrity sha512-1otkp7ryO0JixxsTwqJuAI786ec0qaz/UfFiAO8kb8U3q1htuZZpq5kRulwcTStp5XALCoN/jPSHKuxiZwn+8Q== dependencies: "@lidofinance/lido-ui" "3.14.1" js-yaml "^4.1.0" From ed39346f4ca7de28600367ddea2bed8843d9b1ad Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Wed, 6 Dec 2023 16:00:37 +0300 Subject: [PATCH 38/47] fix(getStaticProps): build --- pages/index.tsx | 12 +++++------- pages/withdrawals/[mode].tsx | 7 ++++--- pages/wrap/[[...mode]].tsx | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/pages/index.tsx b/pages/index.tsx index 609c36ffc..3de8cd0fa 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -18,14 +18,12 @@ export const getStaticProps: GetStaticProps< if (process.env.IPFS_MODE) { return { props: { - stakePage: (await getFaqSSR(stakePageFAQPath)) ?? undefined, - wrapPage: - (await getFaqSSR('/faq-wrap-and-unwrap-page.md')) ?? undefined, + stakePage: (await getFaqSSR(stakePageFAQPath)) ?? null, + wrapPage: (await getFaqSSR('/faq-wrap-and-unwrap-page.md')) ?? null, withdrawalsPageRequest: - (await getFaqSSR('/faq-withdrawals-page-request-tab.md')) ?? - undefined, + (await getFaqSSR('/faq-withdrawals-page-request-tab.md')) ?? null, withdrawalsPageClaim: - (await getFaqSSR('/faq-withdrawals-page-claim-tab.md')) ?? undefined, + (await getFaqSSR('/faq-withdrawals-page-claim-tab.md')) ?? null, }, }; } @@ -33,7 +31,7 @@ export const getStaticProps: GetStaticProps< // FAQ for home page regular return { props: { - pageFAQ: (await getFaqSSR(stakePageFAQPath))?.faq, + pageFAQ: (await getFaqSSR(stakePageFAQPath))?.faq ?? null, }, revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index f06d32ed6..b83ceadf9 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -72,9 +72,10 @@ export const getStaticProps: GetStaticProps< > = async ({ params }) => { // FAQ const faqProps = { - pageRequestFAQ: (await getFaqSSR('/faq-withdrawals-page-request-tab.md')) - ?.faq, - pageClaimFAQ: (await getFaqSSR('/faq-withdrawals-page-claim-tab.md'))?.faq, + pageRequestFAQ: + (await getFaqSSR('/faq-withdrawals-page-request-tab.md'))?.faq ?? null, + pageClaimFAQ: + (await getFaqSSR('/faq-withdrawals-page-claim-tab.md'))?.faq ?? null, revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index 5dd37e654..9dedb8c9e 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -61,7 +61,7 @@ export const getStaticProps: GetStaticProps< > = async ({ params }) => { // FAQ const faqProps = { - pageFAQ: (await getFaqSSR('/faq-wrap-and-unwrap-page.md'))?.faq, + pageFAQ: (await getFaqSSR('/faq-wrap-and-unwrap-page.md'))?.faq ?? null, revalidate: FAQ_REVALIDATE_SECS, }; From 91974d2b3f1a921c2cdadbb434d34f65fee9a9f8 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Thu, 14 Dec 2023 17:38:21 +0300 Subject: [PATCH 39/47] chore: merge develop --- features/stake/stake-page.tsx | 3 ++- pages/index.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/features/stake/stake-page.tsx b/features/stake/stake-page.tsx index b8c2156bb..200f079ea 100644 --- a/features/stake/stake-page.tsx +++ b/features/stake/stake-page.tsx @@ -5,7 +5,7 @@ import { PageFAQ } from '@lidofinance/ui-faq'; import { Layout } from 'shared/components'; import { StakeFaq } from './stake-faq/stake-faq'; -export { Stake } from './stake'; +import { Stake } from './stake'; export type StakePageProps = { pageFAQ?: PageFAQ | null; @@ -22,6 +22,7 @@ export const StakePage: FC = ({ pageFAQ, faqETag }) => { Stake with Lido | Lido + ); diff --git a/pages/index.tsx b/pages/index.tsx index c50bb500f..6dcf68790 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -26,7 +26,7 @@ export const getStaticProps: GetStaticProps< }; } - // FAQ for home page regular + // FAQ for stake page regular return { props: { pageFAQ: (await getFaqSSR(stakePageFAQPath))?.faq ?? null, From 01088cac349bb709ac5358b5d41a2433c66b6a20 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Wed, 20 Dec 2023 20:22:22 +0300 Subject: [PATCH 40/47] refactor: renaming --- .env.example | 2 +- .gitignore | 1 - config/faq.ts | 7 +++++++ env-dynamics.mjs | 2 +- features/stake/stake-faq/stake-faq.tsx | 8 +++---- .../withdrawals/withdrawals-faq/claim-faq.tsx | 7 ++++--- .../withdrawals-faq/request-faq.tsx | 7 ++++--- features/wsteth/shared/wrap-faq/wrap-faq.tsx | 7 ++++--- next.config.mjs | 4 ++-- pages/index.tsx | 21 ++++++++++++------- shared/hooks/use-faq-on-client.ts | 4 ++-- utils/faq.ts | 2 +- utilsApi/faq.ts | 19 +++++++++-------- 13 files changed, 52 insertions(+), 39 deletions(-) diff --git a/.env.example b/.env.example index 1854c3a3f..f62de2447 100644 --- a/.env.example +++ b/.env.example @@ -58,4 +58,4 @@ WALLETCONNECT_PROJECT_ID= # ETH Stake Widget API for IPFS mode WIDGET_API_BASE_PATH_FOR_IPFS= -FAQ_CONTENT_PART_OF_URL= +FAQ_CONTENT_BASE_PATH= diff --git a/.gitignore b/.gitignore index 2775b236c..842040602 100644 --- a/.gitignore +++ b/.gitignore @@ -44,4 +44,3 @@ yarn-error.log* .idea /public/runtime/ -/public/ethereum-staking-widget/ diff --git a/config/faq.ts b/config/faq.ts index 2cda982ce..9a98c9dda 100644 --- a/config/faq.ts +++ b/config/faq.ts @@ -1,2 +1,9 @@ // 15 minutes export const FAQ_REVALIDATE_SECS = 900; + +export const FAQ_STAKE_PAGE_PATH = '/faq-stake-page.md'; +export const FAQ_WRAP_AND_UNWRAP_PAGE_PATH = '/faq-wrap-and-unwrap-page.md'; +export const FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH = + '/faq-withdrawals-page-request-tab.md'; +export const FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH = + '/faq-withdrawals-page-claim-tab.md'; diff --git a/env-dynamics.mjs b/env-dynamics.mjs index 12b6eb7a3..97be3ef26 100644 --- a/env-dynamics.mjs +++ b/env-dynamics.mjs @@ -49,4 +49,4 @@ export const prefillUnsafeElRpcUrls17000 = process.env.PREFILL_UNSAFE_EL_RPC_URL export const widgetApiBasePathForIpfs = process.env.WIDGET_API_BASE_PATH_FOR_IPFS; /** @type string */ -export const faqContentPartOfUrl = process.env.FAQ_CONTENT_PART_OF_URL; +export const faqContentBasePath = process.env.FAQ_CONTENT_BASE_PATH; diff --git a/features/stake/stake-faq/stake-faq.tsx b/features/stake/stake-faq/stake-faq.tsx index f04c6067a..388d88555 100644 --- a/features/stake/stake-faq/stake-faq.tsx +++ b/features/stake/stake-faq/stake-faq.tsx @@ -2,8 +2,9 @@ import React, { FC } from 'react'; import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; +import { FAQ_STAKE_PAGE_PATH } from 'config'; import { Section } from 'shared/components'; -import { useFetchFaqOnClientIfETagWereChanged } from 'shared/hooks/use-faq-on-client'; +import { useUpdatableFaq } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type StakeFaqProps = { @@ -13,10 +14,7 @@ type StakeFaqProps = { export const StakeFaq: FC = ({ pageFAQ, eTag }) => { // This hook actual on IPFS only (see: the `eTag` prop drilling)! - const { data: pageFaqIpfsMode } = useFetchFaqOnClientIfETagWereChanged( - '/faq-stake-page.md', - eTag, - ); + const { data: pageFaqIpfsMode } = useUpdatableFaq(FAQ_STAKE_PAGE_PATH, eTag); if (!pageFAQ || (!isPageFAQ(pageFAQ) && !pageFaqIpfsMode)) { return null; diff --git a/features/withdrawals/withdrawals-faq/claim-faq.tsx b/features/withdrawals/withdrawals-faq/claim-faq.tsx index 2714f9b89..7a63628c9 100644 --- a/features/withdrawals/withdrawals-faq/claim-faq.tsx +++ b/features/withdrawals/withdrawals-faq/claim-faq.tsx @@ -2,8 +2,9 @@ import React, { FC } from 'react'; import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; +import { FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH } from 'config'; import { Section } from 'shared/components'; -import { useFetchFaqOnClientIfETagWereChanged } from 'shared/hooks/use-faq-on-client'; +import { useUpdatableFaq } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type ClaimFaqProps = { @@ -13,8 +14,8 @@ type ClaimFaqProps = { export const ClaimFaq: FC = ({ pageFAQ, eTag }) => { // This hook actual on IPFS only (see: the `eTag` prop drilling)! - const { data: pageFaqIpfsMode } = useFetchFaqOnClientIfETagWereChanged( - '/faq-withdrawals-page-claim-tab.md', + const { data: pageFaqIpfsMode } = useUpdatableFaq( + FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH, eTag, ); diff --git a/features/withdrawals/withdrawals-faq/request-faq.tsx b/features/withdrawals/withdrawals-faq/request-faq.tsx index 9dd96f191..31a3761d6 100644 --- a/features/withdrawals/withdrawals-faq/request-faq.tsx +++ b/features/withdrawals/withdrawals-faq/request-faq.tsx @@ -2,8 +2,9 @@ import React, { FC } from 'react'; import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; +import { FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH } from 'config'; import { Section } from 'shared/components'; -import { useFetchFaqOnClientIfETagWereChanged } from 'shared/hooks/use-faq-on-client'; +import { useUpdatableFaq } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; // import { ButtonLinkWrap } from './styles'; @@ -18,8 +19,8 @@ type RequestFaqProps = { export const RequestFaq: FC = ({ pageFAQ, eTag }) => { // This hook actual on IPFS only (see: the `eTag` prop drilling)! - const { data: pageFaqIpfsMode } = useFetchFaqOnClientIfETagWereChanged( - '/faq-withdrawals-page-request-tab.md', + const { data: pageFaqIpfsMode } = useUpdatableFaq( + FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH, eTag, ); diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index 620b16c10..a9a3b54a2 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -2,8 +2,9 @@ import React, { FC } from 'react'; import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; +import { FAQ_WRAP_AND_UNWRAP_PAGE_PATH } from 'config'; import { Section } from 'shared/components'; -import { useFetchFaqOnClientIfETagWereChanged } from 'shared/hooks/use-faq-on-client'; +import { useUpdatableFaq } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; type WrapFaqProps = { @@ -13,8 +14,8 @@ type WrapFaqProps = { export const WrapFaq: FC = ({ pageFAQ, eTag }) => { // This hook actual on IPFS only (see: the `eTag` prop drilling)! - const { data: pageFaqIpfsMode } = useFetchFaqOnClientIfETagWereChanged( - '/faq-wrap-and-unwrap-page.md', + const { data: pageFaqIpfsMode } = useUpdatableFaq( + FAQ_WRAP_AND_UNWRAP_PAGE_PATH, eTag, ); diff --git a/next.config.mjs b/next.config.mjs index 0b110969a..b7db91f9c 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -55,7 +55,7 @@ export const CACHE_CONTROL_PAGES = [ export const CACHE_CONTROL_VALUE = 'public, max-age=15, s-max-age=30, stale-if-error=604800, stale-while-revalidate=172800'; -export const faqContentPartOfUrl = process.env.FAQ_CONTENT_PART_OF_URL; +export const faqContentBasePath = process.env.FAQ_CONTENT_BASE_PATH; const withBundleAnalyzer = NextBundleAnalyzer({ enabled: analyzeBundle, @@ -183,6 +183,6 @@ export default withBundleAnalyzer({ rewardsBackendAPI, defaultChain, developmentMode, - faqContentPartOfUrl, + faqContentBasePath, }, }); diff --git a/pages/index.tsx b/pages/index.tsx index 6dcf68790..f5e0f6da2 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,6 +1,13 @@ import { GetStaticProps } from 'next'; -import { FAQ_REVALIDATE_SECS, dynamics } from 'config'; +import { + FAQ_REVALIDATE_SECS, + FAQ_STAKE_PAGE_PATH, + FAQ_WRAP_AND_UNWRAP_PAGE_PATH, + FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH, + FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH, + dynamics, +} from 'config'; import { StakePage, StakePageProps } from 'features/stake'; import HomePageIpfs, { HomePageIpfsProps } from 'features/ipfs/home-page-ipfs'; import { getFaqSSR } from 'utilsApi/faq'; @@ -10,18 +17,16 @@ export default dynamics.ipfsMode ? HomePageIpfs : StakePage; export const getStaticProps: GetStaticProps< StakePageProps | HomePageIpfsProps > = async () => { - const stakePageFAQPath = '/faq-stake-page.md'; - // FAQ for IPFS SPA if (process.env.IPFS_MODE) { return { props: { - stakePage: (await getFaqSSR(stakePageFAQPath)) ?? null, - wrapPage: (await getFaqSSR('/faq-wrap-and-unwrap-page.md')) ?? null, + stakePage: (await getFaqSSR(FAQ_STAKE_PAGE_PATH)) ?? null, + wrapPage: (await getFaqSSR(FAQ_WRAP_AND_UNWRAP_PAGE_PATH)) ?? null, withdrawalsPageRequest: - (await getFaqSSR('/faq-withdrawals-page-request-tab.md')) ?? null, + (await getFaqSSR(FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH)) ?? null, withdrawalsPageClaim: - (await getFaqSSR('/faq-withdrawals-page-claim-tab.md')) ?? null, + (await getFaqSSR(FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH)) ?? null, }, }; } @@ -29,7 +34,7 @@ export const getStaticProps: GetStaticProps< // FAQ for stake page regular return { props: { - pageFAQ: (await getFaqSSR(stakePageFAQPath))?.faq ?? null, + pageFAQ: (await getFaqSSR(FAQ_STAKE_PAGE_PATH))?.faq ?? null, }, revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/shared/hooks/use-faq-on-client.ts b/shared/hooks/use-faq-on-client.ts index cb0a0a37c..fd9c61712 100644 --- a/shared/hooks/use-faq-on-client.ts +++ b/shared/hooks/use-faq-on-client.ts @@ -4,12 +4,12 @@ import { isPageFAQ, PageFAQ } from '@lidofinance/ui-faq'; import { getFaqOnClient } from 'utils/faq'; import { STRATEGY_CONSTANT } from 'utils/swrStrategies'; -export const useFetchFaqOnClientIfETagWereChanged = ( +export const useUpdatableFaq = ( faqPath: string, eTag?: string | null, ): SWRResponse => { return useLidoSWR( - ['swr:useFetchFaqOnClientIfETagWereChanged', faqPath, eTag], + ['swr:useUpdatableFaq', faqPath, eTag], async () => { if (!eTag) { return undefined; diff --git a/utils/faq.ts b/utils/faq.ts index 50711317b..df846ba22 100644 --- a/utils/faq.ts +++ b/utils/faq.ts @@ -11,7 +11,7 @@ export const fetchFaqOnClient = async ( ); const resp = await fetcherWithServiceResponse( - `${dynamics.faqContentPartOfUrl}/${path}`, + `${dynamics.faqContentBasePath}/${path}`, { method: 'GET', headers: { diff --git a/utilsApi/faq.ts b/utilsApi/faq.ts index eccec5bb4..40b06a950 100644 --- a/utilsApi/faq.ts +++ b/utilsApi/faq.ts @@ -9,17 +9,18 @@ export const fetchFaqSSR = async ( path: string, ): Promise> | null> => { console.debug(`[fetchFaqSSR] Started fetching the '${path}' from CMS...`); - const cmsPartOfUrl = serverRuntimeConfig.faqContentPartOfUrl; - const resp = await responseTimeExternalMetricWrapper({ - payload: cmsPartOfUrl, + payload: serverRuntimeConfig.faqContentBasePath, request: () => - fetcherWithServiceResponse(`${cmsPartOfUrl}/${path}`, { - method: 'GET', - headers: { - 'Content-type': 'text/html', + fetcherWithServiceResponse( + `${serverRuntimeConfig.faqContentBasePath}/${path}`, + { + method: 'GET', + headers: { + 'Content-type': 'text/html', + }, }, - }), + ), }); if (!resp || !resp.data) { @@ -27,7 +28,7 @@ export const fetchFaqSSR = async ( return null; } - console.debug(`[fetchFaqSSR] Fetched the '${path}' from CMS was successes!`); + console.debug(`[fetchFaqSSR] Successfully fetched the '${path}' from CMS!`); return resp; }; From 3f684f7312e7d6832080bcb4e3a76b4156a367d1 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 26 Dec 2023 14:42:40 +0300 Subject: [PATCH 41/47] refactor: faq props passing --- features/ipfs/home-page-ipfs.tsx | 62 ++++++------------- features/stake/stake-faq/stake-faq.tsx | 23 +++---- features/stake/stake-page.tsx | 10 ++- features/stake/stake.tsx | 2 - features/withdrawals/claim/claim.tsx | 15 ++--- features/withdrawals/request/request.tsx | 12 ++-- .../withdrawals/withdrawals-faq/claim-faq.tsx | 20 ++---- .../withdrawals-faq/request-faq.tsx | 20 ++---- features/withdrawals/withdrawals-tabs.tsx | 29 +++------ features/wsteth/shared/wrap-faq/wrap-faq.tsx | 26 +++----- features/wsteth/wrap-unwrap-tabs.tsx | 15 +++-- pages/index.tsx | 16 ++--- pages/withdrawals/[mode].tsx | 41 ++++++------ pages/wrap/[[...mode]].tsx | 22 ++----- shared/hooks/use-faq-on-client.ts | 28 ++++----- utils/faq.ts | 17 ++++- utilsApi/faq.ts | 13 ++-- 17 files changed, 147 insertions(+), 224 deletions(-) diff --git a/features/ipfs/home-page-ipfs.tsx b/features/ipfs/home-page-ipfs.tsx index dc856ecfd..e313cfbdb 100644 --- a/features/ipfs/home-page-ipfs.tsx +++ b/features/ipfs/home-page-ipfs.tsx @@ -1,8 +1,6 @@ import { FC, useMemo, useEffect } from 'react'; import { useRouter } from 'next/router'; -import { PageFAQ } from '@lidofinance/ui-faq'; - import { getPathWithoutFirstSlash, HOME_PATH, @@ -15,13 +13,13 @@ import { } from 'config/urls'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { usePrefixedReplace } from 'shared/hooks/use-prefixed-history'; - import { StakePage } from 'features/stake'; import WrapPage from 'pages/wrap/[[...mode]]'; import WithdrawalsPage from 'pages/withdrawals/[mode]'; import ReferralPage from 'pages/referral'; import RewardsPage from 'pages/rewards'; import SettingsPage from 'pages/settings'; +import { FaqWithMeta } from 'utils/faq'; /** * We are using single index.html endpoint @@ -40,29 +38,17 @@ const IPFS_ROUTABLE_PAGES = [ ]; export type HomePageIpfsProps = { - stakePage?: { - faq: PageFAQ | null; - eTag?: string | null; - }; - wrapPage?: { - faq: PageFAQ | null; - eTag?: string | null; - }; - withdrawalsPageRequest?: { - faq: PageFAQ | null; - eTag?: string | null; - }; - withdrawalsPageClaim?: { - faq: PageFAQ | null; - eTag?: string | null; - }; + faqWithMetaStakePage: FaqWithMeta | null; + faqWithMetaWrapPage: FaqWithMeta | null; + faqWithMetaWithdrawalsPageRequest: FaqWithMeta | null; + faqWithMetaWithdrawalsPageClaim: FaqWithMeta | null; }; const HomePageIpfs: FC = ({ - stakePage, - wrapPage, - withdrawalsPageRequest, - withdrawalsPageClaim, + faqWithMetaStakePage, + faqWithMetaWrapPage, + faqWithMetaWithdrawalsPageRequest, + faqWithMetaWithdrawalsPageClaim, }) => { const router = useRouter(); const { asPath } = router; @@ -102,20 +88,10 @@ const HomePageIpfs: FC = ({ case getPathWithoutFirstSlash(WRAP_PATH): { if (parsedPath[1] === 'unwrap') { spaPage = ( - + ); } else { - spaPage = ( - - ); + spaPage = ; } break; } @@ -125,16 +101,20 @@ const HomePageIpfs: FC = ({ spaPage = ( ); } else { spaPage = ( ); } @@ -157,9 +137,7 @@ const HomePageIpfs: FC = ({ } default: { - spaPage = ( - - ); + spaPage = ; } } diff --git a/features/stake/stake-faq/stake-faq.tsx b/features/stake/stake-faq/stake-faq.tsx index 388d88555..d1a564e0b 100644 --- a/features/stake/stake-faq/stake-faq.tsx +++ b/features/stake/stake-faq/stake-faq.tsx @@ -1,35 +1,28 @@ import React, { FC } from 'react'; -import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; +import { FaqAccordion } from '@lidofinance/ui-faq'; -import { FAQ_STAKE_PAGE_PATH } from 'config'; import { Section } from 'shared/components'; import { useUpdatableFaq } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; +import { FaqWithMeta } from 'utils/faq'; type StakeFaqProps = { - pageFAQ?: PageFAQ; - eTag?: string | null; + faqWithMeta: FaqWithMeta; }; -export const StakeFaq: FC = ({ pageFAQ, eTag }) => { - // This hook actual on IPFS only (see: the `eTag` prop drilling)! - const { data: pageFaqIpfsMode } = useUpdatableFaq(FAQ_STAKE_PAGE_PATH, eTag); - - if (!pageFAQ || (!isPageFAQ(pageFAQ) && !pageFaqIpfsMode)) { - return null; - } +export const StakeFaq: FC = ({ faqWithMeta }) => { + const { data: pageFAQ } = useUpdatableFaq(faqWithMeta); + if (!pageFAQ) return null; return ( <>
{ faqAccordionOnLinkClick({ - pageId: - pageFaqIpfsMode?.pageIdentification || - pageFAQ?.pageIdentification, + pageId: pageFAQ.pageIdentification, ...props, }); }} diff --git a/features/stake/stake-page.tsx b/features/stake/stake-page.tsx index 200f079ea..75e4b9414 100644 --- a/features/stake/stake-page.tsx +++ b/features/stake/stake-page.tsx @@ -1,19 +1,17 @@ import { FC } from 'react'; import Head from 'next/head'; -import { PageFAQ } from '@lidofinance/ui-faq'; import { Layout } from 'shared/components'; +import { FaqWithMeta } from 'utils/faq'; import { StakeFaq } from './stake-faq/stake-faq'; import { Stake } from './stake'; export type StakePageProps = { - pageFAQ?: PageFAQ | null; - // IPFS actual only! - faqETag?: string | null; + faqWithMeta: FaqWithMeta | null; }; -export const StakePage: FC = ({ pageFAQ, faqETag }) => { +export const StakePage: FC = ({ faqWithMeta }) => { return ( = ({ pageFAQ, faqETag }) => { Stake with Lido | Lido - + {faqWithMeta && } ); }; diff --git a/features/stake/stake.tsx b/features/stake/stake.tsx index 1fec99d76..7cf46359c 100644 --- a/features/stake/stake.tsx +++ b/features/stake/stake.tsx @@ -1,7 +1,6 @@ import { useWeb3Key } from 'shared/hooks/useWeb3Key'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; -import { StakeFaq } from './stake-faq/stake-faq'; import { LidoStats } from './lido-stats/lido-stats'; import { StakeForm } from './stake-form'; import { GoerliSunsetBanner } from 'shared/banners/goerli-sunset'; @@ -15,7 +14,6 @@ export const Stake = () => { - ); }; diff --git a/features/withdrawals/claim/claim.tsx b/features/withdrawals/claim/claim.tsx index e668bf2e9..479a755aa 100644 --- a/features/withdrawals/claim/claim.tsx +++ b/features/withdrawals/claim/claim.tsx @@ -1,27 +1,24 @@ -import { PageFAQ } from '@lidofinance/ui-faq'; - import { TransactionModalProvider } from 'shared/transaction-modal/transaction-modal-context'; -import { ClaimFaq } from 'features/withdrawals/withdrawals-faq/claim-faq'; +import { FaqWithMeta } from 'utils/faq'; import { ClaimForm } from './form'; import { TxClaimModal } from './tx-modal'; import { ClaimWallet } from './wallet'; import { ClaimFormProvider } from './claim-form-context'; +import { ClaimFaq } from '../withdrawals-faq/claim-faq'; + type ClaimProps = { - faq?: { - pageFAQ?: PageFAQ; - eTag?: string | null; - }; + faqWithMeta: FaqWithMeta | null; }; -export const Claim = ({ faq }: ClaimProps) => { +export const Claim = ({ faqWithMeta }: ClaimProps) => { return ( - + {faqWithMeta && } diff --git a/features/withdrawals/request/request.tsx b/features/withdrawals/request/request.tsx index f93869c0b..e0e4ba45b 100644 --- a/features/withdrawals/request/request.tsx +++ b/features/withdrawals/request/request.tsx @@ -1,6 +1,5 @@ -import { PageFAQ } from '@lidofinance/ui-faq'; - import { TransactionModalProvider } from 'shared/transaction-modal'; +import { FaqWithMeta } from 'utils/faq'; import { RequestForm } from './form'; import { RequestFormProvider } from './request-form-context'; @@ -10,19 +9,16 @@ import { RequestWallet } from './wallet'; import { RequestFaq } from '../withdrawals-faq/request-faq'; type RequestProps = { - faq?: { - pageFAQ?: PageFAQ; - eTag?: string | null; - }; + faqWithMeta: FaqWithMeta | null; }; -export const Request = ({ faq }: RequestProps) => { +export const Request = ({ faqWithMeta }: RequestProps) => { return ( - + {faqWithMeta && } diff --git a/features/withdrawals/withdrawals-faq/claim-faq.tsx b/features/withdrawals/withdrawals-faq/claim-faq.tsx index 7a63628c9..09c3bab55 100644 --- a/features/withdrawals/withdrawals-faq/claim-faq.tsx +++ b/features/withdrawals/withdrawals-faq/claim-faq.tsx @@ -1,27 +1,19 @@ import React, { FC } from 'react'; -import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; +import { FaqAccordion } from '@lidofinance/ui-faq'; -import { FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH } from 'config'; import { Section } from 'shared/components'; import { useUpdatableFaq } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; +import { FaqWithMeta } from 'utils/faq'; type ClaimFaqProps = { - pageFAQ?: PageFAQ; - eTag?: string | null; + faqWithMeta: FaqWithMeta; }; -export const ClaimFaq: FC = ({ pageFAQ, eTag }) => { - // This hook actual on IPFS only (see: the `eTag` prop drilling)! - const { data: pageFaqIpfsMode } = useUpdatableFaq( - FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH, - eTag, - ); - - if (!pageFAQ || (!isPageFAQ(pageFAQ) && !pageFaqIpfsMode)) { - return null; - } +export const ClaimFaq: FC = ({ faqWithMeta }) => { + const { data: pageFAQ } = useUpdatableFaq(faqWithMeta); + if (!pageFAQ) return null; return ( <> diff --git a/features/withdrawals/withdrawals-faq/request-faq.tsx b/features/withdrawals/withdrawals-faq/request-faq.tsx index 31a3761d6..fbc07c45a 100644 --- a/features/withdrawals/withdrawals-faq/request-faq.tsx +++ b/features/withdrawals/withdrawals-faq/request-faq.tsx @@ -1,11 +1,11 @@ import React, { FC } from 'react'; -import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; +import { FaqAccordion } from '@lidofinance/ui-faq'; -import { FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH } from 'config'; import { Section } from 'shared/components'; import { useUpdatableFaq } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; +import { FaqWithMeta } from 'utils/faq'; // import { ButtonLinkWrap } from './styles'; // TODO: Replace this link when it will be finalized @@ -13,20 +13,12 @@ import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; // 'https://hackmd.io/@lido/SyaJQsZoj#Lido-on-Ethereum-Withdrawals-Landscape'; type RequestFaqProps = { - pageFAQ?: PageFAQ; - eTag?: string | null; + faqWithMeta: FaqWithMeta; }; -export const RequestFaq: FC = ({ pageFAQ, eTag }) => { - // This hook actual on IPFS only (see: the `eTag` prop drilling)! - const { data: pageFaqIpfsMode } = useUpdatableFaq( - FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH, - eTag, - ); - - if (!pageFAQ || (!isPageFAQ(pageFAQ) && !pageFaqIpfsMode)) { - return null; - } +export const RequestFaq: FC = ({ faqWithMeta }) => { + const { data: pageFAQ } = useUpdatableFaq(faqWithMeta); + if (!pageFAQ) return null; return ( <> diff --git a/features/withdrawals/withdrawals-tabs.tsx b/features/withdrawals/withdrawals-tabs.tsx index 69d8695fd..3a5fb3232 100644 --- a/features/withdrawals/withdrawals-tabs.tsx +++ b/features/withdrawals/withdrawals-tabs.tsx @@ -1,8 +1,7 @@ -import { PageFAQ } from '@lidofinance/ui-faq'; - import { WITHDRAWALS_CLAIM_PATH, WITHDRAWALS_REQUEST_PATH } from 'config/urls'; import { GoerliSunsetBanner } from 'shared/banners/goerli-sunset'; import { Switch } from 'shared/components'; +import { FaqWithMeta } from 'utils/faq'; import { ClaimDataProvider } from './contexts/claim-data-context'; import { useWithdrawals } from './contexts/withdrawals-context'; @@ -21,33 +20,23 @@ const withdrawalRoutes = [ ]; type WithdrawalsTabsProps = { - faq?: { - pageRequestFAQ?: PageFAQ; - pageClaimFAQ?: PageFAQ; - eTag?: string | null; - }; + faqWithMetaWithdrawalsPageClaim: FaqWithMeta | null; + faqWithMetaWithdrawalsPageRequest: FaqWithMeta | null; }; -export const WithdrawalsTabs = ({ faq }: WithdrawalsTabsProps) => { +export const WithdrawalsTabs = ({ + faqWithMetaWithdrawalsPageClaim, + faqWithMetaWithdrawalsPageRequest, +}: WithdrawalsTabsProps) => { const { isClaimTab } = useWithdrawals(); return ( {isClaimTab ? ( - + ) : ( - + )} ); diff --git a/features/wsteth/shared/wrap-faq/wrap-faq.tsx b/features/wsteth/shared/wrap-faq/wrap-faq.tsx index a9a3b54a2..c6b6bacd3 100644 --- a/features/wsteth/shared/wrap-faq/wrap-faq.tsx +++ b/features/wsteth/shared/wrap-faq/wrap-faq.tsx @@ -1,38 +1,28 @@ import React, { FC } from 'react'; -import { FaqAccordion, PageFAQ, isPageFAQ } from '@lidofinance/ui-faq'; +import { FaqAccordion } from '@lidofinance/ui-faq'; -import { FAQ_WRAP_AND_UNWRAP_PAGE_PATH } from 'config'; import { Section } from 'shared/components'; import { useUpdatableFaq } from 'shared/hooks/use-faq-on-client'; import { faqAccordionOnLinkClick } from 'utils/faq-matomo'; +import { FaqWithMeta } from 'utils/faq'; type WrapFaqProps = { - pageFAQ?: PageFAQ; - eTag?: string | null; + faqWithMeta: FaqWithMeta; }; -export const WrapFaq: FC = ({ pageFAQ, eTag }) => { - // This hook actual on IPFS only (see: the `eTag` prop drilling)! - const { data: pageFaqIpfsMode } = useUpdatableFaq( - FAQ_WRAP_AND_UNWRAP_PAGE_PATH, - eTag, - ); - - if (!pageFAQ || (!isPageFAQ(pageFAQ) && !pageFaqIpfsMode)) { - return null; - } +export const WrapFaq: FC = ({ faqWithMeta }) => { + const { data: pageFAQ } = useUpdatableFaq(faqWithMeta); + if (!pageFAQ) return null; return ( <>
{ faqAccordionOnLinkClick({ - pageId: - pageFaqIpfsMode?.pageIdentification || - pageFAQ?.pageIdentification, + pageId: pageFAQ.pageIdentification, ...props, }); }} diff --git a/features/wsteth/wrap-unwrap-tabs.tsx b/features/wsteth/wrap-unwrap-tabs.tsx index b77366c00..ffd85c1ec 100644 --- a/features/wsteth/wrap-unwrap-tabs.tsx +++ b/features/wsteth/wrap-unwrap-tabs.tsx @@ -1,5 +1,3 @@ -import { PageFAQ } from '@lidofinance/ui-faq'; - import { WRAP_PATH, WRAP_UNWRAP_PATH } from 'config/urls'; import { Wallet } from 'features/wsteth/shared/wallet'; @@ -7,6 +5,7 @@ import { WrapForm } from 'features/wsteth/wrap/wrap-form/wrap-form'; import { GoerliSunsetBanner } from 'shared/banners/goerli-sunset'; import { Switch } from 'shared/components/switch'; import NoSsrWrapper from 'shared/components/no-ssr-wrapper'; +import { FaqWithMeta } from 'utils/faq'; import { WrapFaq } from './shared/wrap-faq/wrap-faq'; import { UnwrapForm } from './unwrap/unwrap-form'; @@ -18,13 +17,13 @@ const NAV_ROUTES = [ type WrapUnwrapLayoutProps = { mode: 'wrap' | 'unwrap'; - faq: { - pageFAQ?: PageFAQ; - eTag?: string | null; - }; + faqWithMeta: FaqWithMeta | null; }; -export const WrapUnwrapTabs = ({ mode, faq }: WrapUnwrapLayoutProps) => { +export const WrapUnwrapTabs = ({ + mode, + faqWithMeta, +}: WrapUnwrapLayoutProps) => { const isUnwrapMode = mode === 'unwrap'; return ( <> @@ -35,7 +34,7 @@ export const WrapUnwrapTabs = ({ mode, faq }: WrapUnwrapLayoutProps) => { {isUnwrapMode ? : } - + {faqWithMeta && } ); }; diff --git a/pages/index.tsx b/pages/index.tsx index f5e0f6da2..c3deb6ec0 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -21,12 +21,14 @@ export const getStaticProps: GetStaticProps< if (process.env.IPFS_MODE) { return { props: { - stakePage: (await getFaqSSR(FAQ_STAKE_PAGE_PATH)) ?? null, - wrapPage: (await getFaqSSR(FAQ_WRAP_AND_UNWRAP_PAGE_PATH)) ?? null, - withdrawalsPageRequest: - (await getFaqSSR(FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH)) ?? null, - withdrawalsPageClaim: - (await getFaqSSR(FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH)) ?? null, + faqWithMetaStakePage: await getFaqSSR(FAQ_STAKE_PAGE_PATH), + faqWithMetaWrapPage: await getFaqSSR(FAQ_WRAP_AND_UNWRAP_PAGE_PATH), + faqWithMetaWithdrawalsPageRequest: await getFaqSSR( + FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH, + ), + faqWithMetaWithdrawalsPageClaim: await getFaqSSR( + FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH, + ), }, }; } @@ -34,7 +36,7 @@ export const getStaticProps: GetStaticProps< // FAQ for stake page regular return { props: { - pageFAQ: (await getFaqSSR(FAQ_STAKE_PAGE_PATH))?.faq ?? null, + faqWithMeta: await getFaqSSR(FAQ_STAKE_PAGE_PATH), }, revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/pages/withdrawals/[mode].tsx b/pages/withdrawals/[mode].tsx index b83ceadf9..0f39893fd 100644 --- a/pages/withdrawals/[mode].tsx +++ b/pages/withdrawals/[mode].tsx @@ -2,21 +2,23 @@ import { FC } from 'react'; import { GetStaticPaths, GetStaticProps } from 'next'; import Head from 'next/head'; -import { PageFAQ } from '@lidofinance/ui-faq'; - -import { FAQ_REVALIDATE_SECS } from 'config'; +import { + FAQ_REVALIDATE_SECS, + FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH, + FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH, +} from 'config'; import { WithdrawalsTabs } from 'features/withdrawals'; import { WithdrawalsProvider } from 'features/withdrawals/contexts/withdrawals-context'; import { Layout } from 'shared/components'; import NoSSRWrapper from 'shared/components/no-ssr-wrapper'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; import { getFaqSSR } from 'utilsApi/faq'; +import { FaqWithMeta } from 'utils/faq'; const Withdrawals: FC = ({ mode, - pageRequestFAQ, - pageClaimFAQ, - faqETag, + faqWithMetaWithdrawalsPageClaim, + faqWithMetaWithdrawalsPageRequest, }) => { const key = useWeb3Key(); @@ -32,11 +34,10 @@ const Withdrawals: FC = ({ @@ -51,10 +52,8 @@ type WithdrawalsModePageParams = { }; type WithdrawalsModePageProps = WithdrawalsModePageParams & { - pageRequestFAQ?: PageFAQ | null; - pageClaimFAQ?: PageFAQ | null; - // IPFS actual only! - faqETag?: string | null; + faqWithMetaWithdrawalsPageClaim: FaqWithMeta | null; + faqWithMetaWithdrawalsPageRequest: FaqWithMeta | null; }; export const getStaticPaths: GetStaticPaths< @@ -67,15 +66,17 @@ export const getStaticPaths: GetStaticPaths< }; export const getStaticProps: GetStaticProps< - WithdrawalsModePageParams, + WithdrawalsModePageProps, WithdrawalsModePageParams > = async ({ params }) => { // FAQ const faqProps = { - pageRequestFAQ: - (await getFaqSSR('/faq-withdrawals-page-request-tab.md'))?.faq ?? null, - pageClaimFAQ: - (await getFaqSSR('/faq-withdrawals-page-claim-tab.md'))?.faq ?? null, + faqWithMetaWithdrawalsPageRequest: await getFaqSSR( + FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH, + ), + faqWithMetaWithdrawalsPageClaim: await getFaqSSR( + FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH, + ), revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/pages/wrap/[[...mode]].tsx b/pages/wrap/[[...mode]].tsx index 9dedb8c9e..3fa33ecd8 100644 --- a/pages/wrap/[[...mode]].tsx +++ b/pages/wrap/[[...mode]].tsx @@ -2,15 +2,14 @@ import { FC } from 'react'; import { GetStaticPaths, GetStaticProps } from 'next'; import Head from 'next/head'; -import { PageFAQ } from '@lidofinance/ui-faq'; - -import { FAQ_REVALIDATE_SECS } from 'config'; +import { FAQ_REVALIDATE_SECS, FAQ_WRAP_AND_UNWRAP_PAGE_PATH } from 'config'; import { WrapUnwrapTabs } from 'features/wsteth/wrap-unwrap-tabs'; import { Layout } from 'shared/components'; import { useWeb3Key } from 'shared/hooks/useWeb3Key'; import { getFaqSSR } from 'utilsApi/faq'; +import { FaqWithMeta } from 'utils/faq'; -const WrapPage: FC = ({ mode, pageFAQ, faqETag }) => { +const WrapPage: FC = ({ mode, faqWithMeta }) => { const key = useWeb3Key(); return ( @@ -22,14 +21,7 @@ const WrapPage: FC = ({ mode, pageFAQ, faqETag }) => { Wrap | Lido - + ); }; @@ -38,9 +30,7 @@ export default WrapPage; type WrapModePageProps = { mode: 'wrap' | 'unwrap'; - pageFAQ?: PageFAQ | null; - // IPFS actual only! - faqETag?: string | null; + faqWithMeta: FaqWithMeta | null; }; type WrapModePageParams = { @@ -61,7 +51,7 @@ export const getStaticProps: GetStaticProps< > = async ({ params }) => { // FAQ const faqProps = { - pageFAQ: (await getFaqSSR('/faq-wrap-and-unwrap-page.md'))?.faq ?? null, + faqWithMeta: await getFaqSSR(FAQ_WRAP_AND_UNWRAP_PAGE_PATH), revalidate: FAQ_REVALIDATE_SECS, }; diff --git a/shared/hooks/use-faq-on-client.ts b/shared/hooks/use-faq-on-client.ts index fd9c61712..fce54257d 100644 --- a/shared/hooks/use-faq-on-client.ts +++ b/shared/hooks/use-faq-on-client.ts @@ -1,32 +1,26 @@ import { useLidoSWR, SWRResponse } from '@lido-sdk/react'; import { isPageFAQ, PageFAQ } from '@lidofinance/ui-faq'; -import { getFaqOnClient } from 'utils/faq'; +import { getFaqOnClient, FaqWithMeta } from 'utils/faq'; import { STRATEGY_CONSTANT } from 'utils/swrStrategies'; -export const useUpdatableFaq = ( - faqPath: string, - eTag?: string | null, -): SWRResponse => { +export type UseUpdatableFaq = (props: FaqWithMeta) => SWRResponse; + +export const useUpdatableFaq: UseUpdatableFaq = ({ pageFAQ, path, eTag }) => { return useLidoSWR( - ['swr:useUpdatableFaq', faqPath, eTag], + ['swr:useUpdatableFaq', path, eTag], async () => { if (!eTag) { - return undefined; + return pageFAQ; } - const respFaq = await getFaqOnClient(faqPath); - - if ( - !respFaq || - !respFaq.faq || - !isPageFAQ(respFaq.faq) || - eTag === respFaq?.eTag - ) { - return undefined; + const respFaq = await getFaqOnClient(path); + if (!respFaq || !isPageFAQ(respFaq.pageFAQ) || eTag === respFaq?.eTag) { + return pageFAQ; } - return respFaq.faq; + // Updated PageFAQ + return respFaq.pageFAQ; }, STRATEGY_CONSTANT, ); diff --git a/utils/faq.ts b/utils/faq.ts index df846ba22..eb5307a95 100644 --- a/utils/faq.ts +++ b/utils/faq.ts @@ -1,6 +1,7 @@ import { PageFAQ, parseFAQ } from '@lidofinance/ui-faq'; import { dynamics } from 'config'; +import { getPathWithoutFirstSlash } from 'config/urls'; import { fetcherWithServiceResponse } from 'utils/fetcher-with-service-response'; export const fetchFaqOnClient = async ( @@ -11,7 +12,7 @@ export const fetchFaqOnClient = async ( ); const resp = await fetcherWithServiceResponse( - `${dynamics.faqContentBasePath}/${path}`, + `${dynamics.faqContentBasePath}/${getPathWithoutFirstSlash(path)}`, { method: 'GET', headers: { @@ -31,9 +32,15 @@ export const fetchFaqOnClient = async ( return resp; }; +export type FaqWithMeta = { + pageFAQ: PageFAQ; + path: string; + eTag?: string | null; +}; + export const getFaqOnClient = async ( path: string, -): Promise<{ faq?: PageFAQ | null; eTag?: string | null } | null> => { +): Promise => { try { const rawFaqResp = await fetchFaqOnClient(path); @@ -41,8 +48,12 @@ export const getFaqOnClient = async ( // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. if (!rawFaqResp || !rawFaqResp.data) return null; + const parsedFaq = await parseFAQ(rawFaqResp.data); + if (!parsedFaq) return null; + return { - faq: await parseFAQ(rawFaqResp.data), + pageFAQ: parsedFaq, + path, eTag: rawFaqResp?.headers?.get('ETag'), }; } catch (err) { diff --git a/utilsApi/faq.ts b/utilsApi/faq.ts index 40b06a950..590cd6500 100644 --- a/utilsApi/faq.ts +++ b/utilsApi/faq.ts @@ -1,7 +1,8 @@ -import { PageFAQ, parseFAQ } from '@lidofinance/ui-faq'; +import { parseFAQ } from '@lidofinance/ui-faq'; import { serverRuntimeConfig } from 'config'; import { fetcherWithServiceResponse } from 'utils/fetcher-with-service-response'; +import { FaqWithMeta } from 'utils/faq'; import { responseTimeExternalMetricWrapper } from './fetchApiWrapper'; @@ -32,9 +33,7 @@ export const fetchFaqSSR = async ( return resp; }; -export const getFaqSSR = async ( - path: string, -): Promise<{ faq?: PageFAQ | null; eTag?: string | null } | null> => { +export const getFaqSSR = async (path: string): Promise => { try { const rawFaqResp = await fetchFaqSSR(path); @@ -42,8 +41,12 @@ export const getFaqSSR = async ( // Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value. if (!rawFaqResp || !rawFaqResp.data) return null; + const parsedFaq = await parseFAQ(rawFaqResp.data); + if (!parsedFaq) return null; + return { - faq: await parseFAQ(rawFaqResp.data), + pageFAQ: parsedFaq, + path, eTag: rawFaqResp?.headers?.get('ETag'), }; } catch (err) { From a260d60d3746508546dc58af107d9b70b9e222e5 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 16 Jan 2024 11:05:44 +0300 Subject: [PATCH 42/47] feat: use ETag only in IPFS --- pages/index.tsx | 9 +++++++-- utilsApi/faq.ts | 7 +++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pages/index.tsx b/pages/index.tsx index c3deb6ec0..fad1e9b0f 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -21,13 +21,18 @@ export const getStaticProps: GetStaticProps< if (process.env.IPFS_MODE) { return { props: { - faqWithMetaStakePage: await getFaqSSR(FAQ_STAKE_PAGE_PATH), - faqWithMetaWrapPage: await getFaqSSR(FAQ_WRAP_AND_UNWRAP_PAGE_PATH), + faqWithMetaStakePage: await getFaqSSR(FAQ_STAKE_PAGE_PATH, false), + faqWithMetaWrapPage: await getFaqSSR( + FAQ_WRAP_AND_UNWRAP_PAGE_PATH, + false, + ), faqWithMetaWithdrawalsPageRequest: await getFaqSSR( FAQ_WITHDRAWALS_PAGE_REQUEST_TAB_PATH, + false, ), faqWithMetaWithdrawalsPageClaim: await getFaqSSR( FAQ_WITHDRAWALS_PAGE_CLAIM_TAB_PATH, + false, ), }, }; diff --git a/utilsApi/faq.ts b/utilsApi/faq.ts index 590cd6500..b7601893f 100644 --- a/utilsApi/faq.ts +++ b/utilsApi/faq.ts @@ -33,7 +33,10 @@ export const fetchFaqSSR = async ( return resp; }; -export const getFaqSSR = async (path: string): Promise => { +export const getFaqSSR = async ( + path: string, + excludeETag = true, +): Promise => { try { const rawFaqResp = await fetchFaqSSR(path); @@ -47,7 +50,7 @@ export const getFaqSSR = async (path: string): Promise => { return { pageFAQ: parsedFaq, path, - eTag: rawFaqResp?.headers?.get('ETag'), + eTag: !excludeETag ? rawFaqResp?.headers?.get('ETag') : null, }; } catch (err) { console.error( From c73009d9563b3e00539ac433927b6767dcfb3be1 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 16 Jan 2024 11:24:18 +0300 Subject: [PATCH 43/47] chore: updated @lidofinance/lido-ui --- package.json | 2 +- yarn.lock | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 7ec187cd9..d3ee28ed9 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "@lidofinance/api-rpc": "^0.28.0", "@lidofinance/eth-api-providers": "^0.28.0", "@lidofinance/eth-providers": "^0.28.0", - "@lidofinance/lido-ui": "3.16.0", + "@lidofinance/lido-ui": "^3.18.2", "@lidofinance/next-api-wrapper": "^0.28.0", "@lidofinance/next-ip-rate-limit": "^0.28.0", "@lidofinance/next-pages": "^0.28.0", diff --git a/yarn.lock b/yarn.lock index dbae41821..c149a2f8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2238,14 +2238,12 @@ ua-parser-js "^1.0.35" use-callback-ref "1.2.5" -"@lidofinance/lido-ui@3.16.0": - version "3.16.0" - resolved "https://registry.yarnpkg.com/@lidofinance/lido-ui/-/lido-ui-3.16.0.tgz#11a89db8f0ae0ed1a1be396f354fff59273ef4be" - integrity sha512-rT9bwoautHsqijBrH4Ow81Frx7nJQObMyqK5RWjdQHCXeh2MYyYGf3zqqf7kqKyRRdDEjyD31LQVRuS8QAqeDg== +"@lidofinance/lido-ui@^3.18.2": + version "3.18.2" + resolved "https://registry.yarnpkg.com/@lidofinance/lido-ui/-/lido-ui-3.18.2.tgz#7eaa79270b9f23129d776ebe2a083f4329fe9ec6" + integrity sha512-/MXmkHmliyQ5S7/TQW87XMYLd7May8R+rZ7JHbiZzaLEzUwixlLyFvWpmtX2CKJ4JL13KKWke/06gbNG/8wC5A== dependencies: "@styled-system/should-forward-prop" "5.1.5" - "@swc/helpers" "^0.4.11" - "@swc/plugin-styled-components" "^1.2.10" react-collapsed "3.0.2" react-jazzicon "^1.0.4" react-toastify "7.0.4" From 81524965f570e079aa8d05091b28ab8ab161102b Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 16 Jan 2024 11:44:06 +0300 Subject: [PATCH 44/47] chore: yarn --- yarn.lock | 2413 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 1602 insertions(+), 811 deletions(-) diff --git a/yarn.lock b/yarn.lock index daceaaa31..d7cf019cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,46 +15,46 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" - integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" - integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.21.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" - integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.2" - "@babel/parser" "^7.23.3" + "@babel/helpers" "^7.23.7" + "@babel/parser" "^7.23.6" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.3" - "@babel/types" "^7.23.3" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.3", "@babel/generator@^7.23.4", "@babel/generator@^7.7.2": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" - integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== +"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== dependencies: - "@babel/types" "^7.23.4" + "@babel/types" "^7.23.6" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -73,28 +73,28 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" - integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== +"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz#b2e6826e0e20d337143655198b79d58fdc9bd43d" + integrity sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.9" + "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" @@ -108,10 +108,10 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" - integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== +"@babel/helper-define-polyfill-provider@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" + integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -119,7 +119,7 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": +"@babel/helper-environment-visitor@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== @@ -139,7 +139,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.15": +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== @@ -185,7 +185,7 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.9": +"@babel/helper-replace-supers@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== @@ -225,10 +225,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" - integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== "@babel/helper-wrap-function@^7.22.20": version "7.22.20" @@ -239,14 +239,14 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.23.2": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" - integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== +"@babel/helpers@^7.23.7": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.8.tgz#fc6b2d65b16847fd50adddbd4232c76378959e34" + integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.4" - "@babel/types" "^7.23.4" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" "@babel/highlight@^7.23.4": version "7.23.4" @@ -257,10 +257,10 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" - integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" @@ -278,10 +278,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" - integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -446,10 +446,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.23.3": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" - integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== +"@babel/plugin-transform-async-generator-functions@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd" + integrity sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -472,7 +472,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.23.3": +"@babel/plugin-transform-block-scoping@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== @@ -487,7 +487,7 @@ "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-static-block@^7.23.3": +"@babel/plugin-transform-class-static-block@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== @@ -496,16 +496,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz#73380c632c095b03e8503c24fd38f95ad41ffacb" - integrity sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w== +"@babel/plugin-transform-classes@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-split-export-declaration" "^7.22.6" @@ -541,7 +540,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dynamic-import@^7.23.3": +"@babel/plugin-transform-dynamic-import@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== @@ -557,7 +556,7 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-export-namespace-from@^7.23.3": +"@babel/plugin-transform-export-namespace-from@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== @@ -565,12 +564,13 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" - integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== +"@babel/plugin-transform-for-of@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" + integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-function-name@^7.23.3": version "7.23.3" @@ -581,7 +581,7 @@ "@babel/helper-function-name" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-json-strings@^7.23.3": +"@babel/plugin-transform-json-strings@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== @@ -596,7 +596,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-logical-assignment-operators@^7.23.3": +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== @@ -661,7 +661,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-nullish-coalescing-operator@^7.23.3": +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== @@ -669,7 +669,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.23.3": +"@babel/plugin-transform-numeric-separator@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== @@ -677,7 +677,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.23.3": +"@babel/plugin-transform-object-rest-spread@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== @@ -696,7 +696,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" -"@babel/plugin-transform-optional-catch-binding@^7.23.3": +"@babel/plugin-transform-optional-catch-binding@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== @@ -704,7 +704,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.23.3": +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== @@ -728,7 +728,7 @@ "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-property-in-object@^7.23.3": +"@babel/plugin-transform-private-property-in-object@^7.23.4": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== @@ -837,12 +837,12 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-typescript@^7.23.3": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz#da12914d17b3c4b307f32c5fd91fbfdf17d56f86" - integrity sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ== + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" + integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-create-class-features-plugin" "^7.23.6" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.23.3" @@ -878,17 +878,17 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.20.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.3.tgz#d299e0140a7650684b95c62be2db0ef8c975143e" - integrity sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q== + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.8.tgz#7d6f8171ea7c221ecd28059e65ad37c20e441e3e" + integrity sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA== dependencies: - "@babel/compat-data" "^7.23.3" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" + "@babel/helper-validator-option" "^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -909,25 +909,25 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.7" "@babel/plugin-transform-async-to-generator" "^7.23.3" "@babel/plugin-transform-block-scoped-functions" "^7.23.3" - "@babel/plugin-transform-block-scoping" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" "@babel/plugin-transform-class-properties" "^7.23.3" - "@babel/plugin-transform-class-static-block" "^7.23.3" - "@babel/plugin-transform-classes" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.8" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" "@babel/plugin-transform-duplicate-keys" "^7.23.3" - "@babel/plugin-transform-dynamic-import" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" "@babel/plugin-transform-exponentiation-operator" "^7.23.3" - "@babel/plugin-transform-export-namespace-from" "^7.23.3" - "@babel/plugin-transform-for-of" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.6" "@babel/plugin-transform-function-name" "^7.23.3" - "@babel/plugin-transform-json-strings" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" "@babel/plugin-transform-literals" "^7.23.3" - "@babel/plugin-transform-logical-assignment-operators" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" "@babel/plugin-transform-member-expression-literals" "^7.23.3" "@babel/plugin-transform-modules-amd" "^7.23.3" "@babel/plugin-transform-modules-commonjs" "^7.23.3" @@ -935,15 +935,15 @@ "@babel/plugin-transform-modules-umd" "^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.3" - "@babel/plugin-transform-numeric-separator" "^7.23.3" - "@babel/plugin-transform-object-rest-spread" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" "@babel/plugin-transform-object-super" "^7.23.3" - "@babel/plugin-transform-optional-catch-binding" "^7.23.3" - "@babel/plugin-transform-optional-chaining" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" "@babel/plugin-transform-parameters" "^7.23.3" "@babel/plugin-transform-private-methods" "^7.23.3" - "@babel/plugin-transform-private-property-in-object" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" "@babel/plugin-transform-property-literals" "^7.23.3" "@babel/plugin-transform-regenerator" "^7.23.3" "@babel/plugin-transform-reserved-words" "^7.23.3" @@ -957,9 +957,9 @@ "@babel/plugin-transform-unicode-regex" "^7.23.3" "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" core-js-compat "^3.31.0" semver "^6.3.1" @@ -1000,10 +1000,10 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.17.2", "@babel/runtime@^7.23.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e" - integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== +"@babel/runtime@^7.17.2", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" + integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== dependencies: regenerator-runtime "^0.14.0" @@ -1016,26 +1016,26 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4", "@babel/traverse@^7.4.5": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" - integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== +"@babel/traverse@^7.23.7", "@babel/traverse@^7.4.5": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== dependencies: - "@babel/code-frame" "^7.23.4" - "@babel/generator" "^7.23.4" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.4" - "@babel/types" "^7.23.4" - debug "^4.1.0" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" - integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== dependencies: "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" @@ -1313,10 +1313,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" - integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1328,10 +1328,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.54.0": - version "8.54.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" - integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.7.0": version "5.7.0" @@ -1708,12 +1708,12 @@ cross-fetch "^3.1.5" "@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -1721,10 +1721,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== "@ioredis/commands@^1.1.1": version "1.2.0" @@ -1979,118 +1979,113 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + version "0.3.21" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz#5dc1df7b3dc4a6209e503a924e1ca56097a2bb15" + integrity sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" "@ledgerhq/connect-kit-loader@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.2.tgz#d550e3c1f046e4c796f32a75324b03606b7e226a" - integrity sha512-mscwGroSJQrCTjtNGBu+18FQbZYA4+q6Tyx6K7CXHl6AwgZKbWfZYdgP2F+fyZcRUdGRsMX8QtvU61VcGGtO1A== + version "1.1.8" + resolved "https://registry.yarnpkg.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.8.tgz#6cc32191660dd9d6e8f89047af09b0f201e30190" + integrity sha512-mDJsOucVW8m3Lk2fdQst+P74SgiKebvq1iBk4sXLbADQOwhL9bWGaArvO+tW7jPJZwEfSPWBdHcHoYi11XAwZw== -"@ledgerhq/cryptoassets@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/cryptoassets/-/cryptoassets-11.1.0.tgz#d8cb334e1ab3cf3debd3964c0ba1931841a95e84" - integrity sha512-Ky8ZaXQHd8YcLsjPRpU1QeMolZTVhjV4oDy31sdToKFbYSDmrpIVNSNlCXzkIERR7wUVV5h5XrAPnHH+c8HxGw== +"@ledgerhq/cryptoassets@^11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/cryptoassets/-/cryptoassets-11.3.1.tgz#4db44a13a91e884c5a26526cd664f84c06b23eae" + integrity sha512-TlC4M9IoQmGYOu8EWwC3yEX/M9s8rD/RY996VP0+dsWk287MoQoy9ZIYlKtNEG5GjIGTCyuQhWLI1WdQNXA3QA== dependencies: + axios "^1.6.0" + bs58check "^2.1.2" invariant "2" -"@ledgerhq/devices@^8.0.8": - version "8.0.8" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.8.tgz#cd233eb54a044913160c9183be9fb22adae4e071" - integrity sha512-0j7E8DY2jeSSATc8IJk+tXDZ9u+Z7tXxB8I4TzXrfV/8A5exMh/K1IwX6Jt1zlw1wre4CT9MV4mzUs3M/TE7lg== +"@ledgerhq/devices@^8.2.0": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.2.0.tgz#ef67bf49628252d1779acaa151b1a941acba790e" + integrity sha512-XROTW2gTmmuy+YPPDjdtKKTQ3mfxrPtKtV+a9QFbj8f5MnjVMV0Zpy1BIB4CyIMsVVi4z6+nI67auT7IlsM3SQ== dependencies: - "@ledgerhq/errors" "^6.15.0" - "@ledgerhq/logs" "^6.11.0" + "@ledgerhq/errors" "^6.16.1" + "@ledgerhq/logs" "^6.12.0" rxjs "^7.8.1" semver "^7.3.5" -"@ledgerhq/domain-service@^1.1.14": - version "1.1.14" - resolved "https://registry.yarnpkg.com/@ledgerhq/domain-service/-/domain-service-1.1.14.tgz#dbb2b297ab560d36e62ce9def59f892b7de24970" - integrity sha512-Hi0OUSRrngpj0HhZoP9m/E1sDstiKxxaxxBuRAP/NlfLOJjAasxDRQA/Pyh4Gs4YHnhLZNWp4heXTJ8F1KMedA== +"@ledgerhq/domain-service@^1.1.16": + version "1.1.16" + resolved "https://registry.yarnpkg.com/@ledgerhq/domain-service/-/domain-service-1.1.16.tgz#1d2d53339008d4540dc94e152a411d08e072f228" + integrity sha512-ovdYTrostrbQl5SnKoUw4BeYfLRfBSe7S0zEV9MHo3MlSHI0H4sfcpfM7g8CXybwOg/xHaP9uKm4Mlbg7JNxrg== dependencies: - "@ledgerhq/errors" "^6.15.0" - "@ledgerhq/logs" "^6.11.0" - "@ledgerhq/types-live" "^6.42.0" + "@ledgerhq/errors" "^6.16.1" + "@ledgerhq/logs" "^6.12.0" + "@ledgerhq/types-live" "^6.43.1" axios "^1.3.4" eip55 "^2.1.1" react "^18.2.0" react-dom "^18.2.0" -"@ledgerhq/errors@^6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.15.0.tgz#45cda73915f695cc072cb8a99650830bc5dc6668" - integrity sha512-6xaw5/mgoht62TnL3rXsaQYEFwpnXyNDk1AOSJksIjFHx9bHUnkyVmrnGQDj0JLzi+E7bHEgTrpCs8wpeDh9jA== +"@ledgerhq/errors@^6.16.1": + version "6.16.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.16.1.tgz#df650a9ba105397dee2e8c0ceddf6931c5b25ede" + integrity sha512-4D4wKecGzQpIu7sx03Sg4uE1e8g1oZUndWgw9gw776H8h9ov9c5TxPaldTn2j6orPECAERViLf7LTO4L5pE2Cw== -"@ledgerhq/evm-tools@^1.0.10": - version "1.0.10" - resolved "https://registry.yarnpkg.com/@ledgerhq/evm-tools/-/evm-tools-1.0.10.tgz#97317238bfc1184fa3328f194c9a746a2f6fc259" - integrity sha512-CyViTYzYgLrtxkl203JAZpqlVYCXN8N03cDLdm9EL8GhEzxkyAYIv4hS2SwhWATGXdGAnEoPmju91XrudQ1OxA== +"@ledgerhq/evm-tools@^1.0.13": + version "1.0.13" + resolved "https://registry.yarnpkg.com/@ledgerhq/evm-tools/-/evm-tools-1.0.13.tgz#f8c23213efcbee7f0b39e74d3e4df7b21961c58a" + integrity sha512-i+qqt3BWlueVgO7ob2bjo8scx2PD1rCH/pfXg9BftiftgmgUNnrCzpdailFSNyQH9QSic6E3Q3t74qlA6CzdxA== dependencies: - "@ledgerhq/cryptoassets" "^11.1.0" - "@ledgerhq/live-env" "^0.6.1" - "@ledgerhq/live-network" "^1.1.8" + "@ledgerhq/cryptoassets" "^11.3.1" + "@ledgerhq/live-env" "^0.8.0" + "@ledgerhq/live-network" "^1.1.10" crypto-js "4.2.0" ethers "5.7.2" -"@ledgerhq/hw-app-eth@^6.34.3", "@ledgerhq/hw-app-eth@^6.34.8": - version "6.34.9" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-6.34.9.tgz#29dbaefa8793f65589cdcdb8764e594433b24e3f" - integrity sha512-L9NaJjFuGwnICF55D8vZ8yRNAFy5k5LwweuyZOXFgSvu72uj1ygQKFWSJbr77CY0e6p/omFvqeqiw3J6RmSMWw== +"@ledgerhq/hw-app-eth@^6.34.3", "@ledgerhq/hw-app-eth@^6.35.0": + version "6.35.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-6.35.2.tgz#20bdb6edddb1f355f47cdb9280de11027dc67491" + integrity sha512-ZHZFfi1k6L43pmjdXEMch0jR9pglGNHmfZBQctdZZYCCckDfuYz4Ne68LABC6uoH+M8xjBiByHQA+Rc2HPptqQ== dependencies: "@ethersproject/abi" "^5.5.0" "@ethersproject/rlp" "^5.5.0" - "@ledgerhq/cryptoassets" "^11.1.0" - "@ledgerhq/domain-service" "^1.1.14" - "@ledgerhq/errors" "^6.15.0" - "@ledgerhq/evm-tools" "^1.0.10" - "@ledgerhq/hw-transport" "^6.29.0" - "@ledgerhq/hw-transport-mocker" "^6.27.20" - "@ledgerhq/logs" "^6.11.0" - "@ledgerhq/types-live" "^6.42.0" + "@ledgerhq/cryptoassets" "^11.3.1" + "@ledgerhq/domain-service" "^1.1.16" + "@ledgerhq/errors" "^6.16.1" + "@ledgerhq/evm-tools" "^1.0.13" + "@ledgerhq/hw-transport" "^6.30.1" + "@ledgerhq/hw-transport-mocker" "^6.28.1" + "@ledgerhq/logs" "^6.12.0" + "@ledgerhq/types-live" "^6.43.1" axios "^1.3.4" bignumber.js "^9.1.2" -"@ledgerhq/hw-transport-mocker@^6.27.20": - version "6.27.20" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-6.27.20.tgz#d2b5f82797fad20544995220bb080a527f125198" - integrity sha512-o5nGuMLs/akXUvgD1f2u1DqhiC7Ii8x3fCmdE5KExCMo3dVWYkeeV3LTUzx+bp+daJFeYNKOa9+Z7XpqIuEJtA== +"@ledgerhq/hw-transport-mocker@^6.28.1": + version "6.28.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-6.28.1.tgz#7bc020b2d9b43288dcfbb1aa43e62220a94bd506" + integrity sha512-o2psew3qYp1O7Bh3qCdktGxm5HqVl3RHFl1zzxUOSr4i3nxvLhGvm0Ku/5tFLRjaxVwmSo6f7pBN9o+rOpcrNg== dependencies: - "@ledgerhq/hw-transport" "^6.29.0" - "@ledgerhq/logs" "^6.11.0" + "@ledgerhq/hw-transport" "^6.30.1" + "@ledgerhq/logs" "^6.12.0" rxjs "^7.8.1" -"@ledgerhq/hw-transport-webhid@^6.27.19": - version "6.27.20" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.20.tgz#87f83e42ea0e4cb5c6e87dbfc6e5e45d125eb68f" - integrity sha512-zNZgTTpbPFBHgzQRqVl3+Y0ySOFkEIGxxHT1y+AgSxRmoLgfzsBQgYy6z3jZZyJQ92B8Tl95hAvMm9vo7IqxWA== +"@ledgerhq/hw-transport-webhid@^6.27.19", "@ledgerhq/hw-transport-webhid@^6.28.0": + version "6.28.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.28.1.tgz#af13c517514451bf60ee83d8e2b402028504af5c" + integrity sha512-m1FzUaaRdMm+KWz+sm4RGjG1axAIYEnIC3PqwFGMtXDjyPVohdWxRJD9B2L/etR4EY67b7AH/MoQ02rpUqCCEA== dependencies: - "@ledgerhq/devices" "^8.0.8" - "@ledgerhq/errors" "^6.15.0" - "@ledgerhq/hw-transport" "^6.29.0" - "@ledgerhq/logs" "^6.11.0" + "@ledgerhq/devices" "^8.2.0" + "@ledgerhq/errors" "^6.16.1" + "@ledgerhq/hw-transport" "^6.30.1" + "@ledgerhq/logs" "^6.12.0" -"@ledgerhq/hw-transport@^6.28.8", "@ledgerhq/hw-transport@^6.29.0": - version "6.29.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.29.0.tgz#2b85f39d90b093930f0c7bfc513b29eb47ba97fa" - integrity sha512-WQfzxt3EnnbOmzZVYiCgSmNsqafBOFQn40awvUPY2IZviJRs23/1ANPHAo76bzPV88+Qk0+1wZlcnIanGN6fFA== +"@ledgerhq/hw-transport@^6.28.8", "@ledgerhq/hw-transport@^6.30.0", "@ledgerhq/hw-transport@^6.30.1": + version "6.30.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.30.1.tgz#fd3c825f41197aeaf705e3c066f82843eaf48cae" + integrity sha512-Xeeo4nt33g5Fsp3CdsPvcc2Uk7dwYeKRSlSFLWcYAAKprf/PmxgNekhke1eaNU/wLoeLOWhY2Cki8F8w9nLMdQ== dependencies: - "@ledgerhq/devices" "^8.0.8" - "@ledgerhq/errors" "^6.15.0" - "@ledgerhq/logs" "^6.11.0" + "@ledgerhq/devices" "^8.2.0" + "@ledgerhq/errors" "^6.16.1" + "@ledgerhq/logs" "^6.12.0" events "^3.3.0" -"@ledgerhq/iframe-provider@0": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@ledgerhq/iframe-provider/-/iframe-provider-0.4.3.tgz#62f680a935b753487df7d8bf48a13952f5456e4e" - integrity sha512-T7rSxDMjOnV25QWo3aoWWLytB+VvFcQH5xVkYt7hAhc8qCaK9fnJD5VcmrqwPnyjzXslu7Vz8wUwj9w0CIgp6A== - dependencies: - eventemitter3 "^4.0.0" - "@ledgerhq/iframe-provider@0.4.2": version "0.4.2" resolved "https://registry.yarnpkg.com/@ledgerhq/iframe-provider/-/iframe-provider-0.4.2.tgz#2b63892bb3ab9a0719d2b00488be18b176ad6b7e" @@ -2098,43 +2093,50 @@ dependencies: eventemitter3 "^4.0.0" -"@ledgerhq/live-env@^0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/live-env/-/live-env-0.6.1.tgz#5ccfc966752507f05a2de8384e7d6d90574071dd" - integrity sha512-DZoFlj35qnjUoOtqPih1ZtjMpJTD8z76JcyHPi/PXD/vGw9ZkitaYP9K2Ihnm3TWul5YzbtF0Q6lvcRswklpPw== +"@ledgerhq/iframe-provider@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@ledgerhq/iframe-provider/-/iframe-provider-0.4.3.tgz#62f680a935b753487df7d8bf48a13952f5456e4e" + integrity sha512-T7rSxDMjOnV25QWo3aoWWLytB+VvFcQH5xVkYt7hAhc8qCaK9fnJD5VcmrqwPnyjzXslu7Vz8wUwj9w0CIgp6A== + dependencies: + eventemitter3 "^4.0.0" + +"@ledgerhq/live-env@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/live-env/-/live-env-0.8.0.tgz#c250e355a53aa24e810e6480464cc522801c3ac9" + integrity sha512-RLMNkbdwX2W8Kaizq2S4S9Zg32NcQ+vUyhk3UOlcbr6bEByAUcLUfQjQ7bUJfGEtRZCMz9hXLwBqLCrE/L0YCw== dependencies: rxjs "^7.8.1" utility-types "^3.10.0" -"@ledgerhq/live-network@^1.1.8": - version "1.1.8" - resolved "https://registry.yarnpkg.com/@ledgerhq/live-network/-/live-network-1.1.8.tgz#c1405e070e2bc3373c59f590812393c046e46fa4" - integrity sha512-3cyEMKI6yqJGTfruFyxfnki5OkyrTATwR5CRYUL1keRsVjaB3OdYWqlXesFv23ra1myF1Y7OZemzmwHR2gqTqw== +"@ledgerhq/live-network@^1.1.10": + version "1.1.10" + resolved "https://registry.yarnpkg.com/@ledgerhq/live-network/-/live-network-1.1.10.tgz#f3b6cac4eecaa2cc62f8fa412c58e3ce06ef0aa7" + integrity sha512-kEwRRRk3228KDZicGelrbP64VjvA2aUYg3Q7GaemgE6/OT/i0pmurII3QUbkCSTlf/H9fGfy3Ztf/4MvcKb5VA== dependencies: - "@ledgerhq/errors" "^6.15.0" - "@ledgerhq/live-env" "^0.6.1" - "@ledgerhq/live-promise" "^0.0.2" - "@ledgerhq/logs" "^6.11.0" + "@ledgerhq/errors" "^6.16.1" + "@ledgerhq/live-env" "^0.8.0" + "@ledgerhq/live-promise" "^0.0.3" + "@ledgerhq/logs" "^6.12.0" axios "0.26.1" invariant "^2.2.2" lru-cache "^7.14.1" -"@ledgerhq/live-promise@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/live-promise/-/live-promise-0.0.2.tgz#3b0d5d3098e62fd8c1a9d364daeed91be5d3089b" - integrity sha512-UT3UL7r/67ADw8Ykxg/GrslBr+GqjWCjklIAnlXWTS8zsH58SUp8wJRJN9Ie28RCt0im9UitrQ5o41D8KPszag== +"@ledgerhq/live-promise@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@ledgerhq/live-promise/-/live-promise-0.0.3.tgz#432693468ddd48f94a24437c01791d59d393adbc" + integrity sha512-/49dRz5XoxUw4TFq0kytU2Vz9w+FoGgG28U8RH9nuUWVPjVhAPvhY/QXUQA+7qqaorEIAYPHF0Rappalawhr+g== dependencies: - "@ledgerhq/logs" "^6.11.0" + "@ledgerhq/logs" "^6.12.0" -"@ledgerhq/logs@^6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.11.0.tgz#0d28e7edcf71548506f4304686cba480ba91bbcf" - integrity sha512-HHK9y4GGe4X7CXbRUCh7z8Mp+WggpJn1dmUjmuk1rNugESF6o8nAOnXA+BxwtRRNV3CgNJR3Wxdos4J9qV0Zsg== +"@ledgerhq/logs@^6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.12.0.tgz#ad903528bf3687a44da435d7b2479d724d374f5d" + integrity sha512-ExDoj1QV5eC6TEbMdLUMMk9cfvNKhhv5gXol4SmULRVCx/3iyCPhJ74nsb3S0Vb+/f+XujBEj3vQn5+cwS0fNA== -"@ledgerhq/types-live@^6.42.0": - version "6.42.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/types-live/-/types-live-6.42.0.tgz#d143834b3dfd3acfbaad95e491bb5adbffc7fe63" - integrity sha512-YI1WD8CLEXibVQsp0wR7NqyLgJQlgYiXdqhj1vQZLUSR5/Mnq1TxbaTvFUveMy4V+4sj8e5rRJCyEyz1/sgzCw== +"@ledgerhq/types-live@^6.43.1": + version "6.43.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/types-live/-/types-live-6.43.1.tgz#1f983151c628f3f84c600d8ce69ecb7c89c7e5a9" + integrity sha512-XaDACXAULFmY95scTmZNOaQMxiqmdj3kEhPRA3aDcB8VA8jzjK0+nrNx6qWNZbH3tgo1xj8gwz7bdmPoOgrqfg== dependencies: bignumber.js "^9.1.2" rxjs "^7.8.1" @@ -2222,6 +2224,22 @@ resolved "https://registry.yarnpkg.com/@lidofinance/eth-providers/-/eth-providers-0.28.0.tgz#069dfcd66f97418298646abd2742e8e997c6fbbb" integrity sha512-oH2nU7jVPkn1mii56vp3gBFZNFR/LysxiKBUwV2freFoizQHNLeWWjU1b8a+l1I020LzbxHcatOkV6z9ur5YfA== +"@lidofinance/lido-ui@3.14.1": + version "3.14.1" + resolved "https://registry.yarnpkg.com/@lidofinance/lido-ui/-/lido-ui-3.14.1.tgz#780d32c3321295a40d44c352a307029a2b574e43" + integrity sha512-8vqv1E9ldPAIAceANPrh1alLPFWbYzz8AO6RhNbtFms+yPd5P2nSh5OopBLB1G2HE4lGFF0c3OXbMgyEcq9pEQ== + dependencies: + "@styled-system/should-forward-prop" "5.1.5" + "@swc/helpers" "^0.4.11" + "@swc/plugin-styled-components" "^1.2.10" + react-collapsed "3.0.2" + react-jazzicon "^1.0.4" + react-toastify "7.0.4" + react-transition-group "4" + styled-system "5.1.5" + ua-parser-js "^1.0.35" + use-callback-ref "1.2.5" + "@lidofinance/lido-ui@^3.18.0", "@lidofinance/lido-ui@^3.18.2": version "3.18.2" resolved "https://registry.yarnpkg.com/@lidofinance/lido-ui/-/lido-ui-3.18.2.tgz#7eaa79270b9f23129d776ebe2a083f4329fe9ec6" @@ -2253,6 +2271,11 @@ resolved "https://registry.yarnpkg.com/@lidofinance/next-pages/-/next-pages-0.28.0.tgz#87bfd8a4eefe9d446dfa5b8d9909ecc5e1fc7a34" integrity sha512-rtiRpEbzHlCGqnad3uXOGVdu6zq7pFlgoyWY/SCOvimzJdAYfNWEQs4rOP8quiOqMQxCqUAbpmoz2/WKkibLQA== +"@lidofinance/next-ui-primitives@^0.39.0": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@lidofinance/next-ui-primitives/-/next-ui-primitives-0.39.1.tgz#5e89aa465e2e54d62c6c45c0704e0eef0e5dadfc" + integrity sha512-sX3YH+bCPeRrCICosc/GeUPPFvXNE/Rl7fPpVEyAa9aUhLa8UuxAlWSjNvXR897tDYu8HnXCQwFYGXsEgqL31g== + "@lidofinance/rpc@^0.28.0": version "0.28.0" resolved "https://registry.yarnpkg.com/@lidofinance/rpc/-/rpc-0.28.0.tgz#f96590fef8bf418cd32a2835753df6a69a568cdc" @@ -2265,6 +2288,21 @@ resolved "https://registry.yarnpkg.com/@lidofinance/satanizer/-/satanizer-0.32.0.tgz#3ea01a94b7b5c58751a9e3030f6134c83cecefaf" integrity sha512-gHoZM8l/AWWT1YyZf+4/IViAxGuALZNo29b4bWvmEGJw/Xv0ChRPP2/xLEugdk03T16r8vxww3j/tAYTTzGzQw== +"@lidofinance/ui-faq@0.39.1": + version "0.39.1" + resolved "https://registry.yarnpkg.com/@lidofinance/ui-faq/-/ui-faq-0.39.1.tgz#8a88fe1e5a8388f7aa1cff8b0a6347844bcfb480" + integrity sha512-1otkp7ryO0JixxsTwqJuAI786ec0qaz/UfFiAO8kb8U3q1htuZZpq5kRulwcTStp5XALCoN/jPSHKuxiZwn+8Q== + dependencies: + "@lidofinance/lido-ui" "3.14.1" + js-yaml "^4.1.0" + mdast "^3.0.0" + react-markdown "^8.0.7" + remark-directive "^2.0.1" + remark-frontmatter "^4.0.1" + remark-parse "^10.0.2" + remark-stringify "^10.0.3" + unified "^10.1.2" + "@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": version "1.1.2" resolved "https://registry.yarnpkg.com/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.2.tgz#d693d972974a354034454ec1317eb6afd0b00312" @@ -2292,43 +2330,43 @@ semver "^7.3.8" superstruct "^1.0.3" -"@motionone/animation@^10.15.1", "@motionone/animation@^10.16.3": - version "10.16.3" - resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.16.3.tgz#f5b71e27fd8b88b61f983adb0ed6c8e3e89281f9" - integrity sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g== +"@motionone/animation@^10.15.1", "@motionone/animation@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.17.0.tgz#7633c6f684b5fee2b61c405881b8c24662c68fca" + integrity sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg== dependencies: - "@motionone/easing" "^10.16.3" - "@motionone/types" "^10.16.3" - "@motionone/utils" "^10.16.3" + "@motionone/easing" "^10.17.0" + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" tslib "^2.3.1" "@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": - version "10.16.4" - resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.16.4.tgz#9385716928cc2d5b3208a7dcaf504b69b47fd1ae" - integrity sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA== - dependencies: - "@motionone/animation" "^10.16.3" - "@motionone/generators" "^10.16.4" - "@motionone/types" "^10.16.3" - "@motionone/utils" "^10.16.3" + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.17.0.tgz#519dd78aab0750a94614c69a82da5290cd617383" + integrity sha512-cMm33swRlCX/qOPHWGbIlCl0K9Uwi6X5RiL8Ma6OrlJ/TP7Q+Np5GE4xcZkFptysFjMTi4zcZzpnNQGQ5D6M0Q== + dependencies: + "@motionone/animation" "^10.17.0" + "@motionone/generators" "^10.17.0" + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" hey-listen "^1.0.8" tslib "^2.3.1" -"@motionone/easing@^10.16.3": - version "10.16.3" - resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.16.3.tgz#a62abe0ba2841861f167f286782e287eab8d7466" - integrity sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w== +"@motionone/easing@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.17.0.tgz#d66cecf7e3ee30104ad00389fb3f0b2282d81aa9" + integrity sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg== dependencies: - "@motionone/utils" "^10.16.3" + "@motionone/utils" "^10.17.0" tslib "^2.3.1" -"@motionone/generators@^10.16.4": - version "10.16.4" - resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.16.4.tgz#4a38708244bce733bfcebd4a26d19f4bbabd36af" - integrity sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg== +"@motionone/generators@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.17.0.tgz#878d292539c41434c13310d5f863a87a94e6e689" + integrity sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ== dependencies: - "@motionone/types" "^10.16.3" - "@motionone/utils" "^10.16.3" + "@motionone/types" "^10.17.0" + "@motionone/utils" "^10.17.0" tslib "^2.3.1" "@motionone/svelte@^10.16.2": @@ -2339,17 +2377,17 @@ "@motionone/dom" "^10.16.4" tslib "^2.3.1" -"@motionone/types@^10.15.1", "@motionone/types@^10.16.3": - version "10.16.3" - resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.16.3.tgz#9284ea8a52f6b32c51c54b617214f20e43ac6c59" - integrity sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg== +"@motionone/types@^10.15.1", "@motionone/types@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.17.0.tgz#179571ce98851bac78e19a1c3974767227f08ba3" + integrity sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA== -"@motionone/utils@^10.15.1", "@motionone/utils@^10.16.3": - version "10.16.3" - resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.16.3.tgz#ddf07ab6cf3000d89e3bcbdc9a8c3e1fd64f8520" - integrity sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA== +"@motionone/utils@^10.15.1", "@motionone/utils@^10.17.0": + version "10.17.0" + resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.17.0.tgz#cc0ba8acdc6848ff48d8c1f2d0d3e7602f4f942e" + integrity sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg== dependencies: - "@motionone/types" "^10.16.3" + "@motionone/types" "^10.17.0" hey-listen "^1.0.8" tslib "^2.3.1" @@ -2446,16 +2484,16 @@ integrity sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg== "@noble/curves@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" - integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + version "1.3.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" + integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== dependencies: - "@noble/hashes" "1.3.2" + "@noble/hashes" "1.3.3" -"@noble/hashes@1.3.2", "@noble/hashes@^1.3.1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" - integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== +"@noble/hashes@1.3.3", "@noble/hashes@^1.3.2": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" + integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -2478,50 +2516,50 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@parcel/watcher-android-arm64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz#d82e74bb564ebd4d8a88791d273a3d2bd61e27ab" - integrity sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA== - -"@parcel/watcher-darwin-arm64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz#c9cd03f8f233d512fcfc873d5b4e23f1569a82ad" - integrity sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw== - -"@parcel/watcher-darwin-x64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz#83c902994a2a49b9e1ab5050dba24876fdc2c219" - integrity sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow== - -"@parcel/watcher-freebsd-x64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz#7a0f4593a887e2752b706aff2dae509aef430cf6" - integrity sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw== - -"@parcel/watcher-linux-arm-glibc@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz#3fc90c3ebe67de3648ed2f138068722f9b1d47da" - integrity sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ== - -"@parcel/watcher-linux-arm64-glibc@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz#f7bbbf2497d85fd11e4c9e9c26ace8f10ea9bcbc" - integrity sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA== - -"@parcel/watcher-linux-arm64-musl@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz#de131a9fcbe1fa0854e9cbf4c55bed3b35bcff43" - integrity sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw== - -"@parcel/watcher-linux-x64-glibc@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz#193dd1c798003cdb5a1e59470ff26300f418a943" - integrity sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow== - -"@parcel/watcher-linux-x64-musl@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz#6dbdb86d96e955ab0fe4a4b60734ec0025a689dd" - integrity sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g== +"@parcel/watcher-android-arm64@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.0.tgz#9c93763794153e4f76920994a423b6ea3257059d" + integrity sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA== + +"@parcel/watcher-darwin-arm64@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.0.tgz#2c79c2abde16aa24cac67e555b60802fd13fe210" + integrity sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA== + +"@parcel/watcher-darwin-x64@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.0.tgz#23d82f198c5d033f047467c68d7c335f3df49b46" + integrity sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q== + +"@parcel/watcher-freebsd-x64@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.0.tgz#7310cc86abc27dacd57624bcdba1f0ba092e76df" + integrity sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA== + +"@parcel/watcher-linux-arm-glibc@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.0.tgz#c31b76e695027eeb1078d3d6f1d641d0b900c335" + integrity sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ== + +"@parcel/watcher-linux-arm64-glibc@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.0.tgz#56e09b86e9d8a4096f606be118b588da6e965080" + integrity sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg== + +"@parcel/watcher-linux-arm64-musl@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.0.tgz#27ffd5ca5f510ecd638f9ad22e2e813049db54e7" + integrity sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng== + +"@parcel/watcher-linux-x64-glibc@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.0.tgz#44cbbb1e5884a1ca900655f47a0775218318f934" + integrity sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ== + +"@parcel/watcher-linux-x64-musl@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.0.tgz#4c33993618c8d5113722852806239cb80360494b" + integrity sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA== "@parcel/watcher-wasm@2.3.0": version "2.3.0" @@ -2532,60 +2570,60 @@ micromatch "^4.0.5" napi-wasm "^1.1.0" -"@parcel/watcher-win32-arm64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz#59da26a431da946e6c74fa6b0f30b120ea6650b6" - integrity sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw== +"@parcel/watcher-win32-arm64@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.0.tgz#2a172fd2fda95fe5389298ca3e70b5a96316162a" + integrity sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg== -"@parcel/watcher-win32-ia32@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz#3ee6a18b08929cd3b788e8cc9547fd9a540c013a" - integrity sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow== +"@parcel/watcher-win32-ia32@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.0.tgz#279225b2ebe1fadd3c5137c9b2365ad422656904" + integrity sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA== -"@parcel/watcher-win32-x64@2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz#14e7246289861acc589fd608de39fe5d8b4bb0a7" - integrity sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA== +"@parcel/watcher-win32-x64@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.0.tgz#93e0bd0ad1bda2c9a688764b9b30b71dc5b72a71" + integrity sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA== "@parcel/watcher@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.3.0.tgz#803517abbc3981a1a1221791d9f59dc0590d50f9" - integrity sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.4.0.tgz#2d3c4ef8832a5cdfdbb76b914f022489933e664f" + integrity sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg== dependencies: detect-libc "^1.0.3" is-glob "^4.0.3" micromatch "^4.0.5" node-addon-api "^7.0.0" optionalDependencies: - "@parcel/watcher-android-arm64" "2.3.0" - "@parcel/watcher-darwin-arm64" "2.3.0" - "@parcel/watcher-darwin-x64" "2.3.0" - "@parcel/watcher-freebsd-x64" "2.3.0" - "@parcel/watcher-linux-arm-glibc" "2.3.0" - "@parcel/watcher-linux-arm64-glibc" "2.3.0" - "@parcel/watcher-linux-arm64-musl" "2.3.0" - "@parcel/watcher-linux-x64-glibc" "2.3.0" - "@parcel/watcher-linux-x64-musl" "2.3.0" - "@parcel/watcher-win32-arm64" "2.3.0" - "@parcel/watcher-win32-ia32" "2.3.0" - "@parcel/watcher-win32-x64" "2.3.0" + "@parcel/watcher-android-arm64" "2.4.0" + "@parcel/watcher-darwin-arm64" "2.4.0" + "@parcel/watcher-darwin-x64" "2.4.0" + "@parcel/watcher-freebsd-x64" "2.4.0" + "@parcel/watcher-linux-arm-glibc" "2.4.0" + "@parcel/watcher-linux-arm64-glibc" "2.4.0" + "@parcel/watcher-linux-arm64-musl" "2.4.0" + "@parcel/watcher-linux-x64-glibc" "2.4.0" + "@parcel/watcher-linux-x64-musl" "2.4.0" + "@parcel/watcher-win32-arm64" "2.4.0" + "@parcel/watcher-win32-ia32" "2.4.0" + "@parcel/watcher-win32-x64" "2.4.0" "@playwright/test@^1.29.2": - version "1.40.0" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.40.0.tgz#d06c506977dd7863aa16e07f2136351ecc1be6ed" - integrity sha512-PdW+kn4eV99iP5gxWNSDQCbhMaDVej+RXL5xr6t04nbKLCBwYtA046t7ofoczHOm8u6c+45hpDKQVZqtqwkeQg== + version "1.40.1" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.40.1.tgz#9e66322d97b1d74b9f8718bacab15080f24cde65" + integrity sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw== dependencies: - playwright "1.40.0" + playwright "1.40.1" "@polka/url@^1.0.0-next.20": - version "1.0.0-next.23" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.23.tgz#498e41218ab3b6a1419c735e5c6ae2c5ed609b6c" - integrity sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg== + version "1.0.0-next.24" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.24.tgz#58601079e11784d20f82d0585865bb42305c4df3" + integrity sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ== -"@reef-knot/connect-wallet-modal@1.15.0": - version "1.15.0" - resolved "https://registry.yarnpkg.com/@reef-knot/connect-wallet-modal/-/connect-wallet-modal-1.15.0.tgz#96232244ab0952d44e77b51e6b76c2e5f45bb5fb" - integrity sha512-3JsBoHH91TiW4k52Qa9QdZpEl+FeECGRGzqxZWbg58YQ+1jtI5/iN3wCL6oxQgEuXG/au/ErYkESIu6pvPvf/Q== +"@reef-knot/connect-wallet-modal@1.17.0": + version "1.17.0" + resolved "https://registry.yarnpkg.com/@reef-knot/connect-wallet-modal/-/connect-wallet-modal-1.17.0.tgz#60f6666ba3e5de207b4e21691d579e8f204ab70c" + integrity sha512-YlAVBRR1kV4m7bZBhFQG0LlduBXuDsXiucOez3+W5dj05LZNCv+j3eLAnzRxZgG39jwY3gQN6KiP1fA1+1g+PQ== dependencies: "@ledgerhq/hw-app-eth" "^6.34.3" "@ledgerhq/hw-transport" "^6.28.8" @@ -2594,15 +2632,15 @@ "@types/react" "18.2.45" "@types/react-dom" "18.2.17" -"@reef-knot/core-react@1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@reef-knot/core-react/-/core-react-1.7.0.tgz#ef380d1f15c85615cac07da482f37126dff86b82" - integrity sha512-RMM6Mrx0VEMaLDe1tXkj8Rtchfe1Vy867aAGgbMIhNf3pQ6PajpBIxke4Tpi1zodSy2r+ymFdJP10ISSdleMDw== +"@reef-knot/core-react@1.8.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@reef-knot/core-react/-/core-react-1.8.1.tgz#fd3cb58344cbecea724f5fef5ae728a0cf1b141a" + integrity sha512-4fzLBAohvNapsTsb4WY3jgNliQNXat3hvnKzcmmTya4xv4t627Hdx1ZZWRx7mI3dcrhu6RWaGJOFsm4xVlGU/Q== -"@reef-knot/ledger-connector@1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@reef-knot/ledger-connector/-/ledger-connector-1.1.1.tgz#4077d08846f1ecec513eff3dbf2811b02f1a6be6" - integrity sha512-lnIaarLg/PYcCSWqCh21s8VQCWphTA7+Beb16nqccKfTekPisW82RoS2Y11vvoGI7pZWsJvVvnC0qTN7H7Lebg== +"@reef-knot/ledger-connector@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/ledger-connector/-/ledger-connector-2.0.0.tgz#e7bc6382cbf46dcaccda595d1475806e069e713c" + integrity sha512-NguSsVn1a9Fc33d9/jTQfceTsC9qO0JnMXUmFXzMXDV759kiFh/18KCB6SbK/g1COUxQmFH4PuohgOD8hAEVag== dependencies: "@ethersproject/abstract-signer" "^5.5.0" "@ethersproject/bignumber" "^5.5.0" @@ -2612,23 +2650,23 @@ "@ethersproject/providers" "^5.5.2" "@ethersproject/strings" "^5.5.0" "@ethersproject/transactions" "^5.5.0" - "@ledgerhq/hw-app-eth" "^6.34.8" - "@ledgerhq/hw-transport" "^6.28.8" - "@ledgerhq/hw-transport-webhid" "^6.27.19" - "@ledgerhq/iframe-provider" "0" + "@ledgerhq/hw-app-eth" "^6.35.0" + "@ledgerhq/hw-transport" "^6.30.0" + "@ledgerhq/hw-transport-webhid" "^6.28.0" + "@ledgerhq/iframe-provider" "^0.4.3" "@web3-react/abstract-connector" "^6.0.7" "@web3-react/types" "^6.0.7" tiny-invariant "^1.2.0" -"@reef-knot/types@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@reef-knot/types/-/types-1.3.0.tgz#aa3f3f1247ffde5986f98146871c1c0cc1506470" - integrity sha512-mKo5tceGBIx39vOBaxDSkKQqpPEyHBLMJeNPDUQ/rFfgjvPz8WFs+oAkA66YHey4WmMlRJDksLT3NhgANw4PwA== +"@reef-knot/types@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@reef-knot/types/-/types-1.4.0.tgz#61b57a2591eb8e5554f5f76e036ecb9bb8e835df" + integrity sha512-12FoE/LUsBx+JGaogAqu7Ez6Z1JLskGdQNuwIh2wkJzfBWr6M+U20PWV+7c02svqtiOeImNk7nitT0Jt6FroNQ== -"@reef-knot/ui-react@1.0.7": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@reef-knot/ui-react/-/ui-react-1.0.7.tgz#c24286fa4879ce21f8534dbbbff63153869d4afb" - integrity sha512-NZya61s6gIInPzSa19yrsbcBKRq8Kdh4JgoDMuPCw5QHWjgq1GHFQCLLJGqGjuVaKtk6Dzbcedxz7XhCkdxZsQ== +"@reef-knot/ui-react@1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@reef-knot/ui-react/-/ui-react-1.0.8.tgz#af4496caab9040ea07302ea9c35979ea8376a2c7" + integrity sha512-0sRmFhgpHWnX80sWZ+3LEOKQvT9zddxv5m9uT14Vo32c86QpFPhd9OiDaowtjCmqA5ykTbCpPe1tGp0GaAcomg== dependencies: react-transition-group "4" use-callback-ref "1.2.5" @@ -2643,16 +2681,16 @@ resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-bitkeep/-/wallet-adapter-bitkeep-1.1.1.tgz#a57370149070796b7affa0964376d0f290a2e856" integrity sha512-bSb3mjcDEfuSLzGXRE/jmc6lr/NTaKnWxO0NBhqJa9WOCdq/i5i6LvUFFLns/PE6HutOQGOtdQa0M+OhDF495A== -"@reef-knot/wallet-adapter-blockchaincom@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-blockchaincom/-/wallet-adapter-blockchaincom-1.2.4.tgz#f33a125c658c635b098e333bbc7f84a58dd7a0af" - integrity sha512-RViZe8fepuEJgZfYprRhNCkC8xD+dPNXd5xTwfhO2WqPOjTpUAHBP7kXwqrGr6IPrv7zWwdE6MY7c5PXzUbaQA== - "@reef-knot/wallet-adapter-brave@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-brave/-/wallet-adapter-brave-1.0.1.tgz#247b246d4585d10dcec63e0b7cf4c79a85424561" integrity sha512-9oAlDr7qV61Ajl8PtfXVOISf45HZ9DIPNoA/IVI2vNCaXYsMbhZxjkSKKdMdfoC8JBeHB3yxmq5XKJWW/4BO9g== +"@reef-knot/wallet-adapter-browser-extension@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-browser-extension/-/wallet-adapter-browser-extension-1.0.0.tgz#63e922e532f2f5253f51047819589c838a0271e1" + integrity sha512-8R/3SG0kxTpVhWRKVGJGVSbwhUbOfNytu5wbWNLp7ijAUt8cqoGPwVk/bLM1UQPm7I6oke/s9Xa0+CVVusPl6g== + "@reef-knot/wallet-adapter-coin98@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-coin98/-/wallet-adapter-coin98-1.0.1.tgz#5ddfe2f22a5cf18db0e7324455b2ad91b1b60e25" @@ -2673,21 +2711,21 @@ resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-imtoken/-/wallet-adapter-imtoken-1.0.0.tgz#9af2609775e74dd20c052c8f5542500e40ab0006" integrity sha512-JsHIIwUbsg4wl122ODBxPH2P0WLYI29PCxlZCIciIVRLIg+BHKbLuSHj7NTJL/atvj5SBDa8f/jzdf21MUuPfQ== +"@reef-knot/wallet-adapter-ledger-hid@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ledger-hid/-/wallet-adapter-ledger-hid-1.0.0.tgz#08266531aad2372bdf30cd5bcc09708fd530eb4b" + integrity sha512-GpjK8lghU3yCnxspNN7EQhOTfZVBOAf7J/Yypvb4icWn3lIfh7AhjYbvx6Bpgi855AMmYIhQPCFDYSLbBRok0w== + +"@reef-knot/wallet-adapter-metamask@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-metamask/-/wallet-adapter-metamask-1.0.0.tgz#a7c34ebe5bff79ee01ebd5a52c76862b9794cb2a" + integrity sha512-LF/827vZru8FaPj/O+7CX+eK31FF2yrtT3PiAiUmJ3Tlr16hNF1hQgBiBoqsbkdaWVCUF2ehIcdVCIZjsqawfA== + "@reef-knot/wallet-adapter-okx@1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-okx/-/wallet-adapter-okx-1.3.1.tgz#00f72748cc89b7b0c4fd255ec044326054412225" integrity sha512-GVwvS2noyK3p8aKKP8H50ZVVUvrdj7nUTRFumS3HsZchiQYpNfCeX1W3svZ09+B3zl3ohTg1h9kNOlApQGHv6g== -"@reef-knot/wallet-adapter-phantom@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-phantom/-/wallet-adapter-phantom-1.3.0.tgz#642831a4b96b99efbe037d99ec6f7b4e4a720843" - integrity sha512-rSHg0eOwo5QsYhrWxXy73EFLjTnEPdAM8/XHwg1dtXEvPGhjKpDd3Aj6Eh4nLvH0ef8JU+Kcta+YHFnNUEz9EQ== - -"@reef-knot/wallet-adapter-taho@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-taho/-/wallet-adapter-taho-1.2.3.tgz#a4e233f581963d4addb6596980646aafc39aade9" - integrity sha512-FD7dtC5w1hPAzkDhXYK9PIg66wEZ343FadEn4L/D4G8w/w3FHrJWYZapyz0c4zLGH2jZTz2S1iVTIZlie7stjQ== - "@reef-knot/wallet-adapter-trust@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-trust/-/wallet-adapter-trust-1.0.0.tgz#b7ea0b6b24bc5db38cc68df27528346a957a2fd9" @@ -2703,52 +2741,35 @@ resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-xdefi/-/wallet-adapter-xdefi-1.0.0.tgz#64d978d33d2d095c46683b2becef9286ba8d579f" integrity sha512-aFk27wkS6fG3RNplohvP59KCaOJJEzDiST2+uOuMj5cpivz8nAdBGWusn9i9Vmr3r4zULyPYuP9culyLNhqXzg== -"@reef-knot/wallet-adapter-zengo@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-zengo/-/wallet-adapter-zengo-1.2.4.tgz#b5c12179bdfdf92c7b7ae522c0535f25b8111a75" - integrity sha512-2cGISrhmTb033KqqPmp+4Enl5qt8RzJeqqzOe3gWDvMfe0UOTIMu22hzcmcFznBDQdjXcdp/pXP3aiI3dgxVXg== - -"@reef-knot/wallet-adapter-zerion@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-zerion/-/wallet-adapter-zerion-1.2.4.tgz#2b01259e0bfb97deb928a653fd55346bc28b171e" - integrity sha512-t2mUkeV8RhGZA53Ch1h46y078hH/fOvPB4LIr4sFjFpZZ9bcQNHPoSPjTVw4/cRS2wJ4dIZSklUFtUWui5MjlQ== - "@reef-knot/wallets-helpers@1.1.5": version "1.1.5" resolved "https://registry.yarnpkg.com/@reef-knot/wallets-helpers/-/wallets-helpers-1.1.5.tgz#bceb7d91a6f7748ec093fbdf7422772bd71708b6" integrity sha512-OFWR6zsUy04Waujl1VlNNs91P/kyHeGLC49QLWs3vrHvVipEk7ydUhKU/dHrbuhjQBS7quKg4vrodyCUUl4zyQ== -"@reef-knot/wallets-icons@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallets-icons/-/wallets-icons-1.5.0.tgz#7095d00cfeedb29a5fe2b1de85810288292a3257" - integrity sha512-+suGHOHWZktjUjEFRqRAL/ozdFSbm9omE9kJa02tzc+Px7RCJfCBQnkRsfDiBKzCpuPELWwvADSzOKPQrSPiQA== - -"@reef-knot/wallets-list@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallets-list/-/wallets-list-1.9.0.tgz#1f0229c7d34110a49d46c8da6429d504fea5b1f3" - integrity sha512-qr41QUS1Bxqq9fXCxN+u0psKRHKCGioLtmU8mrH13iCQRwFDNj3YRWJZlvtIUYlI9Q3Sd8RZWy4dMGa/G6oVlQ== +"@reef-knot/wallets-list@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@reef-knot/wallets-list/-/wallets-list-1.11.1.tgz#3502e3a998108d27bc3666c1ffa14e1efcf34893" + integrity sha512-QUmEmciXbGLO5fJSeu4nJSQxSW7hhEulrjWlM0w0MxFPmh1Nmv9+Nn2PFlqWiCg+lXSGpBW831YDRNwAx3OSXQ== dependencies: "@reef-knot/wallet-adapter-ambire" "1.2.4" "@reef-knot/wallet-adapter-bitkeep" "1.1.1" - "@reef-knot/wallet-adapter-blockchaincom" "1.2.4" "@reef-knot/wallet-adapter-brave" "1.0.1" + "@reef-knot/wallet-adapter-browser-extension" "1.0.0" "@reef-knot/wallet-adapter-coin98" "1.0.1" "@reef-knot/wallet-adapter-coinbase" "1.0.0" "@reef-knot/wallet-adapter-exodus" "1.2.4" "@reef-knot/wallet-adapter-imtoken" "1.0.0" + "@reef-knot/wallet-adapter-ledger-hid" "1.0.0" + "@reef-knot/wallet-adapter-metamask" "1.0.0" "@reef-knot/wallet-adapter-okx" "1.3.1" - "@reef-knot/wallet-adapter-phantom" "1.3.0" - "@reef-knot/wallet-adapter-taho" "1.2.3" "@reef-knot/wallet-adapter-trust" "1.0.0" "@reef-knot/wallet-adapter-walletconnect" "1.2.4" "@reef-knot/wallet-adapter-xdefi" "1.0.0" - "@reef-knot/wallet-adapter-zengo" "1.2.4" - "@reef-knot/wallet-adapter-zerion" "1.2.4" -"@reef-knot/web3-react@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@reef-knot/web3-react/-/web3-react-1.11.0.tgz#219e0d2acfab7334234bb18cdf0db68b408589bf" - integrity sha512-cE5nhs9Ub/o454agCwD9t5PYLGCfXrXmdTtBELIi1Twv3lAXk5X6GOmQawsqsIE+1EttghPmhMUZWfW+PVjjGQ== +"@reef-knot/web3-react@1.13.1": + version "1.13.1" + resolved "https://registry.yarnpkg.com/@reef-knot/web3-react/-/web3-react-1.13.1.tgz#d9d2b6db3f40eca874b7d31b7f0e1e05c03fa6d2" + integrity sha512-4txVsSN4mYpmgLgIyiKrpc3mnyIICwD3JI63YkjNk89vpPzdtuTlJk6y2RM3lprbFmQBl6aJaLyOqA7lNz/Liw== dependencies: "@gnosis.pm/safe-apps-web3-react" "0.6.8" "@ledgerhq/iframe-provider" "0.4.2" @@ -2785,9 +2806,9 @@ ethers "^5.7.2" "@safe-global/safe-gateway-typescript-sdk@^3.5.3": - version "3.13.2" - resolved "https://registry.yarnpkg.com/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.13.2.tgz#f03884c7eb766f5508085d95ab96063a28e20920" - integrity sha512-kGlJecJHBzGrGTq/yhLANh56t+Zur6Ubpt+/w03ARX1poDb4TM8vKU3iV8tuYpk359PPWp+Qvjnqb9oW2YQcYw== + version "3.14.0" + resolved "https://registry.yarnpkg.com/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.14.0.tgz#9581c524c1ea4956555f40761eb6b4007392aa82" + integrity sha512-/dqU66RvHw50n+7x3nwnJedq8V6iLQyoWitNdjx5cFTBmae+rpP+LvHq+LqZfXJVkB1qNytMdjFjdyES0t79gQ== "@sinclair/typebox@^0.24.1": version "0.24.51" @@ -2813,7 +2834,7 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@solana/buffer-layout@^4.0.0": +"@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== @@ -2821,15 +2842,15 @@ buffer "~6.0.3" "@solana/web3.js@^1.70.1": - version "1.87.6" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.87.6.tgz#6744cfc5f4fc81e0f58241c0a92648a7320bb3bf" - integrity sha512-LkqsEBgTZztFiccZZXnawWa8qNCATEqE97/d0vIwjTclmVlc8pBpD1DmjfVHtZ1HS5fZorFlVhXfpwnCNDZfyg== + version "1.89.1" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.89.1.tgz#52df6820f2d088c4558aa359af40580a03d10ec9" + integrity sha512-t9TTLtPQxtQB3SAf/5E8xPXfVDsC6WGOsgKY02l2cbe0HLymT7ynE8Hu48Lk5qynHCquj6nhISfEHcjMkYpu/A== dependencies: - "@babel/runtime" "^7.23.2" + "@babel/runtime" "^7.23.4" "@noble/curves" "^1.2.0" - "@noble/hashes" "^1.3.1" - "@solana/buffer-layout" "^4.0.0" - agentkeepalive "^4.3.0" + "@noble/hashes" "^1.3.2" + "@solana/buffer-layout" "^4.0.1" + agentkeepalive "^4.5.0" bigint-buffer "^1.1.5" bn.js "^5.2.1" borsh "^0.7.0" @@ -2837,7 +2858,7 @@ buffer "6.0.3" fast-stable-stringify "^1.0.0" jayson "^4.1.0" - node-fetch "^2.6.12" + node-fetch "^2.7.0" rpc-websockets "^7.5.1" superstruct "^0.14.2" @@ -3187,6 +3208,19 @@ dependencies: tslib "^2.4.0" +"@swc/helpers@^0.4.11": + version "0.4.36" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.36.tgz#fcfff76ed52c214f357e8e9d3f37b568908072d9" + integrity sha512-5lxnyLEYFskErRPenYItLRSge5DjrJngYKdVjRSrWfza9G6KkgHEXi0vUZiyUeMU5JfXH1YnvXZzSp8ul88o2Q== + dependencies: + legacy-swc-helpers "npm:@swc/helpers@=0.4.14" + tslib "^2.4.0" + +"@swc/plugin-styled-components@^1.2.10": + version "1.5.108" + resolved "https://registry.yarnpkg.com/@swc/plugin-styled-components/-/plugin-styled-components-1.5.108.tgz#f894f81970cae63aa26a1691f5602bce75148d36" + integrity sha512-hTlkcX3lY+FJjrpCjjVv05WuYjyRZB96F1eG12ZT5vq7UCzJnWkx9FRRSfBenPRpP1Y3SPFqWVWbEJdQ7PdzLg== + "@tanstack/query-core@4.36.1": version "4.36.1" resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-4.36.1.tgz#79f8c1a539d47c83104210be2388813a7af2e524" @@ -3266,9 +3300,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.7" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" - integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== dependencies: "@babel/types" "^7.0.0" @@ -3281,9 +3315,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" - integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== dependencies: "@babel/types" "^7.20.7" @@ -3294,7 +3328,7 @@ dependencies: "@types/node" "*" -"@types/debug@^4.1.7": +"@types/debug@^4.0.0", "@types/debug@^4.1.7": version "4.1.12" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== @@ -3308,6 +3342,13 @@ dependencies: "@types/node" "*" +"@types/hast@^2.0.0": + version "2.3.9" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.9.tgz#a9a1b5bbce46e8a1312e977364bacabc8e93d2cf" + integrity sha512-pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw== + dependencies: + "@types/unist" "^2" + "@types/hoist-non-react-statics@*": version "3.3.5" resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" @@ -3386,9 +3427,9 @@ integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== "@types/node@*": - version "20.9.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.3.tgz#e089e1634436f676ff299596c9531bd2b59fffc6" - integrity sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw== + version "20.11.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.3.tgz#ac29fba7aeadc74046b02e50758156f4850f1296" + integrity sha512-nrlmbvGPNGaj84IJZXMPhQuCMEVTT/hXZMJJG/aIqVL9fKxqk814sGGtJA4GI6hpJSLQjpi6cn0Qx9eOf9SDVg== dependencies: undici-types "~5.26.4" @@ -3403,9 +3444,9 @@ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^18.6.1": - version "18.18.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.11.tgz#d43f6b92671eacfdd1fedb7a897388fb8880323f" - integrity sha512-c1vku6qnTeujJneYH94/4aq73XrVcsJe35UPyAsSok1ijiKrkRzK+AxQPSpNMUnC03roWBBwJx/9I8V7lQoxmA== + version "18.19.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.7.tgz#9a5f6ac7ec42a5dff68fe7faf2dd359710de4a12" + integrity sha512-IGRJfoNX10N/PfrReRZ1br/7SQ+2vF/tK3KXNwzXz82D32z5dMQEoOlFew18nLSN+vMNcLY4GrKfzwi/yWI8/w== dependencies: undici-types "~5.26.4" @@ -3424,7 +3465,7 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@types/prop-types@*": +"@types/prop-types@*", "@types/prop-types@^15.0.0": version "15.7.11" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== @@ -3437,16 +3478,16 @@ "@types/react" "*" "@types/react-transition-group@^4.4.3": - version "4.4.9" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.9.tgz#12a1a1b5b8791067198149867b0823fbace31579" - integrity sha512-ZVNmWumUIh5NhH8aMD9CR2hdW0fNuYInlocZHaZ+dgk/1K49j1w/HoAuK1ki+pgscQrOFRTlXeoURtuzEkV3dg== + version "4.4.10" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" + integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== dependencies: "@types/react" "*" "@types/react@*", "@types/react@^18.2.22": - version "18.2.38" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.38.tgz#3605ca41d3daff2c434e0b98d79a2469d4c2dd52" - integrity sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw== + version "18.2.48" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1" + integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -3462,9 +3503,9 @@ csstype "^3.0.2" "@types/scheduler@*": - version "0.16.7" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.7.tgz#d62f1bd54724c84089f51f9218393930ba4abcf4" - integrity sha512-8g25Nl3AuB1KulTlSUsUhUo/oBgBU6XIXQ+XURpeioEbEJvkO7qI4vDfREv3vJYHHzqXjcAHvoJy4pTtSQNZtA== + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== "@types/semver@^7.3.12", "@types/semver@^7.5.0": version "7.5.6" @@ -3477,9 +3518,9 @@ integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/styled-components@^5.1.23": - version "5.1.31" - resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.31.tgz#08908bfeb458302e509970f3ab0d2420fe73597f" - integrity sha512-r7uTHGB2aQ1UWp9sN9nbQ69fSL7x8m5QhaMDa5m7mMPE+QMtZaS6Bvr5msE42y0CPRUaqTsHn+4f9z0MTfYxEA== + version "5.1.34" + resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.34.tgz#4107df8ef8a7eaba4fa6b05f78f93fba4daf0300" + integrity sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA== dependencies: "@types/hoist-non-react-statics" "*" "@types/react" "*" @@ -3534,15 +3575,15 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^6.2.1": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz#2a647d278bb48bf397fef07ba0507612ff9dd812" - integrity sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA== + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz#db03f3313b57a30fbbdad2e6929e88fc7feaf9ba" + integrity sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.12.0" - "@typescript-eslint/type-utils" "6.12.0" - "@typescript-eslint/utils" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/type-utils" "6.19.0" + "@typescript-eslint/utils" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -3551,14 +3592,14 @@ ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6.2.1": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.12.0.tgz#9fb21ed7d88065a4a2ee21eb80b8578debb8217c" - integrity sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg== - dependencies: - "@typescript-eslint/scope-manager" "6.12.0" - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/typescript-estree" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.19.0.tgz#80344086f362181890ade7e94fc35fe0480bfdf5" + integrity sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow== + dependencies: + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.62.0": @@ -3569,21 +3610,21 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz#5833a16dbe19cfbad639d4d33bcca5e755c7044b" - integrity sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw== +"@typescript-eslint/scope-manager@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz#b6d2abb825b29ab70cb542d220e40c61c1678116" + integrity sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ== dependencies: - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" -"@typescript-eslint/type-utils@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz#968f7c95162808d69950ab5dff710ad730e58287" - integrity sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng== +"@typescript-eslint/type-utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz#522a494ef0d3e9fdc5e23a7c22c9331bbade0101" + integrity sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w== dependencies: - "@typescript-eslint/typescript-estree" "6.12.0" - "@typescript-eslint/utils" "6.12.0" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/utils" "6.19.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -3592,10 +3633,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.12.0.tgz#ffc5297bcfe77003c8b7b545b51c2505748314ac" - integrity sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q== +"@typescript-eslint/types@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.0.tgz#689b0498c436272a6a2059b09f44bcbd90de294a" + integrity sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -3610,30 +3651,31 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz#764ccc32598549e5b48ec99e3b85f89b1385310c" - integrity sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw== +"@typescript-eslint/typescript-estree@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz#0813ba364a409afb4d62348aec0202600cb468fa" + integrity sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ== dependencies: - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/visitor-keys" "6.12.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.12.0.tgz#c6ce8c06fe9b0212620e5674a2036f6f8f611754" - integrity sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ== +"@typescript-eslint/utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.19.0.tgz#557b72c3eeb4f73bef8037c85dae57b21beb1a4b" + integrity sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.12.0" - "@typescript-eslint/types" "6.12.0" - "@typescript-eslint/typescript-estree" "6.12.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" semver "^7.5.4" "@typescript-eslint/utils@^5.10.0": @@ -3658,12 +3700,12 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz#5877950de42a0f3344261b7a1eee15417306d7e9" - integrity sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw== +"@typescript-eslint/visitor-keys@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz#4565e0ecd63ca1f81b96f1dd76e49f746c6b2b49" + integrity sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ== dependencies: - "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/types" "6.19.0" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": @@ -4121,14 +4163,14 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.0.0, acorn-walk@^8.1.1: - version "8.3.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" - integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== -acorn@^8.0.4, acorn@^8.10.0, acorn@^8.4.1, acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== +acorn@^8.0.4, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== aes-js@3.0.0: version "3.0.0" @@ -4140,7 +4182,7 @@ aes-js@^3.1.2: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== -agentkeepalive@^4.3.0: +agentkeepalive@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== @@ -4243,11 +4285,6 @@ anymatch@^3.0.3, anymatch@^3.1.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -arch@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" - integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== - arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -4426,12 +4463,12 @@ axios@0.26.1: dependencies: follow-redirects "^1.14.8" -axios@^1.3.4: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== +axios@^1.3.4, axios@^1.6.0: + version "1.6.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" + integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== dependencies: - follow-redirects "^1.15.0" + follow-redirects "^1.15.4" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -4476,29 +4513,29 @@ babel-plugin-jest-hoist@^29.6.3: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" - integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== +babel-plugin-polyfill-corejs2@^0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c" + integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" - integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== +babel-plugin-polyfill-corejs3@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" + integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" - integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== +babel-plugin-polyfill-regenerator@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4" + integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" "babel-plugin-styled-components@>= 1.12.0": version "2.1.4" @@ -4542,6 +4579,11 @@ bail@^1.0.0: resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -4640,6 +4682,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -4652,14 +4701,14 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browserslist@^4.21.9, browserslist@^4.22.1: - version "4.22.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" - integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== +browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== dependencies: - caniuse-lite "^1.0.30001541" - electron-to-chromium "^1.4.535" - node-releases "^2.0.13" + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" update-browserslist-db "^1.0.13" bs-logger@0.x: @@ -4676,6 +4725,15 @@ bs58@^4.0.0, bs58@^4.0.1: dependencies: base-x "^3.0.2" +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -4746,10 +4804,10 @@ camelize@^1.0.0: resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== -caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001541: - version "1.0.30001563" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz#aa68a64188903e98f36eb9c56e48fba0c1fe2a32" - integrity sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw== +caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001565: + version "1.0.30001577" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001577.tgz#a24991eb4ad67324ba8b96716340d53151f2f6f8" + integrity sha512-rs2ZygrG1PNXMfmncM0B5H1hndY5ZCC9b5TkFaVNfZ+AUlyqcMyVIQtc3fsezi0NUCk5XZfDf9WS6WxMxnfdrg== ccount@^1.0.0: version "1.1.0" @@ -4788,21 +4846,41 @@ character-entities-html4@^1.0.0: resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + character-entities@^1.0.0: version "1.2.4" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + character-reference-invalid@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" @@ -4828,7 +4906,15 @@ ci-info@^3.2.0, ci-info@^3.8.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== -citty@^0.1.3, citty@^0.1.4: +cipher-base@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +citty@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.5.tgz#fe37ceae5dc764af75eb2fece99d2bf527ea4e50" integrity sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ== @@ -4874,14 +4960,14 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== -clipboardy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-3.0.0.tgz#f3876247404d334c9ed01b6f269c11d09a5e3092" - integrity sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg== +clipboardy@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-4.0.0.tgz#e73ced93a76d19dd379ebf1f297565426dffdca1" + integrity sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w== dependencies: - arch "^2.2.0" - execa "^5.1.1" - is-wsl "^2.2.0" + execa "^8.0.1" + is-wsl "^3.1.0" + is64bit "^2.0.0" cliui@^6.0.0: version "6.0.0" @@ -4986,6 +5072,11 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + command-line-args@^4.0.7: version "4.0.7" resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" @@ -5070,11 +5161,11 @@ copy-to-clipboard@^3.3.1, copy-to-clipboard@^3.3.3: toggle-selection "^1.0.6" core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.33.3" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.3.tgz#ec678b772c5a2d8a7c60a91c3a81869aa704ae01" - integrity sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873" + integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw== dependencies: - browserslist "^4.22.1" + browserslist "^4.22.2" cors@^2.8.5: version "2.8.5" @@ -5099,6 +5190,17 @@ cosmiconfig@^8.0.0, cosmiconfig@^8.1.3: parse-json "^5.2.0" path-type "^4.0.0" +create-hash@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + create-jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" @@ -5170,7 +5272,7 @@ css-to-react-native@^3.0.0: css-color-keywords "^1.0.0" postcss-value-parser "^4.0.2" -css-tree@^2.2.1: +css-tree@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== @@ -5191,7 +5293,7 @@ css-what@^6.1.0: resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -csso@5.0.5: +csso@^5.0.5: version "5.0.5" resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== @@ -5199,9 +5301,9 @@ csso@5.0.5: css-tree "~2.2.0" csstype@^3.0.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== damerau-levenshtein@^1.0.8: version "1.0.8" @@ -5218,7 +5320,7 @@ date-fns@2.29.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.2.tgz#0d4b3d0f3dff0f920820a070920f0d9662c51931" integrity sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA== -debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -5245,6 +5347,13 @@ decamelize@^1.1.0, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" @@ -5274,7 +5383,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -5283,10 +5392,10 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, de has-property-descriptors "^1.0.0" object-keys "^1.1.1" -defu@^6.1.2, defu@^6.1.3: - version "6.1.3" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" - integrity sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ== +defu@^6.1.3, defu@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" + integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== delay@^5.0.0: version "5.0.0" @@ -5303,7 +5412,7 @@ denque@^2.1.0: resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== -dequal@^2.0.3: +dequal@^2.0.0, dequal@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== @@ -5343,6 +5452,11 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + dijkstrajs@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23" @@ -5449,10 +5563,10 @@ eip55@^2.1.1: dependencies: keccak "^3.0.3" -electron-to-chromium@^1.4.535: - version "1.4.589" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz#3fc83c284ed8f1f58e0cb3c664c8ebcb4d0b42fb" - integrity sha512-zF6y5v/YfoFIgwf2dDfAqVlPPsyQeWNpEWXbAlDUS8Ax4Z2VoiiZpAPC0Jm9hXEkJm2vIZpwB6rc4KnLTQffbQ== +electron-to-chromium@^1.4.601: + version "1.4.632" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.632.tgz#df6253483b802eb83eee2fdc0e5067bd46f36f11" + integrity sha512-JGmudTwg7yxMYvR/gWbalqqQiyu7WTFv2Xu3vw4cJHXPFxNgAk0oy8UHaer8nLF4lZJa+rNoj6GsrKIVJTV6Tw== elliptic@6.5.4: version "6.5.4" @@ -5647,9 +5761,9 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" - integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-import-resolver-node@^0.3.9: version "0.3.9" @@ -5689,9 +5803,9 @@ eslint-plugin-eslint-comments@^3.2.0: ignore "^5.0.5" eslint-plugin-import@^2.28.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" - integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: array-includes "^3.1.7" array.prototype.findlastindex "^1.2.3" @@ -5709,12 +5823,12 @@ eslint-plugin-import@^2.28.0: object.groupby "^1.0.1" object.values "^1.1.7" semver "^6.3.1" - tsconfig-paths "^3.14.2" + tsconfig-paths "^3.15.0" eslint-plugin-jest@^27.2.3: - version "27.6.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.0.tgz#e5c0cf735b3c8cad0ef9db5b565b2fc99f5e55ed" - integrity sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng== + version "27.6.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.3.tgz#8acb8b1e45597fe1f4d4cf25163d90119efc12be" + integrity sha512-+YsJFVH6R+tOiO3gCJon5oqn4KWc+mDq2leudk8mrp8RFubLOo9CVyi3cib4L7XMpxExmkmBZQTPDYVBzgpgOA== dependencies: "@typescript-eslint/utils" "^5.10.0" @@ -5820,14 +5934,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.46.0: - version "8.54.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" - integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.54.0" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -6020,7 +6134,7 @@ execa@7.2.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" -execa@^5.0.0, execa@^5.1.1: +execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -6035,6 +6149,21 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -6119,12 +6248,19 @@ fast-stable-stringify@^1.0.0: integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== dependencies: reusify "^1.0.4" +fault@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" + integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== + dependencies: + format "^0.2.0" + fb-watchman@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" @@ -6211,10 +6347,10 @@ fn.name@1.x.x: resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== -follow-redirects@^1.14.8, follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== +follow-redirects@^1.14.8, follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== for-each@^0.3.3: version "0.3.3" @@ -6232,6 +6368,11 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== + fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -6242,9 +6383,9 @@ fs-extra@^10.1.0: universalify "^2.0.0" fs-extra@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -6319,16 +6460,21 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-port-please@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.1.tgz#2556623cddb4801d823c0a6a15eec038abb483be" - integrity sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA== +get-port-please@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.2.tgz#502795e56217128e4183025c89a48c71652f4e49" + integrity sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ== get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -6406,9 +6552,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" @@ -6465,10 +6611,10 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" -h3@^1.8.1, h3@^1.8.2: - version "1.9.0" - resolved "https://registry.yarnpkg.com/h3/-/h3-1.9.0.tgz#c5f512a93026df9837db6f30c9ef51135dd46752" - integrity sha512-+F3ZqrNV/CFXXfZ2lXBINHi+rM4Xw3CDC5z2CDK3NMPocjonKipGLLDSkrqY9DOrioZNPTIdDMWfQKm//3X2DA== +h3@^1.10.0, h3@^1.8.2: + version "1.10.0" + resolved "https://registry.yarnpkg.com/h3/-/h3-1.10.0.tgz#55ac36deb6e250ada5ff1940b6324bc6acc4085f" + integrity sha512-Tw1kcIC+AeimwRmviiObaD5EB430Yt+lTgOxLJxNr96Vd/fGRu04EF7aKfOAcpwKCI+U2JlbxOLhycD86p3Ciw== dependencies: cookie-es "^1.0.0" defu "^6.1.3" @@ -6477,7 +6623,7 @@ h3@^1.8.1, h3@^1.8.2: radix3 "^1.1.0" ufo "^1.3.2" uncrypto "^0.1.3" - unenv "^1.7.4" + unenv "^1.8.0" hard-rejection@^2.1.0: version "2.1.0" @@ -6499,7 +6645,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== @@ -6523,6 +6669,15 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -6571,6 +6726,11 @@ hast-util-whitespace@^1.0.0: resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz#e4fe77c4a9ae1cb2e6c25e02df0043d0164f6e41" integrity sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A== +hast-util-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" + integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== + hey-listen@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" @@ -6629,6 +6789,11 @@ human-signals@^4.3.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -6707,6 +6872,11 @@ ini@^1.3.4: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer@^6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" @@ -6772,6 +6942,11 @@ is-alphabetical@^1.0.0: resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" @@ -6780,6 +6955,14 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -6872,10 +7055,15 @@ is-decimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + +is-docker@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" + integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== is-extendable@^0.1.0: version "0.1.1" @@ -6933,6 +7121,18 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + +is-inside-container@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" + integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== + dependencies: + is-docker "^3.0.0" + is-map@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -6975,6 +7175,11 @@ is-plain-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== +is-plain-obj@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -7058,12 +7263,19 @@ is-weakset@^2.0.1: call-bind "^1.0.2" get-intrinsic "^1.1.1" -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== + dependencies: + is-inside-container "^1.0.0" + +is64bit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is64bit/-/is64bit-2.0.0.tgz#198c627cbcb198bbec402251f88e5e1a51236c07" + integrity sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw== dependencies: - is-docker "^2.0.0" + system-architecture "^0.1.0" isarray@^2.0.5: version "2.0.5" @@ -7553,7 +7765,7 @@ jest@^29.5.0: import-local "^3.0.2" jest-cli "^29.7.0" -jiti@^1.20.0: +jiti@^1.21.0: version "1.21.0" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== @@ -7730,6 +7942,11 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +kleur@^4.0.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== + kuler@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" @@ -7747,6 +7964,13 @@ language-tags@^1.0.9: dependencies: language-subtag-registry "^0.3.20" +"legacy-swc-helpers@npm:@swc/helpers@=0.4.14": + version "0.4.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" + integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== + dependencies: + tslib "^2.4.0" + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -7787,26 +8011,26 @@ lint-staged@^13.2.3: yaml "2.3.1" listhen@^1.5.5: - version "1.5.5" - resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.5.5.tgz#58915512af70f770aa3e9fb19367adf479bb58c4" - integrity sha512-LXe8Xlyh3gnxdv4tSjTjscD1vpr/2PRpzq8YIaMJgyKzRG8wdISlWVWnGThJfHnlJ6hmLt2wq1yeeix0TEbuoA== + version "1.5.6" + resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.5.6.tgz#8dc8cdccef225e39c69bcc6f6bd704447b499b51" + integrity sha512-gTpEJhT5L85L0bFgmu+Boqu5rP4DwDtEb4Exq5gdQUxWRwx4jbzdInZkmyLONo5EwIcQB0k7ZpWlpCDPdL77EQ== dependencies: "@parcel/watcher" "^2.3.0" "@parcel/watcher-wasm" "2.3.0" - citty "^0.1.4" - clipboardy "^3.0.0" + citty "^0.1.5" + clipboardy "^4.0.0" consola "^3.2.3" - defu "^6.1.2" - get-port-please "^3.1.1" - h3 "^1.8.1" + defu "^6.1.4" + get-port-please "^3.1.2" + h3 "^1.10.0" http-shutdown "^1.2.2" - jiti "^1.20.0" + jiti "^1.21.0" mlly "^1.4.2" node-forge "^1.3.1" pathe "^1.1.1" - std-env "^3.4.3" - ufo "^1.3.0" - untun "^0.1.2" + std-env "^3.7.0" + ufo "^1.3.2" + untun "^0.1.3" uqr "^0.1.2" listr2@6.6.1: @@ -7977,6 +8201,11 @@ longest-streak@^2.0.0: resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -7992,9 +8221,9 @@ lower-case@^2.0.2: tslib "^2.0.3" lru-cache@^10.0.2: - version "10.0.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.3.tgz#b40014d7d2d16d94130b87297a04a1f24874ae7c" - integrity sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg== + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== lru-cache@^5.1.1: version "5.1.1" @@ -8044,6 +8273,15 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + mdast-util-definitions@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" @@ -8051,6 +8289,28 @@ mdast-util-definitions@^4.0.0: dependencies: unist-util-visit "^2.0.0" +mdast-util-definitions@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +mdast-util-directive@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-2.2.4.tgz#e397ed699ec83938cb4a48dc1cec3ae69cbd7aa3" + integrity sha512-sK3ojFP+jpj1n7Zo5ZKvoxP1MvLyzVG63+gm40Z/qI00avzdPCYxt7RBMgofwAva9gBjbDBWVRB/i+UD+fUCzQ== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-from-markdown "^1.3.0" + mdast-util-to-markdown "^1.5.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-visit-parents "^5.1.3" + mdast-util-from-markdown@^0.8.0: version "0.8.5" resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz#d1ef2ca42bc377ecb0463a987910dae89bd9a28c" @@ -8062,6 +8322,41 @@ mdast-util-from-markdown@^0.8.0: parse-entities "^2.0.0" unist-util-stringify-position "^2.0.0" +mdast-util-from-markdown@^1.0.0, mdast-util-from-markdown@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + +mdast-util-frontmatter@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.1.tgz#79c46d7414eb9d3acabe801ee4a70a70b75e5af1" + integrity sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + micromark-extension-frontmatter "^1.0.0" + +mdast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463" + integrity sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg== + dependencies: + "@types/mdast" "^3.0.0" + unist-util-is "^5.0.0" + mdast-util-to-hast@^10.0.0: version "10.2.0" resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz#61875526a017d8857b71abc9333942700b2d3604" @@ -8076,6 +8371,20 @@ mdast-util-to-hast@^10.0.0: unist-util-position "^3.0.0" unist-util-visit "^2.0.0" +mdast-util-to-hast@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-definitions "^5.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + mdast-util-to-markdown@^0.6.0: version "0.6.5" resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" @@ -8088,11 +8397,37 @@ mdast-util-to-markdown@^0.6.0: repeat-string "^1.0.0" zwitch "^1.0.0" +mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0, mdast-util-to-markdown@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" + integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + mdast-util-to-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + +mdast@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mdast/-/mdast-3.0.0.tgz#626bce9603ed43fb6fb053245a6e4a17f4457aa8" + integrity sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g== + mdn-data@2.0.28: version "2.0.28" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" @@ -8145,6 +8480,223 @@ mersenne-twister@^1.1.0: resolved "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a" integrity sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA== +micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + +micromark-extension-directive@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/micromark-extension-directive/-/micromark-extension-directive-2.2.1.tgz#181751e433a0f2cdfbccc520eb1da42d63cbe4bd" + integrity sha512-ZFKZkNaEqAP86IghX1X7sE8NNnx6kFNq9mSBRvEHjArutTCJZ3LYg6VH151lXVb1JHpmIcW/7rX25oMoIHuSug== + dependencies: + micromark-factory-space "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + parse-entities "^4.0.0" + uvu "^0.5.0" + +micromark-extension-frontmatter@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.1.1.tgz#2946643938e491374145d0c9aacc3249e38a865f" + integrity sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ== + dependencies: + fault "^2.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== + +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + micromark@~2.11.0: version "2.11.4" resolved "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz#d13436138eea826383e822449c9a5c50ee44665a" @@ -8208,6 +8760,13 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -8235,14 +8794,14 @@ mkdirp@^1.0.4: integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mlly@^1.2.0, mlly@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" - integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== + version "1.5.0" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.5.0.tgz#8428a4617d54cc083d3009030ac79739a0e5447a" + integrity sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ== dependencies: - acorn "^8.10.0" - pathe "^1.1.1" + acorn "^8.11.3" + pathe "^1.1.2" pkg-types "^1.0.3" - ufo "^1.3.0" + ufo "^1.3.2" motion@10.16.2: version "10.16.2" @@ -8256,7 +8815,7 @@ motion@10.16.2: "@motionone/utils" "^10.15.1" "@motionone/vue" "^10.16.2" -mri@^1.2.0: +mri@^1.1.0, mri@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== @@ -8286,7 +8845,7 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== -nanoid@^3.3.6: +nanoid@^3.3.7: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== @@ -8358,12 +8917,12 @@ node-addon-api@^7.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e" integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== -node-fetch-native@^1.4.0, node-fetch-native@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.4.1.tgz#5a336e55b4e1b1e72b9927da09fecd2b374c9be5" - integrity sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w== +node-fetch-native@^1.4.0, node-fetch-native@^1.4.1, node-fetch-native@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.1.tgz#f95c74917d3cebc794cdae0cd2a9c7594aad0cb4" + integrity sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw== -node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: +node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -8376,19 +8935,19 @@ node-forge@^1.3.1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.0.tgz#749f0033590b2a89ac8edb5e0775f95f5ae86d15" - integrity sha512-PbZERfeFdrHQOOXiAKOY0VPbykZy90ndPKk0d+CFDegTKmWp1VgOTz2xACVbr1BjCWxrQp68CXtvNsveFhqDJg== + version "4.8.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" + integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== normalize-package-data@^2.5.0: version "2.5.0" @@ -8423,9 +8982,9 @@ npm-run-path@^4.0.1: path-key "^3.0.0" npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + version "5.2.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== dependencies: path-key "^4.0.0" @@ -8457,12 +9016,12 @@ object-keys@^1.1.1: integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" + call-bind "^1.0.5" + define-properties "^1.2.1" has-symbols "^1.0.3" object-keys "^1.1.1" @@ -8639,6 +9198,20 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" + integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== + dependencies: + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -8679,10 +9252,10 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.0, pathe@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" - integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== +pathe@^1.1.0, pathe@^1.1.1, pathe@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== performance-now@^2.1.0: version "2.1.0" @@ -8758,16 +9331,16 @@ pino@7.11.0: thread-stream "^0.15.1" pino@^8.11.0: - version "8.16.2" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.2.tgz#7a906f2d9a8c5b4c57412c9ca95d6820bd2090cd" - integrity sha512-2advCDGVEvkKu9TTVSa/kWW7Z3htI/sBKEZpqiHk6ive0i/7f5b1rsU8jn0aimxqfnSz5bj/nOYkwhBUn5xxvg== + version "8.17.2" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.17.2.tgz#0ed20175623a69d31664a1e8a5f85476272224be" + integrity sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" on-exit-leak-free "^2.1.0" pino-abstract-transport v1.1.0 pino-std-serializers "^6.0.0" - process-warning "^2.0.0" + process-warning "^3.0.0" quick-format-unescaped "^4.0.3" real-require "^0.2.0" safe-stable-stringify "^2.3.1" @@ -8795,17 +9368,17 @@ pkg-types@^1.0.3: mlly "^1.2.0" pathe "^1.1.0" -playwright-core@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.40.0.tgz#82f61e5504cb3097803b6f8bbd98190dd34bdf14" - integrity sha512-fvKewVJpGeca8t0ipM56jkVSU6Eo0RmFvQ/MaCQNDYm+sdvKkMBBWTE1FdeMqIdumRaXXjZChWHvIzCGM/tA/Q== +playwright-core@1.40.1: + version "1.40.1" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.40.1.tgz#442d15e86866a87d90d07af528e0afabe4c75c05" + integrity sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ== -playwright@1.40.0, playwright@^1.29.2: - version "1.40.0" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.40.0.tgz#2a1824b9fe5c4fe52ed53db9ea68003543a99df0" - integrity sha512-gyHAgQjiDf1m34Xpwzaqb76KgfzYrhK7iih+2IzcOCoZWr/8ZqmdBw+t0RU85ZmfJMgtgAiNtBQ/KS2325INXw== +playwright@1.40.1, playwright@^1.29.2: + version "1.40.1" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.40.1.tgz#a11bf8dca15be5a194851dbbf3df235b9f53d7ae" + integrity sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw== dependencies: - playwright-core "1.40.0" + playwright-core "1.40.1" optionalDependencies: fsevents "2.3.2" @@ -8825,18 +9398,18 @@ postcss-value-parser@^4.0.2: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@8.4.14, postcss@^8.4.31: - version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" - integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== dependencies: - nanoid "^3.3.6" + nanoid "^3.3.7" picocolors "^1.0.0" source-map-js "^1.0.2" preact@^10.12.0, preact@^10.5.9: - version "10.19.2" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.19.2.tgz#841797620dba649aaac1f8be42d37c3202dcea8b" - integrity sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg== + version "10.19.3" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.19.3.tgz#7a7107ed2598a60676c943709ea3efb8aaafa899" + integrity sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ== prelude-ls@^1.2.1: version "1.2.1" @@ -8849,9 +9422,9 @@ prettier@^2.1.2: integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== prettier@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" - integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== + version "3.2.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.2.tgz#96e580f7ca9c96090ad054616c0c4597e2844b65" + integrity sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A== pretty-format@^28.0.0, pretty-format@^28.1.3: version "28.1.3" @@ -8877,10 +9450,10 @@ process-warning@^1.0.0: resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== -process-warning@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.3.1.tgz#0caf992272c439f45dd416e1407ee25a3d4c778a" - integrity sha512-JjBvFEn7MwFbzUDa2SRtKJSsyO0LlER4V/FmwLMhBlXNbGgGxdyFCxIdMDLerWUycsVUyaoM9QFLvppFy4IWaQ== +process-warning@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-3.0.0.tgz#96e5b88884187a1dce6f5c3166d611132058710b" + integrity sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ== process@^0.11.10: version "0.11.10" @@ -8902,7 +9475,7 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.6.2, prop-types@^15.8.1: +prop-types@^15.0.0, prop-types@^15.6.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -8918,6 +9491,11 @@ property-information@^5.0.0: dependencies: xtend "^4.0.0" +property-information@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.4.0.tgz#6bc4c618b0c2d68b3bb8b552cbb97f8e300a0f82" + integrity sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ== + proxy-compare@2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.1.tgz#17818e33d1653fbac8c2ec31406bce8a2966f600" @@ -9041,9 +9619,9 @@ react-dom@^18.2.0: scheduler "^0.23.0" react-hook-form@^7.45.2: - version "7.48.2" - resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.48.2.tgz#01150354d2be61412ff56a030b62a119283b9935" - integrity sha512-H0T2InFQb1hX7qKtDIZmvpU1Xfn/bdahWBN1fH19gSe4bBEqTfmlr7H3XWTaVtiK4/tpPaI1F3355GPMZYge+A== + version "7.49.3" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.49.3.tgz#576a4567f8a774830812f4855e89f5da5830435c" + integrity sha512-foD6r3juidAT1cOZzpmD/gOKt7fRsDhXXZ0y28+Al1CHgX+AY1qIN9VSIIItXRq1dN68QrRwl1ORFlwjBaAqeQ== react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" @@ -9062,6 +9640,27 @@ react-jazzicon@^1.0.4: dependencies: mersenne-twister "^1.1.0" +react-markdown@^8.0.7: + version "8.0.7" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.7.tgz#c8dbd1b9ba5f1c5e7e5f2a44de465a3caafdf89b" + integrity sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ== + dependencies: + "@types/hast" "^2.0.0" + "@types/prop-types" "^15.0.0" + "@types/unist" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^2.0.0" + prop-types "^15.0.0" + property-information "^6.0.0" + react-is "^18.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.0" + unified "^10.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + react-toastify@7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-7.0.4.tgz#7d0b743f2b96f65754264ca6eae31911a82378db" @@ -9115,9 +9714,9 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stre util-deprecate "^1.0.1" readable-stream@^4.0.0: - version "4.4.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" - integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== + version "4.5.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== dependencies: abort-controller "^3.0.0" buffer "^6.0.3" @@ -9163,19 +9762,18 @@ redis-parser@^3.0.0: redis-errors "^1.0.0" reef-knot@^1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/reef-knot/-/reef-knot-1.13.2.tgz#5ad590d8dc9dc715a53f4584641892cc6effcf06" - integrity sha512-y9z3HNmrqo6ytXC9nIHnV1GKuL+ifj1HfL0mTy/65Mb4pIDJIscmWqf0/hl+OS4qOUactzzRUKVsf51XGR9mRg== - dependencies: - "@reef-knot/connect-wallet-modal" "1.15.0" - "@reef-knot/core-react" "1.7.0" - "@reef-knot/ledger-connector" "1.1.1" - "@reef-knot/types" "1.3.0" - "@reef-knot/ui-react" "1.0.7" + version "1.15.2" + resolved "https://registry.yarnpkg.com/reef-knot/-/reef-knot-1.15.2.tgz#737c096bf61b052c3fe32369c0efb74b612f3711" + integrity sha512-Dh3C2LxgWbOGXUgdm5fUsfS0bcHc5Y+g7KGRJgqCqV7wn5lLsIzT85C8WPu9clrMsmelw4kP9flNP8EXyjrdrg== + dependencies: + "@reef-knot/connect-wallet-modal" "1.17.0" + "@reef-knot/core-react" "1.8.1" + "@reef-knot/ledger-connector" "2.0.0" + "@reef-knot/types" "1.4.0" + "@reef-knot/ui-react" "1.0.8" "@reef-knot/wallets-helpers" "1.1.5" - "@reef-knot/wallets-icons" "1.5.0" - "@reef-knot/wallets-list" "1.9.0" - "@reef-knot/web3-react" "1.11.0" + "@reef-knot/wallets-list" "1.11.1" + "@reef-knot/web3-react" "1.13.1" reflect.getprototypeof@^1.0.4: version "1.0.4" @@ -9202,9 +9800,9 @@ regenerate@^1.4.2: integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.15.2: version "0.15.2" @@ -9253,6 +9851,16 @@ regjsparser@^0.9.1: dependencies: jsesc "~0.5.0" +remark-directive@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-2.0.1.tgz#1c32d9df8d839a75ba3478112d21fe883635b48e" + integrity sha512-oosbsUAkU/qmUE78anLaJePnPis4ihsE7Agp0T/oqTzvTea8pOiaYEtfInU/+xMOVTS9PN5AhGOiaIVe4GD8gw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-directive "^2.0.0" + micromark-extension-directive "^2.0.0" + unified "^10.0.0" + remark-external-links@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/remark-external-links/-/remark-external-links-8.0.0.tgz#308de69482958b5d1cd3692bc9b725ce0240f345" @@ -9264,6 +9872,16 @@ remark-external-links@^8.0.0: space-separated-tokens "^1.0.0" unist-util-visit "^2.0.0" +remark-frontmatter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz#84560f7ccef114ef076d3d3735be6d69f8922309" + integrity sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-frontmatter "^1.0.0" + micromark-extension-frontmatter "^1.0.0" + unified "^10.0.0" + remark-html@^13.0.1: version "13.0.2" resolved "https://registry.yarnpkg.com/remark-html/-/remark-html-13.0.2.tgz#de5f052749ff61fc904c9708c155c88a2e2655dc" @@ -9273,6 +9891,15 @@ remark-html@^13.0.1: hast-util-to-html "^7.0.0" mdast-util-to-hast "^10.0.0" +remark-parse@^10.0.0, remark-parse@^10.0.2: + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" + integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + remark-parse@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" @@ -9280,6 +9907,25 @@ remark-parse@^9.0.0: dependencies: mdast-util-from-markdown "^0.8.0" +remark-rehype@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^12.1.0" + unified "^10.0.0" + +remark-stringify@^10.0.3: + version "10.0.3" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.3.tgz#83b43f2445c4ffbb35b606f967d121b2b6d69717" + integrity sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.0.0" + unified "^10.0.0" + remark-stringify@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz#576d06e910548b0a7191a71f27b33f1218862894" @@ -9401,10 +10047,18 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + rpc-websockets@^7.5.1: - version "7.7.0" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.7.0.tgz#3f2eb1ce91a0a4a63200f3f78957d3f8ced17714" - integrity sha512-XYMzjxbDI0A9A2wwrx5/RswnZC53Av3bp5IOV9QnUdTuJ7Tstv4+V7vIe37pYYOn2wKYkbzkaeB8+I9oLztLOA== + version "7.9.0" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.9.0.tgz#a3938e16d6f134a3999fdfac422a503731bf8973" + integrity sha512-DwKewQz1IUA5wfLvgM8wDpPRcr+nWSxuFxx5CbrI2z/MyyZ4nXLM86TvIA+cI1ZAdqC8JIBR1mZR55dzaLU+Hw== dependencies: "@babel/runtime" "^7.17.2" eventemitter3 "^4.0.7" @@ -9440,28 +10094,35 @@ rxjs@^7.8.1: dependencies: tslib "^2.1.0" +sade@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" + integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" + integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" is-regex "^1.1.4" safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1: @@ -9526,14 +10187,15 @@ set-blocking@^2.0.0: integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" + integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== dependencies: define-data-property "^1.1.1" - get-intrinsic "^1.2.1" + function-bind "^1.1.2" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" set-function-name@^2.0.0, set-function-name@^2.0.1: version "2.0.1" @@ -9544,7 +10206,7 @@ set-function-name@^2.0.0, set-function-name@^2.0.1: functions-have-names "^1.2.3" has-property-descriptors "^1.0.0" -sha.js@^2.4.11: +sha.js@^2.4.0, sha.js@^2.4.11: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== @@ -9583,6 +10245,11 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -9633,9 +10300,9 @@ sonic-boom@^2.2.1: atomic-sleep "^1.0.0" sonic-boom@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.7.0.tgz#b4b7b8049a912986f4a92c51d4660b721b11f2f2" - integrity sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg== + version "3.8.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.8.0.tgz#e442c5c23165df897d77c3c14ef3ca40dec66a66" + integrity sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA== dependencies: atomic-sleep "^1.0.0" @@ -9662,6 +10329,11 @@ space-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -9727,10 +10399,10 @@ standard-as-callback@^2.1.0: resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== -std-env@^3.4.3: - version "3.5.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.5.0.tgz#83010c9e29bd99bf6f605df87c19012d82d63b97" - integrity sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA== +std-env@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== stream-browserify@^3.0.0: version "3.0.0" @@ -9741,9 +10413,9 @@ stream-browserify@^3.0.0: readable-stream "^3.5.0" stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.2.tgz#548bff71c92322e1ade886979f7f67c0723eb9e4" + integrity sha512-rV4Bovi9xx0BFzOb/X0B2GqoIjvqPCttZdu0Wgtx2Dxkj7ETyWl9gmqJ4EutWRLvtZWm8dxE+InQZX1IryZn/w== strict-uri-encode@^2.0.0: version "2.0.0" @@ -9847,6 +10519,14 @@ stringify-entities@^3.0.1: character-entities-legacy "^1.0.0" xtend "^4.0.0" +stringify-entities@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" @@ -9912,6 +10592,13 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +style-to-object@^0.4.0: + version "0.4.4" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.4.tgz#266e3dfd56391a7eefb7770423612d043c3f33ec" + integrity sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg== + dependencies: + inline-style-parser "0.1.1" + styled-components@^5.3.5: version "5.3.11" resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.11.tgz#9fda7bf1108e39bf3f3e612fcc18170dedcd57a8" @@ -9994,16 +10681,16 @@ svg-parser@^2.0.4: integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== svgo@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.4.tgz#67b40a710743e358e8d19ec288de8f1e388afbb4" - integrity sha512-T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g== + version "3.2.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.2.0.tgz#7a5dff2938d8c6096e00295c2390e8e652fa805d" + integrity sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ== dependencies: "@trysound/sax" "0.2.0" commander "^7.2.0" css-select "^5.1.0" - css-tree "^2.2.1" + css-tree "^2.3.1" css-what "^6.1.0" - csso "5.0.5" + csso "^5.0.5" picocolors "^1.0.0" swr@1.3.0, swr@^1.0.1, swr@^1.3.0: @@ -10011,6 +10698,11 @@ swr@1.3.0, swr@^1.0.1, swr@^1.3.0: resolved "https://registry.yarnpkg.com/swr/-/swr-1.3.0.tgz#c6531866a35b4db37b38b72c45a63171faf9f4e8" integrity sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw== +system-architecture@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/system-architecture/-/system-architecture-0.1.0.tgz#71012b3ac141427d97c67c56bc7921af6bff122d" + integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== + tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" @@ -10142,6 +10834,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" @@ -10157,6 +10854,11 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + ts-api-utils@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" @@ -10182,9 +10884,9 @@ ts-jest@^29.1.0: yargs-parser "^21.0.1" ts-node@^10.8.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -10200,10 +10902,10 @@ ts-node@^10.8.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -10332,9 +11034,9 @@ typedarray-to-buffer@3.1.5: is-typedarray "^1.0.0" "typescript@^4.6.4 || ^5.2.2": - version "5.3.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" - integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== typescript@^4.7, typescript@^4.9.4: version "4.9.5" @@ -10388,15 +11090,15 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -unenv@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.7.4.tgz#a0e5a78de2c7c3c4563c06ba9763c96c59db3333" - integrity sha512-fjYsXYi30It0YCQYqLOcT6fHfMXsBr2hw9XC7ycf8rTG7Xxpe3ZssiqUnD0khrjiZEmkBXWLwm42yCSCH46fMw== +unenv@^1.8.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.9.0.tgz#469502ae85be1bd3a6aa60f810972b1a904ca312" + integrity sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g== dependencies: consola "^3.2.3" - defu "^6.1.2" + defu "^6.1.3" mime "^3.0.0" - node-fetch-native "^1.4.0" + node-fetch-native "^1.6.1" pathe "^1.1.1" unicode-canonical-property-names-ecmascript@^2.0.0: @@ -10422,6 +11124,19 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unified@^10.0.0, unified@^10.1.2: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + unified@^9.1.0: version "9.2.2" resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" @@ -10444,16 +11159,35 @@ unist-util-generated@^1.0.0: resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== +unist-util-generated@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== + unist-util-is@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-position@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== +unist-util-position@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" @@ -10461,6 +11195,13 @@ unist-util-stringify-position@^2.0.0: dependencies: "@types/unist" "^2.0.2" +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-visit-parents@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" @@ -10469,6 +11210,14 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" +unist-util-visit-parents@^5.1.1, unist-util-visit-parents@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" @@ -10478,6 +11227,15 @@ unist-util-visit@^2.0.0: unist-util-is "^4.0.0" unist-util-visit-parents "^3.0.0" +unist-util-visit@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -10505,12 +11263,12 @@ unstorage@^1.9.0: ofetch "^1.3.3" ufo "^1.3.1" -untun@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.2.tgz#fa42a62ae24c1c5c6f3209692a2b0e1f573f1353" - integrity sha512-wLAMWvxfqyTiBODA1lg3IXHQtjggYLeTK7RnSfqtOXixWJ3bAa2kK/HHmOOg19upteqO3muLvN6O/icbyQY33Q== +untun@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.3.tgz#5d10dee37a3a5737ff03d158be877dae0a0e58a6" + integrity sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ== dependencies: - citty "^0.1.3" + citty "^0.1.5" consola "^3.2.3" pathe "^1.1.1" @@ -10586,15 +11344,25 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== v8-to-istanbul@^9.0.1: - version "9.1.3" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz#ea456604101cd18005ac2cae3cdd1aa058a6306b" - integrity sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg== + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" @@ -10629,6 +11397,14 @@ vfile-message@^2.0.0: "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" +vfile-message@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" @@ -10639,6 +11415,16 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" +vfile@^5.0.0: + version "5.3.7" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + wagmi@0.12.19: version "0.12.19" resolved "https://registry.yarnpkg.com/wagmi/-/wagmi-0.12.19.tgz#5f5038330907f70c033ea51ef8a9136289567256" @@ -10684,9 +11470,9 @@ webpack-preprocessor-loader@^1.3.0: integrity sha512-wvHkDvgU9lhKQ1OWIJsawPBT/0wr+J7dwC7DHy0KtmXR/thGOAWbKEErGeJ2aXGSpwgqQTolIRoETlwMzocK1g== whatwg-fetch@^3.4.1: - version "3.6.19" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz#caefd92ae630b91c07345537e67f8354db470973" - integrity sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw== + version "3.6.20" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== whatwg-url@^5.0.0: version "5.0.0" @@ -10835,9 +11621,9 @@ ws@^7.3.1, ws@^7.4.5, ws@^7.5.1: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.5.0: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== xtend@^4.0.0, xtend@^4.0.1: version "4.0.2" @@ -10928,9 +11714,9 @@ yocto-queue@^0.1.0: integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== zustand@^4.3.1: - version "4.4.6" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.6.tgz#03c78e3e2686c47095c93714c0c600b72a6512bd" - integrity sha512-Rb16eW55gqL4W2XZpJh0fnrATxYEG3Apl2gfHTyDSE965x/zxslTikpNch0JgNjJA9zK6gEFW8Fl6d1rTZaqgg== + version "4.4.7" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.7.tgz#355406be6b11ab335f59a66d2cf9815e8f24038c" + integrity sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw== dependencies: use-sync-external-store "1.2.0" @@ -10938,3 +11724,8 @@ zwitch@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== From e21878b1eb2c7a0f539ae978ac13474de17a7ed0 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 16 Jan 2024 12:34:22 +0300 Subject: [PATCH 45/47] chore: yarn for node v.16 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index d7cf019cd..f97e98b23 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3427,9 +3427,9 @@ integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== "@types/node@*": - version "20.11.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.3.tgz#ac29fba7aeadc74046b02e50758156f4850f1296" - integrity sha512-nrlmbvGPNGaj84IJZXMPhQuCMEVTT/hXZMJJG/aIqVL9fKxqk814sGGtJA4GI6hpJSLQjpi6cn0Qx9eOf9SDVg== + version "20.11.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.4.tgz#c724a5d6723182af758b91b994209336f4439cb7" + integrity sha512-6I0fMH8Aoy2lOejL3s4LhyIYX34DPwY8bl5xlNjBvUEk8OHrcuzsFt+Ied4LvJihbtXPM+8zUqdydfIti86v9g== dependencies: undici-types "~5.26.4" From 5d9ec20808fdb4bbf96dbbdf073aede2d5549c2a Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Tue, 16 Jan 2024 13:06:04 +0300 Subject: [PATCH 46/47] chore: yarn for node v.16 --- yarn.lock | 1710 +++++++++++++++++++++++++---------------------------- 1 file changed, 806 insertions(+), 904 deletions(-) diff --git a/yarn.lock b/yarn.lock index f97e98b23..851888ea4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,46 +15,46 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa" + integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA== dependencies: "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" + integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.21.3": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" - integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" + integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-compilation-targets" "^7.23.6" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.7" - "@babel/parser" "^7.23.6" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.3" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.7" - "@babel/types" "^7.23.6" + "@babel/traverse" "^7.23.3" + "@babel/types" "^7.23.3" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" - integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== +"@babel/generator@^7.23.3", "@babel/generator@^7.23.4", "@babel/generator@^7.7.2": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.4.tgz#4a41377d8566ec18f807f42962a7f3551de83d1c" + integrity sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ== dependencies: - "@babel/types" "^7.23.6" + "@babel/types" "^7.23.4" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -73,28 +73,28 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" - browserslist "^4.22.2" + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz#b2e6826e0e20d337143655198b79d58fdc9bd43d" - integrity sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g== +"@babel/helper-create-class-features-plugin@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" + integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-replace-supers" "^7.22.9" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" @@ -108,10 +108,10 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.4": - version "0.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" - integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== +"@babel/helper-define-polyfill-provider@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" + integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -119,7 +119,7 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.22.20": +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== @@ -139,7 +139,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": +"@babel/helper-member-expression-to-functions@^7.22.15": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== @@ -185,7 +185,7 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-replace-supers@^7.22.20": +"@babel/helper-replace-supers@^7.22.20", "@babel/helper-replace-supers@^7.22.9": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== @@ -225,10 +225,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== "@babel/helper-wrap-function@^7.22.20": version "7.22.20" @@ -239,14 +239,14 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.23.7": - version "7.23.8" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.8.tgz#fc6b2d65b16847fd50adddbd4232c76378959e34" - integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== +"@babel/helpers@^7.23.2": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.4.tgz#7d2cfb969aa43222032193accd7329851facf3c1" + integrity sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.7" - "@babel/types" "^7.23.6" + "@babel/traverse" "^7.23.4" + "@babel/types" "^7.23.4" "@babel/highlight@^7.23.4": version "7.23.4" @@ -257,10 +257,10 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" - integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.3", "@babel/parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.4.tgz#409fbe690c333bb70187e2de4021e1e47a026661" + integrity sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" @@ -278,10 +278,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" - integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" + integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -446,10 +446,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.23.7": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd" - integrity sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA== +"@babel/plugin-transform-async-generator-functions@^7.23.3": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" + integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -472,7 +472,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.23.4": +"@babel/plugin-transform-block-scoping@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== @@ -487,7 +487,7 @@ "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-class-static-block@^7.23.4": +"@babel/plugin-transform-class-static-block@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== @@ -496,15 +496,16 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.23.8": - version "7.23.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" - integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== +"@babel/plugin-transform-classes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz#73380c632c095b03e8503c24fd38f95ad41ffacb" + integrity sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-split-export-declaration" "^7.22.6" @@ -540,7 +541,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dynamic-import@^7.23.4": +"@babel/plugin-transform-dynamic-import@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== @@ -556,7 +557,7 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-export-namespace-from@^7.23.4": +"@babel/plugin-transform-export-namespace-from@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== @@ -564,13 +565,12 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" - integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== +"@babel/plugin-transform-for-of@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" + integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-function-name@^7.23.3": version "7.23.3" @@ -581,7 +581,7 @@ "@babel/helper-function-name" "^7.23.0" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-json-strings@^7.23.4": +"@babel/plugin-transform-json-strings@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== @@ -596,7 +596,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-logical-assignment-operators@^7.23.4": +"@babel/plugin-transform-logical-assignment-operators@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== @@ -661,7 +661,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== @@ -669,7 +669,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-numeric-separator@^7.23.4": +"@babel/plugin-transform-numeric-separator@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== @@ -677,7 +677,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-object-rest-spread@^7.23.4": +"@babel/plugin-transform-object-rest-spread@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== @@ -696,7 +696,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" -"@babel/plugin-transform-optional-catch-binding@^7.23.4": +"@babel/plugin-transform-optional-catch-binding@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== @@ -704,7 +704,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": +"@babel/plugin-transform-optional-chaining@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== @@ -728,7 +728,7 @@ "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-private-property-in-object@^7.23.4": +"@babel/plugin-transform-private-property-in-object@^7.23.3": version "7.23.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== @@ -837,12 +837,12 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-typescript@^7.23.3": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" - integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz#da12914d17b3c4b307f32c5fd91fbfdf17d56f86" + integrity sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.23.6" + "@babel/helper-create-class-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.23.3" @@ -878,17 +878,17 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.20.2": - version "7.23.8" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.8.tgz#7d6f8171ea7c221ecd28059e65ad37c20e441e3e" - integrity sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA== + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.3.tgz#d299e0140a7650684b95c62be2db0ef8c975143e" + integrity sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q== dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-compilation-targets" "^7.23.6" + "@babel/compat-data" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.23.5" + "@babel/helper-validator-option" "^7.22.15" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -909,25 +909,25 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.7" + "@babel/plugin-transform-async-generator-functions" "^7.23.3" "@babel/plugin-transform-async-to-generator" "^7.23.3" "@babel/plugin-transform-block-scoped-functions" "^7.23.3" - "@babel/plugin-transform-block-scoping" "^7.23.4" + "@babel/plugin-transform-block-scoping" "^7.23.3" "@babel/plugin-transform-class-properties" "^7.23.3" - "@babel/plugin-transform-class-static-block" "^7.23.4" - "@babel/plugin-transform-classes" "^7.23.8" + "@babel/plugin-transform-class-static-block" "^7.23.3" + "@babel/plugin-transform-classes" "^7.23.3" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" "@babel/plugin-transform-duplicate-keys" "^7.23.3" - "@babel/plugin-transform-dynamic-import" "^7.23.4" + "@babel/plugin-transform-dynamic-import" "^7.23.3" "@babel/plugin-transform-exponentiation-operator" "^7.23.3" - "@babel/plugin-transform-export-namespace-from" "^7.23.4" - "@babel/plugin-transform-for-of" "^7.23.6" + "@babel/plugin-transform-export-namespace-from" "^7.23.3" + "@babel/plugin-transform-for-of" "^7.23.3" "@babel/plugin-transform-function-name" "^7.23.3" - "@babel/plugin-transform-json-strings" "^7.23.4" + "@babel/plugin-transform-json-strings" "^7.23.3" "@babel/plugin-transform-literals" "^7.23.3" - "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.3" "@babel/plugin-transform-member-expression-literals" "^7.23.3" "@babel/plugin-transform-modules-amd" "^7.23.3" "@babel/plugin-transform-modules-commonjs" "^7.23.3" @@ -935,15 +935,15 @@ "@babel/plugin-transform-modules-umd" "^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" "@babel/plugin-transform-new-target" "^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" - "@babel/plugin-transform-numeric-separator" "^7.23.4" - "@babel/plugin-transform-object-rest-spread" "^7.23.4" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.3" + "@babel/plugin-transform-numeric-separator" "^7.23.3" + "@babel/plugin-transform-object-rest-spread" "^7.23.3" "@babel/plugin-transform-object-super" "^7.23.3" - "@babel/plugin-transform-optional-catch-binding" "^7.23.4" - "@babel/plugin-transform-optional-chaining" "^7.23.4" + "@babel/plugin-transform-optional-catch-binding" "^7.23.3" + "@babel/plugin-transform-optional-chaining" "^7.23.3" "@babel/plugin-transform-parameters" "^7.23.3" "@babel/plugin-transform-private-methods" "^7.23.3" - "@babel/plugin-transform-private-property-in-object" "^7.23.4" + "@babel/plugin-transform-private-property-in-object" "^7.23.3" "@babel/plugin-transform-property-literals" "^7.23.3" "@babel/plugin-transform-regenerator" "^7.23.3" "@babel/plugin-transform-reserved-words" "^7.23.3" @@ -957,9 +957,9 @@ "@babel/plugin-transform-unicode-regex" "^7.23.3" "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.7" - babel-plugin-polyfill-corejs3 "^0.8.7" - babel-plugin-polyfill-regenerator "^0.5.4" + babel-plugin-polyfill-corejs2 "^0.4.6" + babel-plugin-polyfill-corejs3 "^0.8.5" + babel-plugin-polyfill-regenerator "^0.5.3" core-js-compat "^3.31.0" semver "^6.3.1" @@ -1000,10 +1000,10 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@^7.17.2", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.23.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" - integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== +"@babel/runtime@^7.17.2", "@babel/runtime@^7.23.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.4.tgz#36fa1d2b36db873d25ec631dcc4923fdc1cf2e2e" + integrity sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg== dependencies: regenerator-runtime "^0.14.0" @@ -1016,26 +1016,26 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.23.7", "@babel/traverse@^7.4.5": - version "7.23.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" - integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== +"@babel/traverse@^7.23.3", "@babel/traverse@^7.23.4", "@babel/traverse@^7.4.5": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.4.tgz#c2790f7edf106d059a0098770fe70801417f3f85" + integrity sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg== dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" + "@babel/code-frame" "^7.23.4" + "@babel/generator" "^7.23.4" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.6" - "@babel/types" "^7.23.6" - debug "^4.3.1" + "@babel/parser" "^7.23.4" + "@babel/types" "^7.23.4" + debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" - integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.4.tgz#7206a1810fc512a7f7f7d4dace4cb4c1c9dbfb8e" + integrity sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ== dependencies: "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" @@ -1313,10 +1313,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== +"@eslint/eslintrc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" + integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1328,10 +1328,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.56.0": - version "8.56.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" - integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== +"@eslint/js@8.54.0": + version "8.54.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" + integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.7.0": version "5.7.0" @@ -1708,12 +1708,12 @@ cross-fetch "^3.1.5" "@humanwhocodes/config-array@^0.11.13": - version "0.11.14" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" + "@humanwhocodes/object-schema" "^2.0.1" + debug "^4.1.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -1721,10 +1721,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@ioredis/commands@^1.1.1": version "1.2.0" @@ -1979,113 +1979,118 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.21" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz#5dc1df7b3dc4a6209e503a924e1ca56097a2bb15" - integrity sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" "@ledgerhq/connect-kit-loader@^1.0.1": - version "1.1.8" - resolved "https://registry.yarnpkg.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.8.tgz#6cc32191660dd9d6e8f89047af09b0f201e30190" - integrity sha512-mDJsOucVW8m3Lk2fdQst+P74SgiKebvq1iBk4sXLbADQOwhL9bWGaArvO+tW7jPJZwEfSPWBdHcHoYi11XAwZw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.2.tgz#d550e3c1f046e4c796f32a75324b03606b7e226a" + integrity sha512-mscwGroSJQrCTjtNGBu+18FQbZYA4+q6Tyx6K7CXHl6AwgZKbWfZYdgP2F+fyZcRUdGRsMX8QtvU61VcGGtO1A== -"@ledgerhq/cryptoassets@^11.3.1": - version "11.3.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/cryptoassets/-/cryptoassets-11.3.1.tgz#4db44a13a91e884c5a26526cd664f84c06b23eae" - integrity sha512-TlC4M9IoQmGYOu8EWwC3yEX/M9s8rD/RY996VP0+dsWk287MoQoy9ZIYlKtNEG5GjIGTCyuQhWLI1WdQNXA3QA== +"@ledgerhq/cryptoassets@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/cryptoassets/-/cryptoassets-11.1.0.tgz#d8cb334e1ab3cf3debd3964c0ba1931841a95e84" + integrity sha512-Ky8ZaXQHd8YcLsjPRpU1QeMolZTVhjV4oDy31sdToKFbYSDmrpIVNSNlCXzkIERR7wUVV5h5XrAPnHH+c8HxGw== dependencies: - axios "^1.6.0" - bs58check "^2.1.2" invariant "2" -"@ledgerhq/devices@^8.2.0": - version "8.2.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.2.0.tgz#ef67bf49628252d1779acaa151b1a941acba790e" - integrity sha512-XROTW2gTmmuy+YPPDjdtKKTQ3mfxrPtKtV+a9QFbj8f5MnjVMV0Zpy1BIB4CyIMsVVi4z6+nI67auT7IlsM3SQ== +"@ledgerhq/devices@^8.0.8": + version "8.0.8" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.8.tgz#cd233eb54a044913160c9183be9fb22adae4e071" + integrity sha512-0j7E8DY2jeSSATc8IJk+tXDZ9u+Z7tXxB8I4TzXrfV/8A5exMh/K1IwX6Jt1zlw1wre4CT9MV4mzUs3M/TE7lg== dependencies: - "@ledgerhq/errors" "^6.16.1" - "@ledgerhq/logs" "^6.12.0" + "@ledgerhq/errors" "^6.15.0" + "@ledgerhq/logs" "^6.11.0" rxjs "^7.8.1" semver "^7.3.5" -"@ledgerhq/domain-service@^1.1.16": - version "1.1.16" - resolved "https://registry.yarnpkg.com/@ledgerhq/domain-service/-/domain-service-1.1.16.tgz#1d2d53339008d4540dc94e152a411d08e072f228" - integrity sha512-ovdYTrostrbQl5SnKoUw4BeYfLRfBSe7S0zEV9MHo3MlSHI0H4sfcpfM7g8CXybwOg/xHaP9uKm4Mlbg7JNxrg== +"@ledgerhq/domain-service@^1.1.14": + version "1.1.14" + resolved "https://registry.yarnpkg.com/@ledgerhq/domain-service/-/domain-service-1.1.14.tgz#dbb2b297ab560d36e62ce9def59f892b7de24970" + integrity sha512-Hi0OUSRrngpj0HhZoP9m/E1sDstiKxxaxxBuRAP/NlfLOJjAasxDRQA/Pyh4Gs4YHnhLZNWp4heXTJ8F1KMedA== dependencies: - "@ledgerhq/errors" "^6.16.1" - "@ledgerhq/logs" "^6.12.0" - "@ledgerhq/types-live" "^6.43.1" + "@ledgerhq/errors" "^6.15.0" + "@ledgerhq/logs" "^6.11.0" + "@ledgerhq/types-live" "^6.42.0" axios "^1.3.4" eip55 "^2.1.1" react "^18.2.0" react-dom "^18.2.0" -"@ledgerhq/errors@^6.16.1": - version "6.16.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.16.1.tgz#df650a9ba105397dee2e8c0ceddf6931c5b25ede" - integrity sha512-4D4wKecGzQpIu7sx03Sg4uE1e8g1oZUndWgw9gw776H8h9ov9c5TxPaldTn2j6orPECAERViLf7LTO4L5pE2Cw== +"@ledgerhq/errors@^6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.15.0.tgz#45cda73915f695cc072cb8a99650830bc5dc6668" + integrity sha512-6xaw5/mgoht62TnL3rXsaQYEFwpnXyNDk1AOSJksIjFHx9bHUnkyVmrnGQDj0JLzi+E7bHEgTrpCs8wpeDh9jA== -"@ledgerhq/evm-tools@^1.0.13": - version "1.0.13" - resolved "https://registry.yarnpkg.com/@ledgerhq/evm-tools/-/evm-tools-1.0.13.tgz#f8c23213efcbee7f0b39e74d3e4df7b21961c58a" - integrity sha512-i+qqt3BWlueVgO7ob2bjo8scx2PD1rCH/pfXg9BftiftgmgUNnrCzpdailFSNyQH9QSic6E3Q3t74qlA6CzdxA== +"@ledgerhq/evm-tools@^1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@ledgerhq/evm-tools/-/evm-tools-1.0.10.tgz#97317238bfc1184fa3328f194c9a746a2f6fc259" + integrity sha512-CyViTYzYgLrtxkl203JAZpqlVYCXN8N03cDLdm9EL8GhEzxkyAYIv4hS2SwhWATGXdGAnEoPmju91XrudQ1OxA== dependencies: - "@ledgerhq/cryptoassets" "^11.3.1" - "@ledgerhq/live-env" "^0.8.0" - "@ledgerhq/live-network" "^1.1.10" + "@ledgerhq/cryptoassets" "^11.1.0" + "@ledgerhq/live-env" "^0.6.1" + "@ledgerhq/live-network" "^1.1.8" crypto-js "4.2.0" ethers "5.7.2" -"@ledgerhq/hw-app-eth@^6.34.3", "@ledgerhq/hw-app-eth@^6.35.0": - version "6.35.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-6.35.2.tgz#20bdb6edddb1f355f47cdb9280de11027dc67491" - integrity sha512-ZHZFfi1k6L43pmjdXEMch0jR9pglGNHmfZBQctdZZYCCckDfuYz4Ne68LABC6uoH+M8xjBiByHQA+Rc2HPptqQ== +"@ledgerhq/hw-app-eth@^6.34.3", "@ledgerhq/hw-app-eth@^6.34.8": + version "6.34.9" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-6.34.9.tgz#29dbaefa8793f65589cdcdb8764e594433b24e3f" + integrity sha512-L9NaJjFuGwnICF55D8vZ8yRNAFy5k5LwweuyZOXFgSvu72uj1ygQKFWSJbr77CY0e6p/omFvqeqiw3J6RmSMWw== dependencies: "@ethersproject/abi" "^5.5.0" "@ethersproject/rlp" "^5.5.0" - "@ledgerhq/cryptoassets" "^11.3.1" - "@ledgerhq/domain-service" "^1.1.16" - "@ledgerhq/errors" "^6.16.1" - "@ledgerhq/evm-tools" "^1.0.13" - "@ledgerhq/hw-transport" "^6.30.1" - "@ledgerhq/hw-transport-mocker" "^6.28.1" - "@ledgerhq/logs" "^6.12.0" - "@ledgerhq/types-live" "^6.43.1" + "@ledgerhq/cryptoassets" "^11.1.0" + "@ledgerhq/domain-service" "^1.1.14" + "@ledgerhq/errors" "^6.15.0" + "@ledgerhq/evm-tools" "^1.0.10" + "@ledgerhq/hw-transport" "^6.29.0" + "@ledgerhq/hw-transport-mocker" "^6.27.20" + "@ledgerhq/logs" "^6.11.0" + "@ledgerhq/types-live" "^6.42.0" axios "^1.3.4" bignumber.js "^9.1.2" -"@ledgerhq/hw-transport-mocker@^6.28.1": - version "6.28.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-6.28.1.tgz#7bc020b2d9b43288dcfbb1aa43e62220a94bd506" - integrity sha512-o2psew3qYp1O7Bh3qCdktGxm5HqVl3RHFl1zzxUOSr4i3nxvLhGvm0Ku/5tFLRjaxVwmSo6f7pBN9o+rOpcrNg== +"@ledgerhq/hw-transport-mocker@^6.27.20": + version "6.27.20" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-6.27.20.tgz#d2b5f82797fad20544995220bb080a527f125198" + integrity sha512-o5nGuMLs/akXUvgD1f2u1DqhiC7Ii8x3fCmdE5KExCMo3dVWYkeeV3LTUzx+bp+daJFeYNKOa9+Z7XpqIuEJtA== dependencies: - "@ledgerhq/hw-transport" "^6.30.1" - "@ledgerhq/logs" "^6.12.0" + "@ledgerhq/hw-transport" "^6.29.0" + "@ledgerhq/logs" "^6.11.0" rxjs "^7.8.1" -"@ledgerhq/hw-transport-webhid@^6.27.19", "@ledgerhq/hw-transport-webhid@^6.28.0": - version "6.28.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.28.1.tgz#af13c517514451bf60ee83d8e2b402028504af5c" - integrity sha512-m1FzUaaRdMm+KWz+sm4RGjG1axAIYEnIC3PqwFGMtXDjyPVohdWxRJD9B2L/etR4EY67b7AH/MoQ02rpUqCCEA== +"@ledgerhq/hw-transport-webhid@^6.27.19": + version "6.27.20" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.20.tgz#87f83e42ea0e4cb5c6e87dbfc6e5e45d125eb68f" + integrity sha512-zNZgTTpbPFBHgzQRqVl3+Y0ySOFkEIGxxHT1y+AgSxRmoLgfzsBQgYy6z3jZZyJQ92B8Tl95hAvMm9vo7IqxWA== dependencies: - "@ledgerhq/devices" "^8.2.0" - "@ledgerhq/errors" "^6.16.1" - "@ledgerhq/hw-transport" "^6.30.1" - "@ledgerhq/logs" "^6.12.0" + "@ledgerhq/devices" "^8.0.8" + "@ledgerhq/errors" "^6.15.0" + "@ledgerhq/hw-transport" "^6.29.0" + "@ledgerhq/logs" "^6.11.0" -"@ledgerhq/hw-transport@^6.28.8", "@ledgerhq/hw-transport@^6.30.0", "@ledgerhq/hw-transport@^6.30.1": - version "6.30.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.30.1.tgz#fd3c825f41197aeaf705e3c066f82843eaf48cae" - integrity sha512-Xeeo4nt33g5Fsp3CdsPvcc2Uk7dwYeKRSlSFLWcYAAKprf/PmxgNekhke1eaNU/wLoeLOWhY2Cki8F8w9nLMdQ== +"@ledgerhq/hw-transport@^6.28.8", "@ledgerhq/hw-transport@^6.29.0": + version "6.29.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.29.0.tgz#2b85f39d90b093930f0c7bfc513b29eb47ba97fa" + integrity sha512-WQfzxt3EnnbOmzZVYiCgSmNsqafBOFQn40awvUPY2IZviJRs23/1ANPHAo76bzPV88+Qk0+1wZlcnIanGN6fFA== dependencies: - "@ledgerhq/devices" "^8.2.0" - "@ledgerhq/errors" "^6.16.1" - "@ledgerhq/logs" "^6.12.0" + "@ledgerhq/devices" "^8.0.8" + "@ledgerhq/errors" "^6.15.0" + "@ledgerhq/logs" "^6.11.0" events "^3.3.0" +"@ledgerhq/iframe-provider@0": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@ledgerhq/iframe-provider/-/iframe-provider-0.4.3.tgz#62f680a935b753487df7d8bf48a13952f5456e4e" + integrity sha512-T7rSxDMjOnV25QWo3aoWWLytB+VvFcQH5xVkYt7hAhc8qCaK9fnJD5VcmrqwPnyjzXslu7Vz8wUwj9w0CIgp6A== + dependencies: + eventemitter3 "^4.0.0" + "@ledgerhq/iframe-provider@0.4.2": version "0.4.2" resolved "https://registry.yarnpkg.com/@ledgerhq/iframe-provider/-/iframe-provider-0.4.2.tgz#2b63892bb3ab9a0719d2b00488be18b176ad6b7e" @@ -2093,50 +2098,43 @@ dependencies: eventemitter3 "^4.0.0" -"@ledgerhq/iframe-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@ledgerhq/iframe-provider/-/iframe-provider-0.4.3.tgz#62f680a935b753487df7d8bf48a13952f5456e4e" - integrity sha512-T7rSxDMjOnV25QWo3aoWWLytB+VvFcQH5xVkYt7hAhc8qCaK9fnJD5VcmrqwPnyjzXslu7Vz8wUwj9w0CIgp6A== - dependencies: - eventemitter3 "^4.0.0" - -"@ledgerhq/live-env@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/live-env/-/live-env-0.8.0.tgz#c250e355a53aa24e810e6480464cc522801c3ac9" - integrity sha512-RLMNkbdwX2W8Kaizq2S4S9Zg32NcQ+vUyhk3UOlcbr6bEByAUcLUfQjQ7bUJfGEtRZCMz9hXLwBqLCrE/L0YCw== +"@ledgerhq/live-env@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/live-env/-/live-env-0.6.1.tgz#5ccfc966752507f05a2de8384e7d6d90574071dd" + integrity sha512-DZoFlj35qnjUoOtqPih1ZtjMpJTD8z76JcyHPi/PXD/vGw9ZkitaYP9K2Ihnm3TWul5YzbtF0Q6lvcRswklpPw== dependencies: rxjs "^7.8.1" utility-types "^3.10.0" -"@ledgerhq/live-network@^1.1.10": - version "1.1.10" - resolved "https://registry.yarnpkg.com/@ledgerhq/live-network/-/live-network-1.1.10.tgz#f3b6cac4eecaa2cc62f8fa412c58e3ce06ef0aa7" - integrity sha512-kEwRRRk3228KDZicGelrbP64VjvA2aUYg3Q7GaemgE6/OT/i0pmurII3QUbkCSTlf/H9fGfy3Ztf/4MvcKb5VA== +"@ledgerhq/live-network@^1.1.8": + version "1.1.8" + resolved "https://registry.yarnpkg.com/@ledgerhq/live-network/-/live-network-1.1.8.tgz#c1405e070e2bc3373c59f590812393c046e46fa4" + integrity sha512-3cyEMKI6yqJGTfruFyxfnki5OkyrTATwR5CRYUL1keRsVjaB3OdYWqlXesFv23ra1myF1Y7OZemzmwHR2gqTqw== dependencies: - "@ledgerhq/errors" "^6.16.1" - "@ledgerhq/live-env" "^0.8.0" - "@ledgerhq/live-promise" "^0.0.3" - "@ledgerhq/logs" "^6.12.0" + "@ledgerhq/errors" "^6.15.0" + "@ledgerhq/live-env" "^0.6.1" + "@ledgerhq/live-promise" "^0.0.2" + "@ledgerhq/logs" "^6.11.0" axios "0.26.1" invariant "^2.2.2" lru-cache "^7.14.1" -"@ledgerhq/live-promise@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@ledgerhq/live-promise/-/live-promise-0.0.3.tgz#432693468ddd48f94a24437c01791d59d393adbc" - integrity sha512-/49dRz5XoxUw4TFq0kytU2Vz9w+FoGgG28U8RH9nuUWVPjVhAPvhY/QXUQA+7qqaorEIAYPHF0Rappalawhr+g== +"@ledgerhq/live-promise@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/live-promise/-/live-promise-0.0.2.tgz#3b0d5d3098e62fd8c1a9d364daeed91be5d3089b" + integrity sha512-UT3UL7r/67ADw8Ykxg/GrslBr+GqjWCjklIAnlXWTS8zsH58SUp8wJRJN9Ie28RCt0im9UitrQ5o41D8KPszag== dependencies: - "@ledgerhq/logs" "^6.12.0" + "@ledgerhq/logs" "^6.11.0" -"@ledgerhq/logs@^6.12.0": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.12.0.tgz#ad903528bf3687a44da435d7b2479d724d374f5d" - integrity sha512-ExDoj1QV5eC6TEbMdLUMMk9cfvNKhhv5gXol4SmULRVCx/3iyCPhJ74nsb3S0Vb+/f+XujBEj3vQn5+cwS0fNA== +"@ledgerhq/logs@^6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.11.0.tgz#0d28e7edcf71548506f4304686cba480ba91bbcf" + integrity sha512-HHK9y4GGe4X7CXbRUCh7z8Mp+WggpJn1dmUjmuk1rNugESF6o8nAOnXA+BxwtRRNV3CgNJR3Wxdos4J9qV0Zsg== -"@ledgerhq/types-live@^6.43.1": - version "6.43.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/types-live/-/types-live-6.43.1.tgz#1f983151c628f3f84c600d8ce69ecb7c89c7e5a9" - integrity sha512-XaDACXAULFmY95scTmZNOaQMxiqmdj3kEhPRA3aDcB8VA8jzjK0+nrNx6qWNZbH3tgo1xj8gwz7bdmPoOgrqfg== +"@ledgerhq/types-live@^6.42.0": + version "6.42.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/types-live/-/types-live-6.42.0.tgz#d143834b3dfd3acfbaad95e491bb5adbffc7fe63" + integrity sha512-YI1WD8CLEXibVQsp0wR7NqyLgJQlgYiXdqhj1vQZLUSR5/Mnq1TxbaTvFUveMy4V+4sj8e5rRJCyEyz1/sgzCw== dependencies: bignumber.js "^9.1.2" rxjs "^7.8.1" @@ -2330,43 +2328,43 @@ semver "^7.3.8" superstruct "^1.0.3" -"@motionone/animation@^10.15.1", "@motionone/animation@^10.17.0": - version "10.17.0" - resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.17.0.tgz#7633c6f684b5fee2b61c405881b8c24662c68fca" - integrity sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg== +"@motionone/animation@^10.15.1", "@motionone/animation@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.16.3.tgz#f5b71e27fd8b88b61f983adb0ed6c8e3e89281f9" + integrity sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g== dependencies: - "@motionone/easing" "^10.17.0" - "@motionone/types" "^10.17.0" - "@motionone/utils" "^10.17.0" + "@motionone/easing" "^10.16.3" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" tslib "^2.3.1" "@motionone/dom@^10.16.2", "@motionone/dom@^10.16.4": - version "10.17.0" - resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.17.0.tgz#519dd78aab0750a94614c69a82da5290cd617383" - integrity sha512-cMm33swRlCX/qOPHWGbIlCl0K9Uwi6X5RiL8Ma6OrlJ/TP7Q+Np5GE4xcZkFptysFjMTi4zcZzpnNQGQ5D6M0Q== - dependencies: - "@motionone/animation" "^10.17.0" - "@motionone/generators" "^10.17.0" - "@motionone/types" "^10.17.0" - "@motionone/utils" "^10.17.0" + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.16.4.tgz#9385716928cc2d5b3208a7dcaf504b69b47fd1ae" + integrity sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA== + dependencies: + "@motionone/animation" "^10.16.3" + "@motionone/generators" "^10.16.4" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" hey-listen "^1.0.8" tslib "^2.3.1" -"@motionone/easing@^10.17.0": - version "10.17.0" - resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.17.0.tgz#d66cecf7e3ee30104ad00389fb3f0b2282d81aa9" - integrity sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg== +"@motionone/easing@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.16.3.tgz#a62abe0ba2841861f167f286782e287eab8d7466" + integrity sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w== dependencies: - "@motionone/utils" "^10.17.0" + "@motionone/utils" "^10.16.3" tslib "^2.3.1" -"@motionone/generators@^10.17.0": - version "10.17.0" - resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.17.0.tgz#878d292539c41434c13310d5f863a87a94e6e689" - integrity sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ== +"@motionone/generators@^10.16.4": + version "10.16.4" + resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.16.4.tgz#4a38708244bce733bfcebd4a26d19f4bbabd36af" + integrity sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg== dependencies: - "@motionone/types" "^10.17.0" - "@motionone/utils" "^10.17.0" + "@motionone/types" "^10.16.3" + "@motionone/utils" "^10.16.3" tslib "^2.3.1" "@motionone/svelte@^10.16.2": @@ -2377,17 +2375,17 @@ "@motionone/dom" "^10.16.4" tslib "^2.3.1" -"@motionone/types@^10.15.1", "@motionone/types@^10.17.0": - version "10.17.0" - resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.17.0.tgz#179571ce98851bac78e19a1c3974767227f08ba3" - integrity sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA== +"@motionone/types@^10.15.1", "@motionone/types@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.16.3.tgz#9284ea8a52f6b32c51c54b617214f20e43ac6c59" + integrity sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg== -"@motionone/utils@^10.15.1", "@motionone/utils@^10.17.0": - version "10.17.0" - resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.17.0.tgz#cc0ba8acdc6848ff48d8c1f2d0d3e7602f4f942e" - integrity sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg== +"@motionone/utils@^10.15.1", "@motionone/utils@^10.16.3": + version "10.16.3" + resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.16.3.tgz#ddf07ab6cf3000d89e3bcbdc9a8c3e1fd64f8520" + integrity sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA== dependencies: - "@motionone/types" "^10.17.0" + "@motionone/types" "^10.16.3" hey-listen "^1.0.8" tslib "^2.3.1" @@ -2484,16 +2482,16 @@ integrity sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg== "@noble/curves@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" - integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== dependencies: - "@noble/hashes" "1.3.3" + "@noble/hashes" "1.3.2" -"@noble/hashes@1.3.3", "@noble/hashes@^1.3.2": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" - integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== +"@noble/hashes@1.3.2", "@noble/hashes@^1.3.1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -2516,50 +2514,50 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@parcel/watcher-android-arm64@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.0.tgz#9c93763794153e4f76920994a423b6ea3257059d" - integrity sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA== - -"@parcel/watcher-darwin-arm64@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.0.tgz#2c79c2abde16aa24cac67e555b60802fd13fe210" - integrity sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA== - -"@parcel/watcher-darwin-x64@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.0.tgz#23d82f198c5d033f047467c68d7c335f3df49b46" - integrity sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q== - -"@parcel/watcher-freebsd-x64@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.0.tgz#7310cc86abc27dacd57624bcdba1f0ba092e76df" - integrity sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA== - -"@parcel/watcher-linux-arm-glibc@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.0.tgz#c31b76e695027eeb1078d3d6f1d641d0b900c335" - integrity sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ== - -"@parcel/watcher-linux-arm64-glibc@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.0.tgz#56e09b86e9d8a4096f606be118b588da6e965080" - integrity sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg== - -"@parcel/watcher-linux-arm64-musl@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.0.tgz#27ffd5ca5f510ecd638f9ad22e2e813049db54e7" - integrity sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng== - -"@parcel/watcher-linux-x64-glibc@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.0.tgz#44cbbb1e5884a1ca900655f47a0775218318f934" - integrity sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ== - -"@parcel/watcher-linux-x64-musl@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.0.tgz#4c33993618c8d5113722852806239cb80360494b" - integrity sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA== +"@parcel/watcher-android-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz#d82e74bb564ebd4d8a88791d273a3d2bd61e27ab" + integrity sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA== + +"@parcel/watcher-darwin-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz#c9cd03f8f233d512fcfc873d5b4e23f1569a82ad" + integrity sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw== + +"@parcel/watcher-darwin-x64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz#83c902994a2a49b9e1ab5050dba24876fdc2c219" + integrity sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow== + +"@parcel/watcher-freebsd-x64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz#7a0f4593a887e2752b706aff2dae509aef430cf6" + integrity sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw== + +"@parcel/watcher-linux-arm-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz#3fc90c3ebe67de3648ed2f138068722f9b1d47da" + integrity sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ== + +"@parcel/watcher-linux-arm64-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz#f7bbbf2497d85fd11e4c9e9c26ace8f10ea9bcbc" + integrity sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA== + +"@parcel/watcher-linux-arm64-musl@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz#de131a9fcbe1fa0854e9cbf4c55bed3b35bcff43" + integrity sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw== + +"@parcel/watcher-linux-x64-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz#193dd1c798003cdb5a1e59470ff26300f418a943" + integrity sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow== + +"@parcel/watcher-linux-x64-musl@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz#6dbdb86d96e955ab0fe4a4b60734ec0025a689dd" + integrity sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g== "@parcel/watcher-wasm@2.3.0": version "2.3.0" @@ -2570,60 +2568,60 @@ micromatch "^4.0.5" napi-wasm "^1.1.0" -"@parcel/watcher-win32-arm64@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.0.tgz#2a172fd2fda95fe5389298ca3e70b5a96316162a" - integrity sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg== +"@parcel/watcher-win32-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz#59da26a431da946e6c74fa6b0f30b120ea6650b6" + integrity sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw== -"@parcel/watcher-win32-ia32@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.0.tgz#279225b2ebe1fadd3c5137c9b2365ad422656904" - integrity sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA== +"@parcel/watcher-win32-ia32@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz#3ee6a18b08929cd3b788e8cc9547fd9a540c013a" + integrity sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow== -"@parcel/watcher-win32-x64@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.0.tgz#93e0bd0ad1bda2c9a688764b9b30b71dc5b72a71" - integrity sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA== +"@parcel/watcher-win32-x64@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz#14e7246289861acc589fd608de39fe5d8b4bb0a7" + integrity sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA== "@parcel/watcher@^2.3.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.4.0.tgz#2d3c4ef8832a5cdfdbb76b914f022489933e664f" - integrity sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.3.0.tgz#803517abbc3981a1a1221791d9f59dc0590d50f9" + integrity sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ== dependencies: detect-libc "^1.0.3" is-glob "^4.0.3" micromatch "^4.0.5" node-addon-api "^7.0.0" optionalDependencies: - "@parcel/watcher-android-arm64" "2.4.0" - "@parcel/watcher-darwin-arm64" "2.4.0" - "@parcel/watcher-darwin-x64" "2.4.0" - "@parcel/watcher-freebsd-x64" "2.4.0" - "@parcel/watcher-linux-arm-glibc" "2.4.0" - "@parcel/watcher-linux-arm64-glibc" "2.4.0" - "@parcel/watcher-linux-arm64-musl" "2.4.0" - "@parcel/watcher-linux-x64-glibc" "2.4.0" - "@parcel/watcher-linux-x64-musl" "2.4.0" - "@parcel/watcher-win32-arm64" "2.4.0" - "@parcel/watcher-win32-ia32" "2.4.0" - "@parcel/watcher-win32-x64" "2.4.0" + "@parcel/watcher-android-arm64" "2.3.0" + "@parcel/watcher-darwin-arm64" "2.3.0" + "@parcel/watcher-darwin-x64" "2.3.0" + "@parcel/watcher-freebsd-x64" "2.3.0" + "@parcel/watcher-linux-arm-glibc" "2.3.0" + "@parcel/watcher-linux-arm64-glibc" "2.3.0" + "@parcel/watcher-linux-arm64-musl" "2.3.0" + "@parcel/watcher-linux-x64-glibc" "2.3.0" + "@parcel/watcher-linux-x64-musl" "2.3.0" + "@parcel/watcher-win32-arm64" "2.3.0" + "@parcel/watcher-win32-ia32" "2.3.0" + "@parcel/watcher-win32-x64" "2.3.0" "@playwright/test@^1.29.2": - version "1.40.1" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.40.1.tgz#9e66322d97b1d74b9f8718bacab15080f24cde65" - integrity sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw== + version "1.40.0" + resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.40.0.tgz#d06c506977dd7863aa16e07f2136351ecc1be6ed" + integrity sha512-PdW+kn4eV99iP5gxWNSDQCbhMaDVej+RXL5xr6t04nbKLCBwYtA046t7ofoczHOm8u6c+45hpDKQVZqtqwkeQg== dependencies: - playwright "1.40.1" + playwright "1.40.0" "@polka/url@^1.0.0-next.20": - version "1.0.0-next.24" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.24.tgz#58601079e11784d20f82d0585865bb42305c4df3" - integrity sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ== + version "1.0.0-next.23" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.23.tgz#498e41218ab3b6a1419c735e5c6ae2c5ed609b6c" + integrity sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg== -"@reef-knot/connect-wallet-modal@1.17.0": - version "1.17.0" - resolved "https://registry.yarnpkg.com/@reef-knot/connect-wallet-modal/-/connect-wallet-modal-1.17.0.tgz#60f6666ba3e5de207b4e21691d579e8f204ab70c" - integrity sha512-YlAVBRR1kV4m7bZBhFQG0LlduBXuDsXiucOez3+W5dj05LZNCv+j3eLAnzRxZgG39jwY3gQN6KiP1fA1+1g+PQ== +"@reef-knot/connect-wallet-modal@1.15.0": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@reef-knot/connect-wallet-modal/-/connect-wallet-modal-1.15.0.tgz#96232244ab0952d44e77b51e6b76c2e5f45bb5fb" + integrity sha512-3JsBoHH91TiW4k52Qa9QdZpEl+FeECGRGzqxZWbg58YQ+1jtI5/iN3wCL6oxQgEuXG/au/ErYkESIu6pvPvf/Q== dependencies: "@ledgerhq/hw-app-eth" "^6.34.3" "@ledgerhq/hw-transport" "^6.28.8" @@ -2632,15 +2630,15 @@ "@types/react" "18.2.45" "@types/react-dom" "18.2.17" -"@reef-knot/core-react@1.8.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@reef-knot/core-react/-/core-react-1.8.1.tgz#fd3cb58344cbecea724f5fef5ae728a0cf1b141a" - integrity sha512-4fzLBAohvNapsTsb4WY3jgNliQNXat3hvnKzcmmTya4xv4t627Hdx1ZZWRx7mI3dcrhu6RWaGJOFsm4xVlGU/Q== +"@reef-knot/core-react@1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@reef-knot/core-react/-/core-react-1.7.0.tgz#ef380d1f15c85615cac07da482f37126dff86b82" + integrity sha512-RMM6Mrx0VEMaLDe1tXkj8Rtchfe1Vy867aAGgbMIhNf3pQ6PajpBIxke4Tpi1zodSy2r+ymFdJP10ISSdleMDw== -"@reef-knot/ledger-connector@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/ledger-connector/-/ledger-connector-2.0.0.tgz#e7bc6382cbf46dcaccda595d1475806e069e713c" - integrity sha512-NguSsVn1a9Fc33d9/jTQfceTsC9qO0JnMXUmFXzMXDV759kiFh/18KCB6SbK/g1COUxQmFH4PuohgOD8hAEVag== +"@reef-knot/ledger-connector@1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@reef-knot/ledger-connector/-/ledger-connector-1.1.1.tgz#4077d08846f1ecec513eff3dbf2811b02f1a6be6" + integrity sha512-lnIaarLg/PYcCSWqCh21s8VQCWphTA7+Beb16nqccKfTekPisW82RoS2Y11vvoGI7pZWsJvVvnC0qTN7H7Lebg== dependencies: "@ethersproject/abstract-signer" "^5.5.0" "@ethersproject/bignumber" "^5.5.0" @@ -2650,23 +2648,23 @@ "@ethersproject/providers" "^5.5.2" "@ethersproject/strings" "^5.5.0" "@ethersproject/transactions" "^5.5.0" - "@ledgerhq/hw-app-eth" "^6.35.0" - "@ledgerhq/hw-transport" "^6.30.0" - "@ledgerhq/hw-transport-webhid" "^6.28.0" - "@ledgerhq/iframe-provider" "^0.4.3" + "@ledgerhq/hw-app-eth" "^6.34.8" + "@ledgerhq/hw-transport" "^6.28.8" + "@ledgerhq/hw-transport-webhid" "^6.27.19" + "@ledgerhq/iframe-provider" "0" "@web3-react/abstract-connector" "^6.0.7" "@web3-react/types" "^6.0.7" tiny-invariant "^1.2.0" -"@reef-knot/types@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@reef-knot/types/-/types-1.4.0.tgz#61b57a2591eb8e5554f5f76e036ecb9bb8e835df" - integrity sha512-12FoE/LUsBx+JGaogAqu7Ez6Z1JLskGdQNuwIh2wkJzfBWr6M+U20PWV+7c02svqtiOeImNk7nitT0Jt6FroNQ== +"@reef-knot/types@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@reef-knot/types/-/types-1.3.0.tgz#aa3f3f1247ffde5986f98146871c1c0cc1506470" + integrity sha512-mKo5tceGBIx39vOBaxDSkKQqpPEyHBLMJeNPDUQ/rFfgjvPz8WFs+oAkA66YHey4WmMlRJDksLT3NhgANw4PwA== -"@reef-knot/ui-react@1.0.8": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@reef-knot/ui-react/-/ui-react-1.0.8.tgz#af4496caab9040ea07302ea9c35979ea8376a2c7" - integrity sha512-0sRmFhgpHWnX80sWZ+3LEOKQvT9zddxv5m9uT14Vo32c86QpFPhd9OiDaowtjCmqA5ykTbCpPe1tGp0GaAcomg== +"@reef-knot/ui-react@1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@reef-knot/ui-react/-/ui-react-1.0.7.tgz#c24286fa4879ce21f8534dbbbff63153869d4afb" + integrity sha512-NZya61s6gIInPzSa19yrsbcBKRq8Kdh4JgoDMuPCw5QHWjgq1GHFQCLLJGqGjuVaKtk6Dzbcedxz7XhCkdxZsQ== dependencies: react-transition-group "4" use-callback-ref "1.2.5" @@ -2681,16 +2679,16 @@ resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-bitkeep/-/wallet-adapter-bitkeep-1.1.1.tgz#a57370149070796b7affa0964376d0f290a2e856" integrity sha512-bSb3mjcDEfuSLzGXRE/jmc6lr/NTaKnWxO0NBhqJa9WOCdq/i5i6LvUFFLns/PE6HutOQGOtdQa0M+OhDF495A== +"@reef-knot/wallet-adapter-blockchaincom@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-blockchaincom/-/wallet-adapter-blockchaincom-1.2.4.tgz#f33a125c658c635b098e333bbc7f84a58dd7a0af" + integrity sha512-RViZe8fepuEJgZfYprRhNCkC8xD+dPNXd5xTwfhO2WqPOjTpUAHBP7kXwqrGr6IPrv7zWwdE6MY7c5PXzUbaQA== + "@reef-knot/wallet-adapter-brave@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-brave/-/wallet-adapter-brave-1.0.1.tgz#247b246d4585d10dcec63e0b7cf4c79a85424561" integrity sha512-9oAlDr7qV61Ajl8PtfXVOISf45HZ9DIPNoA/IVI2vNCaXYsMbhZxjkSKKdMdfoC8JBeHB3yxmq5XKJWW/4BO9g== -"@reef-knot/wallet-adapter-browser-extension@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-browser-extension/-/wallet-adapter-browser-extension-1.0.0.tgz#63e922e532f2f5253f51047819589c838a0271e1" - integrity sha512-8R/3SG0kxTpVhWRKVGJGVSbwhUbOfNytu5wbWNLp7ijAUt8cqoGPwVk/bLM1UQPm7I6oke/s9Xa0+CVVusPl6g== - "@reef-knot/wallet-adapter-coin98@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-coin98/-/wallet-adapter-coin98-1.0.1.tgz#5ddfe2f22a5cf18db0e7324455b2ad91b1b60e25" @@ -2711,21 +2709,21 @@ resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-imtoken/-/wallet-adapter-imtoken-1.0.0.tgz#9af2609775e74dd20c052c8f5542500e40ab0006" integrity sha512-JsHIIwUbsg4wl122ODBxPH2P0WLYI29PCxlZCIciIVRLIg+BHKbLuSHj7NTJL/atvj5SBDa8f/jzdf21MUuPfQ== -"@reef-knot/wallet-adapter-ledger-hid@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-ledger-hid/-/wallet-adapter-ledger-hid-1.0.0.tgz#08266531aad2372bdf30cd5bcc09708fd530eb4b" - integrity sha512-GpjK8lghU3yCnxspNN7EQhOTfZVBOAf7J/Yypvb4icWn3lIfh7AhjYbvx6Bpgi855AMmYIhQPCFDYSLbBRok0w== - -"@reef-knot/wallet-adapter-metamask@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-metamask/-/wallet-adapter-metamask-1.0.0.tgz#a7c34ebe5bff79ee01ebd5a52c76862b9794cb2a" - integrity sha512-LF/827vZru8FaPj/O+7CX+eK31FF2yrtT3PiAiUmJ3Tlr16hNF1hQgBiBoqsbkdaWVCUF2ehIcdVCIZjsqawfA== - "@reef-knot/wallet-adapter-okx@1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-okx/-/wallet-adapter-okx-1.3.1.tgz#00f72748cc89b7b0c4fd255ec044326054412225" integrity sha512-GVwvS2noyK3p8aKKP8H50ZVVUvrdj7nUTRFumS3HsZchiQYpNfCeX1W3svZ09+B3zl3ohTg1h9kNOlApQGHv6g== +"@reef-knot/wallet-adapter-phantom@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-phantom/-/wallet-adapter-phantom-1.3.0.tgz#642831a4b96b99efbe037d99ec6f7b4e4a720843" + integrity sha512-rSHg0eOwo5QsYhrWxXy73EFLjTnEPdAM8/XHwg1dtXEvPGhjKpDd3Aj6Eh4nLvH0ef8JU+Kcta+YHFnNUEz9EQ== + +"@reef-knot/wallet-adapter-taho@1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-taho/-/wallet-adapter-taho-1.2.3.tgz#a4e233f581963d4addb6596980646aafc39aade9" + integrity sha512-FD7dtC5w1hPAzkDhXYK9PIg66wEZ343FadEn4L/D4G8w/w3FHrJWYZapyz0c4zLGH2jZTz2S1iVTIZlie7stjQ== + "@reef-knot/wallet-adapter-trust@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-trust/-/wallet-adapter-trust-1.0.0.tgz#b7ea0b6b24bc5db38cc68df27528346a957a2fd9" @@ -2741,35 +2739,52 @@ resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-xdefi/-/wallet-adapter-xdefi-1.0.0.tgz#64d978d33d2d095c46683b2becef9286ba8d579f" integrity sha512-aFk27wkS6fG3RNplohvP59KCaOJJEzDiST2+uOuMj5cpivz8nAdBGWusn9i9Vmr3r4zULyPYuP9culyLNhqXzg== +"@reef-knot/wallet-adapter-zengo@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-zengo/-/wallet-adapter-zengo-1.2.4.tgz#b5c12179bdfdf92c7b7ae522c0535f25b8111a75" + integrity sha512-2cGISrhmTb033KqqPmp+4Enl5qt8RzJeqqzOe3gWDvMfe0UOTIMu22hzcmcFznBDQdjXcdp/pXP3aiI3dgxVXg== + +"@reef-knot/wallet-adapter-zerion@1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@reef-knot/wallet-adapter-zerion/-/wallet-adapter-zerion-1.2.4.tgz#2b01259e0bfb97deb928a653fd55346bc28b171e" + integrity sha512-t2mUkeV8RhGZA53Ch1h46y078hH/fOvPB4LIr4sFjFpZZ9bcQNHPoSPjTVw4/cRS2wJ4dIZSklUFtUWui5MjlQ== + "@reef-knot/wallets-helpers@1.1.5": version "1.1.5" resolved "https://registry.yarnpkg.com/@reef-knot/wallets-helpers/-/wallets-helpers-1.1.5.tgz#bceb7d91a6f7748ec093fbdf7422772bd71708b6" integrity sha512-OFWR6zsUy04Waujl1VlNNs91P/kyHeGLC49QLWs3vrHvVipEk7ydUhKU/dHrbuhjQBS7quKg4vrodyCUUl4zyQ== -"@reef-knot/wallets-list@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@reef-knot/wallets-list/-/wallets-list-1.11.1.tgz#3502e3a998108d27bc3666c1ffa14e1efcf34893" - integrity sha512-QUmEmciXbGLO5fJSeu4nJSQxSW7hhEulrjWlM0w0MxFPmh1Nmv9+Nn2PFlqWiCg+lXSGpBW831YDRNwAx3OSXQ== +"@reef-knot/wallets-icons@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallets-icons/-/wallets-icons-1.5.0.tgz#7095d00cfeedb29a5fe2b1de85810288292a3257" + integrity sha512-+suGHOHWZktjUjEFRqRAL/ozdFSbm9omE9kJa02tzc+Px7RCJfCBQnkRsfDiBKzCpuPELWwvADSzOKPQrSPiQA== + +"@reef-knot/wallets-list@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@reef-knot/wallets-list/-/wallets-list-1.9.0.tgz#1f0229c7d34110a49d46c8da6429d504fea5b1f3" + integrity sha512-qr41QUS1Bxqq9fXCxN+u0psKRHKCGioLtmU8mrH13iCQRwFDNj3YRWJZlvtIUYlI9Q3Sd8RZWy4dMGa/G6oVlQ== dependencies: "@reef-knot/wallet-adapter-ambire" "1.2.4" "@reef-knot/wallet-adapter-bitkeep" "1.1.1" + "@reef-knot/wallet-adapter-blockchaincom" "1.2.4" "@reef-knot/wallet-adapter-brave" "1.0.1" - "@reef-knot/wallet-adapter-browser-extension" "1.0.0" "@reef-knot/wallet-adapter-coin98" "1.0.1" "@reef-knot/wallet-adapter-coinbase" "1.0.0" "@reef-knot/wallet-adapter-exodus" "1.2.4" "@reef-knot/wallet-adapter-imtoken" "1.0.0" - "@reef-knot/wallet-adapter-ledger-hid" "1.0.0" - "@reef-knot/wallet-adapter-metamask" "1.0.0" "@reef-knot/wallet-adapter-okx" "1.3.1" + "@reef-knot/wallet-adapter-phantom" "1.3.0" + "@reef-knot/wallet-adapter-taho" "1.2.3" "@reef-knot/wallet-adapter-trust" "1.0.0" "@reef-knot/wallet-adapter-walletconnect" "1.2.4" "@reef-knot/wallet-adapter-xdefi" "1.0.0" + "@reef-knot/wallet-adapter-zengo" "1.2.4" + "@reef-knot/wallet-adapter-zerion" "1.2.4" -"@reef-knot/web3-react@1.13.1": - version "1.13.1" - resolved "https://registry.yarnpkg.com/@reef-knot/web3-react/-/web3-react-1.13.1.tgz#d9d2b6db3f40eca874b7d31b7f0e1e05c03fa6d2" - integrity sha512-4txVsSN4mYpmgLgIyiKrpc3mnyIICwD3JI63YkjNk89vpPzdtuTlJk6y2RM3lprbFmQBl6aJaLyOqA7lNz/Liw== +"@reef-knot/web3-react@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@reef-knot/web3-react/-/web3-react-1.11.0.tgz#219e0d2acfab7334234bb18cdf0db68b408589bf" + integrity sha512-cE5nhs9Ub/o454agCwD9t5PYLGCfXrXmdTtBELIi1Twv3lAXk5X6GOmQawsqsIE+1EttghPmhMUZWfW+PVjjGQ== dependencies: "@gnosis.pm/safe-apps-web3-react" "0.6.8" "@ledgerhq/iframe-provider" "0.4.2" @@ -2806,9 +2821,9 @@ ethers "^5.7.2" "@safe-global/safe-gateway-typescript-sdk@^3.5.3": - version "3.14.0" - resolved "https://registry.yarnpkg.com/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.14.0.tgz#9581c524c1ea4956555f40761eb6b4007392aa82" - integrity sha512-/dqU66RvHw50n+7x3nwnJedq8V6iLQyoWitNdjx5cFTBmae+rpP+LvHq+LqZfXJVkB1qNytMdjFjdyES0t79gQ== + version "3.13.2" + resolved "https://registry.yarnpkg.com/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.13.2.tgz#f03884c7eb766f5508085d95ab96063a28e20920" + integrity sha512-kGlJecJHBzGrGTq/yhLANh56t+Zur6Ubpt+/w03ARX1poDb4TM8vKU3iV8tuYpk359PPWp+Qvjnqb9oW2YQcYw== "@sinclair/typebox@^0.24.1": version "0.24.51" @@ -2834,7 +2849,7 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@solana/buffer-layout@^4.0.1": +"@solana/buffer-layout@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== @@ -2842,15 +2857,15 @@ buffer "~6.0.3" "@solana/web3.js@^1.70.1": - version "1.89.1" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.89.1.tgz#52df6820f2d088c4558aa359af40580a03d10ec9" - integrity sha512-t9TTLtPQxtQB3SAf/5E8xPXfVDsC6WGOsgKY02l2cbe0HLymT7ynE8Hu48Lk5qynHCquj6nhISfEHcjMkYpu/A== + version "1.87.6" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.87.6.tgz#6744cfc5f4fc81e0f58241c0a92648a7320bb3bf" + integrity sha512-LkqsEBgTZztFiccZZXnawWa8qNCATEqE97/d0vIwjTclmVlc8pBpD1DmjfVHtZ1HS5fZorFlVhXfpwnCNDZfyg== dependencies: - "@babel/runtime" "^7.23.4" + "@babel/runtime" "^7.23.2" "@noble/curves" "^1.2.0" - "@noble/hashes" "^1.3.2" - "@solana/buffer-layout" "^4.0.1" - agentkeepalive "^4.5.0" + "@noble/hashes" "^1.3.1" + "@solana/buffer-layout" "^4.0.0" + agentkeepalive "^4.3.0" bigint-buffer "^1.1.5" bn.js "^5.2.1" borsh "^0.7.0" @@ -2858,7 +2873,7 @@ buffer "6.0.3" fast-stable-stringify "^1.0.0" jayson "^4.1.0" - node-fetch "^2.7.0" + node-fetch "^2.6.12" rpc-websockets "^7.5.1" superstruct "^0.14.2" @@ -3300,9 +3315,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.8" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" - integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + version "7.6.7" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" + integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== dependencies: "@babel/types" "^7.0.0" @@ -3315,9 +3330,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" - integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + version "7.20.4" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" + integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== dependencies: "@babel/types" "^7.20.7" @@ -3427,9 +3442,9 @@ integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== "@types/node@*": - version "20.11.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.4.tgz#c724a5d6723182af758b91b994209336f4439cb7" - integrity sha512-6I0fMH8Aoy2lOejL3s4LhyIYX34DPwY8bl5xlNjBvUEk8OHrcuzsFt+Ied4LvJihbtXPM+8zUqdydfIti86v9g== + version "20.9.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.3.tgz#e089e1634436f676ff299596c9531bd2b59fffc6" + integrity sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw== dependencies: undici-types "~5.26.4" @@ -3444,9 +3459,9 @@ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^18.6.1": - version "18.19.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.7.tgz#9a5f6ac7ec42a5dff68fe7faf2dd359710de4a12" - integrity sha512-IGRJfoNX10N/PfrReRZ1br/7SQ+2vF/tK3KXNwzXz82D32z5dMQEoOlFew18nLSN+vMNcLY4GrKfzwi/yWI8/w== + version "18.18.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.11.tgz#d43f6b92671eacfdd1fedb7a897388fb8880323f" + integrity sha512-c1vku6qnTeujJneYH94/4aq73XrVcsJe35UPyAsSok1ijiKrkRzK+AxQPSpNMUnC03roWBBwJx/9I8V7lQoxmA== dependencies: undici-types "~5.26.4" @@ -3478,16 +3493,16 @@ "@types/react" "*" "@types/react-transition-group@^4.4.3": - version "4.4.10" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac" - integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q== + version "4.4.9" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.9.tgz#12a1a1b5b8791067198149867b0823fbace31579" + integrity sha512-ZVNmWumUIh5NhH8aMD9CR2hdW0fNuYInlocZHaZ+dgk/1K49j1w/HoAuK1ki+pgscQrOFRTlXeoURtuzEkV3dg== dependencies: "@types/react" "*" "@types/react@*", "@types/react@^18.2.22": - version "18.2.48" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.48.tgz#11df5664642d0bd879c1f58bc1d37205b064e8f1" - integrity sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w== + version "18.2.38" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.38.tgz#3605ca41d3daff2c434e0b98d79a2469d4c2dd52" + integrity sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -3503,9 +3518,9 @@ csstype "^3.0.2" "@types/scheduler@*": - version "0.16.8" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" - integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== + version "0.16.7" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.7.tgz#d62f1bd54724c84089f51f9218393930ba4abcf4" + integrity sha512-8g25Nl3AuB1KulTlSUsUhUo/oBgBU6XIXQ+XURpeioEbEJvkO7qI4vDfREv3vJYHHzqXjcAHvoJy4pTtSQNZtA== "@types/semver@^7.3.12", "@types/semver@^7.5.0": version "7.5.6" @@ -3518,9 +3533,9 @@ integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/styled-components@^5.1.23": - version "5.1.34" - resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.34.tgz#4107df8ef8a7eaba4fa6b05f78f93fba4daf0300" - integrity sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA== + version "5.1.31" + resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.31.tgz#08908bfeb458302e509970f3ab0d2420fe73597f" + integrity sha512-r7uTHGB2aQ1UWp9sN9nbQ69fSL7x8m5QhaMDa5m7mMPE+QMtZaS6Bvr5msE42y0CPRUaqTsHn+4f9z0MTfYxEA== dependencies: "@types/hoist-non-react-statics" "*" "@types/react" "*" @@ -3575,15 +3590,15 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^6.2.1": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz#db03f3313b57a30fbbdad2e6929e88fc7feaf9ba" - integrity sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg== + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.12.0.tgz#2a647d278bb48bf397fef07ba0507612ff9dd812" + integrity sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.19.0" - "@typescript-eslint/type-utils" "6.19.0" - "@typescript-eslint/utils" "6.19.0" - "@typescript-eslint/visitor-keys" "6.19.0" + "@typescript-eslint/scope-manager" "6.12.0" + "@typescript-eslint/type-utils" "6.12.0" + "@typescript-eslint/utils" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -3592,14 +3607,14 @@ ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6.2.1": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.19.0.tgz#80344086f362181890ade7e94fc35fe0480bfdf5" - integrity sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow== - dependencies: - "@typescript-eslint/scope-manager" "6.19.0" - "@typescript-eslint/types" "6.19.0" - "@typescript-eslint/typescript-estree" "6.19.0" - "@typescript-eslint/visitor-keys" "6.19.0" + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.12.0.tgz#9fb21ed7d88065a4a2ee21eb80b8578debb8217c" + integrity sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg== + dependencies: + "@typescript-eslint/scope-manager" "6.12.0" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/typescript-estree" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.62.0": @@ -3610,21 +3625,21 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz#b6d2abb825b29ab70cb542d220e40c61c1678116" - integrity sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ== +"@typescript-eslint/scope-manager@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.12.0.tgz#5833a16dbe19cfbad639d4d33bcca5e755c7044b" + integrity sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw== dependencies: - "@typescript-eslint/types" "6.19.0" - "@typescript-eslint/visitor-keys" "6.19.0" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" -"@typescript-eslint/type-utils@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz#522a494ef0d3e9fdc5e23a7c22c9331bbade0101" - integrity sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w== +"@typescript-eslint/type-utils@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.12.0.tgz#968f7c95162808d69950ab5dff710ad730e58287" + integrity sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng== dependencies: - "@typescript-eslint/typescript-estree" "6.19.0" - "@typescript-eslint/utils" "6.19.0" + "@typescript-eslint/typescript-estree" "6.12.0" + "@typescript-eslint/utils" "6.12.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -3633,10 +3648,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.0.tgz#689b0498c436272a6a2059b09f44bcbd90de294a" - integrity sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A== +"@typescript-eslint/types@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.12.0.tgz#ffc5297bcfe77003c8b7b545b51c2505748314ac" + integrity sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -3651,31 +3666,30 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz#0813ba364a409afb4d62348aec0202600cb468fa" - integrity sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ== +"@typescript-eslint/typescript-estree@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.12.0.tgz#764ccc32598549e5b48ec99e3b85f89b1385310c" + integrity sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw== dependencies: - "@typescript-eslint/types" "6.19.0" - "@typescript-eslint/visitor-keys" "6.19.0" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/visitor-keys" "6.12.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.19.0.tgz#557b72c3eeb4f73bef8037c85dae57b21beb1a4b" - integrity sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw== +"@typescript-eslint/utils@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.12.0.tgz#c6ce8c06fe9b0212620e5674a2036f6f8f611754" + integrity sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.19.0" - "@typescript-eslint/types" "6.19.0" - "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/scope-manager" "6.12.0" + "@typescript-eslint/types" "6.12.0" + "@typescript-eslint/typescript-estree" "6.12.0" semver "^7.5.4" "@typescript-eslint/utils@^5.10.0": @@ -3700,12 +3714,12 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.19.0": - version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz#4565e0ecd63ca1f81b96f1dd76e49f746c6b2b49" - integrity sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ== +"@typescript-eslint/visitor-keys@6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.12.0.tgz#5877950de42a0f3344261b7a1eee15417306d7e9" + integrity sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw== dependencies: - "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/types" "6.12.0" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": @@ -4163,14 +4177,14 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.0.0, acorn-walk@^8.1.1: - version "8.3.2" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" - integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + version "8.3.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" + integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== -acorn@^8.0.4, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8.0.4, acorn@^8.10.0, acorn@^8.4.1, acorn@^8.9.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== aes-js@3.0.0: version "3.0.0" @@ -4182,7 +4196,7 @@ aes-js@^3.1.2: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== -agentkeepalive@^4.5.0: +agentkeepalive@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== @@ -4285,6 +4299,11 @@ anymatch@^3.0.3, anymatch@^3.1.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -4463,12 +4482,12 @@ axios@0.26.1: dependencies: follow-redirects "^1.14.8" -axios@^1.3.4, axios@^1.6.0: - version "1.6.5" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" - integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== +axios@^1.3.4: + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== dependencies: - follow-redirects "^1.15.4" + follow-redirects "^1.15.0" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -4513,29 +4532,29 @@ babel-plugin-jest-hoist@^29.6.3: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c" - integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== +babel-plugin-polyfill-corejs2@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" + integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.4" + "@babel/helper-define-polyfill-provider" "^0.4.3" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.7: - version "0.8.7" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" - integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== +babel-plugin-polyfill-corejs3@^0.8.5: + version "0.8.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" + integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.4" + "@babel/helper-define-polyfill-provider" "^0.4.3" core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4" - integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg== +babel-plugin-polyfill-regenerator@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" + integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.4" + "@babel/helper-define-polyfill-provider" "^0.4.3" "babel-plugin-styled-components@>= 1.12.0": version "2.1.4" @@ -4682,13 +4701,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -4701,14 +4713,14 @@ brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browserslist@^4.22.2: - version "4.22.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== +browserslist@^4.21.9, browserslist@^4.22.1: + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" - node-releases "^2.0.14" + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" + node-releases "^2.0.13" update-browserslist-db "^1.0.13" bs-logger@0.x: @@ -4725,15 +4737,6 @@ bs58@^4.0.0, bs58@^4.0.1: dependencies: base-x "^3.0.2" -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -4804,10 +4807,10 @@ camelize@^1.0.0: resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== -caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001565: - version "1.0.30001577" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001577.tgz#a24991eb4ad67324ba8b96716340d53151f2f6f8" - integrity sha512-rs2ZygrG1PNXMfmncM0B5H1hndY5ZCC9b5TkFaVNfZ+AUlyqcMyVIQtc3fsezi0NUCk5XZfDf9WS6WxMxnfdrg== +caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001541: + version "1.0.30001563" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz#aa68a64188903e98f36eb9c56e48fba0c1fe2a32" + integrity sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw== ccount@^1.0.0: version "1.1.0" @@ -4906,15 +4909,7 @@ ci-info@^3.2.0, ci-info@^3.8.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== -cipher-base@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -citty@^0.1.5: +citty@^0.1.3, citty@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.5.tgz#fe37ceae5dc764af75eb2fece99d2bf527ea4e50" integrity sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ== @@ -4960,14 +4955,14 @@ cli-width@^2.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== -clipboardy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-4.0.0.tgz#e73ced93a76d19dd379ebf1f297565426dffdca1" - integrity sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w== +clipboardy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-3.0.0.tgz#f3876247404d334c9ed01b6f269c11d09a5e3092" + integrity sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg== dependencies: - execa "^8.0.1" - is-wsl "^3.1.0" - is64bit "^2.0.0" + arch "^2.2.0" + execa "^5.1.1" + is-wsl "^2.2.0" cliui@^6.0.0: version "6.0.0" @@ -5161,11 +5156,11 @@ copy-to-clipboard@^3.3.1, copy-to-clipboard@^3.3.3: toggle-selection "^1.0.6" core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.35.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873" - integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw== + version "3.33.3" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.33.3.tgz#ec678b772c5a2d8a7c60a91c3a81869aa704ae01" + integrity sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow== dependencies: - browserslist "^4.22.2" + browserslist "^4.22.1" cors@^2.8.5: version "2.8.5" @@ -5190,17 +5185,6 @@ cosmiconfig@^8.0.0, cosmiconfig@^8.1.3: parse-json "^5.2.0" path-type "^4.0.0" -create-hash@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - create-jest@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" @@ -5272,7 +5256,7 @@ css-to-react-native@^3.0.0: css-color-keywords "^1.0.0" postcss-value-parser "^4.0.2" -css-tree@^2.3.1: +css-tree@^2.2.1: version "2.3.1" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== @@ -5293,7 +5277,7 @@ css-what@^6.1.0: resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -csso@^5.0.5: +csso@5.0.5: version "5.0.5" resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== @@ -5301,9 +5285,9 @@ csso@^5.0.5: css-tree "~2.2.0" csstype@^3.0.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" + integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== damerau-levenshtein@^1.0.8: version "1.0.8" @@ -5320,7 +5304,7 @@ date-fns@2.29.2: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.2.tgz#0d4b3d0f3dff0f920820a070920f0d9662c51931" integrity sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA== -debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -5383,7 +5367,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -5392,10 +5376,10 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -defu@^6.1.3, defu@^6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" - integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== +defu@^6.1.2, defu@^6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" + integrity sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ== delay@^5.0.0: version "5.0.0" @@ -5563,10 +5547,10 @@ eip55@^2.1.1: dependencies: keccak "^3.0.3" -electron-to-chromium@^1.4.601: - version "1.4.632" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.632.tgz#df6253483b802eb83eee2fdc0e5067bd46f36f11" - integrity sha512-JGmudTwg7yxMYvR/gWbalqqQiyu7WTFv2Xu3vw4cJHXPFxNgAk0oy8UHaer8nLF4lZJa+rNoj6GsrKIVJTV6Tw== +electron-to-chromium@^1.4.535: + version "1.4.589" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz#3fc83c284ed8f1f58e0cb3c664c8ebcb4d0b42fb" + integrity sha512-zF6y5v/YfoFIgwf2dDfAqVlPPsyQeWNpEWXbAlDUS8Ax4Z2VoiiZpAPC0Jm9hXEkJm2vIZpwB6rc4KnLTQffbQ== elliptic@6.5.4: version "6.5.4" @@ -5761,9 +5745,9 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" + integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== eslint-import-resolver-node@^0.3.9: version "0.3.9" @@ -5803,9 +5787,9 @@ eslint-plugin-eslint-comments@^3.2.0: ignore "^5.0.5" eslint-plugin-import@^2.28.0: - version "2.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" - integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + version "2.29.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" + integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== dependencies: array-includes "^3.1.7" array.prototype.findlastindex "^1.2.3" @@ -5823,12 +5807,12 @@ eslint-plugin-import@^2.28.0: object.groupby "^1.0.1" object.values "^1.1.7" semver "^6.3.1" - tsconfig-paths "^3.15.0" + tsconfig-paths "^3.14.2" eslint-plugin-jest@^27.2.3: - version "27.6.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.3.tgz#8acb8b1e45597fe1f4d4cf25163d90119efc12be" - integrity sha512-+YsJFVH6R+tOiO3gCJon5oqn4KWc+mDq2leudk8mrp8RFubLOo9CVyi3cib4L7XMpxExmkmBZQTPDYVBzgpgOA== + version "27.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.0.tgz#e5c0cf735b3c8cad0ef9db5b565b2fc99f5e55ed" + integrity sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng== dependencies: "@typescript-eslint/utils" "^5.10.0" @@ -5934,14 +5918,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.46.0: - version "8.56.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" - integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== + version "8.54.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" + integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.56.0" + "@eslint/eslintrc" "^2.1.3" + "@eslint/js" "8.54.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -6134,7 +6118,7 @@ execa@7.2.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" -execa@^5.0.0: +execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -6149,21 +6133,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" - integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^8.0.1" - human-signals "^5.0.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^4.1.0" - strip-final-newline "^3.0.0" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -6248,9 +6217,9 @@ fast-stable-stringify@^1.0.0: integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== fastq@^1.6.0: - version "1.16.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" - integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" @@ -6347,10 +6316,10 @@ fn.name@1.x.x: resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== -follow-redirects@^1.14.8, follow-redirects@^1.15.4: - version "1.15.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +follow-redirects@^1.14.8, follow-redirects@^1.15.0: + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== for-each@^0.3.3: version "0.3.3" @@ -6383,9 +6352,9 @@ fs-extra@^10.1.0: universalify "^2.0.0" fs-extra@^11.0.0: - version "11.2.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + version "11.1.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -6460,21 +6429,16 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-port-please@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.2.tgz#502795e56217128e4183025c89a48c71652f4e49" - integrity sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ== +get-port-please@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-3.1.1.tgz#2556623cddb4801d823c0a6a15eec038abb483be" + integrity sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA== get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-stream@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" - integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - get-symbol-description@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" @@ -6552,9 +6516,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -6611,10 +6575,10 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" -h3@^1.10.0, h3@^1.8.2: - version "1.10.0" - resolved "https://registry.yarnpkg.com/h3/-/h3-1.10.0.tgz#55ac36deb6e250ada5ff1940b6324bc6acc4085f" - integrity sha512-Tw1kcIC+AeimwRmviiObaD5EB430Yt+lTgOxLJxNr96Vd/fGRu04EF7aKfOAcpwKCI+U2JlbxOLhycD86p3Ciw== +h3@^1.8.1, h3@^1.8.2: + version "1.9.0" + resolved "https://registry.yarnpkg.com/h3/-/h3-1.9.0.tgz#c5f512a93026df9837db6f30c9ef51135dd46752" + integrity sha512-+F3ZqrNV/CFXXfZ2lXBINHi+rM4Xw3CDC5z2CDK3NMPocjonKipGLLDSkrqY9DOrioZNPTIdDMWfQKm//3X2DA== dependencies: cookie-es "^1.0.0" defu "^6.1.3" @@ -6623,7 +6587,7 @@ h3@^1.10.0, h3@^1.8.2: radix3 "^1.1.0" ufo "^1.3.2" uncrypto "^0.1.3" - unenv "^1.8.0" + unenv "^1.7.4" hard-rejection@^2.1.0: version "2.1.0" @@ -6645,7 +6609,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: +has-property-descriptors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== @@ -6669,15 +6633,6 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -6789,11 +6744,6 @@ human-signals@^4.3.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== -human-signals@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" - integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -7060,10 +7010,10 @@ is-decimal@^2.0.0: resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extendable@^0.1.0: version "0.1.1" @@ -7126,13 +7076,6 @@ is-hexadecimal@^2.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-map@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -7263,19 +7206,12 @@ is-weakset@^2.0.1: call-bind "^1.0.2" get-intrinsic "^1.1.1" -is-wsl@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" - integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== - dependencies: - is-inside-container "^1.0.0" - -is64bit@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is64bit/-/is64bit-2.0.0.tgz#198c627cbcb198bbec402251f88e5e1a51236c07" - integrity sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw== +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: - system-architecture "^0.1.0" + is-docker "^2.0.0" isarray@^2.0.5: version "2.0.5" @@ -7765,7 +7701,7 @@ jest@^29.5.0: import-local "^3.0.2" jest-cli "^29.7.0" -jiti@^1.21.0: +jiti@^1.20.0: version "1.21.0" resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== @@ -8011,26 +7947,26 @@ lint-staged@^13.2.3: yaml "2.3.1" listhen@^1.5.5: - version "1.5.6" - resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.5.6.tgz#8dc8cdccef225e39c69bcc6f6bd704447b499b51" - integrity sha512-gTpEJhT5L85L0bFgmu+Boqu5rP4DwDtEb4Exq5gdQUxWRwx4jbzdInZkmyLONo5EwIcQB0k7ZpWlpCDPdL77EQ== + version "1.5.5" + resolved "https://registry.yarnpkg.com/listhen/-/listhen-1.5.5.tgz#58915512af70f770aa3e9fb19367adf479bb58c4" + integrity sha512-LXe8Xlyh3gnxdv4tSjTjscD1vpr/2PRpzq8YIaMJgyKzRG8wdISlWVWnGThJfHnlJ6hmLt2wq1yeeix0TEbuoA== dependencies: "@parcel/watcher" "^2.3.0" "@parcel/watcher-wasm" "2.3.0" - citty "^0.1.5" - clipboardy "^4.0.0" + citty "^0.1.4" + clipboardy "^3.0.0" consola "^3.2.3" - defu "^6.1.4" - get-port-please "^3.1.2" - h3 "^1.10.0" + defu "^6.1.2" + get-port-please "^3.1.1" + h3 "^1.8.1" http-shutdown "^1.2.2" - jiti "^1.21.0" + jiti "^1.20.0" mlly "^1.4.2" node-forge "^1.3.1" pathe "^1.1.1" - std-env "^3.7.0" - ufo "^1.3.2" - untun "^0.1.3" + std-env "^3.4.3" + ufo "^1.3.0" + untun "^0.1.2" uqr "^0.1.2" listr2@6.6.1: @@ -8221,9 +8157,9 @@ lower-case@^2.0.2: tslib "^2.0.3" lru-cache@^10.0.2: - version "10.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" - integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + version "10.0.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.3.tgz#b40014d7d2d16d94130b87297a04a1f24874ae7c" + integrity sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg== lru-cache@^5.1.1: version "5.1.1" @@ -8273,15 +8209,6 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - mdast-util-definitions@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" @@ -8760,13 +8687,6 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -8794,14 +8714,14 @@ mkdirp@^1.0.4: integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mlly@^1.2.0, mlly@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.5.0.tgz#8428a4617d54cc083d3009030ac79739a0e5447a" - integrity sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ== + version "1.4.2" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" + integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== dependencies: - acorn "^8.11.3" - pathe "^1.1.2" + acorn "^8.10.0" + pathe "^1.1.1" pkg-types "^1.0.3" - ufo "^1.3.2" + ufo "^1.3.0" motion@10.16.2: version "10.16.2" @@ -8845,7 +8765,7 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== -nanoid@^3.3.7: +nanoid@^3.3.6: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== @@ -8917,12 +8837,12 @@ node-addon-api@^7.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e" integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== -node-fetch-native@^1.4.0, node-fetch-native@^1.4.1, node-fetch-native@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.1.tgz#f95c74917d3cebc794cdae0cd2a9c7594aad0cb4" - integrity sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw== +node-fetch-native@^1.4.0, node-fetch-native@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.4.1.tgz#5a336e55b4e1b1e72b9927da09fecd2b374c9be5" + integrity sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w== -node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7, node-fetch@^2.7.0: +node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -8935,19 +8855,19 @@ node-forge@^1.3.1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" - integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== + version "4.7.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.0.tgz#749f0033590b2a89ac8edb5e0775f95f5ae86d15" + integrity sha512-PbZERfeFdrHQOOXiAKOY0VPbykZy90ndPKk0d+CFDegTKmWp1VgOTz2xACVbr1BjCWxrQp68CXtvNsveFhqDJg== node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== normalize-package-data@^2.5.0: version "2.5.0" @@ -8982,9 +8902,9 @@ npm-run-path@^4.0.1: path-key "^3.0.0" npm-run-path@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" - integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== dependencies: path-key "^4.0.0" @@ -9016,12 +8936,12 @@ object-keys@^1.1.1: integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" + call-bind "^1.0.2" + define-properties "^1.1.4" has-symbols "^1.0.3" object-keys "^1.1.1" @@ -9252,10 +9172,10 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.0, pathe@^1.1.1, pathe@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" - integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== +pathe@^1.1.0, pathe@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" + integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== performance-now@^2.1.0: version "2.1.0" @@ -9331,16 +9251,16 @@ pino@7.11.0: thread-stream "^0.15.1" pino@^8.11.0: - version "8.17.2" - resolved "https://registry.yarnpkg.com/pino/-/pino-8.17.2.tgz#0ed20175623a69d31664a1e8a5f85476272224be" - integrity sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ== + version "8.16.2" + resolved "https://registry.yarnpkg.com/pino/-/pino-8.16.2.tgz#7a906f2d9a8c5b4c57412c9ca95d6820bd2090cd" + integrity sha512-2advCDGVEvkKu9TTVSa/kWW7Z3htI/sBKEZpqiHk6ive0i/7f5b1rsU8jn0aimxqfnSz5bj/nOYkwhBUn5xxvg== dependencies: atomic-sleep "^1.0.0" fast-redact "^3.1.1" on-exit-leak-free "^2.1.0" pino-abstract-transport v1.1.0 pino-std-serializers "^6.0.0" - process-warning "^3.0.0" + process-warning "^2.0.0" quick-format-unescaped "^4.0.3" real-require "^0.2.0" safe-stable-stringify "^2.3.1" @@ -9368,17 +9288,17 @@ pkg-types@^1.0.3: mlly "^1.2.0" pathe "^1.1.0" -playwright-core@1.40.1: - version "1.40.1" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.40.1.tgz#442d15e86866a87d90d07af528e0afabe4c75c05" - integrity sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ== +playwright-core@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.40.0.tgz#82f61e5504cb3097803b6f8bbd98190dd34bdf14" + integrity sha512-fvKewVJpGeca8t0ipM56jkVSU6Eo0RmFvQ/MaCQNDYm+sdvKkMBBWTE1FdeMqIdumRaXXjZChWHvIzCGM/tA/Q== -playwright@1.40.1, playwright@^1.29.2: - version "1.40.1" - resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.40.1.tgz#a11bf8dca15be5a194851dbbf3df235b9f53d7ae" - integrity sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw== +playwright@1.40.0, playwright@^1.29.2: + version "1.40.0" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.40.0.tgz#2a1824b9fe5c4fe52ed53db9ea68003543a99df0" + integrity sha512-gyHAgQjiDf1m34Xpwzaqb76KgfzYrhK7iih+2IzcOCoZWr/8ZqmdBw+t0RU85ZmfJMgtgAiNtBQ/KS2325INXw== dependencies: - playwright-core "1.40.1" + playwright-core "1.40.0" optionalDependencies: fsevents "2.3.2" @@ -9398,18 +9318,18 @@ postcss-value-parser@^4.0.2: integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss@8.4.14, postcss@^8.4.31: - version "8.4.33" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" - integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: - nanoid "^3.3.7" + nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" preact@^10.12.0, preact@^10.5.9: - version "10.19.3" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.19.3.tgz#7a7107ed2598a60676c943709ea3efb8aaafa899" - integrity sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ== + version "10.19.2" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.19.2.tgz#841797620dba649aaac1f8be42d37c3202dcea8b" + integrity sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg== prelude-ls@^1.2.1: version "1.2.1" @@ -9422,9 +9342,9 @@ prettier@^2.1.2: integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== prettier@^3.0.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.2.tgz#96e580f7ca9c96090ad054616c0c4597e2844b65" - integrity sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A== + version "3.1.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== pretty-format@^28.0.0, pretty-format@^28.1.3: version "28.1.3" @@ -9450,10 +9370,10 @@ process-warning@^1.0.0: resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616" integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== -process-warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-3.0.0.tgz#96e5b88884187a1dce6f5c3166d611132058710b" - integrity sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ== +process-warning@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-2.3.1.tgz#0caf992272c439f45dd416e1407ee25a3d4c778a" + integrity sha512-JjBvFEn7MwFbzUDa2SRtKJSsyO0LlER4V/FmwLMhBlXNbGgGxdyFCxIdMDLerWUycsVUyaoM9QFLvppFy4IWaQ== process@^0.11.10: version "0.11.10" @@ -9619,9 +9539,9 @@ react-dom@^18.2.0: scheduler "^0.23.0" react-hook-form@^7.45.2: - version "7.49.3" - resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.49.3.tgz#576a4567f8a774830812f4855e89f5da5830435c" - integrity sha512-foD6r3juidAT1cOZzpmD/gOKt7fRsDhXXZ0y28+Al1CHgX+AY1qIN9VSIIItXRq1dN68QrRwl1ORFlwjBaAqeQ== + version "7.48.2" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.48.2.tgz#01150354d2be61412ff56a030b62a119283b9935" + integrity sha512-H0T2InFQb1hX7qKtDIZmvpU1Xfn/bdahWBN1fH19gSe4bBEqTfmlr7H3XWTaVtiK4/tpPaI1F3355GPMZYge+A== react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" @@ -9714,9 +9634,9 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stre util-deprecate "^1.0.1" readable-stream@^4.0.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" - integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + version "4.4.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" + integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== dependencies: abort-controller "^3.0.0" buffer "^6.0.3" @@ -9762,18 +9682,19 @@ redis-parser@^3.0.0: redis-errors "^1.0.0" reef-knot@^1.13.2: - version "1.15.2" - resolved "https://registry.yarnpkg.com/reef-knot/-/reef-knot-1.15.2.tgz#737c096bf61b052c3fe32369c0efb74b612f3711" - integrity sha512-Dh3C2LxgWbOGXUgdm5fUsfS0bcHc5Y+g7KGRJgqCqV7wn5lLsIzT85C8WPu9clrMsmelw4kP9flNP8EXyjrdrg== - dependencies: - "@reef-knot/connect-wallet-modal" "1.17.0" - "@reef-knot/core-react" "1.8.1" - "@reef-knot/ledger-connector" "2.0.0" - "@reef-knot/types" "1.4.0" - "@reef-knot/ui-react" "1.0.8" + version "1.13.2" + resolved "https://registry.yarnpkg.com/reef-knot/-/reef-knot-1.13.2.tgz#5ad590d8dc9dc715a53f4584641892cc6effcf06" + integrity sha512-y9z3HNmrqo6ytXC9nIHnV1GKuL+ifj1HfL0mTy/65Mb4pIDJIscmWqf0/hl+OS4qOUactzzRUKVsf51XGR9mRg== + dependencies: + "@reef-knot/connect-wallet-modal" "1.15.0" + "@reef-knot/core-react" "1.7.0" + "@reef-knot/ledger-connector" "1.1.1" + "@reef-knot/types" "1.3.0" + "@reef-knot/ui-react" "1.0.7" "@reef-knot/wallets-helpers" "1.1.5" - "@reef-knot/wallets-list" "1.11.1" - "@reef-knot/web3-react" "1.13.1" + "@reef-knot/wallets-icons" "1.5.0" + "@reef-knot/wallets-list" "1.9.0" + "@reef-knot/web3-react" "1.11.0" reflect.getprototypeof@^1.0.4: version "1.0.4" @@ -9800,9 +9721,9 @@ regenerate@^1.4.2: integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== regenerator-transform@^0.15.2: version "0.15.2" @@ -10047,18 +9968,10 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - rpc-websockets@^7.5.1: - version "7.9.0" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.9.0.tgz#a3938e16d6f134a3999fdfac422a503731bf8973" - integrity sha512-DwKewQz1IUA5wfLvgM8wDpPRcr+nWSxuFxx5CbrI2z/MyyZ4nXLM86TvIA+cI1ZAdqC8JIBR1mZR55dzaLU+Hw== + version "7.7.0" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.7.0.tgz#3f2eb1ce91a0a4a63200f3f78957d3f8ced17714" + integrity sha512-XYMzjxbDI0A9A2wwrx5/RswnZC53Av3bp5IOV9QnUdTuJ7Tstv4+V7vIe37pYYOn2wKYkbzkaeB8+I9oLztLOA== dependencies: "@babel/runtime" "^7.17.2" eventemitter3 "^4.0.7" @@ -10102,27 +10015,27 @@ sade@^1.7.3: mri "^1.1.0" safe-array-concat@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" - integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.2" + get-intrinsic "^1.2.1" has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" - integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== dependencies: - call-bind "^1.0.5" - get-intrinsic "^1.2.2" + call-bind "^1.0.2" + get-intrinsic "^1.1.3" is-regex "^1.1.4" safe-stable-stringify@^2.1.0, safe-stable-stringify@^2.3.1: @@ -10187,15 +10100,14 @@ set-blocking@^2.0.0: integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-function-length@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" - integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== dependencies: define-data-property "^1.1.1" - function-bind "^1.1.2" - get-intrinsic "^1.2.2" + get-intrinsic "^1.2.1" gopd "^1.0.1" - has-property-descriptors "^1.0.1" + has-property-descriptors "^1.0.0" set-function-name@^2.0.0, set-function-name@^2.0.1: version "2.0.1" @@ -10206,7 +10118,7 @@ set-function-name@^2.0.0, set-function-name@^2.0.1: functions-have-names "^1.2.3" has-property-descriptors "^1.0.0" -sha.js@^2.4.0, sha.js@^2.4.11: +sha.js@^2.4.11: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== @@ -10245,11 +10157,6 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -10300,9 +10207,9 @@ sonic-boom@^2.2.1: atomic-sleep "^1.0.0" sonic-boom@^3.7.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.8.0.tgz#e442c5c23165df897d77c3c14ef3ca40dec66a66" - integrity sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA== + version "3.7.0" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.7.0.tgz#b4b7b8049a912986f4a92c51d4660b721b11f2f2" + integrity sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg== dependencies: atomic-sleep "^1.0.0" @@ -10399,10 +10306,10 @@ standard-as-callback@^2.1.0: resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== -std-env@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" - integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== +std-env@^3.4.3: + version "3.5.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.5.0.tgz#83010c9e29bd99bf6f605df87c19012d82d63b97" + integrity sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA== stream-browserify@^3.0.0: version "3.0.0" @@ -10413,9 +10320,9 @@ stream-browserify@^3.0.0: readable-stream "^3.5.0" stream-shift@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.2.tgz#548bff71c92322e1ade886979f7f67c0723eb9e4" - integrity sha512-rV4Bovi9xx0BFzOb/X0B2GqoIjvqPCttZdu0Wgtx2Dxkj7ETyWl9gmqJ4EutWRLvtZWm8dxE+InQZX1IryZn/w== + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== strict-uri-encode@^2.0.0: version "2.0.0" @@ -10681,16 +10588,16 @@ svg-parser@^2.0.4: integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== svgo@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.2.0.tgz#7a5dff2938d8c6096e00295c2390e8e652fa805d" - integrity sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.0.4.tgz#67b40a710743e358e8d19ec288de8f1e388afbb4" + integrity sha512-T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g== dependencies: "@trysound/sax" "0.2.0" commander "^7.2.0" css-select "^5.1.0" - css-tree "^2.3.1" + css-tree "^2.2.1" css-what "^6.1.0" - csso "^5.0.5" + csso "5.0.5" picocolors "^1.0.0" swr@1.3.0, swr@^1.0.1, swr@^1.3.0: @@ -10698,11 +10605,6 @@ swr@1.3.0, swr@^1.0.1, swr@^1.3.0: resolved "https://registry.yarnpkg.com/swr/-/swr-1.3.0.tgz#c6531866a35b4db37b38b72c45a63171faf9f4e8" integrity sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw== -system-architecture@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/system-architecture/-/system-architecture-0.1.0.tgz#71012b3ac141427d97c67c56bc7921af6bff122d" - integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== - tapable@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" @@ -10884,9 +10786,9 @@ ts-jest@^29.1.0: yargs-parser "^21.0.1" ts-node@^10.8.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" - integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -10902,10 +10804,10 @@ ts-node@^10.8.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.15.0: - version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" - integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== +tsconfig-paths@^3.14.2: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -11034,9 +10936,9 @@ typedarray-to-buffer@3.1.5: is-typedarray "^1.0.0" "typescript@^4.6.4 || ^5.2.2": - version "5.3.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== + version "5.3.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" + integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ== typescript@^4.7, typescript@^4.9.4: version "4.9.5" @@ -11090,15 +10992,15 @@ undici-types@~5.26.4: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -unenv@^1.8.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.9.0.tgz#469502ae85be1bd3a6aa60f810972b1a904ca312" - integrity sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g== +unenv@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/unenv/-/unenv-1.7.4.tgz#a0e5a78de2c7c3c4563c06ba9763c96c59db3333" + integrity sha512-fjYsXYi30It0YCQYqLOcT6fHfMXsBr2hw9XC7ycf8rTG7Xxpe3ZssiqUnD0khrjiZEmkBXWLwm42yCSCH46fMw== dependencies: consola "^3.2.3" - defu "^6.1.3" + defu "^6.1.2" mime "^3.0.0" - node-fetch-native "^1.6.1" + node-fetch-native "^1.4.0" pathe "^1.1.1" unicode-canonical-property-names-ecmascript@^2.0.0: @@ -11263,12 +11165,12 @@ unstorage@^1.9.0: ofetch "^1.3.3" ufo "^1.3.1" -untun@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.3.tgz#5d10dee37a3a5737ff03d158be877dae0a0e58a6" - integrity sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ== +untun@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/untun/-/untun-0.1.2.tgz#fa42a62ae24c1c5c6f3209692a2b0e1f573f1353" + integrity sha512-wLAMWvxfqyTiBODA1lg3IXHQtjggYLeTK7RnSfqtOXixWJ3bAa2kK/HHmOOg19upteqO3muLvN6O/icbyQY33Q== dependencies: - citty "^0.1.5" + citty "^0.1.3" consola "^3.2.3" pathe "^1.1.1" @@ -11360,9 +11262,9 @@ v8-compile-cache-lib@^3.0.1: integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== v8-to-istanbul@^9.0.1: - version "9.2.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" - integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== + version "9.1.3" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz#ea456604101cd18005ac2cae3cdd1aa058a6306b" + integrity sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" @@ -11470,9 +11372,9 @@ webpack-preprocessor-loader@^1.3.0: integrity sha512-wvHkDvgU9lhKQ1OWIJsawPBT/0wr+J7dwC7DHy0KtmXR/thGOAWbKEErGeJ2aXGSpwgqQTolIRoETlwMzocK1g== whatwg-fetch@^3.4.1: - version "3.6.20" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" - integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + version "3.6.19" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.19.tgz#caefd92ae630b91c07345537e67f8354db470973" + integrity sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw== whatwg-url@^5.0.0: version "5.0.0" @@ -11621,9 +11523,9 @@ ws@^7.3.1, ws@^7.4.5, ws@^7.5.1: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.5.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" - integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + version "8.14.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" + integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== xtend@^4.0.0, xtend@^4.0.1: version "4.0.2" @@ -11714,9 +11616,9 @@ yocto-queue@^0.1.0: integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== zustand@^4.3.1: - version "4.4.7" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.7.tgz#355406be6b11ab335f59a66d2cf9815e8f24038c" - integrity sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw== + version "4.4.6" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.6.tgz#03c78e3e2686c47095c93714c0c600b72a6512bd" + integrity sha512-Rb16eW55gqL4W2XZpJh0fnrATxYEG3Apl2gfHTyDSE965x/zxslTikpNch0JgNjJA9zK6gEFW8Fl6d1rTZaqgg== dependencies: use-sync-external-store "1.2.0" From bf0cfd4ead654a48006802660ad6f0207e6d0b63 Mon Sep 17 00:00:00 2001 From: Anton Shalimov Date: Mon, 29 Jan 2024 14:21:18 +0300 Subject: [PATCH 47/47] feat: add FAQ_CONTENT_BASE_PATH to build time --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index ce0c00650..875a65897 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,8 @@ # build env FROM node:16-alpine as build +ARG FAQ_CONTENT_BASE_PATH + WORKDIR /app RUN apk add --no-cache git=~2