From 6b3fe6ab572697a4f1ce9415543884818c102f1f Mon Sep 17 00:00:00 2001 From: Piyush Date: Mon, 21 Oct 2024 19:54:35 +0530 Subject: [PATCH] feat: comprehensive overhaul: Code Structure, UI/UX, Branding Alignment & More (#1221) Co-authored-by: dharamveergit Co-authored-by: HoomanHq Co-authored-by: Chaitanya Rai --- .prettierignore | 1 + .prettierrc.mjs | 12 + .vscode/settings.json | 7 +- STYLE-GUIDE.md | 186 +- astro.config.mjs | 84 +- generate-search-index.js | 2 +- package-lock.json | 3485 +++++++++++++---- package.json | 16 +- public/backgrounds/404/grid-1.svg | 58 + public/backgrounds/404/grid-2.svg | 58 + public/backgrounds/worldmapdark.webp | Bin 0 -> 157010 bytes public/backgrounds/worldmaplight.webp | Bin 0 -> 167066 bytes .../images/assets/amplifier_diagram-light.svg | 398 ++ public/images/assets/amplifier_diagram.svg | 439 ++- .../images/assets/evm-relayer-flow-light.svg | 84 + public/images/assets/evm-relayer-flow.svg | 83 + public/images/assets/express-light.svg | 52 + public/images/assets/express.svg | 52 + .../assets/general-message-overview-light.svg | 79 + .../assets/general-message-overview.svg | 78 + public/images/assets/network-flow-light.svg | 100 + public/images/assets/network-flow.svg | 116 + public/images/assets/nolus.svg | 6 + public/images/assets/verifier-light.svg | 91 + public/images/assets/verifier.svg | 90 + public/images/assets/voting-flow-light.svg | 108 + public/images/assets/voting-flow.svg | 108 + .../images/its-deployment-diagram-light.svg | 468 +++ public/images/its-deployment-diagram.svg | 474 ++- public/images/its-transfer-light.svg | 349 ++ public/images/its-transfer.svg | 353 +- .../learn-security-decentralization-light.svg | 497 +++ .../learn-security-decentralization.svg | 495 +++ .../learn-security-quadratic-voting-light.svg | 86 + .../learn-security-quadratic-voting.svg | 86 + public/images/learn-tech-stack-light.svg | 321 ++ public/images/learn-tech-stack.svg | 321 ++ src/components/callout.tsx | 43 +- src/components/chainlist.jsx | 114 +- src/components/docs/Search.tsx | 22 + src/components/docs/table-of-contents.tsx | 107 + src/components/dropdown.jsx | 195 +- src/components/evm/assets.jsx | 38 +- src/components/evm/chains.jsx | 180 +- src/components/footer/footer.astro | 208 + src/components/header/MobileNavigation.tsx | 97 + src/components/header/header-logo.astro | 11 + src/components/header/header.astro | 63 + src/components/ibc/channels.jsx | 92 +- src/components/interchain-token-intro.astro | 167 +- src/components/keplr/addKeplrWallet.jsx | 16 +- src/components/keplr/index.jsx | 6 +- src/components/logo.tsx | 45 + src/components/resources/index.jsx | 122 +- src/components/sidebar/render-sidebar.astro | 94 + src/components/sidebar/sidebar.astro | 9 + src/components/static-copy.jsx | 15 +- src/components/textarea.jsx | 41 +- src/components/transfer-fee/calculator.jsx | 157 +- src/components/typeform.jsx | 34 +- src/components/ui/NextPrevNav.astro | 42 + src/components/ui/button.astro | 37 + src/components/ui/theme-toggle.tsx | 38 + src/components/ui/world-map.astro | 19 + src/components/web3/index.jsx | 11 +- src/config/site.ts | 2 +- src/content/docs/controller/add-evm-chain.mdx | 102 +- src/content/docs/controller/deploy-token.mdx | 13 +- .../docs/dev/amplifier/add-rewards.mdx | 35 +- .../chain-integration/error-messages.mdx | 7 +- .../governance-proposals.mdx | 19 +- .../chain-integration/integrate-a-chain.mdx | 309 +- .../chain-integration/introduction.mdx | 76 +- .../chain-integration/relay-messages.mdx | 5 +- .../relay-messages/automatic.mdx | 0 .../relay-messages/manual.mdx | 0 .../docs/dev/amplifier/introduction.mdx | 17 +- src/content/docs/dev/amplifier/roadmap.mdx | 5 +- .../docs/dev/axelar-sandbox/how-to-use.mdx | 6 +- .../dev/axelarjs-sdk/axelar-query-api.mdx | 61 +- src/content/docs/dev/axelarjs-sdk/intro.mdx | 19 +- .../axelarjs-sdk/token-transfer-dep-addr.mdx | 117 +- .../axelarjs-sdk/tx-status-query-recovery.mdx | 2 +- .../cross-chain-messaging-evm-to-cosmos.mdx | 13 +- src/content/docs/dev/evm-relayer.mdx | 24 +- .../docs/dev/gas-service/increase-gas.mdx | 5 +- src/content/docs/dev/gas-service/intro.mdx | 2 +- .../dev/gas-service/on-chain-estimation.mdx | 9 +- src/content/docs/dev/gas-service/pay-gas.mdx | 29 +- src/content/docs/dev/gas-service/pricing.mdx | 41 +- src/content/docs/dev/gas-service/refund.mdx | 2 +- .../dev/gas-service/transaction-state.mdx | 12 +- .../axelar-commandid.mdx | 71 +- .../debug/debugging-your-smart-contract.mdx | 2 +- .../debug/error-debugging.mdx | 17 +- .../debug/fork-mainnet.mdx | 5 +- .../debug/transaction-recovery.mdx | 16 +- .../developer-guides/example-gmp.mdx | 11 +- .../developer-guides/example-usdc-cctp.mdx | 6 +- .../dev/general-message-passing/examples.mdx | 8 +- .../general-message-passing/executable.mdx | 33 +- .../dev/general-message-passing/express.mdx | 17 +- .../general-message-passing/gmp-messages.mdx | 22 +- .../gmp-tokens-with-messages.mdx | 21 +- .../general-message-passing/monitoring.mdx | 18 +- .../dev/general-message-passing/overview.mdx | 547 +-- .../general-message-passing/verify-gmp-tx.mdx | 12 +- src/content/docs/dev/indexers/overview.md | 4 +- src/content/docs/dev/indexers/subquery.md | 2 + src/content/docs/dev/intro.mdx | 77 +- .../dev/reference/mainnet-chain-names.mdx | 6 +- .../dev/reference/testnet-chain-names.mdx | 4 +- src/content/docs/dev/send-tokens/glossary.mdx | 4 +- ...multiple-chains-into-interchain-tokens.mdx | 9 +- ...grammatically-create-a-canonical-token.mdx | 7 +- .../programmatically-create-a-token.mdx | 7 +- .../interchain-tokens/flow-limit.mdx | 29 +- .../interchain-token-executable.mdx | 6 +- .../send-tokens/interchain-tokens/intro.mdx | 112 +- .../interchain-tokens/quick-start/no-code.mdx | 13 +- .../quick-start/programmatic.mdx | 87 +- .../interchain-tokens/token-manager.mdx | 28 +- .../docs/dev/send-tokens/introduction.mdx | 30 +- src/content/docs/dev/send-tokens/roadmap.mdx | 2 +- src/content/docs/dev/solidity-utilities.mdx | 2 +- src/content/docs/learn/axlusdc.mdx | 39 +- src/content/docs/learn/cli.mdx | 7 +- src/content/docs/learn/cli/axl-from-evm.mdx | 11 +- src/content/docs/learn/cli/axl-to-evm.mdx | 8 +- src/content/docs/learn/cli/reference.md | 11 +- src/content/docs/learn/cli/ust-from-evm.mdx | 11 +- src/content/docs/learn/cli/ust-to-evm.mdx | 14 +- src/content/docs/learn/intro.mdx | 2 +- src/content/docs/learn/network/flow.mdx | 60 +- src/content/docs/learn/security.mdx | 19 +- src/content/docs/node/basic.mdx | 11 +- src/content/docs/node/config-node.mdx | 16 +- src/content/docs/node/join-genesis.mdx | 29 +- src/content/docs/node/join-old.mdx | 73 +- src/content/docs/node/join.mdx | 13 +- src/content/docs/node/keyring.mdx | 11 +- .../resources/axelarscan/axelarscan-add.mdx | 33 +- .../resources/contract-addresses/mainnet.mdx | 22 +- .../resources/contract-addresses/testnet.mdx | 21 +- .../docs/resources/ibc-chain-onboarding.mdx | 4 +- src/content/docs/resources/keplr.mdx | 2 +- .../docs/resources/mainnet/upgrades/v1.mdx | 14 +- .../docs/resources/mainnet/upgrades/v16.mdx | 10 +- .../docs/resources/mainnet/upgrades/v17.mdx | 8 +- .../docs/resources/mainnet/upgrades/v18.mdx | 8 +- .../docs/resources/mainnet/upgrades/v19.mdx | 8 +- .../docs/resources/mainnet/upgrades/v20.mdx | 10 +- .../docs/resources/mainnet/upgrades/v21.mdx | 8 +- .../docs/resources/mainnet/upgrades/v24.mdx | 8 +- .../docs/resources/mainnet/upgrades/v26.mdx | 8 +- .../docs/resources/mainnet/upgrades/v28.mdx | 8 +- .../docs/resources/mainnet/upgrades/v29.mdx | 8 +- .../docs/resources/mainnet/upgrades/v31.mdx | 8 +- .../docs/resources/mainnet/upgrades/v33.mdx | 8 +- .../docs/resources/mainnet/upgrades/v34.mdx | 2 +- .../docs/resources/mainnet/upgrades/v35.mdx | 25 +- src/content/docs/resources/metamask.mdx | 24 +- src/content/docs/resources/rpc/lava-iprpc.mdx | 17 +- src/content/docs/resources/rpc/resources.mdx | 13 +- src/content/docs/resources/satellite.mdx | 6 +- .../static-configs/static-configs.mdx | 21 +- .../docs/resources/testnet/upgrades/v1.mdx | 13 +- .../docs/resources/testnet/upgrades/v17.mdx | 8 +- .../docs/resources/testnet/upgrades/v18.mdx | 8 +- .../docs/resources/testnet/upgrades/v19.mdx | 8 +- .../docs/resources/testnet/upgrades/v20.mdx | 8 +- .../docs/resources/testnet/upgrades/v21.mdx | 8 +- .../docs/resources/testnet/upgrades/v22.mdx | 8 +- .../docs/resources/testnet/upgrades/v23.mdx | 8 +- .../docs/resources/testnet/upgrades/v24.mdx | 8 +- .../docs/resources/testnet/upgrades/v25.mdx | 8 +- .../docs/resources/testnet/upgrades/v26.mdx | 8 +- .../docs/resources/testnet/upgrades/v27.mdx | 8 +- .../docs/resources/testnet/upgrades/v28.mdx | 8 +- .../docs/resources/testnet/upgrades/v29.mdx | 8 +- .../docs/resources/testnet/upgrades/v31.mdx | 8 +- .../docs/resources/testnet/upgrades/v32.mdx | 8 +- .../docs/resources/testnet/upgrades/v33.mdx | 8 +- .../docs/resources/testnet/upgrades/v34.mdx | 2 +- .../docs/resources/testnet/upgrades/v35.mdx | 17 +- .../docs/resources/tokens/wrapped-tokens.mdx | 2 +- .../validator/amplifier/error-messages.mdx | 11 +- .../amplifier/governance-proposals.mdx | 23 +- .../amplifier/verifier-onboarding.mdx | 1 - .../validator/amplifier/verifier-rewards.mdx | 87 +- .../amplifier/verifier-rotations.mdx | 2 +- .../verifier-security-expectations.mdx | 2 +- .../validator/external-chains/arbitrum.mdx | 32 +- .../docs/validator/external-chains/aurora.mdx | 46 +- .../validator/external-chains/avalanche.mdx | 37 +- .../docs/validator/external-chains/base.mdx | 40 +- .../validator/external-chains/binance.mdx | 78 +- .../docs/validator/external-chains/blast.mdx | 84 +- .../docs/validator/external-chains/celo.mdx | 42 +- .../validator/external-chains/centrifuge.mdx | 108 +- .../validator/external-chains/ethereum.mdx | 47 +- .../docs/validator/external-chains/fantom.mdx | 13 +- .../validator/external-chains/filecoin.mdx | 43 +- .../docs/validator/external-chains/flow.mdx | 3 +- .../validator/external-chains/fraxtal.mdx | 67 +- .../docs/validator/external-chains/hero.mdx | 36 +- .../validator/external-chains/immutable.mdx | 200 +- .../docs/validator/external-chains/kava.mdx | 89 +- .../docs/validator/external-chains/linea.mdx | 26 +- .../docs/validator/external-chains/mantle.mdx | 130 +- .../validator/external-chains/moonbeam.mdx | 12 +- .../validator/external-chains/optimism.mdx | 44 +- .../validator/external-chains/overview.mdx | 15 +- .../external-chains/polygon-zkevm.mdx | 85 +- .../validator/external-chains/polygon.mdx | 157 +- .../docs/validator/external-chains/scroll.mdx | 87 +- .../validator/external-chains/soroban.mdx | 140 +- .../docs/validator/external-chains/sui.mdx | 150 +- .../operations/mnemonic-rotation.mdx | 9 +- .../docs/validator/operations/monitoring.mdx | 29 +- src/content/docs/validator/setup/config.mdx | 6 +- src/content/docs/validator/setup/manual.mdx | 14 +- src/content/docs/validator/setup/overview.mdx | 2 +- .../validator/setup/register-broadcaster.mdx | 7 +- .../docs/validator/setup/vald-tofnd.mdx | 2 +- .../docs/validator/status/health-check.mdx | 3 +- src/content/docs/validator/status/leave.mdx | 7 +- .../status/register-external-chains.mdx | 7 +- .../troubleshoot/missed-too-many-blocks.mdx | 9 +- .../docs/validator/troubleshoot/startup.mdx | 9 +- .../docs/validator/troubleshoot/unjail.mdx | 3 +- src/data/cosmos_chains.json | 10 +- src/data/evm_assets.json | 28 +- src/data/evm_chains.json | 276 +- src/data/ibc_assets.json | 28 +- src/data/ibc_channels.json | 2 +- src/data/keplr/mainnet/crescent.json | 86 +- src/data/keplr/mainnet/injective.json | 86 +- src/data/keplr/mainnet/kujira.json | 86 +- src/data/keplr/mainnet/terra.json | 86 +- src/data/keplr/testnet/axelar.json | 88 +- src/data/keplr/testnet/crescent.json | 86 +- src/data/keplr/testnet/evmos.json | 92 +- src/data/keplr/testnet/fetch.json | 86 +- src/data/keplr/testnet/kujira.json | 86 +- src/data/keplr/testnet/osmosis.json | 86 +- src/data/keplr/testnet/sei.json | 86 +- src/data/keplr/testnet/terra.json | 86 +- src/data/resources.json | 4 +- src/data/tokens.json | 2 +- src/layouts/ContentLayout.astro | 23 + src/layouts/MainLayout.astro | 289 +- src/layouts/None.astro | 2 +- src/layouts/navigation.ts | 17 +- src/lib/cva/button.ts | 42 + src/lib/generateToc.ts | 52 + src/lib/nextPrevPages.ts | 55 + src/lib/prose-classes.tsx | 9 + src/pages/404.astro | 42 + src/pages/404.mdx | 4 - src/pages/[...slug].astro | 70 +- src/pages/_data/index.js | 44 +- .../send-tokens/interchain-tokens/intro.astro | 171 - src/pages/index.astro | 174 +- src/pages/learn.mdx | 15 +- src/pages/reducers/chain-id.js | 2 +- src/pages/reducers/environment.js | 2 +- src/pages/reducers/index.js | 2 +- src/pages/reducers/spending-time.js | 2 +- src/pages/reducers/types.js | 2 +- src/pages/terms-of-use.mdx | 11 +- src/reducers/chain-id.js | 2 +- src/reducers/environment.js | 2 +- src/reducers/index.js | 2 +- src/reducers/spending-time.js | 2 +- src/reducers/types.js | 2 +- src/scripts/active.ts | 6 +- src/scripts/collapsible-nav.ts | 11 +- src/scripts/copy.ts | 3 +- src/scripts/github-edit.ts | 2 +- src/scripts/index.ts | 12 +- src/scripts/menu.ts | 10 +- src/scripts/prism.js | 2 +- src/scripts/safelinks.ts | 17 +- src/scripts/search.ts | 4 +- src/scripts/store.js | 34 +- src/scripts/tabs.ts | 101 +- src/scripts/toast.ts | 4 +- src/scripts/wrapTables.ts | 17 + src/styles/dark.scss | 19 +- src/styles/global.css | 124 + src/styles/main.scss | 22 +- src/utils/ga.jsx | 4 +- src/utils/index.jsx | 10 +- src/utils/rehype/tip.mjs | 126 + tailwind.config.mjs | 73 + tsconfig.json | 10 +- vercel.json | 3 +- 298 files changed, 13942 insertions(+), 5380 deletions(-) create mode 100644 .prettierignore create mode 100644 .prettierrc.mjs create mode 100644 public/backgrounds/404/grid-1.svg create mode 100644 public/backgrounds/404/grid-2.svg create mode 100644 public/backgrounds/worldmapdark.webp create mode 100644 public/backgrounds/worldmaplight.webp create mode 100644 public/images/assets/amplifier_diagram-light.svg create mode 100644 public/images/assets/evm-relayer-flow-light.svg create mode 100644 public/images/assets/evm-relayer-flow.svg create mode 100644 public/images/assets/express-light.svg create mode 100644 public/images/assets/express.svg create mode 100644 public/images/assets/general-message-overview-light.svg create mode 100644 public/images/assets/general-message-overview.svg create mode 100644 public/images/assets/network-flow-light.svg create mode 100644 public/images/assets/network-flow.svg create mode 100644 public/images/assets/nolus.svg create mode 100644 public/images/assets/verifier-light.svg create mode 100644 public/images/assets/verifier.svg create mode 100644 public/images/assets/voting-flow-light.svg create mode 100644 public/images/assets/voting-flow.svg create mode 100644 public/images/its-deployment-diagram-light.svg create mode 100644 public/images/its-transfer-light.svg create mode 100644 public/images/learn-security-decentralization-light.svg create mode 100644 public/images/learn-security-decentralization.svg create mode 100644 public/images/learn-security-quadratic-voting-light.svg create mode 100644 public/images/learn-security-quadratic-voting.svg create mode 100644 public/images/learn-tech-stack-light.svg create mode 100644 public/images/learn-tech-stack.svg create mode 100644 src/components/docs/Search.tsx create mode 100644 src/components/docs/table-of-contents.tsx create mode 100644 src/components/footer/footer.astro create mode 100644 src/components/header/MobileNavigation.tsx create mode 100644 src/components/header/header-logo.astro create mode 100644 src/components/header/header.astro create mode 100644 src/components/logo.tsx create mode 100644 src/components/sidebar/render-sidebar.astro create mode 100644 src/components/sidebar/sidebar.astro create mode 100644 src/components/ui/NextPrevNav.astro create mode 100644 src/components/ui/button.astro create mode 100644 src/components/ui/theme-toggle.tsx create mode 100644 src/components/ui/world-map.astro rename src/{pages => content/docs}/dev/amplifier/chain-integration/relay-messages/automatic.mdx (100%) rename src/{pages => content/docs}/dev/amplifier/chain-integration/relay-messages/manual.mdx (100%) create mode 100644 src/layouts/ContentLayout.astro create mode 100644 src/lib/cva/button.ts create mode 100644 src/lib/generateToc.ts create mode 100644 src/lib/nextPrevPages.ts create mode 100644 src/lib/prose-classes.tsx create mode 100644 src/pages/404.astro delete mode 100644 src/pages/404.mdx delete mode 100644 src/pages/dev/send-tokens/interchain-tokens/intro.astro create mode 100644 src/scripts/wrapTables.ts create mode 100644 src/styles/global.css create mode 100644 src/utils/rehype/tip.mjs create mode 100644 tailwind.config.mjs diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..28bb97cfc --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +src/scripts/prism.js \ No newline at end of file diff --git a/.prettierrc.mjs b/.prettierrc.mjs new file mode 100644 index 000000000..7e619305d --- /dev/null +++ b/.prettierrc.mjs @@ -0,0 +1,12 @@ +/** @type {import("prettier").Config} */ +export default { + plugins: ["prettier-plugin-astro"], + overrides: [ + { + files: "*.astro", + options: { + parser: "astro", + }, + }, + ], +}; diff --git a/.vscode/settings.json b/.vscode/settings.json index d09a50ca3..2c557b906 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,6 @@ { - "svg.preview.background": "transparent" -} \ No newline at end of file + "svg.preview.background": "transparent", + "cSpell.words": [ + "Axelar" + ] +} diff --git a/STYLE-GUIDE.md b/STYLE-GUIDE.md index 942583b53..bc7ebfcc4 100644 --- a/STYLE-GUIDE.md +++ b/STYLE-GUIDE.md @@ -6,31 +6,31 @@ This style guide is inspired by the [Google developer documentation style guide] ## Table of contents -* [Voice and tone](#voice-and-tone) -* [Document structure](#document-structure) -* [Content format](#content-format) -* [Wording](#wording) +- [Voice and tone](#voice-and-tone) +- [Document structure](#document-structure) +- [Content format](#content-format) +- [Wording](#wording) ## Voice and tone -* Be friendly, respectful, and not overly pedantic, like you're pair-programming with a friend. -* Refer to [Google's word list](https://developers.google.com/style/word-list) when unsure how to phrase something. +- Be friendly, respectful, and not overly pedantic, like you're pair-programming with a friend. +- Refer to [Google's word list](https://developers.google.com/style/word-list) when unsure how to phrase something. ### When addressing the reader -* Address the reader directly by using the second-person "you." -* Do not use the word "I." When speaking on Axelar's behalf (as a member of the Axelar team), use "we." -* Avoid using “we” to refer to Axelar as a project. Refer to Axelar by name or as “the project,” “the community,” “the ecosystem,” etc. +- Address the reader directly by using the second-person "you." +- Do not use the word "I." When speaking on Axelar's behalf (as a member of the Axelar team), use "we." +- Avoid using “we” to refer to Axelar as a project. Refer to Axelar by name or as “the project,” “the community,” “the ecosystem,” etc. | **Recommended** | **Not recommended** | | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | | Hardhat and Foundry are local development platforms. Use Remix if you prefer an online editor. | Hardhat and Foundry are local development platforms. I'd use Remix if I preferred an online editor. | | We recommend using MetaMask for this tutorial. | I recommend using MetaMask for this tutorial. | -| We're launching a bunch of cool new Interchain features this month. | Axelar will have a bunch of cool new Interchain features this month. | +| We're launching a bunch of cool new Interchain features this month. | Axelar will have a bunch of cool new Interchain features this month. | ### When referring to a third party user or developer -* Use the singular "they" when referring to a third party user or developer. +- Use the singular "they" when referring to a third party user or developer. | **Recommended** | **Not recommended** | | -------------------------------------------------- | ------------------------------------------------------- | @@ -38,7 +38,7 @@ This style guide is inspired by the [Google developer documentation style guide] ### Accessibility -* Use "earlier", "preceding", or "following" to refer to the position of a code snippet or UI element in a document rather than "above," "below," or "left-hand side." +- Use "earlier", "preceding", or "following" to refer to the position of a code snippet or UI element in a document rather than "above," "below," or "left-hand side." | **Recommended** | **Not recommended** | | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------ | @@ -47,23 +47,23 @@ This style guide is inspired by the [Google developer documentation style guide] ## Document structure -* Avoid a wall of text whenever possible. -* Break a long section up into subsections with the appropriate headings. -* Add screenshots when a UI is not likely to change. +- Avoid a wall of text whenever possible. +- Break a long section up into subsections with the appropriate headings. +- Add screenshots when a UI is not likely to change. ### Code comments -* Comment in the code directly whenever possible. -* Add bullet points directly above or below the code snippet if it makes the code more clear. +- Comment in the code directly whenever possible. +- Add bullet points directly above or below the code snippet if it makes the code more clear. **Recommended** `sendToMany` will need to do the following: -* Get the address of a token from its symbol -* Send funds to another address -* Approve the gateway to spend funds -* Encode the recipient addresses on the destination chain to ensure that they are `byte`s, since GMP messages must be of this type +- Get the address of a token from its symbol +- Send funds to another address +- Approve the gateway to spend funds +- Encode the recipient addresses on the destination chain to ensure that they are `byte`s, since GMP messages must be of this type ```solidity function sendToMany( @@ -129,129 +129,129 @@ uint256 \_amount ### Section headings -* Don't skip heading types. A subheading under a title should be an H1, the nested subheading under that one an H2, and so forth. +- Don't skip heading types. A subheading under a title should be an H1, the nested subheading under that one an H2, and so forth. ### Document titles -* For **H1 headings** (headings with one "#" sign in front), use [title case](https://titlecaseconverter.com/) for all words longer than 3 characters. +- For **H1 headings** (headings with one "#" sign in front), use [title case](https://titlecaseconverter.com/) for all words longer than 3 characters. -| **Recommended** | **Not recommended** | -| --- | --- | -| Everything you Always Wanted to Know About Headings, but Were Afraid to Ask | Everything you always wanted to know about headings, but were afraid to ask | +| **Recommended** | **Not recommended** | +| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| Everything you Always Wanted to Know About Headings, but Were Afraid to Ask | Everything you always wanted to know about headings, but were afraid to ask | -* For **H2 headings and below** (headings with two or more "#" signs in front), write in [sentence case](https://apastyle.apa.org/style-grammar-guidelines/capitalization/sentence-case) rather than capitalizing every letter of a new word. +- For **H2 headings and below** (headings with two or more "#" signs in front), write in [sentence case](https://apastyle.apa.org/style-grammar-guidelines/capitalization/sentence-case) rather than capitalizing every letter of a new word. -| **Recommended** | **Not recommended** | -| --- | --- | -| Set up your development environment | Set Up Your Development Environment | +| **Recommended** | **Not recommended** | +| ----------------------------------- | ----------------------------------- | +| Set up your development environment | Set Up Your Development Environment | -* Always use numerical numbers in all headings. +- Always use numerical numbers in all headings. -| **Recommended** | **Not recommended** | -| --- | --- | -| 5 Things to Know About Headings | Five Things to Know About Headings | +| **Recommended** | **Not recommended** | +| ------------------------------- | ---------------------------------- | +| 5 Things to Know About Headings | Five Things to Know About Headings | -* Never close a heading with a period. Exclamation points and question marks are OK. +- Never close a heading with a period. Exclamation points and question marks are OK. -| **Recommended** | **Not recommended** | -| --- | --- | -| How to End a Heading Title. | How to End a Heading Title | +| **Recommended** | **Not recommended** | +| --------------------------- | -------------------------- | +| How to End a Heading Title. | How to End a Heading Title | ## Content format -* Always put parentheses after a method name. -* Use bold, italic, and code font when appropriate. -* Product names should not have any special font formatting. -* All links should be root-relative (`/dev/path/to/`, `validator/path/to`) and end with a `/`. +- Always put parentheses after a method name. +- Use bold, italic, and code font when appropriate. +- Product names should not have any special font formatting. +- All links should be root-relative (`/dev/path/to/`, `validator/path/to`) and end with a `/`. ### Method names -* Method names should always include parentheses, so that they are not confused with properties. +- Method names should always include parentheses, so that they are not confused with properties. -| **Recommended** | **Not recommended** | -| --- | --- | -| Users can call `interchainTransfer()` on a token to transfer between blockchains. | Users can call `interchainTransfer` on a token to transfer between blockchains. | +| **Recommended** | **Not recommended** | +| --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| Users can call `interchainTransfer()` on a token to transfer between blockchains. | Users can call `interchainTransfer` on a token to transfer between blockchains. | ### Bold font -* Use bold font for UX elements. +- Use bold font for UX elements. -| **Recommended** | **Not recommended** | -| --- | --- | -| In MetaMask, go to the **Tokens** tab and click **Import Tokens**. | In MetaMask, go to the “Tokens” tab and click “Import Tokens.” | +| **Recommended** | **Not recommended** | +| ------------------------------------------------------------------ | -------------------------------------------------------------- | +| In MetaMask, go to the **Tokens** tab and click **Import Tokens**. | In MetaMask, go to the “Tokens” tab and click “Import Tokens.” | ### Italic font -* Use italics when using a new concept or term for the first time. Do not italicize more than once. +- Use italics when using a new concept or term for the first time. Do not italicize more than once. -| **Recommended** | **Not recommended** | -| --- | --- | -| Axelar's __General Message Passing (GMP)__ enables a developer building on one chain to call any function on any other connected chain. | Axelar's **General Message Passing (GMP)** enables a developer building on one chain to call any function on any other connected chain. | -| Axelar's __General Message Passing (GMP)__ enables a developer building on one chain to call any function on any other connected chain. For GMP to work, chains A and B must be EVM or Cosmos with a deployed Axelar Gateway contract. | Axelar's __General Message Passing (GMP)__ enables a developer building on one chain to call any function on any other connected chain. For __GMP__ to work, chains A and B must be EVM or Cosmos with a deployed Axelar Gateway contract. | +| **Recommended** | **Not recommended** | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Axelar's **General Message Passing (GMP)** enables a developer building on one chain to call any function on any other connected chain. | Axelar's **General Message Passing (GMP)** enables a developer building on one chain to call any function on any other connected chain. | +| Axelar's **General Message Passing (GMP)** enables a developer building on one chain to call any function on any other connected chain. For GMP to work, chains A and B must be EVM or Cosmos with a deployed Axelar Gateway contract. | Axelar's **General Message Passing (GMP)** enables a developer building on one chain to call any function on any other connected chain. For **GMP** to work, chains A and B must be EVM or Cosmos with a deployed Axelar Gateway contract. | ### Underlined font -* Do not underline anything in the documentation. +- Do not underline anything in the documentation. ### Code font -* Use code font for text input, strings, and any names found in code, such as properties and methods. +- Use code font for text input, strings, and any names found in code, such as properties and methods. -| **Recommended** | **Not recommended** | -| --- | --- | -| If the prepaid gas is insufficient, you might see `NOT ENOUGH GAS` or other messages, such as `Insufficient gas for executing the transaction` and `intrinsic gas too low`. | If the prepaid gas is insufficient, you might see __NOT ENOUGH GAS__ or other messages, such as __Insufficient gas for executing the transaction__ and __intrinsic gas too low__. | -| `sendToMany()` takes many parameters, including `_destChain` and `_destContractAddr`. | **sendToMany()** takes many parameters, including **_destChain** and **_destContractAddr**. | -| Give your test wallet an alias, such as `My Sepolia test wallet`. | Give your test wallet an alias, such as "My Sepolia test wallet". | +| **Recommended** | **Not recommended** | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| If the prepaid gas is insufficient, you might see `NOT ENOUGH GAS` or other messages, such as `Insufficient gas for executing the transaction` and `intrinsic gas too low`. | If the prepaid gas is insufficient, you might see **NOT ENOUGH GAS** or other messages, such as **Insufficient gas for executing the transaction** and **intrinsic gas too low**. | +| `sendToMany()` takes many parameters, including `_destChain` and `_destContractAddr`. | **sendToMany()** takes many parameters, including **\_destChain** and **\_destContractAddr**. | +| Give your test wallet an alias, such as `My Sepolia test wallet`. | Give your test wallet an alias, such as "My Sepolia test wallet". | ### Hyperlinks -* Use descriptive hyperlink text rather than the word "here." +- Use descriptive hyperlink text rather than the word "here." -| **Recommended** | **Not recommended** | -| --- | --- | -| For more information on General Message Passing, check out [Axelar's YouTube channel](https://www.youtube.com/channel/UCf8GFg58fdp1iZwLAOV1Tgg). | For more information on General Message Passing, check out Axelar's YouTube channel [here](https://www.youtube.com/channel/UCf8GFg58fdp1iZwLAOV1Tgg). | +| **Recommended** | **Not recommended** | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| For more information on General Message Passing, check out [Axelar's YouTube channel](https://www.youtube.com/channel/UCf8GFg58fdp1iZwLAOV1Tgg). | For more information on General Message Passing, check out Axelar's YouTube channel [here](https://www.youtube.com/channel/UCf8GFg58fdp1iZwLAOV1Tgg). | -* Use the root-relative path instead of a relative one when linking in docs. This makes links less likely to break if a file is moved into another folder. +- Use the root-relative path instead of a relative one when linking in docs. This makes links less likely to break if a file is moved into another folder. -| **Recommended** | **Not recommended** | -| --- | --- | -| `Make sure you've gone through the [Amplifier chain integration tutorial](/dev/amplifier/chain-integration/integrate-a-chain/).` | `Make sure you've gone through the [Amplifier chain integration tutorial](/dev/amplifier/chain-integration/integrate-a-chain).` | -| `Create a [custom token](/dev/glossary/#custom-token).` | `Create a [custom token](../../reference/glossary#custom-token).` | +| **Recommended** | **Not recommended** | +| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `Make sure you've gone through the [Amplifier chain integration tutorial](/dev/amplifier/chain-integration/integrate-a-chain/).` | `Make sure you've gone through the [Amplifier chain integration tutorial](/dev/amplifier/chain-integration/integrate-a-chain).` | +| `Create a [custom token](/dev/glossary/#custom-token).` | `Create a [custom token](../../reference/glossary#custom-token).` | ### Lists -* When writing a list, either use complete sentences for all elements or no elements. Either every element has a period at the end, or none of them do. Do not mix and match. +- When writing a list, either use complete sentences for all elements or no elements. Either every element has a period at the end, or none of them do. Do not mix and match. **Recommended** Implement the following to send an interchain transaction with Axelar: -* `AxelarExecutable` – The contract to handle a message on the destination chain once a transaction has been sent to the Axelar network -* `IAxelarGateway` – The Axelar Gateway -* `IAxelarGasService` – The Axelar Gas Service -* `IERC20` – The ERC-20 token interface to access ERC-20-related functionality +- `AxelarExecutable` – The contract to handle a message on the destination chain once a transaction has been sent to the Axelar network +- `IAxelarGateway` – The Axelar Gateway +- `IAxelarGasService` – The Axelar Gas Service +- `IERC20` – The ERC-20 token interface to access ERC-20-related functionality **Not recommended** Implement the following to send an interchain transaction with Axelar: -* `AxelarExecutable` – This is a contract that handle a message on the destination chain once a transaction has been sent to the Axelar network. -* `IAxelarGateway` – The Axelar Gateway -* `IAxelarGasService` – The Axelar Gas Service -* `IERC20` – This represents the ERC-20 token interface to access ERC-20-related functionality. +- `AxelarExecutable` – This is a contract that handle a message on the destination chain once a transaction has been sent to the Axelar network. +- `IAxelarGateway` – The Axelar Gateway +- `IAxelarGasService` – The Axelar Gas Service +- `IERC20` – This represents the ERC-20 token interface to access ERC-20-related functionality. ## Wording -* **General Message Passing**: Capitalize, since it is as a product name – “Axelar General Message Passing,” "GMP," or “Axelar GMP” (never "Axelar’s GMP"). If you’re looking for a generic description, use “arbitrary message passing.” -* **Interchain**: Wherever possible, use “interchain,” instead of “cross-chain,” “blockchain interoperability,” “chain-agnostic” or other synonyms. "Interchain" is only capitalized at the beginning of a sentence. -* **Interchain Tokens**: title case. Likewise Interchain Token Service, Interchain Token Portal, Canonical Interchain Token. -* **Network**: “Axelar network,” not “Axelar Network.” -* **Proof-of-stake**: Only capitalize the first word in titles and at the beginning of sentences. Always hyphenate. -* **Web**, **Web2**, **Web3**: Capitalized everywhere, as in “the decentralized Web,” “the Web,” and any other context referring to the World Wide Web. “Web2” and “Web3” are also capitalized and written as one word. -* **Mint/Burn**, not **mint/burn**. -* **Lock/Unlock**, not **lock/unlock**. -* **Token manager** is not a proper noun, unless specifying the `TokenManager` object (in which case it should be code font). -* Refer to Axelar's Gas Service as **Axelar Gas Service**, **the Gas Service**, or **the `AxelarGasService` contract**, not as "Gas Services" or "the `GasService` contract." -* Time format is always in [UTC](https://en.wikipedia.org/wiki/Coordinated_Universal_Time). -* **dApp**: Lowercase d, uppercase A. -* **Mainnet, testnet, devnet**: All one word. Capitalized at the beginning of a sentence, else lowercase. \ No newline at end of file +- **General Message Passing**: Capitalize, since it is as a product name – “Axelar General Message Passing,” "GMP," or “Axelar GMP” (never "Axelar’s GMP"). If you’re looking for a generic description, use “arbitrary message passing.” +- **Interchain**: Wherever possible, use “interchain,” instead of “cross-chain,” “blockchain interoperability,” “chain-agnostic” or other synonyms. "Interchain" is only capitalized at the beginning of a sentence. +- **Interchain Tokens**: title case. Likewise Interchain Token Service, Interchain Token Portal, Canonical Interchain Token. +- **Network**: “Axelar network,” not “Axelar Network.” +- **Proof-of-stake**: Only capitalize the first word in titles and at the beginning of sentences. Always hyphenate. +- **Web**, **Web2**, **Web3**: Capitalized everywhere, as in “the decentralized Web,” “the Web,” and any other context referring to the World Wide Web. “Web2” and “Web3” are also capitalized and written as one word. +- **Mint/Burn**, not **mint/burn**. +- **Lock/Unlock**, not **lock/unlock**. +- **Token manager** is not a proper noun, unless specifying the `TokenManager` object (in which case it should be code font). +- Refer to Axelar's Gas Service as **Axelar Gas Service**, **the Gas Service**, or **the `AxelarGasService` contract**, not as "Gas Services" or "the `GasService` contract." +- Time format is always in [UTC](https://en.wikipedia.org/wiki/Coordinated_Universal_Time). +- **dApp**: Lowercase d, uppercase A. +- **Mainnet, testnet, devnet**: All one word. Capitalized at the beginning of a sentence, else lowercase. diff --git a/astro.config.mjs b/astro.config.mjs index 15704d532..082671eac 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,67 +1,33 @@ -import { defineConfig } from "astro/config"; -import react from "@astrojs/react"; import mdx from "@astrojs/mdx"; -import remarkToc from "remark-toc"; -import { rehypeHeadingIds } from "@astrojs/markdown-remark"; -import rehypeSlug from "rehype-slug"; -import rehypeAutolinkHeadings from "rehype-autolink-headings"; -import { h, s } from "hastscript"; +import partytown from "@astrojs/partytown"; +import react from "@astrojs/react"; import sitemap from "@astrojs/sitemap"; -const DEFAULT_LAYOUT = "/src/layouts/Section.astro"; -function setDefaultLayout() { - return function (_, file) { - const { frontmatter } = file.data.astro; - if (!frontmatter.layout) frontmatter.layout = DEFAULT_LAYOUT; - }; -} +import tailwind from "@astrojs/tailwind"; +import expressiveCode from "astro-expressive-code"; +import { defineConfig } from "astro/config"; +import remarkDirective from "remark-directive"; +// https://astro.build/config export default defineConfig({ - integrations: [react(), mdx(), sitemap()], - site: "https://docs.axelar.dev", + integrations: [ + expressiveCode({ + themes: ["vitesse-dark", "light-plus"], + useDarkModeMediaQuery: true, + themeCssSelector: (theme) => `[data-theme='${theme.name}']`, + }), + react(), + mdx(), + sitemap(), + tailwind(), + partytown({ + config: { + forward: ["dataLayer.push"], + }, + }), + ], + site: "https://axelardocs.vercel.app", trailingSlash: "always", markdown: { - remarkPlugins: [ - setDefaultLayout, - [ - remarkToc, - { - heading: "contents", - }, - ], - ], - rehypePlugins: [ - rehypeSlug, - [ - rehypeAutolinkHeadings, - { - behavior: "append", - content: [ - h( - "span", - { - ariaHidden: "true", - class: "anchor-icon", - }, - h( - "svg", - { - width: 16, - height: 16, - version: 1.1, - viewBox: "0 0 16 16", - xlmns: "http://www.w3.org/2000/svg", - }, - h("path", { - fillRule: "evenodd", - fill: "currentcolor", - d: "M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z", - }) - ) - ), - ], - }, - ], - ], - syntaxHighlight: false, + remarkPlugins: [remarkDirective], }, }); diff --git a/generate-search-index.js b/generate-search-index.js index 1ce723a7a..5cf6bb442 100644 --- a/generate-search-index.js +++ b/generate-search-index.js @@ -76,7 +76,7 @@ function walk(dir) { // Remove callout content = content.replace( /import\s*{\s*Callout\s*}\s*from\s*['"][^"']*['"]\s*;?/g, - "" + "", ); // Fix newlines diff --git a/package-lock.json b/package-lock.json index ff1b5941f..59b52a8de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,11 @@ "dependencies": { "@astrojs/markdown-remark": "^5.2.0", "@astrojs/mdx": "^3.1.3", + "@astrojs/partytown": "^2.1.2", "@astrojs/react": "^3.6.2", "@astrojs/sitemap": "^3.1.6", + "@astrojs/tailwind": "^5.1.0", + "@docsearch/react": "^3.6.1", "@headlessui/react": "^1.7.2", "@redux-devtools/extension": "^3.2.3", "@typeform/embed-react": "^1.21.0", @@ -20,10 +23,14 @@ "@types/react-dom": "^18.2.6", "algoliasearch": "^4.20.0", "astro": "^4.13.3", + "astro-expressive-code": "^0.36.1", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", "crypto": "^1.0.1", "gray-matter": "^4.0.3", "instantsearch.js": "^4.56.9", "lodash": "^4.17.21", + "lucide-react": "^0.441.0", "markdown-to-jsx": "^7.1.7", "next": "^14.1.1", "next-secure-headers": "^2.2.0", @@ -38,22 +45,74 @@ "react-syntax-highlighter": "^15.5.0", "redux": "^4.2.1", "rehype-autolink-headings": "^6.1.1", + "rehype-raw": "^7.0.0", "rehype-slug": "^5.1.0", "remark": "^14.0.3", + "remark-directive": "^3.0.0", "remark-toc": "^8.0.1", "remove-markdown": "^0.5.0", "sass": "^1.63.6", "sharp": "^0.33.5", "strip-markdown": "^5.0.1", + "tailwindcss": "^3.4.11", + "unist-util-visit": "^5.0.0", "web3": "^1.8.0" }, "devDependencies": { - "dart-linkcheck": "^2.0.15" + "@tailwindcss/typography": "^0.5.15", + "dart-linkcheck": "^2.0.15", + "prettier": "^3.3.3", + "prettier-plugin-astro": "^0.14.1" }, "engines": { "node": ">=18.14.1" } }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", + "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", + "@algolia/autocomplete-shared": "1.9.3" + } + }, + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", + "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", + "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.9.3" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", + "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, "node_modules/@algolia/cache-browser-local-storage": { "version": "4.20.0", "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.20.0.tgz", @@ -188,6 +247,18 @@ "resolved": "https://registry.npmjs.org/@algolia/ui-components-shared/-/ui-components-shared-1.2.1.tgz", "integrity": "sha512-a7mYHf/GVQfhAx/HRiMveKkFvHspQv/REdG+C/FIOosiSmNZxX7QebDwJkrGSmDWdXO12D0Qv1xn3AytFcEDlQ==" }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -751,18 +822,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@astrojs/markdown-remark/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/@astrojs/markdown-remark/node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", @@ -775,33 +834,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@astrojs/markdown-remark/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@astrojs/markdown-remark/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/@astrojs/markdown-remark/node_modules/vfile": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", @@ -862,18 +894,6 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, - "node_modules/@astrojs/mdx/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/@astrojs/mdx/node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", @@ -886,33 +906,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@astrojs/mdx/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@astrojs/mdx/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/@astrojs/mdx/node_modules/vfile": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", @@ -940,6 +933,16 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/@astrojs/partytown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@astrojs/partytown/-/partytown-2.1.2.tgz", + "integrity": "sha512-1a9T5lqxtnrw0qLPo1KwliUvaaUzPNPtWucD8VxdwT7zqcpODFk1RzGgAgqVo+YhutFrTu/qclbtnOfXBuskjw==", + "license": "MIT", + "dependencies": { + "@builder.io/partytown": "^0.10.2", + "mrmime": "^2.0.0" + } + }, "node_modules/@astrojs/prism": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.1.0.tgz", @@ -979,6 +982,21 @@ "zod": "^3.23.8" } }, + "node_modules/@astrojs/tailwind": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-5.1.0.tgz", + "integrity": "sha512-BJoCDKuWhU9FT2qYg+fr6Nfb3qP4ShtyjXGHKA/4mHN94z7BGcmauQK23iy+YH5qWvTnhqkd6mQPQ1yTZTe9Ig==", + "license": "MIT", + "dependencies": { + "autoprefixer": "^10.4.15", + "postcss": "^8.4.28", + "postcss-load-config": "^4.0.2" + }, + "peerDependencies": { + "astro": "^3.0.0 || ^4.0.0", + "tailwindcss": "^3.0.24" + } + }, "node_modules/@astrojs/telemetry": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.1.0.tgz", @@ -1312,6 +1330,18 @@ "node": ">=6.9.0" } }, + "node_modules/@builder.io/partytown": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@builder.io/partytown/-/partytown-0.10.2.tgz", + "integrity": "sha512-A9U+4PREWcS+CCYzKGIPovtGB/PBgnH/8oQyCE6Nr9drDJk6cMPpLQIEajpGPmG9tYF7N3FkRvhXm/AS9+0iKg==", + "license": "MIT", + "bin": { + "partytown": "bin/partytown.cjs" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@csstools/postcss-cascade-layers": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", @@ -1577,6 +1607,53 @@ "postcss-selector-parser": "^6.0.10" } }, + "node_modules/@ctrl/tinycolor": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-4.1.0.tgz", + "integrity": "sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@docsearch/css": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.1.tgz", + "integrity": "sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg==", + "license": "MIT" + }, + "node_modules/@docsearch/react": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.1.tgz", + "integrity": "sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.9.3", + "@algolia/autocomplete-preset-algolia": "1.9.3", + "@docsearch/css": "3.6.1", + "algoliasearch": "^4.19.1" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, "node_modules/@emnapi/runtime": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz", @@ -2334,6 +2411,105 @@ "@ethersproject/strings": "^5.7.0" } }, + "node_modules/@expressive-code/core": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@expressive-code/core/-/core-0.36.1.tgz", + "integrity": "sha512-9Y+vLlDEQeRQiPKTtab0NRmnUwS8GkJxobwvsXKoqWrRTWyVjV0VLI7BwXFUVVbbuuvMnwXpzfxY2mC64n3Jow==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^4.0.4", + "hast-util-select": "^6.0.2", + "hast-util-to-html": "^9.0.1", + "hast-util-to-text": "^4.0.1", + "hastscript": "^9.0.0", + "postcss": "^8.4.38", + "postcss-nested": "^6.0.1", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.1" + } + }, + "node_modules/@expressive-code/core/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@expressive-code/core/node_modules/hastscript": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz", + "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@expressive-code/core/node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@expressive-code/plugin-frames": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-frames/-/plugin-frames-0.36.1.tgz", + "integrity": "sha512-HAWH5gcX7avdtKhwSp/RLtqqEq04/JFOIQ6enAClHY8Kbr3c5T+C0Ki6G/3IVKnIjy2y0U7E6b9dOqzKSsanxw==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.36.1" + } + }, + "node_modules/@expressive-code/plugin-shiki": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-shiki/-/plugin-shiki-0.36.1.tgz", + "integrity": "sha512-nmzJ2TUHBDtYgOzDONTKt27n2B9S++hmvPxlPM1HZtjwO+2fhGGGW7M3VfO//6FIlcD4X36jy38DfPB4T9/m3Q==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.36.1", + "shiki": "^1.14.1" + } + }, + "node_modules/@expressive-code/plugin-text-markers": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/@expressive-code/plugin-text-markers/-/plugin-text-markers-0.36.1.tgz", + "integrity": "sha512-CNxkTuXmQtRWMQZcRRsLEfZIYStMdRMPzbisNU2a/RTgovqDsOQiyh1abnewxz0y7VuXW330D+etcEHjFWXU/A==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.36.1" + } + }, "node_modules/@headlessui/react": { "version": "1.7.15", "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.15.tgz", @@ -2710,6 +2886,46 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -2739,6 +2955,18 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", @@ -3297,10 +3525,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "node_modules/@mdx-js/mdx/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "dependencies": { "@types/unist": "^3.0.0" }, @@ -3309,45 +3537,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/@mdx-js/mdx/node_modules/vfile": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", @@ -3547,6 +3736,16 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@redux-devtools/extension": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/@redux-devtools/extension/-/extension-3.2.5.tgz", @@ -3752,21 +3951,74 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.12.1.tgz", - "integrity": "sha512-biCz/mnkMktImI6hMfMX3H9kOeqsInxWEyCHbSlL8C/2TR1FqfmGxTLRNwYCKsyCyxWLbB8rEqXRVZuyxuLFmA==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.17.7.tgz", + "integrity": "sha512-ZnIDxFu/yvje3Q8owSHaEHd+bu/jdWhHAaJ17ggjXofHx5rc4bhpCSW+OjC6smUBi5s5dd023jWtZ1gzMu/yrw==", + "license": "MIT", "dependencies": { - "@types/hast": "^3.0.4" + "@shikijs/engine-javascript": "1.17.7", + "@shikijs/engine-oniguruma": "1.17.7", + "@shikijs/types": "1.17.7", + "@shikijs/vscode-textmate": "^9.2.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.2" } }, "node_modules/@shikijs/core/node_modules/@types/hast": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.17.7.tgz", + "integrity": "sha512-wwSf7lKPsm+hiYQdX+1WfOXujtnUG6fnN4rCmExxa4vo+OTmvZ9B1eKauilvol/LHUPrQgW12G3gzem7pY5ckw==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.17.7", + "@shikijs/vscode-textmate": "^9.2.2", + "oniguruma-to-js": "0.4.3" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.17.7.tgz", + "integrity": "sha512-pvSYGnVeEIconU28NEzBXqSQC/GILbuNbAHwMoSfdTBrobKAsV1vq2K4cAgiaW1TJceLV9QMGGh18hi7cCzbVQ==", + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.17.7", + "@shikijs/vscode-textmate": "^9.2.2" + } + }, + "node_modules/@shikijs/types": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.17.7.tgz", + "integrity": "sha512-+qA4UyhWLH2q4EFd+0z4K7GpERDU+c+CN2XYD3sC+zjvAr5iuwD1nToXZMt1YODshjkEGEDV86G7j66bKjqDdg==", + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^9.2.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/types/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", "dependencies": { "@types/unist": "*" } }, + "node_modules/@shikijs/vscode-textmate": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.2.2.tgz", + "integrity": "sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==", + "license": "MIT" + }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", @@ -3797,6 +4049,36 @@ "node": ">=14.16" } }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz", + "integrity": "sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/@typeform/embed": { "version": "1.38.0", "resolved": "https://registry.npmjs.org/@typeform/embed/-/embed-1.38.0.tgz", @@ -3995,9 +4277,13 @@ } }, "node_modules/@types/node": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.2.tgz", - "integrity": "sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==" + "version": "22.5.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.0.tgz", + "integrity": "sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } }, "node_modules/@types/pbkdf2": { "version": "3.1.0", @@ -4252,6 +4538,12 @@ "node": ">=4" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -4399,6 +4691,18 @@ "sharp": "^0.33.3" } }, + "node_modules/astro-expressive-code": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/astro-expressive-code/-/astro-expressive-code-0.36.1.tgz", + "integrity": "sha512-D2nmBQ56wfnS/CBqCWoEGqIivNqaKJoACIK8eNa7TeDUwHzEWNSNoj5yK+wUJzpC7gI9XKPDh0Q/j8Dy7s84vA==", + "license": "MIT", + "dependencies": { + "rehype-expressive-code": "^0.36.1" + }, + "peerDependencies": { + "astro": "^4.0.0-beta || ^3.3.0" + } + }, "node_modules/astro/node_modules/@types/unist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", @@ -4415,18 +4719,6 @@ "node": ">=10" } }, - "node_modules/astro/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/astro/node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", @@ -4439,33 +4731,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/astro/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/astro/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/astro/node_modules/vfile": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", @@ -4504,9 +4769,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "funding": [ { "type": "opencollective", @@ -4515,14 +4780,19 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -4576,6 +4846,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, "node_modules/base-64": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", @@ -4608,6 +4884,16 @@ } ] }, + "node_modules/bcp-47-match": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", + "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -4683,6 +4969,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, "node_modules/boxen": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", @@ -4736,6 +5028,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", @@ -4814,6 +5115,14 @@ "safe-buffer": "^5.1.2" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/buffer-to-arraybuffer": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", @@ -4925,6 +5234,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001651", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", @@ -5116,6 +5434,27 @@ "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" }, + "node_modules/class-variance-authority": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", + "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "2.0.0" + }, + "funding": { + "url": "https://joebell.co.uk" + } + }, + "node_modules/class-variance-authority/node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/cli-boxes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", @@ -5172,6 +5511,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -5255,6 +5595,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/common-ancestor-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", @@ -5462,6 +5811,22 @@ "postcss": "^8.4" } }, + "node_modules/css-selector-parser": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-3.0.5.tgz", + "integrity": "sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, "node_modules/cssdb": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.6.0.tgz", @@ -5662,6 +6027,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, "node_modules/diff": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", @@ -5670,6 +6041,19 @@ "node": ">=0.3.1" } }, + "node_modules/direction": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz", + "integrity": "sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==", + "license": "MIT", + "bin": { + "direction": "cli.js" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", @@ -6185,6 +6569,18 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "node_modules/expressive-code": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/expressive-code/-/expressive-code-0.36.1.tgz", + "integrity": "sha512-/cEqiBUMJXe9PJ74MFupcChi1quO7+kqFcKiG/29yBZ6G09V4s6d3X53wIOBlNYmQI+5YLDPdyB/aDSTP+MxPA==", + "license": "MIT", + "dependencies": { + "@expressive-code/core": "^0.36.1", + "@expressive-code/plugin-frames": "^0.36.1", + "@expressive-code/plugin-shiki": "^0.36.1", + "@expressive-code/plugin-text-markers": "^0.36.1" + } + }, "node_modules/ext": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", @@ -6344,6 +6740,22 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -6387,15 +6799,16 @@ } }, "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/rawify" } }, "node_modules/fresh": { @@ -6499,6 +6912,26 @@ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==" }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -6510,6 +6943,15 @@ "node": ">= 6" } }, + "node_modules/glob/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/global": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", @@ -6932,18 +7374,6 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, - "node_modules/hast-util-raw/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/hast-util-raw/node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", @@ -6956,54 +7386,96 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-raw/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "node_modules/hast-util-raw/node_modules/vfile": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", + "integrity": "sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==", "dependencies": { "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-raw/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "node_modules/hast-util-raw/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "dependencies": { "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-raw/node_modules/vfile": { + "node_modules/hast-util-select": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", - "integrity": "sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==", + "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-6.0.2.tgz", + "integrity": "sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==", + "license": "MIT", "dependencies": { + "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" + "bcp-47-match": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "css-selector-parser": "^3.0.0", + "devlop": "^1.0.0", + "direction": "^2.0.0", + "hast-util-has-property": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "not": "^0.1.0", + "nth-check": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-raw/node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "node_modules/hast-util-select/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "@types/unist": "*" + } + }, + "node_modules/hast-util-select/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/hast-util-select/node_modules/hast-util-has-property": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz", + "integrity": "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-select/node_modules/hast-util-to-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.0.tgz", + "integrity": "sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" }, "funding": { "type": "opencollective", @@ -7046,15 +7518,15 @@ } }, "node_modules/hast-util-to-html": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.1.tgz", - "integrity": "sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz", + "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", - "hast-util-raw": "^9.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", @@ -7828,6 +8300,30 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/js-sha3": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", @@ -7956,6 +8452,278 @@ "node": ">=6" } }, + "node_modules/lightningcss": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.27.0.tgz", + "integrity": "sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==", + "license": "MPL-2.0", + "optional": true, + "peer": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.27.0", + "lightningcss-darwin-x64": "1.27.0", + "lightningcss-freebsd-x64": "1.27.0", + "lightningcss-linux-arm-gnueabihf": "1.27.0", + "lightningcss-linux-arm64-gnu": "1.27.0", + "lightningcss-linux-arm64-musl": "1.27.0", + "lightningcss-linux-x64-gnu": "1.27.0", + "lightningcss-linux-x64-musl": "1.27.0", + "lightningcss-win32-arm64-msvc": "1.27.0", + "lightningcss-win32-x64-msvc": "1.27.0" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.27.0.tgz", + "integrity": "sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.27.0.tgz", + "integrity": "sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.27.0.tgz", + "integrity": "sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.27.0.tgz", + "integrity": "sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.27.0.tgz", + "integrity": "sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.27.0.tgz", + "integrity": "sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.27.0.tgz", + "integrity": "sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.27.0.tgz", + "integrity": "sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.27.0.tgz", + "integrity": "sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.27.0.tgz", + "integrity": "sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "optional": true, + "peer": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, "node_modules/load-yaml-file": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", @@ -8006,6 +8774,27 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, "node_modules/log-symbols": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", @@ -8092,68 +8881,651 @@ "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", "dependencies": { - "format": "^0.2.0" + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.441.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.441.0.tgz", + "integrity": "sha512-0vfExYtvSDhkC2lqg0zYVW1Uu9GsI4knuV9GP9by5z0Xhc4Zi5RejTxfz9LsjRmCyWVzHCJvxGKZWcRyvQCWVg==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/markdown-to-jsx": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.2.1.tgz", + "integrity": "sha512-9HrdzBAo0+sFz9ZYAGT5fB8ilzTW+q6lPocRxrIesMO+aB40V9MgFfbfMXxlGjf22OpRy+IXlvVaQenicdpgbg==", + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "react": ">= 0.14.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdast-util-directive": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", + "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-directive/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-directive/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/mdast-util-directive/node_modules/mdast-util-from-markdown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-directive/node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-directive/node_modules/mdast-util-to-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", + "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-directive/node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-core-commonmark": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-subtokenize": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mdast-util-directive/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/mdast-util-directive/node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "node_modules/mdast-util-directive/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/markdown-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", - "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", - "engines": { - "node": ">=16" + "@types/unist": "^3.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/markdown-to-jsx": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.2.1.tgz", - "integrity": "sha512-9HrdzBAo0+sFz9ZYAGT5fB8ilzTW+q6lPocRxrIesMO+aB40V9MgFfbfMXxlGjf22OpRy+IXlvVaQenicdpgbg==", - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "react": ">= 0.14.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-find-and-replace": { @@ -8207,19 +9579,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-from-markdown": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", @@ -8875,33 +10234,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-footnote/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-gfm-strikethrough": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", @@ -9441,33 +10773,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-strikethrough/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-gfm-table": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", @@ -10009,33 +11314,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-table/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-gfm-task-list-item": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", @@ -10576,33 +11854,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-task-list-item/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-gfm/node_modules/@types/mdast": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", @@ -11128,33 +12379,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-mdx": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", @@ -11721,33 +12945,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-mdx-expression/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-mdx-jsx": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz", @@ -12305,33 +13502,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-mdx-jsx/node_modules/vfile-message": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", @@ -12870,33 +14040,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-mdx/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-mdxjs-esm": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", @@ -13447,33 +14590,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-mdxjs-esm/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-phrasing": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", @@ -13612,18 +14728,6 @@ } ] }, - "node_modules/mdast-util-to-hast/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-to-hast/node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", @@ -13636,33 +14740,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-hast/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-to-hast/node_modules/vfile": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", @@ -13709,6 +14786,35 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-to-string": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", @@ -13739,6 +14845,35 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-toc/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-toc/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -13788,29 +14923,143 @@ } ], "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" + "@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" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "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" + } + }, + "node_modules/micromark-extension-directive": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.1.tgz", + "integrity": "sha512-VGV2uxUzhEZmaP7NSFo2vtq7M2nUD+WfmYQD+d8i/1nHbzE+rMy9uzTvUybBbNiVbrhOZibg3gbyoARGqgDWyg==", + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "parse-entities": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", "funding": [ { "type": "GitHub Sponsors", @@ -13821,24 +15070,23 @@ "url": "https://opencollective.com/unified" } ], - "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" - } + "license": "MIT" + }, + "node_modules/micromark-extension-directive/node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm": { "version": "3.0.0", @@ -15970,6 +17218,21 @@ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -16132,6 +17395,17 @@ "buffer": "^5.5.0" } }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nano-json-stream-parser": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", @@ -16293,6 +17567,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/not": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz", + "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==" + }, "node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", @@ -16318,6 +17597,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/number-to-bn": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", @@ -16352,6 +17643,15 @@ "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -16401,6 +17701,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/oniguruma-to-js": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz", + "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==", + "license": "MIT", + "dependencies": { + "regex": "^4.3.2" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/ora": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ora/-/ora-8.0.1.tgz", @@ -16520,6 +17832,12 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "license": "BlueOak-1.0.0" + }, "node_modules/parse-entities": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", @@ -16645,6 +17963,37 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-to-regexp": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", @@ -16681,9 +18030,10 @@ } }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -16704,6 +18054,15 @@ "node": ">=6" } }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -17034,6 +18393,25 @@ "postcss": "^8.0.0" } }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, "node_modules/postcss-lab-function": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", @@ -17053,6 +18431,41 @@ "postcss": "^8.2" } }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, "node_modules/postcss-logical": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", @@ -17075,6 +18488,31 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, "node_modules/postcss-nesting": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", @@ -17270,9 +18708,10 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -17308,6 +18747,37 @@ "node": ">=18.12" } }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-astro": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.14.1.tgz", + "integrity": "sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.9.1", + "prettier": "^3.0.0", + "sass-formatter": "^0.7.6" + }, + "engines": { + "node": "^14.15.0 || >=16.0.0" + } + }, "node_modules/prismjs": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", @@ -17825,6 +19295,12 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, + "node_modules/regex": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/regex/-/regex-4.3.2.tgz", + "integrity": "sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==", + "license": "MIT" + }, "node_modules/rehype": { "version": "13.0.1", "resolved": "https://registry.npmjs.org/rehype/-/rehype-13.0.1.tgz", @@ -17858,6 +19334,44 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/rehype-autolink-headings/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-autolink-headings/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-expressive-code": { + "version": "0.36.1", + "resolved": "https://registry.npmjs.org/rehype-expressive-code/-/rehype-expressive-code-0.36.1.tgz", + "integrity": "sha512-q5TFftM8m64vYIou1tcJ2oHHDox2dWAa/x6uFw+v55xsyCNicJhVN86LHBnktTPxXvOuUA7ovk1GIG9sjLA6Aw==", + "license": "MIT", + "dependencies": { + "expressive-code": "^0.36.1" + } + }, "node_modules/rehype-parse": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.0.tgz", @@ -17946,6 +19460,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", @@ -18000,26 +19515,55 @@ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-slug": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-5.1.0.tgz", + "integrity": "sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==", + "dependencies": { + "@types/hast": "^2.0.0", + "github-slugger": "^2.0.0", + "hast-util-has-property": "^2.0.0", + "hast-util-heading-rank": "^2.0.0", + "hast-util-to-string": "^2.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-slug/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/rehype-slug": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-5.1.0.tgz", - "integrity": "sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==", + "node_modules/rehype-slug/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "license": "MIT", "dependencies": { - "@types/hast": "^2.0.0", - "github-slugger": "^2.0.0", - "hast-util-has-property": "^2.0.0", - "hast-util-heading-rank": "^2.0.0", - "hast-util-to-string": "^2.0.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0" + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", @@ -18195,6 +19739,97 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-directive": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", + "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-directive": "^3.0.0", + "micromark-extension-directive": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-directive/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-directive/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/remark-directive/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-directive/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-directive/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-directive/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-gfm": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", @@ -18784,33 +20419,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-gfm/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-gfm/node_modules/vfile": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", @@ -18996,18 +20604,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-smartypants/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-smartypants/node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", @@ -19020,33 +20616,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-smartypants/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-smartypants/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/remark-smartypants/node_modules/vfile": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", @@ -19342,50 +20911,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/retext-smartypants/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" - }, - "node_modules/retext-smartypants/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/retext-smartypants/node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/retext-smartypants/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/retext-stringify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", @@ -19614,6 +21139,13 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/s.color": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/s.color/-/s.color-0.0.15.tgz", + "integrity": "sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==", + "dev": true, + "license": "MIT" + }, "node_modules/sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", @@ -19665,6 +21197,16 @@ "node": ">=14.0.0" } }, + "node_modules/sass-formatter": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.7.9.tgz", + "integrity": "sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "suf-log": "^2.5.3" + } + }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", @@ -19898,11 +21440,16 @@ } }, "node_modules/shiki": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.12.1.tgz", - "integrity": "sha512-nwmjbHKnOYYAe1aaQyEBHvQymJgfm86ZSS7fT8OaPRr4sbAcBNz7PbfAikMEFSDQ6se2j2zobkXvVKcBOm0ysg==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.17.7.tgz", + "integrity": "sha512-Zf6hNtWhFyF4XP5OOsXkBTEx9JFPiN0TQx4wSe+Vqeuczewgk2vT4IZhF4gka55uelm052BD5BaHavNqUNZd+A==", + "license": "MIT", "dependencies": { - "@shikijs/core": "1.12.1", + "@shikijs/core": "1.17.7", + "@shikijs/engine-javascript": "1.17.7", + "@shikijs/engine-oniguruma": "1.17.7", + "@shikijs/types": "1.17.7", + "@shikijs/vscode-textmate": "^9.2.2", "@types/hast": "^3.0.4" } }, @@ -20023,9 +21570,33 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -20116,20 +21687,62 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/stringify-entities": { @@ -20159,6 +21772,28 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -20242,6 +21877,38 @@ } } }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/suf-log": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/suf-log/-/suf-log-2.5.3.tgz", + "integrity": "sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==", + "dev": true, + "license": "MIT", + "dependencies": { + "s.color": "0.0.15" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -20376,6 +22043,64 @@ "node": ">=8" } }, + "node_modules/tailwindcss": { + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.11.tgz", + "integrity": "sha512-qhEuBcLemjSJk5ajccN9xJFtM/h0AVCPaA6C92jNP+M2J8kX+eMJHI7R2HFKUvvAsMpcfLILMCFYSeDwpMmlUg==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/tailwindcss/node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/tar": { "version": "4.4.19", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", @@ -20404,6 +22129,55 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/terser": { + "version": "5.34.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", + "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", @@ -20479,6 +22253,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, "node_modules/tsconfck": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.1.tgz", @@ -20565,6 +22345,12 @@ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, "node_modules/unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", @@ -20695,22 +22481,23 @@ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, - "node_modules/unist-util-remove-position/node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", "dependencies": { - "@types/unist": "^3.0.0" + "@types/unist": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-remove-position/node_modules/unist-util-visit": { + "node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -20721,49 +22508,48 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-remove-position/node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "node_modules/unist-util-visit-children/node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" }, - "node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-visit-children": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", - "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", + "node_modules/unist-util-visit-parents/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/unist-util-visit-parents/node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -20772,18 +22558,19 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-visit-children/node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + "node_modules/unist-util-visit/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" }, - "node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "node_modules/unist-util-visit/node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -21638,6 +23425,98 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", @@ -21744,6 +23623,18 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, + "node_modules/yaml": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", diff --git a/package.json b/package.json index c1fde10a1..0cb0d473e 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,11 @@ "dependencies": { "@astrojs/markdown-remark": "^5.2.0", "@astrojs/mdx": "^3.1.3", + "@astrojs/partytown": "^2.1.2", "@astrojs/react": "^3.6.2", "@astrojs/sitemap": "^3.1.6", + "@astrojs/tailwind": "^5.1.0", + "@docsearch/react": "^3.6.1", "@headlessui/react": "^1.7.2", "@redux-devtools/extension": "^3.2.3", "@typeform/embed-react": "^1.21.0", @@ -26,10 +29,14 @@ "@types/react-dom": "^18.2.6", "algoliasearch": "^4.20.0", "astro": "^4.13.3", + "astro-expressive-code": "^0.36.1", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", "crypto": "^1.0.1", "gray-matter": "^4.0.3", "instantsearch.js": "^4.56.9", "lodash": "^4.17.21", + "lucide-react": "^0.441.0", "markdown-to-jsx": "^7.1.7", "next": "^14.1.1", "next-secure-headers": "^2.2.0", @@ -44,16 +51,23 @@ "react-syntax-highlighter": "^15.5.0", "redux": "^4.2.1", "rehype-autolink-headings": "^6.1.1", + "rehype-raw": "^7.0.0", "rehype-slug": "^5.1.0", "remark": "^14.0.3", + "remark-directive": "^3.0.0", "remark-toc": "^8.0.1", "remove-markdown": "^0.5.0", "sass": "^1.63.6", "sharp": "^0.33.5", "strip-markdown": "^5.0.1", + "tailwindcss": "^3.4.11", + "unist-util-visit": "^5.0.0", "web3": "^1.8.0" }, "devDependencies": { - "dart-linkcheck": "^2.0.15" + "@tailwindcss/typography": "^0.5.15", + "dart-linkcheck": "^2.0.15", + "prettier": "^3.3.3", + "prettier-plugin-astro": "^0.14.1" } } diff --git a/public/backgrounds/404/grid-1.svg b/public/backgrounds/404/grid-1.svg new file mode 100644 index 000000000..0ba984986 --- /dev/null +++ b/public/backgrounds/404/grid-1.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/backgrounds/404/grid-2.svg b/public/backgrounds/404/grid-2.svg new file mode 100644 index 000000000..c0caf3778 --- /dev/null +++ b/public/backgrounds/404/grid-2.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/backgrounds/worldmapdark.webp b/public/backgrounds/worldmapdark.webp new file mode 100644 index 0000000000000000000000000000000000000000..165a3bf20c9e69b70eaeb66e0aa77e3a7a6b1303 GIT binary patch literal 157010 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%0D2hN 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 O3or@nbbH=Q6bS&+`fViu literal 0 HcmV?d00001 diff --git a/public/images/assets/amplifier_diagram-light.svg b/public/images/assets/amplifier_diagram-light.svg new file mode 100644 index 000000000..38b7772f0 --- /dev/null +++ b/public/images/assets/amplifier_diagram-light.svg @@ -0,0 +1,398 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DESTINATION CHAIN + \ No newline at end of file diff --git a/public/images/assets/amplifier_diagram.svg b/public/images/assets/amplifier_diagram.svg index 999ea252c..7d03c829e 100644 --- a/public/images/assets/amplifier_diagram.svg +++ b/public/images/assets/amplifier_diagram.svg @@ -1,29 +1,410 @@ - - - - - - - - Source ChainYour DappcallContract()External Gatewayemit ContractCall()Relayer SrcDestination Chainexecute()validateContractCall()External GatewayConfirm msg has gone through Amplifier flowYour Dapp_execute(gmpMsg)Relayer DestAxelar NetworkInternal GatewaySrcVoting VerifierExternalVerifierExternalVerifierExternalVerifierRouterInternal GatewayDestMultisig ProverMultisigExternalVerifierExternalVerifierExternalVerifier14. getProof()6. Route incoming msg7. Check if msg verified5. Quorom reached1. Verify msg2. Create new poll3. Vote on poll8. Route9. Get routed msg fromgateway 11. Trigger signing session13. Emit signingcompleted12. Submit signature10. Construct Proof \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DESTINATION CHAIN + \ No newline at end of file diff --git a/public/images/assets/evm-relayer-flow-light.svg b/public/images/assets/evm-relayer-flow-light.svg new file mode 100644 index 000000000..755cc0cff --- /dev/null +++ b/public/images/assets/evm-relayer-flow-light.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/evm-relayer-flow.svg b/public/images/assets/evm-relayer-flow.svg new file mode 100644 index 000000000..2d93a5360 --- /dev/null +++ b/public/images/assets/evm-relayer-flow.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/express-light.svg b/public/images/assets/express-light.svg new file mode 100644 index 000000000..76fabc60e --- /dev/null +++ b/public/images/assets/express-light.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/express.svg b/public/images/assets/express.svg new file mode 100644 index 000000000..59a22ef67 --- /dev/null +++ b/public/images/assets/express.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/general-message-overview-light.svg b/public/images/assets/general-message-overview-light.svg new file mode 100644 index 000000000..4f16b5639 --- /dev/null +++ b/public/images/assets/general-message-overview-light.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/general-message-overview.svg b/public/images/assets/general-message-overview.svg new file mode 100644 index 000000000..d0312e99b --- /dev/null +++ b/public/images/assets/general-message-overview.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/network-flow-light.svg b/public/images/assets/network-flow-light.svg new file mode 100644 index 000000000..34e9d4546 --- /dev/null +++ b/public/images/assets/network-flow-light.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/network-flow.svg b/public/images/assets/network-flow.svg new file mode 100644 index 000000000..25bf7e160 --- /dev/null +++ b/public/images/assets/network-flow.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/nolus.svg b/public/images/assets/nolus.svg new file mode 100644 index 000000000..a1b79ed88 --- /dev/null +++ b/public/images/assets/nolus.svg @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/public/images/assets/verifier-light.svg b/public/images/assets/verifier-light.svg new file mode 100644 index 000000000..b4dd1b83b --- /dev/null +++ b/public/images/assets/verifier-light.svg @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/verifier.svg b/public/images/assets/verifier.svg new file mode 100644 index 000000000..4e03866c7 --- /dev/null +++ b/public/images/assets/verifier.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/voting-flow-light.svg b/public/images/assets/voting-flow-light.svg new file mode 100644 index 000000000..7b699167f --- /dev/null +++ b/public/images/assets/voting-flow-light.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/assets/voting-flow.svg b/public/images/assets/voting-flow.svg new file mode 100644 index 000000000..8a2eea8a5 --- /dev/null +++ b/public/images/assets/voting-flow.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/its-deployment-diagram-light.svg b/public/images/its-deployment-diagram-light.svg new file mode 100644 index 000000000..74d45318d --- /dev/null +++ b/public/images/its-deployment-diagram-light.svg @@ -0,0 +1,468 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + target="_blank" + + + target="_blank" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/its-deployment-diagram.svg b/public/images/its-deployment-diagram.svg index 3f15f0fe1..7cc09b63a 100644 --- a/public/images/its-deployment-diagram.svg +++ b/public/images/its-deployment-diagram.svg @@ -1,4 +1,470 @@ - - - -
Ethereum
1. registerCanonicalInterchainToken()
5. deployRemoteCanonicalInterchainToken
2. deployTokenManager()
Interchain Token Factory
Lock/Unlock
Token Manager
Axelar Gateway
Axelar Gas Service
10. execute()
9. Mark tx approved
Axelar Relayer
Avalanche
11. Confirm approved by Axelar
13. deployInterchainToken()
15. deployTokenManager()
Interchain Token Service
- 75 Validators consensus
- Validators mark msg as approved
- Validators generate unique key to sign-off on tx 

Axelar Network
12. true
Axelar Gateway
InterchainTokenId
6. deployInterchainToken()
Interchain Token Factory
3. deployTokenManager()
Interchain Token Service
4. Register tokenId
8. callContract()
7. payNativeGasForContractCall()
Interchain Token Factory
14. create3()
Interchain Token Deployer
InterchainToken
16. create3()
Interchain Token Deployer
Mint/Burn Token Manager
Paired With
\ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/its-transfer-light.svg b/public/images/its-transfer-light.svg new file mode 100644 index 000000000..385256e7f --- /dev/null +++ b/public/images/its-transfer-light.svg @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/its-transfer.svg b/public/images/its-transfer.svg index 2acf2ceb0..fea280123 100644 --- a/public/images/its-transfer.svg +++ b/public/images/its-transfer.svg @@ -1,4 +1,349 @@ - - - -
2. transmitInterchainTransfer()
ERC20
Ethereum
1. interchainTransfer()

Sender
3. Lock
Token
4. payGas()
5. callContract()
Interchain Token Service
Token Manager
Axelar Gateway
Axelar Gas Service
7. execute()
6. Mark tx 
approved
Axelar Relayer
Avalanche
8. Confirm call approved
by Axelar Network
10. giveToken()
Interchain Token Service
- 75 Validator consensus
- Validators mark msg as approved
- Validators generate unique key to signoff on tx 

Axelar Blockchain
9. true
Axelar Gateway
11. Increment flow 
added
12. mint()
Token Manager
Flow Limit
Token

Receiver
\ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/learn-security-decentralization-light.svg b/public/images/learn-security-decentralization-light.svg new file mode 100644 index 000000000..7ce51b8ec --- /dev/null +++ b/public/images/learn-security-decentralization-light.svg @@ -0,0 +1,497 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/learn-security-decentralization.svg b/public/images/learn-security-decentralization.svg new file mode 100644 index 000000000..5aa5f429c --- /dev/null +++ b/public/images/learn-security-decentralization.svg @@ -0,0 +1,495 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/learn-security-quadratic-voting-light.svg b/public/images/learn-security-quadratic-voting-light.svg new file mode 100644 index 000000000..6e37323f6 --- /dev/null +++ b/public/images/learn-security-quadratic-voting-light.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/learn-security-quadratic-voting.svg b/public/images/learn-security-quadratic-voting.svg new file mode 100644 index 000000000..c7b88c241 --- /dev/null +++ b/public/images/learn-security-quadratic-voting.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/learn-tech-stack-light.svg b/public/images/learn-tech-stack-light.svg new file mode 100644 index 000000000..b79bb17cf --- /dev/null +++ b/public/images/learn-tech-stack-light.svg @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/images/learn-tech-stack.svg b/public/images/learn-tech-stack.svg new file mode 100644 index 000000000..0ab1ad36e --- /dev/null +++ b/public/images/learn-tech-stack.svg @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/callout.tsx b/src/components/callout.tsx index 6bcb8d6e4..8497c74a1 100644 --- a/src/components/callout.tsx +++ b/src/components/callout.tsx @@ -1,15 +1,34 @@ -import React from 'react' +import clsx from "clsx"; interface CalloutProps { - children: any; - type: ''|'warning'|'error'; - emoji?: string; -}; + children: any; + type: "" | "warning" | "error"; + emoji?: string; + render?: "md" | "html"; + longConent?: boolean; +} // https://www.notion.so/Callout-blocks-5b2638247b54447eb2e21145f97194b0 -export const Callout = ({ children, type = 'warning', emoji = '💡' }:CalloutProps) => { - - return

