diff --git a/package.json b/package.json index 51df7490..16af4e95 100644 --- a/package.json +++ b/package.json @@ -57,8 +57,8 @@ "@safe-global/api-kit": "^2.4.6", "@safe-global/protocol-kit": "^4.1.1", "@safe-global/safe-apps-sdk": "^9.1.0", - "@safe-global/safe-deployments": "1.37.12", "@safe-global/safe-client-gateway-sdk": "v1.60.1", + "@safe-global/safe-deployments": "1.37.12", "@safe-global/safe-gateway-typescript-sdk": "3.22.3-beta.15", "@safe-global/safe-modules-deployments": "^2.2.1", "@sentry/react": "^7.91.0", @@ -90,6 +90,7 @@ "react-dropzone": "^14.2.3", "react-gtm-module": "^2.0.11", "react-hook-form": "7.41.1", + "react-markdown": "^9.0.1", "react-papaparse": "^4.0.2", "react-redux": "^9.1.2", "semver": "^7.6.3", @@ -170,4 +171,4 @@ "minimumChangeThreshold": 0, "showDetails": true } -} \ No newline at end of file +} diff --git a/src/components/common/CookieAndTermBanner/index.tsx b/src/components/common/CookieAndTermBanner/index.tsx index 78ad6a9f..5546fa4f 100644 --- a/src/components/common/CookieAndTermBanner/index.tsx +++ b/src/components/common/CookieAndTermBanner/index.tsx @@ -90,7 +90,7 @@ export const CookieAndTermBanner = ({ Terms & Conditions {' '} - (last updated October 2024) and the use of necessary cookies.{' '} + and the use of necessary cookies.{' '} Cookie policy diff --git a/src/config/constants.ts b/src/config/constants.ts index 5ce39c96..1140458e 100644 --- a/src/config/constants.ts +++ b/src/config/constants.ts @@ -112,3 +112,10 @@ export const SAFE_PASS_URL = 'community.safe.global' export const ECOSYSTEM_ID_ADDRESS = process.env.NEXT_PUBLIC_ECOSYSTEM_ID_ADDRESS || '0x0000000000000000000000000000000000000000' export const MULTICHAIN_HELP_ARTICLE = `${HELP_CENTER_URL}/en/articles/222612-multi-chain-safe` + +export const TERMS_LINK = + process.env.NEXT_PUBLIC_TERMS_LINK || + 'https://raw.githubusercontent.com/protofire/safe-legal/refs/heads/main/terms.md' +export const COOKIE_LINK = + process.env.NEXT_PUBLIC_COOKIE_LINK || + 'https://raw.githubusercontent.com/protofire/safe-legal/refs/heads/main/cookie.md' diff --git a/src/pages/cookie.tsx b/src/pages/cookie.tsx index 7de02ad2..731e00d9 100644 --- a/src/pages/cookie.tsx +++ b/src/pages/cookie.tsx @@ -1,162 +1,29 @@ -import { Typography, Link } from '@mui/material' +import { COOKIE_LINK } from '@/config/constants' +import { Typography } from '@mui/material' +import { useEffect, useState } from 'react' +import ReactMarkdown from 'react-markdown' const CookiePolicy = () => { + const [content, setContent] = useState('') + + useEffect(() => { + const fetchContent = async () => { + try { + const response = await fetch(COOKIE_LINK) + let text = await response.text() + text = text.replace(/\${origin}/g, window.location.origin) + setContent(text) + } catch (error) { + console.error('Error fetching cookie policy:', error) + } + } + + fetchContent() + }, []) + return (
- - Cookie Policy - -

Last updated: January 2024.

-

- For general web-browsing of this website, your personal data is not revealed to us, although certain statistical - information is available to us via our internet service provider. We exclusively process your personal data in - pseudonymised form. -

-

- This Cookie Policy applies to our website at{' '} - - https://safe.evmos.org - {' '} - and sets out some further detail on how and why we use these technologies on our website. -

-

- The terms "you" and "your" includes our clients, business partners and users of this - website. -

-

- By using our website, you consent to storage and access to cookies and other technologies on your device, in - accordance with this Cookie Policy. -

- What are cookies? -

- Cookies are a feature of web browser software that allows web servers to recognize the computer or device used - to access a website. A cookie is a small text file that a website saves on your computer or mobile device when - you visit the site. It enables the website to remember your actions and preferences (such as login, language, - font size and other display preferences) over a period of time, so you don't have to keep re-entering them - whenever you come back to the site or browse from one page to another. -

-

What are the different types of cookies?

-

A cookie can be classified by its lifespan and the domain to which it belongs.

-

By lifespan, a cookie is either a:

- -

As for the domain to which it belongs, cookies are either:

- -

What cookies do we use and why?

-

We list all the cookies we use on this website in the APPENDIX below.

-

- We do not use cookies set by ourselves via our web developers (first-party cookies). We only have those set by - others (third-party cookies). -

-

- Cookies are also sometimes classified by reference to their purpose. We use the following cookies for the - following purposes: -

- -

- In general, we use cookies and other technologies (such as web server logs) on our website to enhance your - experience and to collect information about how our website is used. -

- Other Technologies -

- We may allow others to provide analytics services and serve advertisements on our behalf. In addition to the - uses of cookies described above, these entities may use other methods, such as the technologies described below, - to collect information about your use of our website and other websites and online services. -

- -

What data is collected by cookies and other technologies on our website?

-

This information may include:

- -

This website also uses cookies to:

- -

- We may also use other services, such as{' '} - - Google Analytics - {' '} - (described below) or other third-party cookies, to analyzing performance on our website. As part of providing - these services, these service providers may use cookies and the technologies described below to collect and - store information about your device, such as time of visit, pages visited, time spent on each page of our - website, links clicked and conversion information, IP address, browser, mobile network information, and type of - operating system used. -

- Revisions to this Cookie Policy -

- On this website, you can always view the latest version of our Privacy Policy and our Cookie Policy. We may - modify this Cookie Policy from time to time. If we make changes to this Cookie Policy, we will provide notice of - such changes, such as by sending an email notification, providing notice through our website or updating the - 'Last Updated' date at the beginning of this Cookie Policy. The amended Cookie Policy will be - effective immediately after the date it is posted. By continuing to access or use our website after the - effective date, you confirm your acceptance of the revised Cookie Policy and all of the terms incorporated - therein by reference. We encourage you to review our Privacy Policy and our Cookie Policy whenever you access or - use our website to stay informed about our information practices and the choices available to you. -

-

- If you do not accept changes which are made to this Cookie Policy, or take any measures described above to - opt-out by removing or rejecting cookies, you may continue to use this website but accept that it may not - display and/or function as intended by us. Any social media channels connected to us and third party - applications will be subject to the privacy and cookie policies and practices of the relevant platform providers - which, unless otherwise indicated, are not affiliated or associated with us Your exercise of any rights to - opt-out may also impact how our information and content is displayed and/or accessible to you on this website - and on other websites. -

+ {content ? {content} : Loading cookie policy...}
) } diff --git a/src/pages/terms.tsx b/src/pages/terms.tsx index 58a772cd..2ff21855 100644 --- a/src/pages/terms.tsx +++ b/src/pages/terms.tsx @@ -1,597 +1,35 @@ +import { TERMS_LINK } from '@/config/constants' +import { Typography } from '@mui/material' import type { NextPage } from 'next' import Head from 'next/head' - -const SafeTerms = () => ( -
-

Terms and Conditions

-

Last updated: October 14, 2024.

- -

1. What is the scope of the Terms?

-

- These Terms and Conditions (“Terms”) become part of any contract (“Agreement”) between you (“you”, “yours” or - “User”) and Core Contributors (“CC”, “we”, “our” or “us”) provided we made these Terms accessible to you prior to - entering into the Agreement and you consent to these Terms. We are Altoros LLC, a limited liability company - registered with the commercial register of Puerto Rico under company number 416164, with its registered office at - 1607 Ponce de Leon Avenue, GM-06, San Juan, PR, 00909-1803. You can contact us by writing to{' '} - safe@protofire.io. -

-

- The Agreement is concluded by using the Web App subject to these Terms. The use of our Services is only permitted - to legal entities, partnerships and natural persons with unlimited legal capacity. In particular, minors are - prohibited from using our Services. -

-

- The application of your general terms and conditions is excluded. Your deviating, conflicting or supplementary - general terms and conditions shall only become part of the Agreement if and to the extent that CC has expressly - agreed to their application in writing. This consent requirement shall apply in any case, even if for example CC, - being aware of your general terms and conditions, accepts payments by the contractual partner without - reservations. -

-

- We reserve the right to change these Terms at any time and without giving reasons, while considering and weighing - your interests. The new Terms will be communicated to you in advance. They are considered as agreed upon if you do - not object to their validity within 14 days after receipt of the notification. We will separately inform you about - the essential changes, the possibility to object, the deadline and the consequences of inactivity. If you object, - the current version of the Terms remains applicable. Our right to terminate the contract according to Clause 13 - remains unaffected. -

- -

2. What do some of the capitalized terms mean in the Agreement?

- - -

3. What are the Services offered?

-

- Our services (“Services”) primarily consist of enabling users to create their Safe Accounts and ongoing - interaction with it on the Blockchain. -

-

“Safe Account”

-

- A Safe Account is a modular, self-custodial (i.e. not supervised by us) smart contract-based wallet not provided - by CC. Safe Accounts are open-source released under LGPL-3.0. -

-

- Smart contract wallet means, unlike a standard private key Wallet, that access control for authorizing any - Transaction is defined in code. An example are multi-signature wallets which require that any Transaction must be - signed by a minimum number of signing wallets whereby the specifics of the requirements to authorize a Transaction - can be configured in code. -

-

- Owners need to connect a signing wallet with a Safe Account. Safe Accounts are compatible inter alia with standard - private key Wallets such as hardware wallets, browser extension wallets and mobile wallets that support - WalletConnect. -

- -

“Safe App”

-

- You may access Safe Accounts using the {'Safe{Wallet}'} web app, mobile app for iOS and android, or the browser - extension (each a “Safe App”). The Safe App may be used to manage your personal digital assets on Ethereum and - other common EVM chains when you connect a Safe Account with third-party services (as defined below). The Safe App - provides certain features that may be amended from time to time. -

- -

“Third-Party Safe Apps”

-

- The Safe App allows you to connect Safe Accounts to third-party decentralized applications (“Third-Party Safe - Apps”) and use third-party services such as from the decentralized finance sector, DAO Tools or services related - to NFTs (“Third-Party Services”). The Third-Party Safe Apps are integrated in the user interface of the Safe App - via inline framing. The provider of the Third-Party Safe App and related Third-Party Service is responsible for - the operation of the service and the correctness, completeness and actuality of any information provided therein. - We make a pre-selection of Third-Party Safe Apps that we show in the Safe App. However, we only perform a rough - triage in advance for obvious problems and functionality in terms of loading time and resolution capability of the - transactions. Accordingly, in the event of any (technical) issues concerning the Third-Party Services, the user - must only contact the respective service provider directly. The terms of service, if any, shall be governed by the - applicable contractual provisions between the User and the respective provider of the Third-Party Service. - Accordingly, we are not liable in the event of a breach of contract, damage or loss related to the use of such - Third-Party Service. -

- -

4. What do the Services not consist of?

-

Our Services do not consist of:

- - -

5. What do you need to know about Third-Party Services?

-

- We provide you the possibility to interact with your Safe Account through Third-Party Services. Any activities you - engage in with, or services you receive from a third party is between you and that third party directly. The - conditions of service provisions, if any, shall be governed by the applicable contractual provisions between you - and the respective provider of the Third-Party Service. -

-

- The Services rely in part on third-party and open-source software, including the Blockchain, and the continued - development and support by third parties. There is no assurance or guarantee that those third parties will - maintain their support of their software or that open-source software will continue to be maintained. This may - have a material adverse effect on the Services. -

-

This means specifically:

- - -

6. What are the fees for the Services?

-

- The use of the Safe App or Third-Party Safe Apps may cause fees, including network fees, as indicated in the - respective app. CC has no control over the fees charged by the Third-Party Services. CC may change its own fees at - any time. Price changes will be communicated to the User in due time before taking effect. -

-

- The User is only entitled to offset and/or assert rights of retention if his counterclaims are legally - established, undisputed or recognized by CC. -

- -

7. Are we responsible for the security of your Private Keys, Recovery Phrase or other credentials?

-

- We shall not be responsible to secure your Private Keys, Recovery Phrase, credentials or other means of - authorization of your wallet(s). -

-

- You must own and control any wallet you use in connection with our Services. You are responsible for implementing - all appropriate measures for securing any wallet you use, including any Private Key(s), Recovery Phrase, - credentials or other means of authorization necessary to access such storage mechanism(s). -

-

- We exclude any and all liability for any security breaches or other acts or omissions, which result in your loss - of access or custody of any cryptographic assets stored thereon. -

- -

8. Are we responsible for recovering your Safe Account?

-

We shall not be responsible for recovering your Safe Account.

-

You are solely responsible for securing a back-up of your Safe Account access as you see fit.

-

- Any recovery feature we provide access to within the Safe App is a mechanism controlled by your Safe Account on - the Blockchain, both of which we don't have any influence over once you have set it up. We will never act as - a recoverer ourselves and don't offer recovery services. The Self Custodial Recovery feature allows you to - determine your own recovery setup and nominate anyone including yourself as your recoverer. The recoverer can - start the recovery process at any time. Please note that we are not responsible for notifying you of this process - (see Section 7 above). Furthermore we reserve the right to cease the access to the Self Custodial Recovery feature - via our Safe App taking the user's reasonable interests into account and providing due notification. -

-

The recovery feature is provided free of charge and liability is limited pursuant to Section 18 below.

- -

9. Are we responsible for notifying you about events occurring in your Safe Account?

-

- We shall not be responsible for notifying you of any interactions or events occurring in your Safe Account, be it - on the Blockchain, third-party interfaces, within any other infrastructure, or our Services. -

-

You are responsible for monitoring Safe Account as you see fit.

-

- Any notification service we provide or offer for subscription within the Safe App via e-mail or push notifications - or any other means of communication is provided free of charge and liability is limited pursuant to Section 18 - below. Furthermore we reserve the right to change the notification feature from time to time or cease to provide - them without notice. -

- -

10. Are we responsible for flagging malicious transactions?

-

We shall not be responsible for flagging malicious transactions in our Safe App.

-

- You are solely responsible for checking any transaction, address, Token or other item you interact with via your - Smart Account in our Safe App. -

-

- Any security flagging or warning service we provide or offer for subscription within the Safe App is provided free - of charge and liability is limited pursuant to Section 18 below. Furthermore we reserve the right to change the - feature from time to time or cease to provide them without notice. -

- -

12. Are we responsible for third-party content and services?

-

- You may view, have access to, and use third-party content and services, for example widget integrations, within - the Safe App (“Third-Party Features”). You view, access, or use Third-Party Features at your own election. Your - reliance on Third-Party Features is subject to separate terms and conditions set forth by the applicable third - party content and/or service provider (“Third-Party Terms”). Third-Party Terms may, amongst other things, involve - separate fees and charges, include disclaimers or risk warnings, apply a different terms and privacy policy. -

-

- Third Party Features are provided for your convenience only. We do not verify, curate, or control Third Party - Features. -

-

- If we offer access to Third-Party Features in the Safe App free of charge by us (Third-Parties may charge separate - fees), the liability for providing access to such Third-Party Feature is limited pursuant to Section 18 below. - Furthermore we reserve the right to cease to provide access to those Third-Party Features through the Safe App - without notice. -

- -

13. Can we terminate or limit your right to use our Services?

-

- We may cease offering our Services and/or terminate the Agreement and refuse access to the Safe Apps at any time. - The right of the parties to terminate the Agreement at any time for cause remains unaffected. In case of our - termination of the Agreement, you may no longer access your Safe Account via our Services. However, you may - continue to access your Safe Account and any Tokens via a third-party wallet provider using your Recovery Phrase - and Private Keys. -

-

- We reserve the right to limit the use of the Safe Apps to a specified number of Users if necessary to protect or - ensure the stability and integrity of the Services. We will only be able to limit access to the Services. At no - time will we be able to limit or block access to or transfer your funds without your consent. -

- -

14. Can you terminate your Agreement with us?

-

You may terminate the Agreement at any time without notice.

- -

15. What licenses and access do we grant to you?

-

- All intellectual property rights in Safe Accounts and the Services throughout the world belong to Safe Global(Core - Contributors GmbH) as owner or their licensors. Nothing in these Terms gives you any rights in respect of any - intellectual property owned by us or our licensors and you acknowledge that you do not acquire any ownership - rights by downloading the Safe App or any content from the Safe App. -

-

- If you are a consumer we grant you a simple, limited license, but do not sell to you the Services you download - solely for your own personal, non-commercial use. -

- -

16. What can you expect from the Services and can we make changes to them?

-

- Without limiting your mandatory warranties, we provide the Services to you “as is” and “as available” in relation - to merchantability, fitness for a particular purpose, availability, security, title or non-infringement. -

-

- If you use the Safe App via web browser, the strict liability of CC for damages for defects existing at the time - of conclusion of the contract is precluded. -

-

- We reserve the right to change the format and features of the Services by making any updates to Services available - for you to download or, where your device settings permit it, by automatic delivery of updates. -

-

- You are not obliged to download the updated Services, but we may cease to provide and/or update prior versions of - the Services and, depending on the nature of the update, in some circumstances you may not be able to continue - using the Services until you have downloaded the updated version. -

-

- We may cease to provide and/or update content to the Services, with or without notice to you, if it improves the - Services we provide to you, or we need to do so for security, legal or any other reasons. -

- -

17. What do you agree, warrant and represent?

-

By using our Services you hereby agree, represent and warrant that:

- - -

18. What about our liability to you?

-

- If the Safe App or Services are provided to the User free of charge (please note, in this context, that any - service, network, and/or transaction fees may be charged by third parties via the Blockchain and not necessarily - by us), CC shall be liable only in cases of intent, gross negligence, or if CC has fraudulently concealed a - possible material or legal defect of the Safe App or Services. -

-

- If the Safe App or Services are not provided to the User free of charge, CC shall be liable only (i) in cases - pursuant to Clause 18.1 as well as (ii) in cases of simple negligence for damages resulting from the breach of an - essential contractual duty, a duty, the performance of which enables the proper execution of this Agreement in the - first place and on the compliance of which the User regularly relies and may rely, whereby CC's liability - shall be limited to the compensation of the foreseeable, typically occurring damage. The Parties agree that the - typical foreseeable damage equals 100$ (one hundred USD). Liability in cases of simple negligence for damages - resulting from the breach of a non-essential contractual duty are excluded. -

-

- The limitation of liability also applies to the personal liability of the organs, legal representatives, employees - and vicarious agents of CC. -

-

- If the User suffers damages due to the loss of data, CC is not liable for this, insofar as the damage would have - been avoided by a regular and complete backup of all relevant data by the User. -

-

- In the event of disruptions to the technical infrastructure, the internet connection or a relevant Blockchain that - we are not responsible for, we shall be exempt from our obligation to perform. This also applies if we are - prevented from performing due to force majeure or other circumstances, the elimination of which is not possible or - cannot be economically expected of CC. -

- -

19. What about viruses, bugs and security vulnerabilities?

-

We endeavor to provide our Service free from material bugs, security vulnerabilities or viruses.

-

- You are responsible for configuring your information technology and computer programmes to access our Services and - to use your own virus protection software. -

-

- If you become aware of any exploits, bugs or vulnerabilities, please inform{' '} - safe-support@protofire.io. -

-

- You must not misuse our Services by knowingly introducing material that is malicious or technologically harmful. - If you do, your right to use our Services will cease immediately. -

- -

20. What if an event outside our control happens that affects our Services?

-

- We may update and change our Services from time to time. We may suspend or withdraw or restrict the availability - of all or any part of our Services for business, operational or regulatory reasons or because of a Force Majeure - Event at no notice. -

-

- A “Force Majeure Event” shall mean any event, circumstance or cause beyond our reasonable control, which prevents, - hinders or delays the provision of our Services or makes their provision impossible or onerous, including, without - limitation: -

- -

- We shall not be liable or responsible to you, or be deemed to have defaulted under or breached this Agreement, for - any failure or delay in the provision of the Services or the performance of this Agreement, if and to the extent - such failure or delay is caused by or results from or is connected to acts beyond our reasonable control, - including the occurrence of a Force Majeure Event. -

- -

21. Who is responsible for your tax liabilities?

-

- You are solely responsible to determine if your use of the Services have tax implications, in particular income - tax and capital gains tax relating to the purchase or sale of Tokens, for you. By using the Services you agree not - to hold us liable for any tax liability associated with or arising from the operation of the Services or any other - action or transaction related thereto. -

- -

22. What if a court disagrees with part of this Agreement?

-

- Should individual provisions of these Terms be or become invalid or unenforceable in whole or in part, this shall - not affect the validity of the remaining provisions. The invalid or unenforceable provision shall be replaced by - the statutory provision. If there is no statutory provision or if the statutory provision would lead to an - unacceptable result, the parties shall enter negotiations to replace the invalid or unenforceable provision with a - valid provision that comes as close as possible to the economic purpose of the invalid or unenforceable provision. -

- -

23. What if we do not enforce certain rights under this Agreement?

-

- Our failure to exercise or enforce any right or remedy provided under this Agreement or by law shall not - constitute a waiver of that or any other right or remedy, nor shall it prevent or restrict any further exercise of - that or any other right or remedy. -

- -

24. Do third parties have rights?

-

- Unless it expressly states otherwise, this Agreement does not give rise to any third-party rights, which may be - enforced against us. -

- -

25. Can this Agreement be assigned?

-

- We are entitled to transfer our rights and obligations under the Agreement in whole or in part to third parties - with a notice period of four weeks. In this case, you have the right to terminate the Agreement without notice. -

-

- You shall not be entitled to assign this Agreement to any third party without our express prior written consent. -

- -

26. Which Clauses of this Agreement survive termination?

-

- All covenants, agreements, representations and warranties made in this Agreement shall survive your acceptance of - this Agreement and its termination. -

- -

27. Data Protection

-

- We inform you about our processing of personal data, including the disclosure to third parties and your rights as - an affected party, in the Privacy Policy. -

- -

28. Which laws apply to the Agreement?

-

- The Agreement including these Terms shall in all respects be governed by, and construed and interpreted in - accordance with, the law of England and Wales without giving effect to any choice or conflict of law provision or - rule. -

- -

29. How can you get support for Safe Accounts and tell us about any problems?

-

- If you want to learn more about Safe Accounts or the Service or have any problems using them or have any - complaints please get in touch via any of the following channels: -

-

- Email: safe-support@protofire.io -

-

- Report form: https://safe-support.protofire.io/ -

- -

30. Where is the place of legal proceedings?

-

- Any dispute arising out of or in connection with this Agreement, including any question regarding its existence, - validity or termination, shall be referred to and finally resolved by arbitration under the London Court of - International Arbitration (LCIA) Rules, which Rules are deemed to be incorporated by reference to this Clause. The - number of arbitrators shall be one. The seat, or legal place, of arbitration shall be London, England. The - language to be used in the arbitral proceedings shall be English. -

- -

31. Is this all?

-

- These Terms constitute the entire agreement between you and us in relation to the Agreement’s subject matter. It - replaces and extinguishes any and all prior agreements, draft agreements, arrangements, warranties, statements, - assurances, representations and undertakings of any nature made by, or on behalf of either of us, whether oral or - written, public or private, in relation to that subject matter. -

-
-) +import { useEffect, useState } from 'react' +import ReactMarkdown from 'react-markdown' + +const SafeTerms = () => { + const [content, setContent] = useState('') + + useEffect(() => { + const fetchContent = async () => { + try { + const response = await fetch(TERMS_LINK) + const text = await response.text() + setContent(text) + } catch (error) { + console.error('Error fetching terms:', error) + } + } + + fetchContent() + }, []) + + return
{content ? {content} : Loading terms...}
+} const Terms: NextPage = () => { return ( <> - {'Evmos Wallet – Terms'} + {'Terms and Conditions'}
{}
diff --git a/yarn.lock b/yarn.lock index 5cf6260c..a2d1e936 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11695,6 +11695,11 @@ html-tokenize@^2.0.0: readable-stream "~1.0.27-1" through2 "~0.4.1" +html-url-attributes@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/html-url-attributes/-/html-url-attributes-3.0.1.tgz#83b052cd5e437071b756cd74ae70f708870c2d87" + integrity sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ== + html-webpack-plugin@^5.5.0: version "5.6.0" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0" @@ -15951,6 +15956,22 @@ react-lifecycles-compat@^3.0.0: resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== +react-markdown@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-9.0.1.tgz#c05ddbff67fd3b3f839f8c648e6fb35d022397d1" + integrity sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg== + dependencies: + "@types/hast" "^3.0.0" + devlop "^1.0.0" + hast-util-to-jsx-runtime "^2.0.0" + html-url-attributes "^3.0.0" + mdast-util-to-hast "^13.0.0" + remark-parse "^11.0.0" + remark-rehype "^11.0.0" + unified "^11.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + react-modal@^3.12.1: version "3.16.1" resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.1.tgz#34018528fc206561b1a5467fc3beeaddafb39b2b"