-
{emoji}
-
{children}
-
-} \ No newline at end of file +export const Callout = ({ + children, + type = "warning", + emoji = "💡", + render = "html", + longConent = false, +}: CalloutProps) => { + return ( +
+
{emoji}
+
+

{emoji}

+
p]:my-0 ")}> + {children} +
+
+
+ ); +}; diff --git a/src/components/chainlist.jsx b/src/components/chainlist.jsx index 8cb57fde6..6eece6075 100644 --- a/src/components/chainlist.jsx +++ b/src/components/chainlist.jsx @@ -1,7 +1,13 @@ -import { useState, useEffect, useMemo } from 'react' -import { mainnet as mainnetEvmMetadata, testnet as testnetEvmMetadata } from "../../src/data/evm_chains.json" -import { mainnet as mainnetCosmosMetadata, testnet as testnetCosmosMetadata } from "../../src/data/cosmos_chains.json" -import AddKeplr from "./keplr" +import { useState, useEffect, useMemo } from "react"; +import { + mainnet as mainnetEvmMetadata, + testnet as testnetEvmMetadata, +} from "../../src/data/evm_chains.json"; +import { + mainnet as mainnetCosmosMetadata, + testnet as testnetCosmosMetadata, +} from "../../src/data/cosmos_chains.json"; +import AddKeplr from "./keplr"; function ChainListRow({ chainId, name, identifier, environment }) { return ( @@ -13,85 +19,93 @@ function ChainListRow({ chainId, name, identifier, environment }) { - ) + ); } - const createChainIndex = (chains) => { const index = new Map(); for (const chain of chains) { if (index.has(chain.chain_id)) { - console.error(`duplicate chain ${chain.chain_id}. Removing to be safe`) - index.delete(chain.chain_id) + console.error(`duplicate chain ${chain.chain_id}. Removing to be safe`); + index.delete(chain.chain_id); } - index.set(chain.network_id, chain) + index.set(chain.network_id, chain); } - return index -} + return index; +}; export default ({ environment }) => { const chainIndex = useMemo(() => { switch (environment) { case `mainnet`: - return createChainIndex([...mainnetEvmMetadata, ...mainnetCosmosMetadata]) + return createChainIndex([ + ...mainnetEvmMetadata, + ...mainnetCosmosMetadata, + ]); case `testnet`: - return createChainIndex([...testnetEvmMetadata, ...testnetCosmosMetadata]) + return createChainIndex([ + ...testnetEvmMetadata, + ...testnetCosmosMetadata, + ]); default: - console.error(`invalid environment ${environment}`) - return null + console.error(`invalid environment ${environment}`); + return null; } }, [environment]); - const [fetching, setFetching] = useState(false) - const [response, setResponse] = useState(null) - const [error, setError] = useState(null) + const [fetching, setFetching] = useState(false); + const [response, setResponse] = useState(null); + const [error, setError] = useState(null); useEffect(() => { if (!response) request(); - }, [response]) + }, [response]); const request = async () => { + setFetching(true); - setFetching(true) - - const endpoint_url = environment === `testnet` - ? `https://lcd-axelar-testnet.imperator.co/axelar/nexus/v1beta1/chains?status=1` - : `https://lcd-axelar.imperator.co/axelar/nexus/v1beta1/chains?status=1`; + const endpoint_url = + environment === `testnet` + ? `https://lcd-axelar-testnet.imperator.co/axelar/nexus/v1beta1/chains?status=1` + : `https://lcd-axelar.imperator.co/axelar/nexus/v1beta1/chains?status=1`; fetch(endpoint_url) - .then(data => data.json()) - .then(chains => setResponse(chains)) - .catch(error => setError(true)) - .finally(() => setFetching(false)) - } + .then((data) => data.json()) + .then((chains) => setResponse(chains)) + .catch((error) => setError(true)) + .finally(() => setFetching(false)); + }; const tableRowData = useMemo(() => { - if (!response) return null + if (!response) return null; return response.chains.map((chainIdentifier, idx) => { - const chainData = chainIndex.get(chainIdentifier) + const chainData = chainIndex.get(chainIdentifier); if (!chainData) { - console.error(`chain ${chainIdentifier} not found in chain index`) - return null + console.error(`chain ${chainIdentifier} not found in chain index`); + return null; } - return + return ( + + ); }); - }, [response, environment]) + }, [response, environment]); if (fetching) - return
- Fetching active chains... -
+ return
Fetching active chains...
; if (error) - return
- Error loading chains. Please refresh this page. -
+ return ( +
+ Error loading chains. Please refresh this page. +
+ ); return (
@@ -104,10 +118,8 @@ export default ({ environment }) => { Add Chain - - {tableRowData} - + {tableRowData}
- ) -} \ No newline at end of file + ); +}; diff --git a/src/components/docs/Search.tsx b/src/components/docs/Search.tsx new file mode 100644 index 000000000..13b209390 --- /dev/null +++ b/src/components/docs/Search.tsx @@ -0,0 +1,22 @@ +import "@docsearch/css"; +import { DocSearch } from "@docsearch/react"; +import "../../styles/global.css"; +const Search = () => { + return ( + ( +
+ {children} + + )} + /> + ); +}; + +export default Search; diff --git a/src/components/docs/table-of-contents.tsx b/src/components/docs/table-of-contents.tsx new file mode 100644 index 000000000..4690eb3d4 --- /dev/null +++ b/src/components/docs/table-of-contents.tsx @@ -0,0 +1,107 @@ +import type { TocItem } from "@/lib/generateToc"; +import clsx from "clsx"; +import { useEffect, useState } from "react"; + +interface Props { + toc: TocItem[]; + labels: { + onThisPage: string; + }; +} + +const TableOfContents = ({ toc = [], labels }: Props) => { + const [currentHeading, setCurrentHeading] = useState({ + slug: toc[0].slug, + text: toc[0].text, + }); + + useEffect(() => {}, [currentHeading]); + + const onThisPageID = "on-this-page-heading"; + + useEffect(() => { + const setCurrent: IntersectionObserverCallback = (entries) => { + for (const entry of entries) { + if (entry.isIntersecting) { + const { id } = entry.target; + if (id === onThisPageID) continue; + + setCurrentHeading({ + slug: entry.target.id, + text: entry.target.textContent || "", + }); + break; + } + } + }; + + const observerOptions: IntersectionObserverInit = { + rootMargin: "-100px 0% -66%", + threshold: 1, + }; + + const headingsObserver = new IntersectionObserver( + setCurrent, + observerOptions, + ); + + document + .querySelectorAll("article :is(h1,h2, h3)") + .forEach((h) => headingsObserver.observe(h)); + + return () => headingsObserver.disconnect(); + }, []); + + const onLinkClick = (e: any) => { + setCurrentHeading({ + slug: e.currentTarget.getAttribute("href")!.replace("#", ""), + text: e.currentTarget.textContent || "", + }); + }; + + const TableOfContentsItem = ({ heading }: { heading: TocItem }) => { + const { depth, slug, text, children } = heading; + + return ( +
  • + + {text} + + {children && children?.length > 0 ? ( +
      + {children.map((heading) => ( + + ))} +
    + ) : null} +
  • + ); + }; + + return ( + <> +
      + {toc.map((heading2) => ( + + ))} +
    + + ); +}; + +export default TableOfContents; diff --git a/src/components/dropdown.jsx b/src/components/dropdown.jsx index 58bc1eb43..d2db267ce 100644 --- a/src/components/dropdown.jsx +++ b/src/components/dropdown.jsx @@ -1,13 +1,14 @@ -import { Fragment, useState, useEffect } from "react"; -import _ from "lodash"; import { Menu, Transition } from "@headlessui/react"; +import _ from "lodash"; +import { Fragment, useEffect, useState } from "react"; -import { equals_ignore_case } from "../utils"; -import evm_chains from "../data/evm_chains.json"; +import { ChevronDown } from "lucide-react"; import cosmos_chains from "../data/cosmos_chains.json"; import evm_assets from "../data/evm_assets.json"; -import ibc_assets from "../data/ibc_assets.json"; +import evm_chains from "../data/evm_chains.json"; import gateways from "../data/gateways.json"; +import ibc_assets from "../data/ibc_assets.json"; +import { equals_ignore_case } from "../utils"; const data = { evm_chains, @@ -62,16 +63,16 @@ export default ({ case "chains": _options = _.concat( data.evm_chains?.[environment].filter((c) => !c?.is_staging) || [], - data.cosmos_chains?.[environment] || [] + data.cosmos_chains?.[environment] || [], ); break; case "assets": _options = _.uniqBy( _.concat( data.evm_assets?.[environment] || [], - data.ibc_assets?.[environment] || [] + data.ibc_assets?.[environment] || [], ), - "id" + "id", ); break; default: @@ -89,36 +90,38 @@ export default ({ options?.find((o) => o?.id === selectedKey) || selectedKey; return ( - + {({ open }) => ( <> -
    - - {selectedData ? ( -
    - {selectedData.image && ( - - )} - {selectedData.name} -
    - ) : selectedData === "" ? ( - {allOptionsName} - ) : ( - placeholder || "Select Options" - )} - {open ? ( - - ) : ( - - )} -
    -
    + +
    +
    +
    +
    + {selectedData ? ( +
    + {selectedData.image && ( + + )} + + {selectedData.name} + +
    + ) : selectedData === "" ? ( + {allOptionsName} + ) : ( + placeholder || "Select Options" + )} + + + + - {hasAllOptions && ( - - {({ active }) => ( -
    { - setSelectedKey(""); - if (onSelect) { - onSelect(""); - } - }} - className={`${ - active - ? "bg-gray-100 dark:bg-gray-900 text-dark dark:text-white" - : "text-gray-800 dark:text-gray-200" - } ${ - selectedKey === "" - ? "font-bold" - : active + {hasAllOptions && ( + + {({ active }) => ( +
    { + setSelectedKey(""); + if (onSelect) { + onSelect(""); + } + }} + className={`${ + active + ? "bg-gray-100 dark:bg-gray-900 text-dark dark:text-white" + : "text-gray-800 dark:text-gray-200" + } ${ + selectedKey === "" + ? "font-bold" + : active ? "font-semibold" : "font-medium" - } cursor-pointer flex items-center text-sm space-x-2 py-2 px-4`} - > - {allOptionsName} -
    - )} -
    - )} - {options?.map((o, i) => ( - - {({ active }) => ( -
    { - setSelectedKey(o.id); - if (onSelect) { - onSelect(options?.find((_o) => _o?.id === o.id)); - } - }} - className={`dropdown-menu-item ${ - active - ? "bg-gray-100 dark:bg-gray-900 text-dark dark:text-white" - : "text-gray-800 dark:text-gray-200" - } ${ - selectedKey === o.id - ? "font-bold" - : active + } cursor-pointer flex items-center text-sm space-x-2 py-2 px-4`} + > + {allOptionsName} +
    + )} +
    + )} + {options?.map((o, i) => ( + + {({ active }) => ( +
    { + setSelectedKey(o.id); + if (onSelect) { + onSelect(options?.find((_o) => _o?.id === o.id)); + } + }} + className={`dropdown-menu-item ${ + active + ? "bg-gray-100 dark:bg-gray-900 text-dark dark:text-white" + : "text-gray-800 dark:text-gray-200" + } ${ + selectedKey === o.id + ? "font-bold" + : active ? "font-semibold" : "font-medium" - } cursor-pointer flex items-center text-sm space-x-2 py-2 px-4`} - > - {o.image && ( - - )} - {o.name} -
    - )} -
    - ))} + } cursor-pointer flex items-center text-sm space-x-2 py-2 px-4`} + > + {o.image && ( + + )} + {o.name} +
    + )} +
    + ))}
    diff --git a/src/components/evm/assets.jsx b/src/components/evm/assets.jsx index 3e3f1608b..7b8a590c5 100644 --- a/src/components/evm/assets.jsx +++ b/src/components/evm/assets.jsx @@ -1,11 +1,11 @@ import { useState } from "react"; +import evm_assets from "../../data/evm_assets.json"; +import evm_chains from "../../data/evm_chains.json"; +import { ellipse, equals_ignore_case } from "../../utils"; +import Copy from "../copy"; import Dropdown from "../dropdown"; import AddToken from "../web3"; -import Copy from "../copy"; -import { ellipse, equals_ignore_case } from "../../utils"; -import evm_chains from "../../data/evm_chains.json"; -import evm_assets from "../../data/evm_assets.json"; const COLUMNS = [ { id: "asset", title: "Symbol" }, @@ -27,8 +27,8 @@ export default ({ environment = "mainnet" }) => { const [chainData, setChainData] = useState(null); const [assetData, setAssetData] = useState( _evm_assets.find( - (a) => a?.id === (environment === "testnet" ? "uausdc" : "uusdc") - ) + (a) => a?.id === (environment === "testnet" ? "uausdc" : "uusdc"), + ), ); const assets = _evm_assets @@ -43,13 +43,13 @@ export default ({ environment = "mainnet" }) => { }; }) .filter( - (a) => !chainData || equals_ignore_case(a.chain, chainData.id) - ) || [] + (a) => !chainData || equals_ignore_case(a.chain, chainData.id), + ) || [], ); return ( -
    -
    +
    +
    { _evm_assets.findIndex( (a) => (!assetData || a?.id === assetData.id) && - a?.contracts?.findIndex((_c) => _c?.chain === c?.id) > -1 + a?.contracts?.findIndex((_c) => _c?.chain === c?.id) > -1, ) < 0 ) { setAssetData(""); @@ -83,8 +83,8 @@ export default ({ environment = "mainnet" }) => { />
    - - +
    + {COLUMNS.map((c, i) => ( + {COLUMNS.map((c, j) => ( + ); + })} + + ); + })} + +
    { scope="col" className={`${ c.id === "chain" ? "sticky-col" : "" - } border-none whitespace-nowrap font-bold py-3 px-4 ${ + } border-none whitespace-nowrap font-medium py-4 text-primary px-4 ${ c.headerClassName || "" }`} > @@ -108,7 +108,7 @@ export default ({ environment = "mainnet" }) => { const explorer_url = chain_data?.provider_params?.[0]?.blockExplorerUrls?.[0]; return ( -
    { ? j === 0 ? "rounded-bl-lg" : j === COLUMNS.length - 1 - ? "rounded-br-lg" - : "" + ? "rounded-br-lg" + : "" : "" - } border-none whitespace-nowrap py-3 px-4 ${ + } border-none bg-background-neutral whitespace-nowrap py-3 px-4 ${ c.className || "" }`} > @@ -177,7 +177,7 @@ export default ({ environment = "mainnet" }) => { href={`${explorer_url}/address/${address}`} target="_blank" rel="noopener noreferrer" - className="no-underline text-blue-500 dark:text-white font-medium" + className="no-underline text-primary hover:underline font-medium" > {ellipse(address, 16)} diff --git a/src/components/evm/chains.jsx b/src/components/evm/chains.jsx index effa22faf..19aa9bbd6 100644 --- a/src/components/evm/chains.jsx +++ b/src/components/evm/chains.jsx @@ -1,9 +1,9 @@ -import AddChain from "../web3"; -import Copy from "../copy"; -import { ellipse } from "../../utils"; import evm_chains from "../../data/evm_chains.json"; -import gateways from "../../data/gateways.json"; import gas_services from "../../data/gas_services.json"; +import gateways from "../../data/gateways.json"; +import { ellipse } from "../../utils"; +import Copy from "../copy"; +import AddChain from "../web3"; export default ({ environment = "mainnet" }) => { const _evm_chains = evm_chains?.[environment] || []; @@ -11,125 +11,109 @@ export default ({ environment = "mainnet" }) => { const _gas_services = gas_services?.[environment] || []; return ( -
    +
    {_evm_chains - .filter(c => !c?.is_staging) + .filter((c) => !c?.is_staging) .map((c, i) => { - const { - id, - chain_id, - network_id, - name, - provider_params, - image, - } = { ...c }; + const { id, chain_id, network_id, name, provider_params, image } = { + ...c, + }; const explorer_url = provider_params?.[0]?.blockExplorerUrls?.[0]; - const gateway_contract_address = _gateways.find(_c => _c?.id === id)?.address; - const gas_service_address = _gas_services.find(_c => _c?.id === id)?.address; + const gateway_contract_address = _gateways.find( + (_c) => _c?.id === id, + )?.address; + const gas_service_address = _gas_services.find( + (_c) => _c?.id === id, + )?.address; return ( -
    -
    -
    +
    +
    +
    {image && ( )}
    - + {name} - + Chain ID: {chain_id}
    - +
    -
    - - Chain Name: - -
    - +
    +
    + + Chain Name: + +
    + +
    -
    -
    - - Gateway Contract: - -
    - {gateway_contract_address ? - - {ellipse(gateway_contract_address, 14)} - - : - - - - - } - {gateway_contract_address && ( - - )} +
    + + Gateway Contract: + +
    + {gateway_contract_address ? ( + + {ellipse(gateway_contract_address, 14)} + + ) : ( + - + )} + {gateway_contract_address && ( + + )} +
    -
    -
    - - Gas Service Contract: - -
    - {gas_service_address ? - - {ellipse(gas_service_address, 14)} - - : - - - - - } - {gas_service_address && ( - - )} +
    + + Gas Service Contract: + +
    + {gas_service_address ? ( + + {ellipse(gas_service_address, 14)} + + ) : ( + + - + + )} + {gas_service_address && ( + + )} +
    ); - }) - } + })}
    ); -}; \ No newline at end of file +}; diff --git a/src/components/footer/footer.astro b/src/components/footer/footer.astro new file mode 100644 index 000000000..c90d75f87 --- /dev/null +++ b/src/components/footer/footer.astro @@ -0,0 +1,208 @@ +--- +import Logo from "../logo"; + +const socials = { + twitter: "https://twitter.com/axelar", + instagram: "https://t.me/axelarcommunity", + discord: "https://discord.com/invite/axelar-network", + facebook: "https://twitter.com/axelar", +}; + +const links = [ + { + title: "Learn", + items: [ + { + title: "Website", + href: "https://axelar.network", + }, + { + title: "Whitepaper", + href: "https://axelar.network/wp-content/uploads/2021/07/axelar_whitepaper.pdf", + }, + { + title: "Developer Blog", + href: "https://blog.axelar.dev", + }, + { + title: "Github", + href: "https://github.com/axelarnetwork", + }, + { + title: "Support", + href: "https://github.com/axelarnetwork/support/", + }, + ], + }, + { + title: "Community", + items: [ + { + title: "X (Twitter)", + href: "https://twitter.com/axelar", + }, + { + title: "Discord", + href: "https://discord.gg/aRZ3Ra6f7D", + }, + { + title: "Telegram", + href: "https://t.me/axelarcommunity", + }, + { + title: "Discussion", + href: "https://community.axelar.network/", + }, + ], + }, + { + title: "Others", + items: [ + { + title: "Developer Newsletter", + href: "https://dashboard.mailerlite.com/forms/215012/95435869033334492/share", + }, + { + title: "Bug Bounty", + href: "/resources/bug-bounty/", + }, + { + title: "Blog", + href: "https://axelar.network/blog", + }, + { + title: "Terms of Use", + href: "/terms-of-use/", + }, + ], + }, +]; +--- + +
    +
    +
    +
    + +

    + Empowering developers to build scalable,
    interchain dApps +

    +
    + +
    +
    + { + links.map((link) => ( +
    +

    {link.title}

    + +
    + )) + } +
    +
    +
    +
    + © {new Date().getFullYear()} Axelar Foundation. All Rights Reserved. +
    +
    +
    diff --git a/src/components/header/MobileNavigation.tsx b/src/components/header/MobileNavigation.tsx new file mode 100644 index 000000000..233d2d71b --- /dev/null +++ b/src/components/header/MobileNavigation.tsx @@ -0,0 +1,97 @@ +import clsx from "clsx"; +import { LayoutGrid, Menu, X } from "lucide-react"; +import React, { useEffect } from "react"; +import Logo from "../logo"; + +import { topLevelNav } from "@/layouts/navigation"; +import ThemeToggle from "../ui/theme-toggle"; + +const MobileNavigation = ({ + pathname, + children, +}: { + pathname: string; + children?: React.ReactNode; +}) => { + const [open, setOpen] = React.useState(false); + + useEffect(() => { + setOpen(false); + }, [pathname]); + + useEffect(() => { + if (open) { + document.body.style.overflow = "hidden"; + } else { + document.body.style.overflow = "auto"; + } + }, [open]); + return ( +
    + +
    +
    + +
    +
    + + + + + + +
    + +
    +
    +
    +
    + {topLevelNav.map((item) => { + return ( + + +

    {item.title}

    +
    + ); + })} +
    + {children} +
    +
    +
    + ); +}; + +export default MobileNavigation; diff --git a/src/components/header/header-logo.astro b/src/components/header/header-logo.astro new file mode 100644 index 000000000..0d9b28750 --- /dev/null +++ b/src/components/header/header-logo.astro @@ -0,0 +1,11 @@ +--- +import Logo from "../logo"; +--- + +
    + + Docs +
    diff --git a/src/components/header/header.astro b/src/components/header/header.astro new file mode 100644 index 000000000..abca1ebbd --- /dev/null +++ b/src/components/header/header.astro @@ -0,0 +1,63 @@ +--- +import { topLevelNav } from "@/layouts/navigation"; +import "@/styles/global.css"; +import Search from "../docs/Search"; +import RenderSidebar from "../sidebar/render-sidebar.astro"; +import ThemeToggle from "../ui/theme-toggle"; +import Logo from "./header-logo.astro"; +import MobileNavigation from "./MobileNavigation"; +--- + +
    + +
    diff --git a/src/components/ibc/channels.jsx b/src/components/ibc/channels.jsx index e09f7e313..224bcc01d 100644 --- a/src/components/ibc/channels.jsx +++ b/src/components/ibc/channels.jsx @@ -9,68 +9,74 @@ export default ({ environment = "mainnet" }) => { const _cosmos_chains = cosmos_chains?.[environment] || []; const _ibc_channels = ibc_channels?.[environment] || []; - const pairs = - Object.entries( - _.groupBy( - _ibc_channels.map(c => { - return { - ...c, - other_chain: _.head([c?.from, c?.to].filter(cid => cid && cid !== MAIN_CHAIN)), - }; - }), - "other_chain", - ) - ) - .map(([other_chain, channels]) => { - return { - chain_data: _cosmos_chains.find(c => c?.id === MAIN_CHAIN), - other_chain_data: _cosmos_chains.find(c => c?.id === other_chain), - channels, - }; - }); + const pairs = Object.entries( + _.groupBy( + _ibc_channels.map((c) => { + return { + ...c, + other_chain: _.head( + [c?.from, c?.to].filter((cid) => cid && cid !== MAIN_CHAIN), + ), + }; + }), + "other_chain", + ), + ).map(([other_chain, channels]) => { + return { + chain_data: _cosmos_chains.find((c) => c?.id === MAIN_CHAIN), + other_chain_data: _cosmos_chains.find((c) => c?.id === other_chain), + channels, + }; + }); return ( -
    +
    {pairs.map((p, i) => { - const { - chain_data, - other_chain_data, - channels, - } = { ...p }; + const { chain_data, other_chain_data, channels } = { ...p }; return (
    -
    +
    {chain_data?.image && ( )}
    - + {chain_data?.name} {chain_data?.network_id && ( - + {chain_data.network_id} )}
    -
    - - {channels.find(c => c?.from === chain_data?.id)?.channel_id} +
    + + {channels.find((c) => c?.from === chain_data?.id)?.channel_id} - - - {channels.find(c => c?.from === other_chain_data?.id)?.channel_id} + + + + + { + channels.find((c) => c?.from === other_chain_data?.id) + ?.channel_id + }
    @@ -78,17 +84,15 @@ export default ({ environment = "mainnet" }) => { )}
    - + {other_chain_data?.name} {other_chain_data?.network_id && ( - + {other_chain_data.network_id} )} @@ -99,4 +103,4 @@ export default ({ environment = "mainnet" }) => { })}
    ); -}; \ No newline at end of file +}; diff --git a/src/components/interchain-token-intro.astro b/src/components/interchain-token-intro.astro index 0a9137b52..b7ae48a50 100644 --- a/src/components/interchain-token-intro.astro +++ b/src/components/interchain-token-intro.astro @@ -1,7 +1,4 @@ --- -import Section from "../layouts/Section.astro"; -import { Callout } from "./callout"; - const title = "Interchain Tokens and the Interchain Token Service"; const cards = [ @@ -31,141 +28,31 @@ const cards = [ ]; --- - - - The Token Whitelisting for Squid Router form is now live! Download - the axelar-configs repo, install dependencies, and `npm run wizard` on the command line to - access the interactive form through the wizard. - - -

    {title}

    - - Web3 has gone cross-chain, with assets bridging between blockchains and - developers deploying applications on multiple chains. However, connecting tokens - that are deployed on multiple chains has always been a cumbersome process. - -
    -
    - - Interchain Tokens go beyond legacy bridges. The Interchain Token Service (ITS) allows ERC-20 tokens to be available on multiple blockchains. It preserves native - token qualities while allowing you to easily manage token features and token supply. - Interchain Tokens run on open-source code via smart contracts on a public blockchain - secured by a dynamic validator set. With ITS, you can have multiple blockchains - with canonical versions of your token that all share a single EVM address. - -
    -
    - - You can either create new Interchain Tokens from scratch or update tokens that - already exist on a supported blockchain. - - - -

    Key ITS Contract addresses

    - Interchain Token Service: 0xB5FB4BE02232B1bBA4dC8f81dc24C26980dE9e3C -
    - Interchain Token Factory: 0x83a93500d23Fbc3e82B410aD07A6a9F7A0670D66 - - - - - -
    - { - cards.map((card) => ( - -
    - {card.title} -
    -
    {card.description}
    - - Get Started{" "} - + { + cards.map((card) => ( + +
    -

    ITS Overview

    -

    The main functionalities of ITS can be broken down in the diagrams below. These are the ability to connect tokens across multiple blockchains and transfer connected tokens between multiple blockchains. Note: ITS is designed to be a flexible permisionless process, meaning that the way tokens are connected between the chains can vary for different usecases (see token managers for more info).

    -

    Deploy Interchain Token

    -

    ITS allows you to deploy Interchain Tokens. An Interchain Token is an ERC20 that is connected to ITS upon deployment. It comes built in with the interchainTransfer() function, which allows users to bridge their token between any blockchain which it is deployed to. To deploy this token you can go through the Interchain Token Factory contract. When you trigger the registerCanonicalInterchainToken() function that will trigger the flow of registering your custom token with a Lock/Unlock token manager type to your token's home chain. Now that you have registered your token on the home chain you can call the deployRemoteCanonicalInterchainToken(). This will deploy an Interchain Token on a different blockchain that will be connected to your canonical token on the home chain you registered when you called the previous function. Note: This is just one of many different flows you can choose to follow when interacting with ITS.

    - This diagram is interactive click on the function names! - - Your browser does not support SVG - -

    Interchain Transfer

    -

    Once your token is connected to ITS you can call the interchaintTransfer() function to send a cross chain transaction for your token. If your token inherits the Interchain Token Standard then you will have this function built into the token. The interchainTransfer() will trigger a flow that will interact with ITS to either lock or burn your token on the source chain (depending on the Token Manager type) and then mint your token on the destination chain.

    - This diagram is interactive click on the function names! - - Your browser does not support SVG - - - **NOTE:** The security of your token is limited to the security of the chains - it integrates with. Since blockchains can have different security practices, - we recommend doing due diligence on all chains your token will be deployed to. - - - + /> + +
    +

    {card.description}

    + + )) + } +
    diff --git a/src/components/keplr/addKeplrWallet.jsx b/src/components/keplr/addKeplrWallet.jsx index fcc9e2c46..7f71e00b4 100644 --- a/src/components/keplr/addKeplrWallet.jsx +++ b/src/components/keplr/addKeplrWallet.jsx @@ -4,7 +4,7 @@ export default ({ url, className, parentClassName, - onClick + onClick, }) => { buttonTitle = buttonTitle || title || "View"; className = `bg-blue-500 hover:bg-blue-600 dark:bg-blue-600 dark:hover:bg-blue-500 rounded-lg no-underline text-white font-semibold py-2 px-2 ${className || ""}`; @@ -12,7 +12,7 @@ export default ({ return (
    - {url ? + {url ? ( {buttonTitle} - : - - } + )}
    ); -}; \ No newline at end of file +}; diff --git a/src/components/keplr/index.jsx b/src/components/keplr/index.jsx index 3e1e14817..58e59f29a 100644 --- a/src/components/keplr/index.jsx +++ b/src/components/keplr/index.jsx @@ -7,7 +7,7 @@ export default ({ environment = "mainnet", chain }) => { alert(settings.chainId + " already added"); } catch (e) { console.log( - "Unable to connect to wallet natively, so trying experimental chain" + "Unable to connect to wallet natively, so trying experimental chain", ); try { await window.keplr.experimentalSuggestChain(settings); @@ -15,7 +15,7 @@ export default ({ environment = "mainnet", chain }) => { } catch (e2) { console.log( "and yet there is a problem in trying to do that too", - e2 + e2, ); } } @@ -23,7 +23,7 @@ export default ({ environment = "mainnet", chain }) => { if (error instanceof SyntaxError) { alert( "There was a syntax error. Please correct it and try again: " + - error.message + error.message, ); } else { throw error; diff --git a/src/components/logo.tsx b/src/components/logo.tsx new file mode 100644 index 000000000..55eea162b --- /dev/null +++ b/src/components/logo.tsx @@ -0,0 +1,45 @@ +import clsx from "clsx"; +import React from "react"; + +const Logo = ({ className }: { className?: string }) => { + const colors = [ + "group-hover:text-[#5068E0]", + "group-hover:text-[#AD4510]", + "group-hover:text-[#F22DCA]", + ]; + const [currentColor, setCurrentColor] = React.useState(colors[0]); + const [currentRotate, setCurrentRotate] = React.useState(0); + + return ( + { + setCurrentColor( + colors[(colors.indexOf(currentColor) + 1) % colors.length], + ); + setCurrentRotate(currentRotate + 90); + }} + className={clsx(className, "text-foreground group")} + > + + + + ); +}; + +export default Logo; diff --git a/src/components/resources/index.jsx b/src/components/resources/index.jsx index 76fce4665..f3879dffa 100644 --- a/src/components/resources/index.jsx +++ b/src/components/resources/index.jsx @@ -1,5 +1,5 @@ -import Copy from "../copy"; import resources from "../../data/resources.json"; +import Copy from "../copy"; const COLUMNS = [ { @@ -15,68 +15,72 @@ export default ({ environment = "mainnet" }) => { const _resources = resources?.[environment] || []; return ( - - - {_resources.map((r, i) => { - return ( - - {COLUMNS.map((c, j) => { - const { id, className } = { ...c }; +
    +
    + + {_resources.map((r, i) => { + return ( + + {COLUMNS.map((c, j) => { + const { id, className } = { ...c }; - const data = r?.[id]; + const data = r?.[id]; - return ( - - ); - })} - - ); - })} - -
    - {id === "value" ? ( -
    - {(data || []).map((v, k) => { - const { title, value } = { ...v }; + } border-none whitespace-nowrap py-3 px-4 ${ + className || "" + }`} + > + {id === "value" ? ( +
    + {(data || []).map((v, k) => { + const { title, value } = { ...v }; - const is_external = !value?.startsWith("/"); + const is_external = !value?.startsWith("/"); - return ( -
    - {title || value} - { - - } -
    - ); - })} -
    - ) : ( - data - )} -
    + return ( + + ); + })} +
    + ) : ( + data + )} +
    +
    ); }; diff --git a/src/components/sidebar/render-sidebar.astro b/src/components/sidebar/render-sidebar.astro new file mode 100644 index 000000000..d09e831c4 --- /dev/null +++ b/src/components/sidebar/render-sidebar.astro @@ -0,0 +1,94 @@ +--- +import { getNavigation } from "@/layouts/navigation"; +import clsx from "clsx"; +import { ChevronDown, LayoutGrid } from "lucide-react"; + +const { isMobile } = Astro.props; +const section = Astro.url.pathname?.match(/\/([^\/]*)\//)?.[1]; +const navigation = getNavigation(section); +--- + + diff --git a/src/components/sidebar/sidebar.astro b/src/components/sidebar/sidebar.astro new file mode 100644 index 000000000..8a9823317 --- /dev/null +++ b/src/components/sidebar/sidebar.astro @@ -0,0 +1,9 @@ +--- +import "@/styles/global.css"; + +import RenderSidebar from "./render-sidebar.astro"; + +const pathname = Astro.url.pathname; +--- + + diff --git a/src/components/static-copy.jsx b/src/components/static-copy.jsx index cba3cbd34..f25e4bc68 100644 --- a/src/components/static-copy.jsx +++ b/src/components/static-copy.jsx @@ -1,14 +1,7 @@ - -export default ({ - size = 18, - value, - hide, - className = "", -}) => { - - +export default ({ size = 18, value, hide, className = "" }) => { return (
    - {hide ? '' : value}
    + {hide ? "" : value} +
    ); -}; \ No newline at end of file +}; diff --git a/src/components/textarea.jsx b/src/components/textarea.jsx index 00efb708d..d01b4fefd 100644 --- a/src/components/textarea.jsx +++ b/src/components/textarea.jsx @@ -1,24 +1,27 @@ import { useState } from "react"; -const placeholder = '{"rpc":"https://axelartest-rpc.quickapi.com:443","rest":"https://axelartest-lcd.quickapi.com:443","chainId":"axelar-testnet-lisbon-3","chainName":"Axelar Testnet","stakeCurrency":{"coinDenom":"AXL","coinMinimalDenom":"uaxl","coinDecimals":6},"bech32Config":{"bech32PrefixAccAddr":"axelar","bech32PrefixAccPub":"axelarpub","bech32PrefixValAddr":"axelarvaloper","bech32PrefixValPub":"axelarvaloperpub","bech32PrefixConsAddr":"axelarvalcons","bech32PrefixConsPub":"axelarvalconspub"},"bip44":{"coinType":118},"currencies":[{"coinDenom":"AXL","coinMinimalDenom":"uaxl","coinDecimals":6}],"feeCurrencies":[{"coinDenom":"AXL","coinMinimalDenom":"uaxl","coinDecimals":6}],"gasPriceStep":{"low":0.05,"average":0.125,"high":0.2},"features":["stargate","no-legacy-stdTx","ibc-transfer"]}' +const placeholder = + '{"rpc":"https://axelartest-rpc.quickapi.com:443","rest":"https://axelartest-lcd.quickapi.com:443","chainId":"axelar-testnet-lisbon-3","chainName":"Axelar Testnet","stakeCurrency":{"coinDenom":"AXL","coinMinimalDenom":"uaxl","coinDecimals":6},"bech32Config":{"bech32PrefixAccAddr":"axelar","bech32PrefixAccPub":"axelarpub","bech32PrefixValAddr":"axelarvaloper","bech32PrefixValPub":"axelarvaloperpub","bech32PrefixConsAddr":"axelarvalcons","bech32PrefixConsPub":"axelarvalconspub"},"bip44":{"coinType":118},"currencies":[{"coinDenom":"AXL","coinMinimalDenom":"uaxl","coinDecimals":6}],"feeCurrencies":[{"coinDenom":"AXL","coinMinimalDenom":"uaxl","coinDecimals":6}],"gasPriceStep":{"low":0.05,"average":0.125,"high":0.2},"features":["stargate","no-legacy-stdTx","ibc-transfer"]}'; export default ({}) => { + const [value, setValue] = useState(placeholder); - const [value, setValue] = useState(placeholder); - - return <> - - + return ( + <> + + -}; \ No newline at end of file + ); +}; diff --git a/src/components/transfer-fee/calculator.jsx b/src/components/transfer-fee/calculator.jsx index 56e1a8ca7..4670ee4ba 100644 --- a/src/components/transfer-fee/calculator.jsx +++ b/src/components/transfer-fee/calculator.jsx @@ -1,11 +1,10 @@ import { useState } from "react"; -import Dropdown from "../dropdown"; -import Copy from "../copy"; -import evm_chains from "../../data/evm_chains.json"; import cosmos_chains from "../../data/cosmos_chains.json"; import evm_assets from "../../data/evm_assets.json"; +import evm_chains from "../../data/evm_chains.json"; import ibc_assets from "../../data/ibc_assets.json"; +import Dropdown from "../dropdown"; export default ({ environment = "mainnet" }) => { const _evm_chains = evm_chains?.[environment] || []; @@ -13,24 +12,35 @@ export default ({ environment = "mainnet" }) => { const _evm_assets = evm_assets?.[environment] || []; const _ibc_assets = ibc_assets?.[environment] || []; - const [assetData, setAssetData] = useState(_evm_assets.find(a => a?.id === (environment === "testnet" ? "uausdc" : "uusdc"))); - const [sourceChainData, setSourceChainData] = useState(_evm_assets.find(c => c?.id === "avalanche")); - const [destinationChainData, setDestinationChainData] = useState(_evm_assets.find(c => c?.id === "osmosis")); + const [assetData, setAssetData] = useState( + _evm_assets.find( + (a) => a?.id === (environment === "testnet" ? "uausdc" : "uusdc"), + ), + ); + const [sourceChainData, setSourceChainData] = useState( + _evm_assets.find((c) => c?.id === "avalanche"), + ); + const [destinationChainData, setDestinationChainData] = useState( + _evm_assets.find((c) => c?.id === "osmosis"), + ); - const getTransferFee = chain => { + const getTransferFee = (chain) => { let transfer_fee; if (chain && assetData?.id) { - const evm_chain_data = _evm_chains.find(c => c?.id === chain); - const cosmos_chain_data = _cosmos_chains.find(c => c?.id === chain); + const evm_chain_data = _evm_chains.find((c) => c?.id === chain); + const cosmos_chain_data = _cosmos_chains.find((c) => c?.id === chain); if (evm_chain_data) { - const asset_data = _evm_assets.find(a => a?.id === assetData.id); - transfer_fee = asset_data?.contracts?.find(c => c?.chain === chain)?.transfer_fee || - (asset_data?.contracts?.findIndex(c => c?.chain === chain) > -1 ? asset_data?.transfer_fee : null); - } - else if (cosmos_chain_data) { - const asset_data = _ibc_assets.find(a => a?.id === assetData.id); + const asset_data = _evm_assets.find((a) => a?.id === assetData.id); + transfer_fee = + asset_data?.contracts?.find((c) => c?.chain === chain) + ?.transfer_fee || + (asset_data?.contracts?.findIndex((c) => c?.chain === chain) > -1 + ? asset_data?.transfer_fee + : null); + } else if (cosmos_chain_data) { + const asset_data = _ibc_assets.find((a) => a?.id === assetData.id); transfer_fee = asset_data?.transfer_fee; } } @@ -40,73 +50,68 @@ export default ({ environment = "mainnet" }) => { const sourceTransferFee = getTransferFee(sourceChainData?.id); const destinationTransferFee = getTransferFee(destinationChainData?.id); - const totalFee = parseFloat((sourceTransferFee + destinationTransferFee).toFixed(6)); + const totalFee = parseFloat( + (sourceTransferFee + destinationTransferFee).toFixed(6), + ); return ( -
    -
    - - Asset - - setAssetData(a)} - className="min-w-max" - /> - - Fee - -
    -
    - - Source chain - - setSourceChainData(c)} - className="min-w-max" - /> - - {sourceTransferFee || 'N/A'} {assetData?.symbol} - -
    -
    - - + - -
    -
    - - Destination chain - - setDestinationChainData(c)} - className="min-w-max" - /> - - {destinationTransferFee || 'N/A'} {assetData?.symbol} - +
    +
    +
    + Asset + setAssetData(a)} + /> + + Fee + +
    +
    + Source chain + setSourceChainData(c)} + /> + + {sourceTransferFee || "N/A"} {assetData?.symbol} + +
    + +
    + + +
    +
    + Destination chain + setDestinationChainData(c)} + /> + + {destinationTransferFee || "N/A"} {assetData?.symbol} + +
    -
    -
    + +
    +
    +
    +
    +
    + Total - Total - - {totalFee} {assetData?.symbol}
    -
    ); -}; \ No newline at end of file +}; diff --git a/src/components/typeform.jsx b/src/components/typeform.jsx index 787fa6c37..b324e0dd7 100644 --- a/src/components/typeform.jsx +++ b/src/components/typeform.jsx @@ -6,7 +6,10 @@ import { SPENDING_TIME_SECONDS } from "../reducers/types"; export default () => { const dispatch = useDispatch(); - const { spending_time } = useSelector(state => ({ spending_time: state.spending_time }), shallowEqual); + const { spending_time } = useSelector( + (state) => ({ spending_time: state.spending_time }), + shallowEqual, + ); const { spending_time_seconds } = { ...spending_time }; useEffect(() => { @@ -21,17 +24,20 @@ export default () => { } }, [spending_time_seconds]); - return process.env.NEXT_PUBLIC_TYPEFORM_ID && spending_time_seconds < 1 && ( - + return ( + process.env.NEXT_PUBLIC_TYPEFORM_ID && + spending_time_seconds < 1 && ( + + ) ); -}; \ No newline at end of file +}; diff --git a/src/components/ui/NextPrevNav.astro b/src/components/ui/NextPrevNav.astro new file mode 100644 index 000000000..022db55d3 --- /dev/null +++ b/src/components/ui/NextPrevNav.astro @@ -0,0 +1,42 @@ +--- +import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react"; +import Button from "./button.astro"; + +const { nav } = Astro.props; +--- + +
    + { + nav.prevPage?.href ? ( + + + + ) : ( + "" + ) + } + + { + nav.nextPage?.href ? ( + + + + ) : ( + "" + ) + } +
    diff --git a/src/components/ui/button.astro b/src/components/ui/button.astro new file mode 100644 index 000000000..303b53061 --- /dev/null +++ b/src/components/ui/button.astro @@ -0,0 +1,37 @@ +--- +import { buttonCva, type variants } from "@/lib/cva/button"; +import clsx from "clsx"; +type Props = { + className?: string; + varient?: variants; + size?: "small" | "medium"; +}; + +const { className, varient = "primary", size = "medium" } = Astro.props; +--- + + diff --git a/src/components/ui/theme-toggle.tsx b/src/components/ui/theme-toggle.tsx new file mode 100644 index 000000000..6a64ad074 --- /dev/null +++ b/src/components/ui/theme-toggle.tsx @@ -0,0 +1,38 @@ +import { Moon, Sun } from "lucide-react"; +import { useEffect, useState } from "react"; + +const ThemeToggle = () => { + const [theme, setTheme] = useState("light"); + + useEffect(() => { + const localTheme = window.localStorage.getItem("theme"); + localTheme && setTheme(localTheme); + }, []); + + const toggleTheme = () => { + if (theme === "light") { + window.localStorage.setItem("theme", "dark"); + setTheme("dark"); + document.documentElement.classList.add("dark"); + } else { + window.localStorage.setItem("theme", "light"); + setTheme("light"); + document.documentElement.classList.remove("dark"); + } + }; + + return ( + + ); +}; + +export default ThemeToggle; diff --git a/src/components/ui/world-map.astro b/src/components/ui/world-map.astro new file mode 100644 index 000000000..9d9f1be7e --- /dev/null +++ b/src/components/ui/world-map.astro @@ -0,0 +1,19 @@ +--- +import { clsx } from "clsx"; +type Props = { + className?: string; +}; + +const { className } = Astro.props; +--- + +
    +
    + +
    +
    diff --git a/src/components/web3/index.jsx b/src/components/web3/index.jsx index 467e82cad..2cd88f107 100644 --- a/src/components/web3/index.jsx +++ b/src/components/web3/index.jsx @@ -1,9 +1,8 @@ -import { useState, useEffect } from "react"; +import { useEffect, useState } from "react"; import Web3 from "web3"; -import { equals_ignore_case } from "../../utils"; import evm_chains from "../../data/evm_chains.json"; -import { CHAIN_ID } from "../../reducers/types"; +import { equals_ignore_case } from "../../utils"; export default ({ environment = "mainnet", @@ -125,13 +124,13 @@ export default ({ } } }} - className={`add-to-metamask min-w-max bg-gray-100 dark:bg-gray-900 ${ + className={`add-to-metamask size-8 items-center justify-center flex bg-background ${ at_chain ? "" : "hover:bg-gray-200 dark:hover:bg-gray-800 cursor-pointer" - } rounded-lg flex items-center py-1.5 px-2`} + } rounded-full flex items-center `} > - + ); diff --git a/src/config/site.ts b/src/config/site.ts index 156fef03f..c6707340f 100644 --- a/src/config/site.ts +++ b/src/config/site.ts @@ -1 +1 @@ -export const GITHUB_EDIT_URL = `https://github.com/axelarnetwork/axelar-docs/tree/main/` \ No newline at end of file +export const GITHUB_EDIT_URL = `https://github.com/axelarnetwork/axelar-docs/tree/main/`; diff --git a/src/content/docs/controller/add-evm-chain.mdx b/src/content/docs/controller/add-evm-chain.mdx index c0e8ed137..e191fa322 100644 --- a/src/content/docs/controller/add-evm-chain.mdx +++ b/src/content/docs/controller/add-evm-chain.mdx @@ -1,13 +1,12 @@ # Add a new EVM chain -import { Callout } from '../../../components/callout' - - +import { Callout } from "../../../components/callout"; Learn how to add a new EVM chain to the Axelar network. - Example: For clarity, this article targets the Avalanche EVM chain. Substitute your own EVM chain as desired. + Example: For clarity, this article targets the Avalanche EVM chain. Substitute + your own EVM chain as desired. ## Prerequisites @@ -68,35 +67,50 @@ axelard q evm address avalanche --key-role secondary Register external governance keys for the new chain. - -
    
    -axelard tx tss register-external-keys avalanche --from controller \
    - --key avax-external-1:03e4da05dd2c4d1a75567fff2ade93de82ccca8701689ce42da40cebd4cc7a2423 \
    - --key avax-external-2:03dccf1720dafc44d6e47635b8f0e2705bd57346acce1f18238580461fd3c900ce \
    - --key avax-external-3:0383afc1b42f1dae34649ab70c4c3d67aa86db89fc1842cd697e3c2a574b433ab1 \
    - --key avax-external-4:02ad55f4054d47a13cfe2583693bf63a8f299ca33da936f7372a38070cbf5dbc93 \
    - --key avax-external-5:02e25f07aca8971908b7489b54d809401c34d1d5a817b521234ced5b75c056f2fd \
    - --key avax-external-6:023f39b9bfcead2854bab63f02880487553430a475ee0f3783c52ef98927cb37d7 \
    - --key avax-external-7:03e78bbe19444fe98a77b45c340998437fb902572747f8e44ea99b23dc1106e0d2 \
    - --key avax-external-8:0203ce85d1564ce9203b45ad6b93511c8daaa0927f31f3e8d53f18b51afc3f7a27
    -
    -
    - -
    
    -axelard tx tss register-external-keys avalanche --from controller \
    - --key avax-external-1:041bb2e070cdd8490500f673136f95d80bf4eb9ac6a85fe8fede6070515d75dfd51a7187318aeb17eb53e711a8ccc0939bbda30ac67836969b64422ef6831a6e2a \
    - --key avax-external-2:040626a1032fe1f76deb3b4f0cb5c68cc0e29264102111077691478d74eafcdc4c3938bb712b7d8cd15f9c72261432be19217f02e445d4caeb09d7a1abe793642e \
    - --key avax-external-3:04d8400ac69c6c919d6963a5da6403ba750f5d7859b0c00f1a6b9a2ce9cd663bf8a20af0351f0e6dbc7bc41040c06156d02b78f25fd6b9b54db03bd53e812b8577 \
    - --key avax-external-4:04ee60261b7fd4084b271618cefef4f9a4093338a1dfbeae2f4a18366a53a07dd0657f31fa38c2739885fbc9ee1e83e25b3fcda6581be8f82400c7d0a18eb79070 \
    - --key avax-external-5:04aebaae5d1c63bf527331ee9a75dbc727420f51bc557a78dd0d9a0227c42dad2d821c9a3b24ca75b558b3c333cb8e4acaa4fb174a07ebd8268c6a43b83e04ffdc \
    - --key avax-external-6:04900ccd93432b25f4758f8d702bfd91e6192b0931345baafa50328185300a4cd0e392398612f5394fd6026f06fa73fb42a4f43ced2fa5ef326e5d658fd90113d3 \
    - --key avax-external-7:04761c872fd2c9c501e75ba3ef8fd65ed4d0f1e7ba60901f758b26645ee3621256a65df63f10b009f1f0e458e7cdb69737098cc30e99cf41887d7adc24c9492729 \
    - --key avax-external-8:044202188712caa9c047caaa01eb2a97f631b5ffb0ac1e2de40609c89137d7992a07d7b6c48cb69eee0323855377582a5601008a1190ca6c2b37316c2aead28bfd
    -
    -
    + + ```bash + axelard tx tss register-external-keys avalanche --from controller \ + --key + avax-external-1:03e4da05dd2c4d1a75567fff2ade93de82ccca8701689ce42da40cebd4cc7a2423 + \ --key + avax-external-2:03dccf1720dafc44d6e47635b8f0e2705bd57346acce1f18238580461fd3c900ce + \ --key + avax-external-3:0383afc1b42f1dae34649ab70c4c3d67aa86db89fc1842cd697e3c2a574b433ab1 + \ --key + avax-external-4:02ad55f4054d47a13cfe2583693bf63a8f299ca33da936f7372a38070cbf5dbc93 + \ --key + avax-external-5:02e25f07aca8971908b7489b54d809401c34d1d5a817b521234ced5b75c056f2fd + \ --key + avax-external-6:023f39b9bfcead2854bab63f02880487553430a475ee0f3783c52ef98927cb37d7 + \ --key + avax-external-7:03e78bbe19444fe98a77b45c340998437fb902572747f8e44ea99b23dc1106e0d2 + \ --key + avax-external-8:0203ce85d1564ce9203b45ad6b93511c8daaa0927f31f3e8d53f18b51afc3f7a27 + ``` + + + ```bash + axelard tx tss register-external-keys avalanche --from controller \ + --key + avax-external-1:041bb2e070cdd8490500f673136f95d80bf4eb9ac6a85fe8fede6070515d75dfd51a7187318aeb17eb53e711a8ccc0939bbda30ac67836969b64422ef6831a6e2a + \ --key + avax-external-2:040626a1032fe1f76deb3b4f0cb5c68cc0e29264102111077691478d74eafcdc4c3938bb712b7d8cd15f9c72261432be19217f02e445d4caeb09d7a1abe793642e + \ --key + avax-external-3:04d8400ac69c6c919d6963a5da6403ba750f5d7859b0c00f1a6b9a2ce9cd663bf8a20af0351f0e6dbc7bc41040c06156d02b78f25fd6b9b54db03bd53e812b8577 + \ --key + avax-external-4:04ee60261b7fd4084b271618cefef4f9a4093338a1dfbeae2f4a18366a53a07dd0657f31fa38c2739885fbc9ee1e83e25b3fcda6581be8f82400c7d0a18eb79070 + \ --key + avax-external-5:04aebaae5d1c63bf527331ee9a75dbc727420f51bc557a78dd0d9a0227c42dad2d821c9a3b24ca75b558b3c333cb8e4acaa4fb174a07ebd8268c6a43b83e04ffdc + \ --key + avax-external-6:04900ccd93432b25f4758f8d702bfd91e6192b0931345baafa50328185300a4cd0e392398612f5394fd6026f06fa73fb42a4f43ced2fa5ef326e5d658fd90113d3 + \ --key + avax-external-7:04761c872fd2c9c501e75ba3ef8fd65ed4d0f1e7ba60901f758b26645ee3621256a65df63f10b009f1f0e458e7cdb69737098cc30e99cf41887d7adc24c9492729 + \ --key + avax-external-8:044202188712caa9c047caaa01eb2a97f631b5ffb0ac1e2de40609c89137d7992a07d7b6c48cb69eee0323855377582a5601008a1190ca6c2b37316c2aead28bfd + ``` +
    - The gateway contract can now be deployed on the new EVM chain. Get the gateway contract bytecode. @@ -107,17 +121,21 @@ axelard q evm bytecode avalanche gateway-deployment Deploy the above bytecode to a smart contract on the EVM chain. - - Tip: Deploy the gateway contract however you wish. One option is to use [version 5 of MyEtherWallet](https://v5.myetherwallet.com/) with MetaMask as suggested in the video [Onboarding Avalanche to the Axelar Network](https://www.youtube.com/watch?v=iZgqneh7s88). - + ### On-chain gas estimation (alpha) @@ -77,7 +85,7 @@ The estimated gas for transferring the refund is typically slightly higher than A relayer built off-chain will automate any "two-way calls" (GMP transactions from Chain A to Chain B and then back to Chain A) under the assumption that the total cost of the round-trip transaction will be covered on the source chain. A clear example of this implementation is provided in the [`axelar-examples`](https://github.com/axelarnetwork/axelar-examples/blob/main/examples/evm/send-ack/SendAckSender.sol#L47) repo. -`estimateGasFee()` can be used to calculate the amount of gas required for a round trip. This method should be called twice: +`estimateGasFee()` can be used to calculate the amount of gas required for a round trip. This method should be called twice: 1. First to estimate the gas cost for the trip from Chain A to Chain B 1. Again to estimate the return trip from Chain B to Chain A @@ -85,7 +93,8 @@ A relayer built off-chain will automate any "two-way calls" (GMP transactions fr The total cost is the sum of these two estimates. -Gas cost estimation is direction-dependent. The costs for the outbound and return trips can significantly vary. + Gas cost estimation is direction-dependent. The costs for the outbound and + return trips can significantly vary. ### Handling a failed or stuck transaction @@ -155,4 +164,4 @@ After sending a transaction out, Axelar’s Gas Service will do the following: - Monitor `AxelarGasReceiver` for receipt of payment and get the amount paid as `amountPaid`. - Match the gas paid to the correct contract calls. - Submit the transaction to the Axelar network for confirmation. -- Execute the contract call with the `gasLimit` specified by the application. \ No newline at end of file +- Execute the contract call with the `gasLimit` specified by the application. diff --git a/src/content/docs/dev/gas-service/pricing.mdx b/src/content/docs/dev/gas-service/pricing.mdx index bb429e87b..c93d42e71 100644 --- a/src/content/docs/dev/gas-service/pricing.mdx +++ b/src/content/docs/dev/gas-service/pricing.mdx @@ -1,19 +1,22 @@ # Gas Service and Transaction Pricing Transactions using Axelar often have costs associated on their source chain, the Axelar network, and their destination chain. Whether for token transfers or General Message Passing, every cross-chain transaction is made up of 4 types of costs: + 1. Initiating the transaction on the source chain, 2. Processing the transaction through the Axelar blockchain 3. Relaying to the gateway contract on the destination chain 4. Executing the destination smart contract with the payload -To simplify paying for transaction pricing through the pipeline, Axelar has two general solutions to this problem. -* For token transfers, a fixed "relayer fee" is deducted from the amount of assets being transferred cross-chain. -* For General Message Passing (`callContract` and `callContractWithToken`), a chain-agnostic gas relaying service is implemented to accept gas payments from users on the source chain in its native currency. +To simplify paying for transaction pricing through the pipeline, Axelar has two general solutions to this problem. + +- For token transfers, a fixed "relayer fee" is deducted from the amount of assets being transferred cross-chain. +- For General Message Passing (`callContract` and `callContractWithToken`), a chain-agnostic gas relaying service is implemented to accept gas payments from users on the source chain in its native currency. All costs can be seen on [Axelarscan](https://axelarscan.io) by looking at a specific transaction, [from Moonbeam to BNB Chain for example](https://axelarscan.io/gmp/0x598d35609919bc6c0737ae229af56b2135ccf5c1b031e1bd8d45f4ec4190e5a4:65). ## Token transfers via `sendToken` or `getDepositAddress` -Prices are fixed based on the source chain, destination chain, and asset. You can query these directly on the Axelar network or refer to the `Resources` tab under the `Cross-chain relayer gas fee` section. + +Prices are fixed based on the source chain, destination chain, and asset. You can query these directly on the Axelar network or refer to the `Resources` tab under the `Cross-chain relayer gas fee` section. Whether you are transferring 10 axlUSDC or 10,000,000 axlUSDC, the cost is the same. The amount sent in a transaction must exceed the cost of the fee; it otherwise remains in the queue until the aggregate amount exceeds the fee. @@ -24,24 +27,26 @@ Asset transfers were designed this way to give users a `one click` experience. T For general message passing, Axelar's gas service allows the user/dApp to pay all of the gas costs in a single transaction on the source chain in its native currency. To pay for each blockchain transaction, the gas service uses current conversion rates to translate the gas paid on the source chain for the gas cost used by Axelar and the destination chains. 1. **Network Base Fee** - The base fee for any transaction is fixed based on the chains involved, but covers three components of the transaction - * Validator confirmation voting on the Axelar Network - * Relaying of approval on the destination chain - * Costs related to delivering any possible refund on the destination chain + - Validator confirmation voting on the Axelar Network + - Relaying of approval on the destination chain + - Costs related to delivering any possible refund on the destination chain 2. **Execution Fee (i.e. the gas to execute the `_execute` method on the destination chain)** - The execution fee is variable depending on the chains involved, and the complexity of your `_execute` method. The `estimateGasFee` method in the [AxelarJS SDK](/dev/axelarjs-sdk/axelar-query-api/#estimategasfee) calculates this total cost for you. ### Notable Considerations + #### EXECUTION FEE While the `estimateGasFee` method builds the components of the gas costs for you, you are still responsible to tell it the amount of gas you believe will be required to execute the `_execute` method on your destination smart contract. The `gasLimit` parameter in the `estimateGasFee()` method can be used to specify the estimated gas limit. Otherwise, the gas limit will be equivalent to the execution gas cost on the destination chain. #### GAS PRICE VOLATILITY -Certain EVM chains have really volatile gas prices. To account for this, it is recommended to include certain buffers (i.e. pay additional gas upfront) to avoid situations of transactions getting "stuck" in the pipeline because of out-of-gas issues. +Certain EVM chains have really volatile gas prices. To account for this, it is recommended to include certain buffers (i.e. pay additional gas upfront) to avoid situations of transactions getting "stuck" in the pipeline because of out-of-gas issues. + +The `estimateGasFee` method exposes two additional optional parameters to enhance execution certainty: -The `estimateGasFee` method exposes two additional optional parameters to enhance execution certainty: -1. a `minGasPrice` to be used on the destination chain, and +1. a `minGasPrice` to be used on the destination chain, and 2. a `gasMultipler` to be used to multiply the calculated figure by a specified buffer for execution certainty. #### REFUNDS @@ -49,33 +54,37 @@ The `estimateGasFee` method exposes two additional optional parameters to enhanc The remainder of any gas paid upfront for a transaction that is not used by our gas service is refunded to the specified refund address. `Refund = Gas deposit - Network Base Fee - Execution Fee - approximate gas to process the refund**.` -**Gas estimated to transfer the refund is usually a bit higher than the actual gas used. +\*\*Gas estimated to transfer the refund is usually a bit higher than the actual gas used. #### ROUND TRIP TRANSACTIONS (TWO-WAY CALLS) -The gas service will automate any "two-way calls" (i.e. sending GMP transactions from Chain A to Chain B with a return trip back to Chain A), assuming the entire cost of the round-trip transaction is paid on the source chain. The clearest example of this implementation can be found in our [Examples Repo](https://github.com/axelarnetwork/axelar-examples/blob/main/examples/evm/send-ack/SendAckSender.sol#L47). +The gas service will automate any "two-way calls" (i.e. sending GMP transactions from Chain A to Chain B with a return trip back to Chain A), assuming the entire cost of the round-trip transaction is paid on the source chain. The clearest example of this implementation can be found in our [Examples Repo](https://github.com/axelarnetwork/axelar-examples/blob/main/examples/evm/send-ack/SendAckSender.sol#L47). The `estimateGasFee` method can be used (yet again) to determine the amount of gas required for the round trip. The method needs to be called twice, once for the gas cost for Chain A >> B, then again for the gas cost for Chain B >> A, and the total cost would be the sum of the two estimations. Note: the gas cost estimation is direction-dependent and can be very different for the outbound and return trip directions. #### HANDLING ERRORS -Transactions may intermittently stall on their way from a source chain to a destination chain. Common root causes for stalled transactions included: 1 - failure to send a valid transaction from the source chain into the Axelar network for processing; 2 - insufficient gas payments paid by the user; 3 - transaction revert on the destination chain. +Transactions may intermittently stall on their way from a source chain to a destination chain. Common root causes for stalled transactions included: 1 - failure to send a valid transaction from the source chain into the Axelar network for processing; 2 - insufficient gas payments paid by the user; 3 - transaction revert on the destination chain. Every transaction can be seen on Axelarscan with a detailed view of where transactions get "stuck", so one can start there to debug such circumstances. Axelarscan and the AxelarJS SDK expose two approaches to recover stalled transactions: 1. manual execution of the transaction on the destination chain, or 2. add gas for transactions. More details can be found [here](/dev/general-message-passing/debug/error-debugging/) for debugging and [here](/dev/general-message-passing/debug/transaction-recovery/) and recovery. ## callContractWithToken (General Message Passing) + Fees for `callContractWithToken` are almost identical to those of `callContract`, but have an increased execution cost due to the additional gas cost of minting/releasing tokens. ## callContractWithTokenExpress ("GMP Express") + Fees for GMP express include all of the same fees as `callContractWithToken`, plus: -* an `Express Fee` that covers relayer/reorg risk -* gas used to execute the express method + +- an `Express Fee` that covers relayer/reorg risk +- gas used to execute the express method For GMP Express transactions, the total refund will then be: `Refund = Gas deposit - Express fee - Gas used to execute express method - Network Base Fee - Execution Fee - approximate gas to process the refund**.` -**Gas estimated to transfer the refund is usually a bit higher than the actual gas used. +\*\*Gas estimated to transfer the refund is usually a bit higher than the actual gas used. ## Interchain Tokens + Under the hood, creating an [Interchain Token](/dev/send-tokens/interchain-tokens/intro) uses `callContract`, so users are responsible for the gas on the source chain to register the token, plus the addition of a `callContract` to each destination chain where the token is being registered. diff --git a/src/content/docs/dev/gas-service/refund.mdx b/src/content/docs/dev/gas-service/refund.mdx index 9847cce3e..b9797d4e6 100644 --- a/src/content/docs/dev/gas-service/refund.mdx +++ b/src/content/docs/dev/gas-service/refund.mdx @@ -6,4 +6,4 @@ The refunded amount consists of the total amount paid, minus the network base fe ## Tracking refund status -Refund status can be [tracked on Axelarscan](/dev/general-message-passing/monitoring/#1-axelarscan-ui). \ No newline at end of file +Refund status can be [tracked on Axelarscan](/dev/general-message-passing/monitoring/#1-axelarscan-ui). diff --git a/src/content/docs/dev/gas-service/transaction-state.mdx b/src/content/docs/dev/gas-service/transaction-state.mdx index 993ce88cd..3b7578b36 100644 --- a/src/content/docs/dev/gas-service/transaction-state.mdx +++ b/src/content/docs/dev/gas-service/transaction-state.mdx @@ -89,7 +89,7 @@ If the transaction is stuck, you can trigger a manual relay: ```tsx const sourceTxHash = "0x.."; const provider = new ethers.providers.JsonRpcProvider( - "" + "", ); const response = await sdk.manualRelayToDestChain(sourceTxHash, { provider }); @@ -111,7 +111,7 @@ You can increase the gas payment using native tokens: const txHash: string = "0x..."; const { success, transaction, error } = await sdk.addNativeGas( EvmChain.AVALANCHE, - txHash + txHash, ); ``` @@ -121,12 +121,12 @@ Or using ERC-20 tokens: const gasToken = "0xGasTokenAddress"; await erc20.approve( GAS_RECEIVER[Environment.TESTNET][EvmChain.AVALANCHE], - amount + amount, ); const { success, transaction, error } = await sdk.addGas( EvmChain.AVALANCHE, txHash, - gasToken + gasToken, ); ``` @@ -143,7 +143,7 @@ const gasFee = await sdk.estimateGasFee( EvmChain.ETHEREUM, EvmChain.MOONBEAM, gasLimit, - "auto" + "auto", ); ``` @@ -156,7 +156,7 @@ const fee = await sdk.getTransferFee( "Ethereum", "Avalanche", "uausdc", - 1000000 + 1000000, ); ``` diff --git a/src/content/docs/dev/general-message-passing/axelar-commandid.mdx b/src/content/docs/dev/general-message-passing/axelar-commandid.mdx index 572b87675..0fbe38165 100644 --- a/src/content/docs/dev/general-message-passing/axelar-commandid.mdx +++ b/src/content/docs/dev/general-message-passing/axelar-commandid.mdx @@ -1,8 +1,8 @@ # The Axelar `CommandID` -Ensuring the authenticity and integrity of messages is crucial in cross-chain communication. The `CommandID` in the [Axelar network](https://www.axelar.network/) plays a significant role in this process, acting as a unique identifier for interchain messages. +Ensuring the authenticity and integrity of messages is crucial in cross-chain communication. The `CommandID` in the [Axelar network](https://www.axelar.network/) plays a significant role in this process, acting as a unique identifier for interchain messages. -This guide explains what an Axelar `CommandID` is, how it is generated, and its importance in the [Solidity Axelar GMP SDK](https://github.com/axelarnetwork/axelar-gmp-sdk-solidity). +This guide explains what an Axelar `CommandID` is, how it is generated, and its importance in the [Solidity Axelar GMP SDK](https://github.com/axelarnetwork/axelar-gmp-sdk-solidity). ## What is the Axelar `CommandID`? @@ -14,7 +14,7 @@ Generating an Axelar `CommandID` involves combining specific attributes of the m ### Solidity Implementation -In the provided Solidity contract, the `messageToCommandId()` function generates the `CommandID`. +In the provided Solidity contract, the `messageToCommandId()` function generates the `CommandID`. Here's how it works: @@ -35,7 +35,7 @@ This function takes two parameters: `sourceChain` and `messageId`. It concatenat ### Go implementation -The `CommandID` is generated similarly by hashing relevant data in the Go implementation. +The `CommandID` is generated similarly by hashing relevant data in the Go implementation. Here's an example function for generating a `CommandID`: @@ -90,39 +90,36 @@ func NewDeployTokenCommand(chainID sdk.Int, keyID multisig.KeyID, asset string, } ``` -## Importance of the `CommandID` for message verification +## Importance of the `CommandID` for message verification The `CommandID` is key for verifying the authenticity and integrity of interchain messages. When a message is received on the destination chain, the `CommandID` allows the system to: -1. **Verify Message Approval:** -The `isMessageApproved()` function checks if a message has been approved by comparing the stored message hash with the calculated hash using the `CommandID`. - - ```solidity - function isMessageApproved( - string calldata sourceChain, - string calldata messageId, - string calldata sourceAddress, - address contractAddress, - bytes32 payloadHash - ) external view override returns (bool) { - bytes32 commandId = messageToCommandId(sourceChain, messageId); - return _isMessageApproved(commandId, sourceChain, sourceAddress, contractAddress, payloadHash); - } - ``` - -2. **Prevent Replay Attacks:** -The `validateMessage()` function ensures that a message can only be executed once by marking it as executed after validation. - - ```solidity - function validateMessage( - string calldata sourceChain, - string calldata messageId, - string calldata sourceAddress, - bytes32 payloadHash - ) external override returns (bool valid) { - bytes32 commandId = messageToCommandId(sourceChain, messageId); - valid = _validateMessage(commandId, sourceChain, sourceAddress, payloadHash); - } - ``` - -Refer to more detailed information on how Axelar verifies GMP transactions [here](/dev/general-message-passing/verify-gmp-tx/). \ No newline at end of file +1. **Verify Message Approval:** + The `isMessageApproved()` function checks if a message has been approved by comparing the stored message hash with the calculated hash using the `CommandID`. + ```solidity + function isMessageApproved( + string calldata sourceChain, + string calldata messageId, + string calldata sourceAddress, + address contractAddress, + bytes32 payloadHash + ) external view override returns (bool) { + bytes32 commandId = messageToCommandId(sourceChain, messageId); + return _isMessageApproved(commandId, sourceChain, sourceAddress, contractAddress, payloadHash); + } + ``` +2. **Prevent Replay Attacks:** + The `validateMessage()` function ensures that a message can only be executed once by marking it as executed after validation. + ```solidity + function validateMessage( + string calldata sourceChain, + string calldata messageId, + string calldata sourceAddress, + bytes32 payloadHash + ) external override returns (bool valid) { + bytes32 commandId = messageToCommandId(sourceChain, messageId); + valid = _validateMessage(commandId, sourceChain, sourceAddress, payloadHash); + } + ``` + +Refer to more detailed information on how Axelar verifies GMP transactions [here](/dev/general-message-passing/verify-gmp-tx/). diff --git a/src/content/docs/dev/general-message-passing/debug/debugging-your-smart-contract.mdx b/src/content/docs/dev/general-message-passing/debug/debugging-your-smart-contract.mdx index f6cd18946..19db84a04 100644 --- a/src/content/docs/dev/general-message-passing/debug/debugging-your-smart-contract.mdx +++ b/src/content/docs/dev/general-message-passing/debug/debugging-your-smart-contract.mdx @@ -8,7 +8,7 @@ Here are some tools that may help you to investigate and address misbehavior in [Tenderly](https://tenderly.co/) is a powerful debugging tool for simulating smart contracts. It can be used for debugging the verified smart contract with a [breakpoint](https://en.wikipedia.org/wiki/Breakpoint). Tenderly also has other useful features for smart contract development, such as forking, transaction monitoring, etc. See their full documentation [here](https://docs.tenderly.co/). -Note that your contract must be verified at the block explorer or Tenderly (you can follow the guide [here](https://docs.tenderly.co/monitoring/verifying-a-smart-contract)). Also, the networks it supports are limited. [Here](https://docs.tenderly.co/supported-networks-and-languages) is a list of all the networks Tenderly supports. +Note that your contract must be verified at the block explorer or Tenderly (you can follow the guide [here](https://docs.tenderly.co/contract-verification)). Also, the networks it supports are limited. [Here](https://docs.tenderly.co/supported-networks-and-languages) is a list of all the networks Tenderly supports. Now, let's take a look at an example that will walk you through how you can use Tenderly to debug a failed transaction. diff --git a/src/content/docs/dev/general-message-passing/debug/error-debugging.mdx b/src/content/docs/dev/general-message-passing/debug/error-debugging.mdx index 4d9684f4e..f54159c66 100644 --- a/src/content/docs/dev/general-message-passing/debug/error-debugging.mdx +++ b/src/content/docs/dev/general-message-passing/debug/error-debugging.mdx @@ -1,6 +1,6 @@ # Execution error messages -import { Callout } from "/src/components/callout" +import { Callout } from "/src/components/callout"; There are two reasons that executions fail: @@ -24,9 +24,20 @@ Transaction execution was reverted. Please check the implementation of the desti **What to do next:** We suggest debugging your contract and then making a new call. You can try to follow the [Debugging your smart contract](/dev/general-message-passing/debug/debugging-your-smart-contract/) guide. - The error message in `reason:` is extracted from the data returned by the [Ethers.js](https://github.com/ethers-io/ethers.js/) library, from the data fields `error.error.code` and `error.error.reason`. The displayed error code (red tag) can be clicked to link to the description of each error code in [Ethers.js's official document](https://docs.ethers.io/v5/api/utils/logger/#errors-ethereum). + The error message in `reason:` is extracted from the data returned by the + [Ethers.js](https://github.com/ethers-io/ethers.js/) library, from the data + fields `error.error.code` and `error.error.reason`. The displayed error code + (red tag) can be clicked to link to the description of each error code in + [Ethers.js's official + document](https://docs.ethers.io/v5/api/utils/logger/#errors-ethereum). - If you get `Nonce Expired` or other messages indicating that nonce has already been used. It means that the nonce given in the transaction has already been consumed for the address on a blockchain. This error mostly happens when the same address submits multiple calls in a short period. We suggest you try [manually executing](/dev/general-message-passing/debug/transaction-recovery/#manually-execute-a-transfer) it once again. + If you get `Nonce Expired` or other messages indicating that nonce has already + been used. It means that the nonce given in the transaction has already been + consumed for the address on a blockchain. This error mostly happens when the + same address submits multiple calls in a short period. We suggest you try + [manually + executing](/dev/general-message-passing/debug/transaction-recovery/#manually-execute-a-transfer) + it once again. diff --git a/src/content/docs/dev/general-message-passing/debug/fork-mainnet.mdx b/src/content/docs/dev/general-message-passing/debug/fork-mainnet.mdx index 96f2965eb..337b51df5 100644 --- a/src/content/docs/dev/general-message-passing/debug/fork-mainnet.mdx +++ b/src/content/docs/dev/general-message-passing/debug/fork-mainnet.mdx @@ -3,7 +3,7 @@ For development and debugging purposes, it is often useful to be able to fork preexisting chains. This can easily be done using `ganache`. You can simply install [`axelar-local-dev`](https://github.com/axelarnetwork/axelar-local-dev) by typing `npm i @axelar-network/axelar-local-dev` and writing a simple script: ```js -const { forkAndExport } = '@axelar-network/axelar-local-dev'; +const { forkAndExport } = "@axelar-network/axelar-local-dev"; forkAndExport(); ``` @@ -12,6 +12,7 @@ This will clone `mainnet` by default and export local RPC endpoints at `http:/lo ## Additional Options `forkAndExport` can take an object of type `CloneLocalOptions` that can specify: + - `chainOutputPath`: a path to save a JSON file with all the information for the chains that are set up. Defaults to `./local.json`. - `accountsToFund`: a list of addresses to fund. - `fundAmount`: a string representing the amount of ether to fund accounts with. Defaults to `100 ETH`. @@ -27,4 +28,4 @@ This will clone `mainnet` by default and export local RPC endpoints at `http:/lo After creating the desired fork, you have access to RPCs (look into the JSON file saved) to them. You can update MetaMask (or any other wallet) to these RPCs and access any dApp online, and everything will happen in the local fork instead of the actual network. All Axelar functionality will happen more quickly (`2s` by default), and you can get debugging capabilities via the `afterRelay` option. Make sure you change MetaMask's RPCs back to the endpoints you trust, to go back to using actual mainnet/testnet. -Forking requires the use of RPCs to the actual networks being forked. For mainnet and testnet some RPCs are provided as part of `axelar-local-dev`, but we cannot guarantee that they will all work in the future. If you want, you can either tweak them in `./node_modules/@axelar-network/axelar-local-dev/info/` or provide an `env` variable that specifies your own RPCs. You can also copy the files in the `info` directory, alter them, load them and pass either of them as the `env` variable. \ No newline at end of file +Forking requires the use of RPCs to the actual networks being forked. For mainnet and testnet some RPCs are provided as part of `axelar-local-dev`, but we cannot guarantee that they will all work in the future. If you want, you can either tweak them in `./node_modules/@axelar-network/axelar-local-dev/info/` or provide an `env` variable that specifies your own RPCs. You can also copy the files in the `info` directory, alter them, load them and pass either of them as the `env` variable. diff --git a/src/content/docs/dev/general-message-passing/debug/transaction-recovery.mdx b/src/content/docs/dev/general-message-passing/debug/transaction-recovery.mdx index 5eaa940cb..c3d203400 100644 --- a/src/content/docs/dev/general-message-passing/debug/transaction-recovery.mdx +++ b/src/content/docs/dev/general-message-passing/debug/transaction-recovery.mdx @@ -1,11 +1,13 @@ # Transaction Recovery + Occasionally, transactions can get "stuck" in the pipeline from a source to destination chain (e.g. due to one-off issues that arise with relayers that operate on top of the network). Transactions have typically gotten "stuck" in the pipeline due to: (A) The transaction failing to relay from the source chain into the Axelar network for processing. (B) The transaction failing to get executed on the destination chain. -Users can recover a transaction that gets stuck in the pipeline by either: +Users can recover a transaction that gets stuck in the pipeline by either: + 1. Searching for the transaction in the Axelarscan UI and having it invoke recovery. 2. Incorporating the [AxelarJS SDK](/dev/axelarjs-sdk/token-transfer-dep-addr) and invoking those methods directly. @@ -20,10 +22,12 @@ The CALL APPROVED status will be updated once the network approves the transacti ![gmp-approve-successful.png](/images/gmp-approve-successful.png) (B) If the transaction failed to get executed on the destination chain, then Axelarscan will provide the option for you to either: + 1. Manually execute a transfer on the destination chain, OR 2. Increase gas payment to the gas receiver on the source chain. ### Manually execute a transfer + Click the ‘Connect’ button under the label ‘Execute at destination chain’. Then click the `Execute` button. It triggers the executor service to execute the transaction using the new gas paid at the destination chain. You can check the latest execution result in the `Executed` section. ![gmp-execute.png](/images/gmp-execute.png) @@ -34,16 +38,18 @@ Suppose the manual execution fails, you will get an error message with explained **What to do next:** We suggest debugging your contract and then making a new call. You can try to follow the [Debugging your smart contract](/dev/general-message-passing/debug/debugging-your-smart-contract) guide. ### Increase gas payment to the gas receiver on the source chain -The prepaid gas to the Gas Service contract could be insufficient when the destination chain is too busy (with many transfers or other conditions). Therefore, Axelarscan provides an option to increase gas payment to relay the transaction. + +The prepaid gas to the Gas Service contract could be insufficient when the destination chain is too busy (with many transfers or other conditions). Therefore, Axelarscan provides an option to increase gas payment to relay the transaction. To do this: + 1. Click the `Connect` button to connect your MetaMask wallet. Then switch the wallet network to the transfer’s source chain by clicking the `Switch Network` button under the label ‘Add gas at source chain‘. -![egmp-pay-gas-button.png](/images/gmp-pay-gas-button.png) + ![egmp-pay-gas-button.png](/images/gmp-pay-gas-button.png) 2. Click the `Add gas` button. The new paid gas information will be updated in the `GAS PAID` section. Then, the call will be relayed and executed. -![gmp-pay-gas-success.png](/images/gmp-pay-gas-success.png) + ![gmp-pay-gas-success.png](/images/gmp-pay-gas-success.png) ## 2. the AxelarJS SDK -All of the recovery methods above can be done programmatically through our SDK. The benefit of this would be if you would like to incorporate these recovery features above in your application directly. In fact, Axelarscan makes use of all of these methods written into the SDK. +All of the recovery methods above can be done programmatically through our SDK. The benefit of this would be if you would like to incorporate these recovery features above in your application directly. In fact, Axelarscan makes use of all of these methods written into the SDK. See SDK docs for [the full transaction recovery API](/dev/axelarjs-sdk/tx-status-query-recovery#query-transaction-status-by-txhash). diff --git a/src/content/docs/dev/general-message-passing/developer-guides/example-gmp.mdx b/src/content/docs/dev/general-message-passing/developer-guides/example-gmp.mdx index 0bbd97f2c..51a682e7e 100644 --- a/src/content/docs/dev/general-message-passing/developer-guides/example-gmp.mdx +++ b/src/content/docs/dev/general-message-passing/developer-guides/example-gmp.mdx @@ -36,9 +36,11 @@ npm run setup ## Deploy and run "Hello World" In order to run the examples against the local emulator, use a separate terminal window. + ```bash npm run start ``` + Leave this terminal open to keep your local server running for all of these examples. Run the "Call Contract" example. The application sends a message - "Hello World" - from a source to a destination chain using the `callContract` function. @@ -51,8 +53,8 @@ To deploy the contract, use the following command: npm run deploy evm/call-contract local ``` - Output: + ``` Deploying ExecutableSample for Moonbeam. Deploying ExecutableSample for Avalanche. @@ -75,6 +77,7 @@ npm run execute evm/call-contract [local|testnet] ${srcChain} ${destChain} ${mes ``` For example: + ```bash npm run execute evm/call-contract local "Moonbeam" "Avalanche" "Hello World" ``` @@ -99,10 +102,10 @@ That's it! In the above, we sent a message - "Hello World" - from a smart contract on Moonbeam to a smart contract on Avalanche, updating the latter's "value" property to our "Hello World" message. The full transaction flow was: + 1. Started the local developer environment to run local EVM blockchains. 2. The first node script deployed [this](https://github.com/axelarnetwork/axelar-examples/blob/main/examples/evm/call-contract/ExecutableSample.sol) smart contract to all the EVM chains in our local developer environment. 3. The second node script ran [this](https://github.com/axelarnetwork/axelar-examples/blob/main/examples/evm/call-contract/index.js#L22) test script on local Moonbeam, which: - - Calculated the estimated gas cost of executing the method on Avalanche. - - Invoked `setRemoteValue` on the deployed Moonbeam smart contract. This method first pays the gas receiver on Moonbeam the estimated gas cost, then calls `callContractWithToken` on the Moonbeam Gateway contract. + - Calculated the estimated gas cost of executing the method on Avalanche. + - Invoked `setRemoteValue` on the deployed Moonbeam smart contract. This method first pays the gas receiver on Moonbeam the estimated gas cost, then calls `callContractWithToken` on the Moonbeam Gateway contract. 4. After some time, the relay services detect the gas paid on Moonbeam and executes the smart contract on Avalanche, invoking the `_execute` method that updated the value to the message parameter. - diff --git a/src/content/docs/dev/general-message-passing/developer-guides/example-usdc-cctp.mdx b/src/content/docs/dev/general-message-passing/developer-guides/example-usdc-cctp.mdx index 2dd1d3fc4..010c1a321 100644 --- a/src/content/docs/dev/general-message-passing/developer-guides/example-usdc-cctp.mdx +++ b/src/content/docs/dev/general-message-passing/developer-guides/example-usdc-cctp.mdx @@ -363,8 +363,8 @@ And we’re done! Here is the [demo](https://www.youtube.com/watch?v=RyQkEcM1nKE