From f2d8c6f687939b352d26baf121223fdff96d6b1f Mon Sep 17 00:00:00 2001 From: Enrico Rubboli Date: Tue, 15 Sep 2026 23:46:26 +0400 Subject: [PATCH 1/6] Address review findings: accuracy, links, mobile UX, dependency audit - Getting Started: use current wallet-create/account-create commands; fix "table above" reference; mobile hero title + button wrap fixes - Staking: fix "no withdrawal restrictions" contradiction (lock period applies); renumber missing Step 3; label testnet (TML) vs mainnet (ML) examples - FAQ: clarify ML/MLT/TML terminology; flag protocol claims (checkpoints, rounds, lockups) for verification against deployed releases - Links: intro Mojito Inject -> mojito-inject page; development.md Node Commands and API server links -> real destinations; homepage MCP setup link -> MCP page - Developer Setup: fix wallet RPC example (localhost bind, consistent basic auth, quoted placeholders) - Bridge: document exact fee calculation (fixed then percentage of remainder, per-direction fees), clarify signed intent vs plain address, add custody and failure-handling notes - 21 legacy wallet-cli command pages marked deprecated/removed with pointers to current commands (verified against wallet-cli source) - Security: npm overrides force patched serialize-javascript, image-size, uuid, yaml, minimatch; pin webpack 5.111 + webpackbar 7 (fixes Dependabot highs); pin @docusaurus/theme-mermaid to 3.7.0 --- docs/build/bridge.md | 20 +- docs/build/development.md | 11 +- docs/faq.md | 10 +- docs/getting-started/index.md | 2 +- docs/guides/managing-a-staking-pool.md | 8 +- docs/intro.md | 2 +- .../createnewaccount-command-guide.md | 7 + .../newaddress-command-guide.md | 7 + .../newpublickey-command-guide.md | 7 + .../selectaccount-command-guide.md | 7 + .../showreceiveaddresses-command-guide.md | 7 + .../staking/createdelegation-command-guide.md | 7 + .../staking/createstakepool-command-guide.md | 7 + ...dfromdelegationtoaddress-command-manual.md | 7 + .../staking-create-pool-command-guide.md | 2 +- .../abandontransaction-command-guide.md | 7 + .../closewallet-command-guide.md | 7 + .../createwallet-command-guide.md | 7 + .../encryptprivatekeys-command-guide.md | 7 + .../lockprivatekeys-command-guide.md | 7 + .../openwallet-command-guide.md | 7 + .../purgeseedphrase-command-guide.md | 7 + ...moveprivatekeysencryption-command-guide.md | 7 + .../showseedphrase-command-guide.md | 7 + .../unlockprivatekeys-command-guide.md | 7 + package-lock.json | 6122 ++++++++++------- package.json | 11 +- src/css/custom.css | 111 +- src/pages/index.module.css | 9 + src/pages/index.tsx | 8 +- 30 files changed, 4055 insertions(+), 2387 deletions(-) diff --git a/docs/build/bridge.md b/docs/build/bridge.md index 42397ad..1147bc3 100644 --- a/docs/build/bridge.md +++ b/docs/build/bridge.md @@ -87,7 +87,7 @@ Rules: ### Deposit intents (m2e) -In the Mintlayer-to-Ethereum direction the receiver address cannot be embedded in the transaction itself, so each deposit is paired with a signed intent. Two ways to produce it: +In the Mintlayer-to-Ethereum direction the receiver address cannot be embedded in the transaction itself, so each deposit is paired with a signed intent. The intent message is the plain receiver address; it is signed with the same keys that sign the transaction inputs, and the resulting signature blob is what goes into the request's `intent` field. Two ways to produce it: - `wallet-cli`: the `token-make-tx-to-send-with-intent` command creates the transaction and the intent together (mainly for testing). - [WASM bindings](sdks/go/wasm.md): call `make_transaction_intent_message_to_sign`, sign the message with `sign_challenge` using the keys of all input destinations, then `encode_signed_transaction_intent`. @@ -104,15 +104,27 @@ Bridge request statuses: `pending`, `processed_by_master`, `completed`, `failed` ## Fees -`GET /api/v1/fees` returns, per token, the fee applied to each bridge request: +`GET /api/v1/fees` returns, per token, the fees applied in each direction: ```json { - "FOO": { "fixed_fee": "0.5", "percentage_fee": "0.1" } + "FOO": { + "to_ml": { "fixed_fee": "0.5", "percentage_fee": "0.1%" }, + "to_eth": { "fixed_fee": "0.5", "percentage_fee": "0.1%" } + } } ``` -The fixed part is applied first, then the percentage; the result is reflected in `amount_after_fees` on the bridge request. +- `fixed_fee` is subtracted from the request amount first. +- `percentage_fee` is a percentage string; the remainder after the fixed fee is multiplied by `(1 - percentage_fee / 100)`. + +Example: a 100.00 request with `fixed_fee = "0.5"` and `percentage_fee = "0.1%"` yields `amount_after_fees = (100.00 - 0.5) x 0.999 = 99.4005`. The final value is reflected in `amount_after_fees` on the bridge request. + +## Custody and failure handling + +- Deposits and withdrawals are released by bridge operators through multi-signature custody: a 2-of-2 multisignature Mintlayer address (e2m) and a 2-of-2 Safe contract (m2e). Requests are processed once the operators co-sign. +- A request whose deposit is never confirmed is marked `failed`; requests that cannot be processed automatically are marked `manual` and handled by the bridge operators. +- If a withdrawal transaction is not mined in time, the operators re-submit it. Track all of this through the [status endpoints and WebSocket events](#tracking-requests). ## Related documentation diff --git a/docs/build/development.md b/docs/build/development.md index a9381c8..9e3590c 100644 --- a/docs/build/development.md +++ b/docs/build/development.md @@ -68,16 +68,16 @@ Over WebSocket, method calls work the same way, plus you can **subscribe to even {"jsonrpc": "2.0", "method": "chainstate_subscribe_to_events", "params": [], "id": 1} ``` -The full method list (~60 methods across the `node`, `chainstate`, `mempool`, `p2p`, and `blockprod` modules) is in the [node RPC reference](https://github.com/mintlayer/mintlayer-core/blob/master/node-daemon/docs/RPC.md), with per-command guides under [Node Commands](../getting-started/index.md). +The full method list (~60 methods across the `node`, `chainstate`, `mempool`, `p2p`, and `blockprod` modules) is in the [node RPC reference](https://github.com/mintlayer/mintlayer-core/blob/master/node-daemon/docs/RPC.md), with per-command guides under [Node Commands](../wallet/cli/commands.md) (the wallet-cli `node-*` commands). ## Connecting to the wallet RPC -Start the daemon with an open wallet file and explicit credentials: +Start the daemon with an open wallet file and explicit credentials (bind to localhost unless the daemon must be reachable from other machines): ```bash wallet-rpc-daemon mainnet \ --wallet-file /home/mintlayer/my_wallet \ - --rpc-bind-address 0.0.0.0:3034 \ + --rpc-bind-address 127.0.0.1:3034 \ --rpc-username developer --rpc-password ``` @@ -87,7 +87,8 @@ Then call it like any JSON-RPC 2.0 endpoint: curl -H 'Content-Type: application/json' \ -H 'Authorization: Basic...' \ -d '{"jsonrpc": "2.0", "id": 1, "method": "account_balance", "params": {"account": 0, "utxo_states": ["Confirmed"]}}' \ - http://developer:@127.0.0.1:3034 + --user 'developer:CHANGE_ME' \ + http://127.0.0.1:3034 ``` WebSocket on the same port adds wallet event subscriptions: @@ -106,7 +107,7 @@ The API web server answers REST queries from the PostgreSQL database populated b curl http://127.0.0.1:3000/api/v2/chain/tip ``` -It covers blocks, transactions, tokens, addresses, pool and order data, see the [API server](../getting-started/index.md) documentation for the endpoint catalog and the [Docker Compose stack](../getting-started/install/install-from-docker.md#running-the-api-server-stack) to run it locally. +It covers blocks, transactions, tokens, addresses, pool and order data, see the [API server](../api/index.md) documentation for the endpoint catalog and the [Docker Compose stack](../getting-started/install/install-from-docker.md#running-the-api-server-stack) to run it locally. ## WASM wrappers diff --git a/docs/faq.md b/docs/faq.md index 7a260bd..96e2f76 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -8,7 +8,7 @@ sidebar_position: 10 ## How do I obtain testnet ML (TML)? -Use the [Mintlayer faucet](https://faucet.mintlayer.org): enter your testnet address (starts with `tmt1`) and request tokens. The faucet distributes up to 200 TML per day. +Use the [Mintlayer faucet](https://faucet.mintlayer.org): enter your testnet address (starts with `tmt1`) and request tokens. The faucet distributes up to 200 TML per day. TML is the testnet token; mainnet coins are called ML. Notes: @@ -31,9 +31,9 @@ For exchanges and services: query the [fee rate endpoint](api/endpoints/feerate. ## What is finality? When is a transaction final? -Mintlayer is a proof-of-stake chain (the [Pulsar consensus protocol](https://arxiv.org/abs/2411.14245)): block signers are selected per slot, and the chain-selection rule prefers the chain with the densest history. +Mintlayer is a proof-of-stake chain (the [Pulsar consensus protocol](https://arxiv.org/abs/2411.14245)): block signers are selected per slot, and the chain-selection rule prefers the chain with the densest history. The summary below reflects the design documents; verify exact behavior against the release your node runs. -Finality is **checkpoint-based rather than purely probabilistic**: Mintlayer blocks reference Bitcoin blocks, and once enough blocks are validated on top of a checkpoint request, the checkpoint is consolidated and locally enforced by nodes. After that point the history below the checkpoint cannot be reorganized. +Finality is **checkpoint-based rather than purely probabilistic**: Mintlayer blocks reference Bitcoin blocks, and once enough blocks are validated on top of a checkpoint request, the checkpoint is consolidated and locally enforced by nodes. After that point the history below the checkpoint is treated as final by the node. This is an area under active development, so confirm current enforcement behavior against your node release before relying on it for high-value operations. Practical guidance: @@ -45,11 +45,11 @@ See the [whitepaper chapter on architecture](whitepaper/1-blockchain-architectur ## How much MLT do I need to stake? -To participate as a block signer you must stake at least 0.01% of the total token supply, which was 40,000 MLT at mainnet launch. A single staker can be rewarded with more than one slot per round. See [participation in the network](whitepaper/1-blockchain-architecture.md) and the [staking pool guide](guides/managing-a-staking-pool.md). +To participate as a block signer you must stake at least 0.01% of the total token supply, which was 40,000 ML at mainnet launch (40,000 TML on testnet). A single staker can be rewarded with more than one slot per round. See [participation in the network](whitepaper/1-blockchain-architecture.md) and the [staking pool guide](guides/managing-a-staking-pool.md). ## How do staking rounds and lock-ups work? -Rounds last about one week (1008 Bitcoin blocks). Tokens staked for a round are locked across three rounds: the auction round (when you apply), the active round (when you participate), and a lock-in round afterwards. Plan liquidity accordingly. See the [whitepaper chapter 6](whitepaper/6-token-and-public-sale.md) for the full timeline. +Rounds last about one week (1008 Bitcoin blocks). Tokens staked for a round are locked across three rounds: the auction round (when you apply), the active round (when you participate), and a lock-in round afterwards. Plan liquidity accordingly; verify round timing against the network you operate on, as parameters can change between releases. See the [whitepaper chapter 6](whitepaper/6-token-and-public-sale.md) for the full timeline. ## How do I move tokens between Mintlayer and Ethereum? diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 70f8206..600d136 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -27,7 +27,7 @@ flowchart LR ND <-->|"syncs + validates"| NET ``` -In the table above, "Needs the other" cuts both ways for the wallet: `wallet-cli` either runs its wallet RPC server **embedded** (the default, talking to the node directly), or acts as a **client of a separate `wallet-rpc-daemon`** when you point it at one (the recommended setup for [staking in the background](install/install-from-docker.md#staking)). +In the Node vs. wallet comparison, "Needs the other" cuts both ways for the wallet: `wallet-cli` either runs its wallet RPC server **embedded** (the default, talking to the node directly), or acts as a **client of a separate `wallet-rpc-daemon`** when you point it at one (the recommended setup for [staking in the background](install/install-from-docker.md#staking)). | | **Node** | **Wallet** | | --- | -------- | ---------- | diff --git a/docs/guides/managing-a-staking-pool.md b/docs/guides/managing-a-staking-pool.md index e6fe68a..f9eb5ff 100644 --- a/docs/guides/managing-a-staking-pool.md +++ b/docs/guides/managing-a-staking-pool.md @@ -9,7 +9,9 @@ This guide walks through the full lifecycle of a Mintlayer staking pool, from in - A running, synced `node-daemon` - `wallet-cli` connected to the node -- A wallet with at least 40,000 TML for the pledge (plus a small amount for transaction fees) +- A wallet with the minimum pledge: 40,000 TML on testnet (equivalent to 40,000 ML on mainnet), plus a small amount for transaction fees. + +> Examples below use **testnet** values (TML tokens). On mainnet the amounts are in ML; the commands are identical apart from the network selected when starting `wallet-cli`. ## Concepts @@ -63,7 +65,7 @@ The wallet automatically generates a VRF key for the pool. You only need to supp After the transaction is confirmed, use `staking-list-pools` to find your pool id. -### Step 4: Verify the pool is visible +### Step 3: Verify the pool is visible ``` staking-list-pools @@ -103,6 +105,8 @@ To avoid having to manually run `staking-start` every time the wallet restarts, wallet-cli mainnet --start-staking-for-account 0 ``` +(For testnet staking, use `wallet-cli testnet --start-staking-for-account 0`.) + Replace `0` with your account index if you are using a non-default account. This is the recommended setup for unattended staking nodes. ### Monitor block production diff --git a/docs/intro.md b/docs/intro.md index 176531d..415eb79 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -13,7 +13,7 @@ Mintlayer is a Bitcoin sidechain with a built-in PoS consensus, native token iss - **Use the wallet**, the [Wallet CLI reference](wallet/cli/commands.md) documents every command; for automation use the [Wallet RPC API](wallet/rpc/overview.md). - **Issue a token**, the [token guide](guides/issue-new-token.md) walks through issuing, minting, and sending MLS-01 tokens; there is a separate guide for [NFTs](guides/issuing-and-managing-an-nft.md). - **Use the Mojito Wallet**, the non-custodial mobile and browser-extension wallet: see [Mojito Wallet](wallet/mojito-wallet.md). -- **Build dApps**, integrate wallets with the [JavaScript SDK](build/sdks/javascript/getting-started.md) or [Mojito Inject](build/sdks/javascript/getting-started.md), and query chain data via the [API](api/index.md). +- **Build dApps**, integrate wallets with the [JavaScript SDK](build/sdks/javascript/getting-started.md) or [Mojito Inject](build/mojito-inject.md), and query chain data via the [API](api/index.md). ## Documentation map diff --git a/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md index 7f9c008..01183ba 100644 --- a/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md @@ -2,6 +2,13 @@ title: "createnewaccount" sidebar_position: 22 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`account-create`](account-create-command-guide.md). + +::: + + The `createnewaccount` command is used to create a new account within your existing Mintlayer wallet. diff --git a/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md index 99d5a3c..e5a4063 100644 --- a/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md @@ -2,6 +2,13 @@ title: "newaddress" sidebar_position: 37 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`address-new`](address-new-command-guide.md). + +::: + + The `newaddress` command is used to generate a new, unused address within the currently selected account in your Mintlayer wallet. diff --git a/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md index 342c6a3..c627734 100644 --- a/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md @@ -2,6 +2,13 @@ title: "newpublickey" sidebar_position: 38 --- +:::warning[Removed command] + +This command is no longer available in current wallet-cli versions. see the [Accounts & Addresses commands](/docs/wallet/cli/commands) for current key and address commands. + +::: + + The `newpublickey` command is used to generate a new, unused public key within the currently selected account in your Mintlayer wallet. diff --git a/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md index 980b441..4dc2733 100644 --- a/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md @@ -2,6 +2,13 @@ title: "selectaccount" sidebar_position: 74 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`account-select`](account-select-command-guide.md). + +::: + + The `selectaccount` command allows you to switch between different accounts within your Mintlayer wallet. By selecting an account, you set it as the active account for subsequent transactions and operations. diff --git a/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md index 6acace6..df3115c 100644 --- a/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md @@ -2,6 +2,13 @@ title: "showreceiveaddresses" sidebar_position: 76 --- +:::warning[Removed command] + +This command is no longer available in current wallet-cli versions. use [`address-show`](address-show-command-guide.md) instead. + +::: + + The `showreceiveaddresses` command allows you to view all the receive addresses along with their usage state in your Mintlayer wallet. It helps you to identify which addresses have been used in transactions that are recorded on the blockchain. diff --git a/docs/wallet/cli/commands/staking/createdelegation-command-guide.md b/docs/wallet/cli/commands/staking/createdelegation-command-guide.md index 2c5cd76..840a7d0 100644 --- a/docs/wallet/cli/commands/staking/createdelegation-command-guide.md +++ b/docs/wallet/cli/commands/staking/createdelegation-command-guide.md @@ -2,6 +2,13 @@ title: "createdelegation" sidebar_position: 21 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`delegation-create`](delegation-create-command-guide.md). + +::: + + The `createdelegation` command allows you to create a delegation to a specific staking pool in Mintlayer. This is useful for users who want to delegate their tokens to a staking pool without actually running a node themselves. diff --git a/docs/wallet/cli/commands/staking/createstakepool-command-guide.md b/docs/wallet/cli/commands/staking/createstakepool-command-guide.md index 924d3cd..75addf3 100644 --- a/docs/wallet/cli/commands/staking/createstakepool-command-guide.md +++ b/docs/wallet/cli/commands/staking/createstakepool-command-guide.md @@ -2,6 +2,13 @@ title: "createstakepool" sidebar_position: 23 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`staking-create-pool`](staking-create-pool-command-guide.md). + +::: + + This command is used to create a new stake pool. diff --git a/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md b/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md index 143ca71..66af510 100644 --- a/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md +++ b/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md @@ -2,6 +2,13 @@ title: "`sendfromdelegationtoaddress` Command Manual" sidebar_position: 75 --- +:::warning[Removed command] + +This command is no longer available in current wallet-cli versions. use [`delegation-withdraw`](delegation-withdraw-command-guide.md) instead. + +::: + + The `sendfromdelegationtoaddress` command provides users with the ability to send tokens from a delegation to a specific address within the wallet interface. diff --git a/docs/wallet/cli/commands/staking/staking-create-pool-command-guide.md b/docs/wallet/cli/commands/staking/staking-create-pool-command-guide.md index 9d4d462..c84b117 100644 --- a/docs/wallet/cli/commands/staking/staking-create-pool-command-guide.md +++ b/docs/wallet/cli/commands/staking/staking-create-pool-command-guide.md @@ -20,7 +20,7 @@ staking-create-pool `**: The amount to pledge to the pool. There is a minimum (40,000 TML). This amount and all staking rewards **cannot be withdrawn without decommissioning the pool**. To withdraw rewards without decommissioning, consider creating a pool and delegating to yourself, delegators have no withdrawal restrictions. +- **``**: The amount to pledge to the pool. There is a minimum (40,000 TML). This amount and all staking rewards **cannot be withdrawn without decommissioning the pool**. To earn and withdraw rewards without decommissioning, delegate to your own pool: delegated funds can be withdrawn with `delegation-withdraw`, subject to a lock period before they become spendable. - **``**: A fixed amount in coins subtracted from each block reward and handed to the pool operator before applying the margin ratio. diff --git a/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md b/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md index 23224a6..162e5c9 100644 --- a/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md +++ b/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md @@ -2,6 +2,13 @@ title: "abandontransaction" sidebar_position: 1 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`transaction-abandon`](transaction-abandon-command-guide.md). + +::: + + The `abandontransaction` command allows you to abandon an unconfirmed transaction within your Mintlayer wallet. By doing so, the inputs consumed by the abandoned transaction are made available for reuse in subsequent transactions. diff --git a/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md b/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md index eb61da6..0f64556 100644 --- a/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md @@ -2,6 +2,13 @@ title: "closewallet" sidebar_position: 19 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`wallet-close`](wallet-close-command-guide.md). + +::: + + The `closewallet` command is used to close the currently opened wallet in Mintlayer. diff --git a/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md b/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md index ec2bad8..9960d61 100644 --- a/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md @@ -2,6 +2,13 @@ title: "`createwallet` Command Guide" sidebar_position: 24 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`wallet-create`](wallet-create-command-guide.md). + +::: + + The `createwallet` command is used to create a new wallet in Mintlayer. diff --git a/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md b/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md index 1ad6ebc..9e14fef 100644 --- a/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md @@ -2,6 +2,13 @@ title: "encryptprivatekeys" sidebar_position: 29 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`wallet-encrypt-private-keys`](wallet-encrypt-private-keys-command-guide.md). + +::: + + The `encryptprivatekeys` command is used to encrypt the private keys of the currently opened wallet in Mintlayer. The wallet is expected to be unlocked before using this command. diff --git a/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md b/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md index 9c08ddd..cc215b9 100644 --- a/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md @@ -2,6 +2,13 @@ title: "lockprivatekeys" sidebar_position: 36 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`wallet-lock-private-keys`](wallet-lock-private-keys-command-guide.md). + +::: + + The `lockprivatekeys` command is used to lock the private keys of the currently opened wallet in Mintlayer, ensuring they are secured and cannot be accessed without the encryption password. diff --git a/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md b/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md index 0c38c14..a846827 100644 --- a/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md @@ -2,6 +2,13 @@ title: "openwallet" sidebar_position: 63 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`wallet-open`](wallet-open-command-guide.md). + +::: + + The `openwallet` command is used to open an existing wallet in Mintlayer. diff --git a/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md b/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md index 75e4db0..763ff4e 100644 --- a/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md @@ -2,6 +2,13 @@ title: "purgeseedphrase" sidebar_position: 70 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`wallet-purge-seed-phrase`](wallet-purge-seed-phrase-command-guide.md). + +::: + + The `purgeseedphrase` command is used to delete the seed phrase from the currently loaded wallet in Mintlayer, but only if it has been saved within the wallet. diff --git a/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md b/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md index 6ff7007..8ff0530 100644 --- a/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md @@ -2,6 +2,13 @@ title: "removeprivatekeysencryption" sidebar_position: 71 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`wallet-disable-private-keys-encryption`](wallet-disable-private-keys-encryption-command-guide.md). + +::: + + The `removeprivatekeysencryption` command is used to remove any existing encryption from the private keys of the currently opened wallet in Mintlayer. The wallet is expected to be unlocked before using this command. diff --git a/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md b/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md index a2f32e6..889667b 100644 --- a/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md @@ -2,6 +2,13 @@ title: "showseedphrase" sidebar_position: 77 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`wallet-show-seed-phrase`](wallet-show-seed-phrase-command-guide.md). + +::: + + The `showseedphrase` command is used to display the seed phrase for the currently loaded wallet in Mintlayer, but only if it has been saved within the wallet. diff --git a/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md b/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md index b748cda..0c96364 100644 --- a/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md @@ -2,6 +2,13 @@ title: "unlockprivatekeys" sidebar_position: 118 --- +:::note[Deprecated command name] + +This page documents a legacy command name. In current wallet versions the command is called [`wallet-unlock-private-keys`](wallet-unlock-private-keys-command-guide.md). + +::: + + The `unlockprivatekeys` command is used to unlock the encrypted private keys of the currently opened wallet in Mintlayer. diff --git a/package-lock.json b/package-lock.json index 7996c94..4e5bccb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/preset-classic": "3.7.0", - "@docusaurus/theme-mermaid": "^3.7.0", + "@docusaurus/theme-mermaid": "3.7.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "docusaurus-plugin-llms": "^0.6.0", @@ -28,10 +28,26 @@ "node": ">=18.0" } }, + "node_modules/@algolia/abtesting": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.25.0.tgz", + "integrity": "sha512-rSTin9Uta23uaewYVQEp8XI9T3iA/zrg0/1G2vhf8oFFDxFL5vybnZ5IQwsVAg4JpKxPX4/WYNKdcfWrZymk7w==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@algolia/autocomplete-core": { "version": "1.17.9", "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz", "integrity": "sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==", + "license": "MIT", "dependencies": { "@algolia/autocomplete-plugin-algolia-insights": "1.17.9", "@algolia/autocomplete-shared": "1.17.9" @@ -41,6 +57,7 @@ "version": "1.17.9", "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz", "integrity": "sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==", + "license": "MIT", "dependencies": { "@algolia/autocomplete-shared": "1.17.9" }, @@ -52,6 +69,7 @@ "version": "1.17.9", "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz", "integrity": "sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==", + "license": "MIT", "dependencies": { "@algolia/autocomplete-shared": "1.17.9" }, @@ -64,98 +82,106 @@ "version": "1.17.9", "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz", "integrity": "sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==", + "license": "MIT", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, "node_modules/@algolia/client-abtesting": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.20.0.tgz", - "integrity": "sha512-YaEoNc1Xf2Yk6oCfXXkZ4+dIPLulCx8Ivqj0OsdkHWnsI3aOJChY5qsfyHhDBNSOhqn2ilgHWxSfyZrjxBcAww==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.59.0.tgz", + "integrity": "sha512-bm2XN0hCSMYwStSsCBT0/PUB2BDxoyR1Lnub3c392HMEy9bi8PUSW8vR6zltVEKWG2t4PQFWMD5C07bmJxGgPg==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0", - "@algolia/requester-browser-xhr": "5.20.0", - "@algolia/requester-fetch": "5.20.0", - "@algolia/requester-node-http": "5.20.0" + "@algolia/client-common": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-analytics": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.20.0.tgz", - "integrity": "sha512-CIT9ni0+5sYwqehw+t5cesjho3ugKQjPVy/iPiJvtJX4g8Cdb6je6SPt2uX72cf2ISiXCAX9U3cY0nN0efnRDw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.59.0.tgz", + "integrity": "sha512-XOFPOTa69WuqHR6c5tMgnUUwwqQgNSzMpxmhrgA9KmxRf8WIqEa0cokHJvohk5CYb7CZx0xeSL6Bk2IUJ7Lv7Q==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0", - "@algolia/requester-browser-xhr": "5.20.0", - "@algolia/requester-fetch": "5.20.0", - "@algolia/requester-node-http": "5.20.0" + "@algolia/client-common": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-common": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.20.0.tgz", - "integrity": "sha512-iSTFT3IU8KNpbAHcBUJw2HUrPnMXeXLyGajmCL7gIzWOsYM4GabZDHXOFx93WGiXMti1dymz8k8R+bfHv1YZmA==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.59.0.tgz", + "integrity": "sha512-PC8ipLOYFKRTfIUY1J3FJxS6ryzWziaXmIX9/sNMoUR8L+XhF7hX2QAeUI87YVl5zujvlYTSOb+HAIqKXDjyHQ==", + "license": "MIT", "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-insights": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.20.0.tgz", - "integrity": "sha512-w9RIojD45z1csvW1vZmAko82fqE/Dm+Ovsy2ElTsjFDB0HMAiLh2FO86hMHbEXDPz6GhHKgGNmBRiRP8dDPgJg==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.59.0.tgz", + "integrity": "sha512-yFNcCMM5fHiyoR0HuxMrzy+VjDcmhFUZTm2IJ2DHwGsVH3B5SEob4zTmeEZ3j/AZqNnmrJOCKl/tJnBg7+84bA==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0", - "@algolia/requester-browser-xhr": "5.20.0", - "@algolia/requester-fetch": "5.20.0", - "@algolia/requester-node-http": "5.20.0" + "@algolia/client-common": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-personalization": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.20.0.tgz", - "integrity": "sha512-p/hftHhrbiHaEcxubYOzqVV4gUqYWLpTwK+nl2xN3eTrSW9SNuFlAvUBFqPXSVBqc6J5XL9dNKn3y8OA1KElSQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.59.0.tgz", + "integrity": "sha512-GYja6HkDt2VrQhWmB2cLx3Z5fDwI9no7q+xwCWcFrTPm5CLH9QZvK0XLO9co1FcNIDxxkMaP3AXM39/XcecEOg==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0", - "@algolia/requester-browser-xhr": "5.20.0", - "@algolia/requester-fetch": "5.20.0", - "@algolia/requester-node-http": "5.20.0" + "@algolia/client-common": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-query-suggestions": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.20.0.tgz", - "integrity": "sha512-m4aAuis5vZi7P4gTfiEs6YPrk/9hNTESj3gEmGFgfJw3hO2ubdS4jSId1URd6dGdt0ax2QuapXufcrN58hPUcw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.59.0.tgz", + "integrity": "sha512-Wofg7bMpWh8N5qDDZs0wy6whc+KMmdNsxgrIGp9Ug2s1Bka0uq7AjyckdxReKPHLA0Q1qH8X/SNh0wn2t2X2Lw==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0", - "@algolia/requester-browser-xhr": "5.20.0", - "@algolia/requester-fetch": "5.20.0", - "@algolia/requester-node-http": "5.20.0" + "@algolia/client-common": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.20.0.tgz", - "integrity": "sha512-KL1zWTzrlN4MSiaK1ea560iCA/UewMbS4ZsLQRPoDTWyrbDKVbztkPwwv764LAqgXk0fvkNZvJ3IelcK7DqhjQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.59.0.tgz", + "integrity": "sha512-fHnALZfbEnODczGk14Y/1YBRApp6UEpZUTexGcMUPzY7RDc7q4HN2Y6jh0KUG8Jo9B+q+wOoQEc3ziR0ErbuFg==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0", - "@algolia/requester-browser-xhr": "5.20.0", - "@algolia/requester-fetch": "5.20.0", - "@algolia/requester-node-http": "5.20.0" + "@algolia/client-common": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" }, "engines": { "node": ">= 14.0.0" @@ -164,95 +190,90 @@ "node_modules/@algolia/events": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", + "license": "MIT" }, "node_modules/@algolia/ingestion": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.20.0.tgz", - "integrity": "sha512-shj2lTdzl9un4XJblrgqg54DoK6JeKFO8K8qInMu4XhE2JuB8De6PUuXAQwiRigZupbI0xq8aM0LKdc9+qiLQA==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.59.0.tgz", + "integrity": "sha512-Fa38s1mHgoaLCT117sfJ6P78rtxUt93CYxBYpq1VOIcslaF+cH+1h5uikAPsKfxLnsuEDZHiBiaI6eNPTsQMRA==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0", - "@algolia/requester-browser-xhr": "5.20.0", - "@algolia/requester-fetch": "5.20.0", - "@algolia/requester-node-http": "5.20.0" + "@algolia/client-common": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/monitoring": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.20.0.tgz", - "integrity": "sha512-aF9blPwOhKtWvkjyyXh9P5peqmhCA1XxLBRgItT+K6pbT0q4hBDQrCid+pQZJYy4HFUKjB/NDDwyzFhj/rwKhw==", + "version": "1.59.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.59.0.tgz", + "integrity": "sha512-NyNsRSqM2tF1MX7ZGw/j4rduoEJiQ5wfvbSo/CFVdEzYCjyxbGFRPOZyS/GETJG9rk1TdHOq8NZqKqk/u1fm4g==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0", - "@algolia/requester-browser-xhr": "5.20.0", - "@algolia/requester-fetch": "5.20.0", - "@algolia/requester-node-http": "5.20.0" + "@algolia/client-common": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/recommend": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.20.0.tgz", - "integrity": "sha512-T6B/WPdZR3b89/F9Vvk6QCbt/wrLAtrGoL8z4qPXDFApQ8MuTFWbleN/4rHn6APWO3ps+BUePIEbue2rY5MlRw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.59.0.tgz", + "integrity": "sha512-nXBK2uygWtvbCOffMWqqfjjcEtp9enDKY5/2Pw/Hhw8VVaOyK2ThbGK04bNX/Le+qoK1VHYkodWGVTKfw0Otkw==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0", - "@algolia/requester-browser-xhr": "5.20.0", - "@algolia/requester-fetch": "5.20.0", - "@algolia/requester-node-http": "5.20.0" + "@algolia/client-common": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.20.0.tgz", - "integrity": "sha512-t6//lXsq8E85JMenHrI6mhViipUT5riNhEfCcvtRsTV+KIBpC6Od18eK864dmBhoc5MubM0f+sGpKOqJIlBSCg==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.59.0.tgz", + "integrity": "sha512-yb+4afX/zja8QwX0KmV4/ae2kyYkRknsE79CRusYS2U5D8qwn2wq0cn1x12f3tm3F3+5FgmDdbuGdQTuCLSKMQ==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0" + "@algolia/client-common": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-fetch": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.20.0.tgz", - "integrity": "sha512-FHxYGqRY+6bgjKsK4aUsTAg6xMs2S21elPe4Y50GB0Y041ihvw41Vlwy2QS6K9ldoftX4JvXodbKTcmuQxywdQ==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.59.0.tgz", + "integrity": "sha512-Lp52TmpA1QtNmdHzs505Xwf4tgII7RAapkDSF9AAtWIBETcGaTIaXci4Rd9nS6SdaWK1BWTSqAPp5wzh6UN3Ag==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0" + "@algolia/client-common": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/@algolia/requester-node-http": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.20.0.tgz", - "integrity": "sha512-kmtQClq/w3vtPteDSPvaW9SPZL/xrIgMrxZyAgsFwrJk0vJxqyC5/hwHmrCraDnStnGSADnLpBf4SpZnwnkwWw==", + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.59.0.tgz", + "integrity": "sha512-YYHLEs5rC6oRTFwT7bJaKBR9NSFzikeVHGAT1ffATmUQzR8XqyhHXjoieAUoR7fBU6I5cfy1FVeh5GoRgriuzA==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "5.20.0" + "@algolia/client-common": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@antfu/install-pkg": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-2.1.0.tgz", @@ -267,41 +288,44 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", - "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", - "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.7", - "@babel/parser": "^7.26.7", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.26.7", - "@babel/types": "^7.26.7", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -320,19 +344,21 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", - "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.5", - "@babel/types": "^7.26.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" }, "engines": { @@ -340,23 +366,25 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -369,21 +397,23 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", "semver": "^6.3.1" }, "engines": { @@ -397,17 +427,19 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", - "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.29.7.tgz", + "integrity": "sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.2.0", + "@babel/helper-annotate-as-pure": "^7.29.7", + "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "engines": { @@ -421,57 +453,71 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.11" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -481,32 +527,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.29.7.tgz", + "integrity": "sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-wrap-function": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -516,13 +565,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", - "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.26.5" + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -532,72 +582,79 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.29.7.tgz", + "integrity": "sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==", + "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", - "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.7" + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", - "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.26.7" + "@babel/types": "^7.29.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -607,12 +664,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.29.7.tgz", + "integrity": "sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -622,11 +680,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.29.7.tgz", + "integrity": "sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -636,11 +695,28 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.29.7.tgz", + "integrity": "sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-7.29.7.tgz", + "integrity": "sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -650,13 +726,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.29.7.tgz", + "integrity": "sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -666,12 +743,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.29.7.tgz", + "integrity": "sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -684,6 +762,7 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -695,6 +774,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -703,11 +783,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.29.7.tgz", + "integrity": "sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -717,11 +798,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -731,11 +813,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -745,11 +828,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", + "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -762,6 +846,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -774,11 +859,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.29.7.tgz", + "integrity": "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -788,13 +874,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.7.tgz", + "integrity": "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -804,13 +891,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.29.7.tgz", + "integrity": "sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-remap-async-to-generator": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -820,11 +908,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", - "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.29.7.tgz", + "integrity": "sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -834,11 +923,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.29.7.tgz", + "integrity": "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -848,12 +938,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.29.7.tgz", + "integrity": "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -863,12 +954,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.29.7.tgz", + "integrity": "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -878,16 +970,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.29.7.tgz", + "integrity": "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -897,12 +990,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.29.7.tgz", + "integrity": "sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/template": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -912,11 +1006,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.29.7.tgz", + "integrity": "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -926,12 +1022,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.29.7.tgz", + "integrity": "sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -941,11 +1038,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.29.7.tgz", + "integrity": "sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -955,12 +1053,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -970,11 +1069,28 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.29.7.tgz", + "integrity": "sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.29.7.tgz", + "integrity": "sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -984,11 +1100,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", - "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.29.7.tgz", + "integrity": "sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -998,11 +1115,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.29.7.tgz", + "integrity": "sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1012,12 +1130,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.29.7.tgz", + "integrity": "sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1027,13 +1146,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.29.7.tgz", + "integrity": "sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1043,11 +1163,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.29.7.tgz", + "integrity": "sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1057,11 +1178,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.29.7.tgz", + "integrity": "sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1071,11 +1193,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.29.7.tgz", + "integrity": "sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1085,11 +1208,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.29.7.tgz", + "integrity": "sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1099,12 +1223,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.29.7.tgz", + "integrity": "sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1114,12 +1239,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1129,14 +1255,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.8.tgz", + "integrity": "sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.8" }, "engines": { "node": ">=6.9.0" @@ -1146,12 +1273,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.29.7.tgz", + "integrity": "sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1161,12 +1289,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.7.tgz", + "integrity": "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1176,11 +1305,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.29.7.tgz", + "integrity": "sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1190,11 +1320,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.26.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", - "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.29.7.tgz", + "integrity": "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1204,11 +1335,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.29.7.tgz", + "integrity": "sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1218,13 +1350,16 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.29.7.tgz", + "integrity": "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1234,12 +1369,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.29.7.tgz", + "integrity": "sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1249,11 +1385,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.29.7.tgz", + "integrity": "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1263,12 +1400,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.29.7.tgz", + "integrity": "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1278,11 +1416,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.29.7.tgz", + "integrity": "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1292,12 +1431,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.29.7.tgz", + "integrity": "sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1307,13 +1447,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.29.7.tgz", + "integrity": "sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1323,11 +1464,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.29.7.tgz", + "integrity": "sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1337,11 +1479,12 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", - "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.29.7.tgz", + "integrity": "sha512-J0wGhKan+rIiE2OhfhRptySLrJ6SjQYM6b6N1FMlhyhCcw1Mig8vQjWchyB+bgHGDvaWo6Diu6CLRMra2uMtmg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1351,11 +1494,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.29.7.tgz", + "integrity": "sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1365,15 +1509,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.29.7.tgz", + "integrity": "sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1383,11 +1528,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.29.7.tgz", + "integrity": "sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==", + "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" + "@babel/plugin-transform-react-jsx": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1397,12 +1543,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.29.7.tgz", + "integrity": "sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1412,12 +1559,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.8.tgz", + "integrity": "sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1427,12 +1574,13 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.29.7.tgz", + "integrity": "sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1442,11 +1590,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.29.7.tgz", + "integrity": "sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1456,15 +1605,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.7.tgz", + "integrity": "sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", "semver": "^6.3.1" }, "engines": { @@ -1478,16 +1628,18 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.29.7.tgz", + "integrity": "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1497,12 +1649,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.29.8.tgz", + "integrity": "sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1512,11 +1665,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.29.7.tgz", + "integrity": "sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1526,11 +1680,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.29.7.tgz", + "integrity": "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1540,11 +1695,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", - "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.29.7.tgz", + "integrity": "sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1554,15 +1710,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.7.tgz", - "integrity": "sha512-5cJurntg+AT+cgelGP9Bt788DKiAw9gIMSMU2NJrLAilnj0m8WZWUNZPSLOmadYsujHutpgElO+50foX+ib/Wg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.7.tgz", + "integrity": "sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-syntax-typescript": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1572,11 +1729,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.29.7.tgz", + "integrity": "sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1586,12 +1744,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.29.7.tgz", + "integrity": "sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1601,12 +1760,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.29.7.tgz", + "integrity": "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1616,12 +1776,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.29.7.tgz", + "integrity": "sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1631,78 +1792,81 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.7.tgz", - "integrity": "sha512-Ycg2tnXwixaXOVb29rana8HNPgLVBof8qqtNQ9LE22IoyZboQbGSxI6ZySMdW3K5nAe6gu35IaJefUJflhUFTQ==", - "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.7.tgz", + "integrity": "sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.29.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.29.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.29.7", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^7.29.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.29.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.29.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-import-assertions": "^7.29.7", + "@babel/plugin-syntax-import-attributes": "^7.29.7", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.26.5", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.26.3", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.26.3", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.26.7", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/plugin-transform-arrow-functions": "^7.29.7", + "@babel/plugin-transform-async-generator-functions": "^7.29.7", + "@babel/plugin-transform-async-to-generator": "^7.29.7", + "@babel/plugin-transform-block-scoped-functions": "^7.29.7", + "@babel/plugin-transform-block-scoping": "^7.29.7", + "@babel/plugin-transform-class-properties": "^7.29.7", + "@babel/plugin-transform-class-static-block": "^7.29.7", + "@babel/plugin-transform-classes": "^7.29.7", + "@babel/plugin-transform-computed-properties": "^7.29.7", + "@babel/plugin-transform-destructuring": "^7.29.7", + "@babel/plugin-transform-dotall-regex": "^7.29.7", + "@babel/plugin-transform-duplicate-keys": "^7.29.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-dynamic-import": "^7.29.7", + "@babel/plugin-transform-explicit-resource-management": "^7.29.7", + "@babel/plugin-transform-exponentiation-operator": "^7.29.7", + "@babel/plugin-transform-export-namespace-from": "^7.29.7", + "@babel/plugin-transform-for-of": "^7.29.7", + "@babel/plugin-transform-function-name": "^7.29.7", + "@babel/plugin-transform-json-strings": "^7.29.7", + "@babel/plugin-transform-literals": "^7.29.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.29.7", + "@babel/plugin-transform-member-expression-literals": "^7.29.7", + "@babel/plugin-transform-modules-amd": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-modules-systemjs": "^7.29.7", + "@babel/plugin-transform-modules-umd": "^7.29.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.7", + "@babel/plugin-transform-new-target": "^7.29.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.29.7", + "@babel/plugin-transform-numeric-separator": "^7.29.7", + "@babel/plugin-transform-object-rest-spread": "^7.29.7", + "@babel/plugin-transform-object-super": "^7.29.7", + "@babel/plugin-transform-optional-catch-binding": "^7.29.7", + "@babel/plugin-transform-optional-chaining": "^7.29.7", + "@babel/plugin-transform-parameters": "^7.29.7", + "@babel/plugin-transform-private-methods": "^7.29.7", + "@babel/plugin-transform-private-property-in-object": "^7.29.7", + "@babel/plugin-transform-property-literals": "^7.29.7", + "@babel/plugin-transform-regenerator": "^7.29.7", + "@babel/plugin-transform-regexp-modifiers": "^7.29.7", + "@babel/plugin-transform-reserved-words": "^7.29.7", + "@babel/plugin-transform-shorthand-properties": "^7.29.7", + "@babel/plugin-transform-spread": "^7.29.7", + "@babel/plugin-transform-sticky-regex": "^7.29.7", + "@babel/plugin-transform-template-literals": "^7.29.7", + "@babel/plugin-transform-typeof-symbol": "^7.29.7", + "@babel/plugin-transform-unicode-escapes": "^7.29.7", + "@babel/plugin-transform-unicode-property-regex": "^7.29.7", + "@babel/plugin-transform-unicode-regex": "^7.29.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.29.7", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "engines": { @@ -1712,10 +1876,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -1724,6 +1902,7 @@ "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -1734,16 +1913,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", - "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.29.7.tgz", + "integrity": "sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-transform-react-display-name": "^7.29.7", + "@babel/plugin-transform-react-jsx": "^7.29.7", + "@babel/plugin-transform-react-jsx-development": "^7.29.7", + "@babel/plugin-transform-react-pure-annotations": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1753,15 +1933,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz", + "integrity": "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-typescript": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1771,65 +1952,66 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.7.tgz", - "integrity": "sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.7.tgz", - "integrity": "sha512-55gRV8vGrCIYZnaQHQrD92Lo/hYE3Sj5tmbuf0hhHR7sj2CWhEhHU89hbq+UVDXvFG1zUVXJhUkEq1eAfqXtFw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.29.7.tgz", + "integrity": "sha512-ppj9ouYku+RX0ljtgZd+KMO5mkM2bCqg8H2PYAFWnLsHEIKIdRojqbJ2i3eVHrisuxy7nOFCmngTDdWtUCdXUQ==", + "license": "MIT", "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" + "core-js-pure": "^3.48.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", - "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/parser": "^7.26.7", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.7", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.26.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", - "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -1884,15 +2066,16 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" } }, "node_modules/@csstools/cascade-layer-name-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz", - "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", + "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==", "funding": [ { "type": "github", @@ -1903,18 +2086,19 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/color-helpers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", - "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", "funding": [ { "type": "github", @@ -1925,14 +2109,15 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" } }, "node_modules/@csstools/css-calc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.1.tgz", - "integrity": "sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", "funding": [ { "type": "github", @@ -1943,18 +2128,19 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-color-parser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz", - "integrity": "sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", "funding": [ { "type": "github", @@ -1965,22 +2151,23 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^5.0.1", - "@csstools/css-calc": "^2.1.1" + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" }, "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", "funding": [ { "type": "github", @@ -1991,17 +2178,18 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", "funding": [ { "type": "github", @@ -2012,14 +2200,38 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", - "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/postcss-alpha-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz", + "integrity": "sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==", "funding": [ { "type": "github", @@ -2030,18 +2242,25 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, "engines": { "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "postcss": "^8.4" } }, "node_modules/@csstools/postcss-cascade-layers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz", - "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz", + "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==", "funding": [ { "type": "github", @@ -2052,6 +2271,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0" @@ -2077,6 +2297,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2085,9 +2306,10 @@ } }, "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2097,9 +2319,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.7.tgz", - "integrity": "sha512-aDHYmhNIHR6iLw4ElWhf+tRqqaXwKnMl0YsQ/X105Zc4dQwe6yJpMrTN6BwOoESrkDjOYMOfORviSSLeDTJkdQ==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz", + "integrity": "sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==", "funding": [ { "type": "github", @@ -2110,11 +2332,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2124,10 +2347,10 @@ "postcss": "^8.4" } }, - "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.7.tgz", - "integrity": "sha512-e68Nev4CxZYCLcrfWhHH4u/N1YocOfTmw67/kVX5Rb7rnguqqLyxPjhHWjSBX8o4bmyuukmNf3wrUSU3//kT7g==", + "node_modules/@csstools/postcss-color-function-display-p3-linear": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz", + "integrity": "sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==", "funding": [ { "type": "github", @@ -2138,11 +2361,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2152,10 +2376,10 @@ "postcss": "^8.4" } }, - "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz", - "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==", + "node_modules/@csstools/postcss-color-mix-function": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz", + "integrity": "sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==", "funding": [ { "type": "github", @@ -2166,10 +2390,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2179,10 +2405,10 @@ "postcss": "^8.4" } }, - "node_modules/@csstools/postcss-exponential-functions": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.6.tgz", - "integrity": "sha512-IgJA5DQsQLu/upA3HcdvC6xEMR051ufebBTIXZ5E9/9iiaA7juXWz1ceYj814lnDYP/7eWjZnw0grRJlX4eI6g==", + "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz", + "integrity": "sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==", "funding": [ { "type": "github", @@ -2193,10 +2419,13 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" }, "engines": { "node": ">=18" @@ -2205,10 +2434,10 @@ "postcss": "^8.4" } }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", - "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "node_modules/@csstools/postcss-content-alt-text": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz", + "integrity": "sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==", "funding": [ { "type": "github", @@ -2219,9 +2448,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" }, "engines": { "node": ">=18" @@ -2230,10 +2462,92 @@ "postcss": "^8.4" } }, - "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.7.tgz", - "integrity": "sha512-gzFEZPoOkY0HqGdyeBXR3JP218Owr683u7KOZazTK7tQZBE8s2yhg06W1tshOqk7R7SWvw9gkw2TQogKpIW8Xw==", + "node_modules/@csstools/postcss-contrast-color-function": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz", + "integrity": "sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-exponential-functions": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz", + "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", + "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz", + "integrity": "sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==", "funding": [ { "type": "github", @@ -2244,10 +2558,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -2257,9 +2572,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.7.tgz", - "integrity": "sha512-WgEyBeg6glUeTdS2XT7qeTFBthTJuXlS9GFro/DVomj7W7WMTamAwpoP4oQCq/0Ki2gvfRYFi/uZtmRE14/DFA==", + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz", + "integrity": "sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==", "funding": [ { "type": "github", @@ -2270,11 +2585,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2285,9 +2601,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.7.tgz", - "integrity": "sha512-LKYqjO+wGwDCfNIEllessCBWfR4MS/sS1WXO+j00KKyOjm7jDW2L6jzUmqASEiv/kkJO39GcoIOvTTfB3yeBUA==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz", + "integrity": "sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==", "funding": [ { "type": "github", @@ -2298,11 +2614,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2313,9 +2630,9 @@ } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz", - "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz", + "integrity": "sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==", "funding": [ { "type": "github", @@ -2326,8 +2643,9 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -2339,9 +2657,9 @@ } }, "node_modules/@csstools/postcss-initial": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz", - "integrity": "sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", + "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", "funding": [ { "type": "github", @@ -2352,6 +2670,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2360,9 +2679,9 @@ } }, "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz", - "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz", + "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==", "funding": [ { "type": "github", @@ -2373,6 +2692,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0" @@ -2398,6 +2718,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2406,9 +2727,10 @@ } }, "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2418,9 +2740,9 @@ } }, "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz", - "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz", + "integrity": "sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==", "funding": [ { "type": "github", @@ -2431,10 +2753,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2458,6 +2781,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2479,6 +2803,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2500,6 +2825,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2521,6 +2847,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2532,9 +2859,9 @@ } }, "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz", - "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz", + "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==", "funding": [ { "type": "github", @@ -2545,8 +2872,9 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-tokenizer": "^3.0.3", + "@csstools/css-tokenizer": "^3.0.4", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2557,9 +2885,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.6.tgz", - "integrity": "sha512-J1+4Fr2W3pLZsfxkFazK+9kr96LhEYqoeBszLmFjb6AjYs+g9oDAw3J5oQignLKk3rC9XHW+ebPTZ9FaW5u5pg==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz", + "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==", "funding": [ { "type": "github", @@ -2570,11 +2898,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" }, "engines": { "node": ">=18" @@ -2584,9 +2913,9 @@ } }, "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz", - "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz", + "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==", "funding": [ { "type": "github", @@ -2597,10 +2926,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" }, "engines": { "node": ">=18" @@ -2623,6 +2953,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -2635,9 +2966,9 @@ } }, "node_modules/@csstools/postcss-normalize-display-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", - "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz", + "integrity": "sha512-TQUGBuRvxdc7TgNSTevYqrL8oItxiwPDixk20qCB5me/W8uF7BPbhRrAvFuhEoywQp/woRsUZ6SJ+sU5idZAIA==", "funding": [ { "type": "github", @@ -2648,6 +2979,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2659,9 +2991,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.7.tgz", - "integrity": "sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz", + "integrity": "sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==", "funding": [ { "type": "github", @@ -2672,11 +3004,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2686,10 +3019,32 @@ "postcss": "^8.4" } }, + "node_modules/@csstools/postcss-position-area-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-position-area-property/-/postcss-position-area-property-1.0.0.tgz", + "integrity": "sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", - "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz", + "integrity": "sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==", "funding": [ { "type": "github", @@ -2700,6 +3055,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -2710,10 +3066,36 @@ "postcss": "^8.4" } }, + "node_modules/@csstools/postcss-property-rule-prelude-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-property-rule-prelude-list/-/postcss-property-rule-prelude-list-1.0.0.tgz", + "integrity": "sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/@csstools/postcss-random-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.2.tgz", - "integrity": "sha512-vBCT6JvgdEkvRc91NFoNrLjgGtkLWt47GKT6E2UDn3nd8ZkMBiziQ1Md1OiKoSsgzxsSnGKG3RVdhlbdZEkHjA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz", + "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==", "funding": [ { "type": "github", @@ -2724,10 +3106,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -2737,9 +3120,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.7.tgz", - "integrity": "sha512-apbT31vsJVd18MabfPOnE977xgct5B1I+Jpf+Munw3n6kKb1MMuUmGGH+PT9Hm/fFs6fe61Q/EWnkrb4bNoNQw==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz", + "integrity": "sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==", "funding": [ { "type": "github", @@ -2750,11 +3133,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -2778,6 +3162,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -2789,9 +3174,10 @@ } }, "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2801,9 +3187,9 @@ } }, "node_modules/@csstools/postcss-sign-functions": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.1.tgz", - "integrity": "sha512-MslYkZCeMQDxetNkfmmQYgKCy4c+w9pPDfgOBCJOo/RI1RveEUdZQYtOfrC6cIZB7sD7/PHr2VGOcMXlZawrnA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz", + "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==", "funding": [ { "type": "github", @@ -2814,10 +3200,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -2827,9 +3214,61 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.6.tgz", - "integrity": "sha512-/dwlO9w8vfKgiADxpxUbZOWlL5zKoRIsCymYoh1IPuBsXODKanKnfuZRr32DEqT0//3Av1VjfNZU9yhxtEfIeA==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz", + "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-syntax-descriptor-syntax-production": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-syntax-descriptor-syntax-production/-/postcss-syntax-descriptor-syntax-production-1.0.1.tgz", + "integrity": "sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-system-ui-font-family": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-system-ui-font-family/-/postcss-system-ui-font-family-1.0.0.tgz", + "integrity": "sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ==", "funding": [ { "type": "github", @@ -2840,10 +3279,10 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -2853,9 +3292,9 @@ } }, "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz", - "integrity": "sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz", + "integrity": "sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==", "funding": [ { "type": "github", @@ -2866,8 +3305,9 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/color-helpers": "^5.0.1", + "@csstools/color-helpers": "^5.1.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -2878,9 +3318,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.6.tgz", - "integrity": "sha512-c4Y1D2Why/PeccaSouXnTt6WcNHJkoJRidV2VW9s5gJ97cNxnLgQ4Qj8qOqkIR9VmTQKJyNcbF4hy79ZQnWD7A==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz", + "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==", "funding": [ { "type": "github", @@ -2891,10 +3331,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" }, "engines": { "node": ">=18" @@ -2917,6 +3358,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2938,6 +3380,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -2949,19 +3392,54 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/@docsearch/css": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.3.tgz", - "integrity": "sha512-1nELpMV40JDLJ6rpVVFX48R1jsBFIQ6RnEQDsLFGmzOjPWTOMlZqUcXcvRx8VmYV/TqnS1l784Ofz+ZEb+wEOQ==" + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.9.0.tgz", + "integrity": "sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==", + "license": "MIT" + }, + "node_modules/@docsearch/react": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.9.0.tgz", + "integrity": "sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.17.9", + "@algolia/autocomplete-preset-algolia": "1.17.9", + "@docsearch/css": "3.9.0", + "algoliasearch": "^5.14.2" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } }, "node_modules/@docusaurus/babel": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.7.0.tgz", "integrity": "sha512-0H5uoJLm14S/oKV3Keihxvh8RV+vrid+6Gv+2qhuzbqHanawga8tYnsdpjEyt36ucJjqlby2/Md2ObWjA02UXQ==", + "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", "@babel/generator": "^7.25.9", @@ -2987,6 +3465,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.7.0.tgz", "integrity": "sha512-CUUT9VlSGukrCU5ctZucykvgCISivct+cby28wJwCC/fkQFgAHRp/GKv2tx38ZmXb7nacrKzFTcp++f9txUYGg==", + "license": "MIT", "dependencies": { "@babel/core": "^7.25.9", "@docusaurus/babel": "3.7.0", @@ -3030,6 +3509,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.7.0.tgz", "integrity": "sha512-b0fUmaL+JbzDIQaamzpAFpTviiaU4cX3Qz8cuo14+HGBCwa0evEK0UYCBFY3n4cLzL8Op1BueeroUD2LYAIHbQ==", + "license": "MIT", "dependencies": { "@docusaurus/babel": "3.7.0", "@docusaurus/bundler": "3.7.0", @@ -3090,6 +3570,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.7.0.tgz", "integrity": "sha512-X9GYgruZBSOozg4w4dzv9uOz8oK/EpPVQXkp0MM6Tsgp/nRIU9hJzJ0Pxg1aRa3xCeEQTOimZHcocQFlLwYajQ==", + "license": "MIT", "dependencies": { "cssnano-preset-advanced": "^6.1.2", "postcss": "^8.4.38", @@ -3104,6 +3585,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.7.0.tgz", "integrity": "sha512-z7g62X7bYxCYmeNNuO9jmzxLQG95q9QxINCwpboVcNff3SJiHJbGrarxxOVMVmAh1MsrSfxWkVGv4P41ktnFsA==", + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" @@ -3116,6 +3598,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.7.0.tgz", "integrity": "sha512-OFBG6oMjZzc78/U3WNPSHs2W9ZJ723ewAcvVJaqS0VgyeUfmzUV8f1sv+iUHA0DtwiR5T5FjOxj6nzEE8LY6VA==", + "license": "MIT", "dependencies": { "@docusaurus/logger": "3.7.0", "@docusaurus/utils": "3.7.0", @@ -3154,6 +3637,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.7.0.tgz", "integrity": "sha512-g7WdPqDNaqA60CmBrr0cORTrsOit77hbsTj7xE2l71YhBn79sxdm7WMK7wfhcaafkbpIh7jv5ef5TOpf1Xv9Lg==", + "license": "MIT", "dependencies": { "@docusaurus/types": "3.7.0", "@types/history": "^4.7.11", @@ -3172,6 +3656,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.7.0.tgz", "integrity": "sha512-EFLgEz6tGHYWdPU0rK8tSscZwx+AsyuBW/r+tNig2kbccHYGUJmZtYN38GjAa3Fda4NU+6wqUO5kTXQSRBQD3g==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/logger": "3.7.0", @@ -3205,6 +3690,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.7.0.tgz", "integrity": "sha512-GXg5V7kC9FZE4FkUZA8oo/NrlRb06UwuICzI6tcbzj0+TVgjq/mpUXXzSgKzMS82YByi4dY2Q808njcBCyy6tQ==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/logger": "3.7.0", @@ -3236,6 +3722,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.7.0.tgz", "integrity": "sha512-YJSU3tjIJf032/Aeao8SZjFOrXJbz/FACMveSMjLyMH4itQyZ2XgUIzt4y+1ISvvk5zrW4DABVT2awTCqBkx0Q==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/mdx-loader": "3.7.0", @@ -3258,6 +3745,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.7.0.tgz", "integrity": "sha512-Qgg+IjG/z4svtbCNyTocjIwvNTNEwgRjSXXSJkKVG0oWoH0eX/HAPiu+TS1HBwRPQV+tTYPWLrUypYFepfujZA==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/types": "3.7.0", @@ -3278,6 +3766,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz", "integrity": "sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3289,6 +3778,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.7.0.tgz", "integrity": "sha512-otIqiRV/jka6Snjf+AqB360XCeSv7lQC+DKYW+EUZf6XbuE8utz5PeUQ8VuOcD8Bk5zvT1MC4JKcd5zPfDuMWA==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/types": "3.7.0", @@ -3307,6 +3797,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.7.0.tgz", "integrity": "sha512-M3vrMct1tY65ModbyeDaMoA+fNJTSPe5qmchhAbtqhDD/iALri0g9LrEpIOwNaoLmm6lO88sfBUADQrSRSGSWA==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/types": "3.7.0", @@ -3326,6 +3817,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.7.0.tgz", "integrity": "sha512-X8U78nb8eiMiPNg3jb9zDIVuuo/rE1LjGDGu+5m5CX4UBZzjMy+klOY2fNya6x8ACyE/L3K2erO1ErheP55W/w==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/types": "3.7.0", @@ -3344,6 +3836,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.7.0.tgz", "integrity": "sha512-bTRT9YLZ/8I/wYWKMQke18+PF9MV8Qub34Sku6aw/vlZ/U+kuEuRpQ8bTcNOjaTSfYsWkK4tTwDMHK2p5S86cA==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/logger": "3.7.0", @@ -3367,6 +3860,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.7.0.tgz", "integrity": "sha512-HByXIZTbc4GV5VAUkZ2DXtXv1Qdlnpk3IpuImwSnEzCDBkUMYcec5282hPjn6skZqB25M1TYCmWS91UbhBGxQg==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/types": "3.7.0", @@ -3389,6 +3883,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.7.0.tgz", "integrity": "sha512-nPHj8AxDLAaQXs+O6+BwILFuhiWbjfQWrdw2tifOClQoNfuXDjfjogee6zfx6NGHWqshR23LrcN115DmkHC91Q==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/plugin-content-blog": "3.7.0", @@ -3417,6 +3912,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.7.0.tgz", "integrity": "sha512-MnLxG39WcvLCl4eUzHr0gNcpHQfWoGqzADCly54aqCofQX6UozOS9Th4RK3ARbM9m7zIRv3qbhggI53dQtx/hQ==", + "license": "MIT", "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/logger": "3.7.0", @@ -3457,6 +3953,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.7.0.tgz", "integrity": "sha512-8eJ5X0y+gWDsURZnBfH0WabdNm8XMCXHv8ENy/3Z/oQKwaB/EHt5lP9VsTDTf36lKEp0V6DjzjFyFIB+CetL0A==", + "license": "MIT", "dependencies": { "@docusaurus/mdx-loader": "3.7.0", "@docusaurus/module-type-aliases": "3.7.0", @@ -3506,6 +4003,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.7.0.tgz", "integrity": "sha512-Al/j5OdzwRU1m3falm+sYy9AaB93S1XF1Lgk9Yc6amp80dNxJVplQdQTR4cYdzkGtuQqbzUA8+kaoYYO0RbK6g==", + "license": "MIT", "dependencies": { "@docsearch/react": "^3.8.1", "@docusaurus/core": "3.7.0", @@ -3532,41 +4030,11 @@ "react-dom": "^18.0.0 || ^19.0.0" } }, - "node_modules/@docusaurus/theme-search-algolia/node_modules/@docsearch/react": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.3.tgz", - "integrity": "sha512-6UNrg88K7lJWmuS6zFPL/xgL+n326qXqZ7Ybyy4E8P/6Rcblk3GE8RXxeol4Pd5pFpKMhOhBhzABKKwHtbJCIg==", - "dependencies": { - "@algolia/autocomplete-core": "1.17.9", - "@algolia/autocomplete-preset-algolia": "1.17.9", - "@docsearch/css": "3.8.3", - "algoliasearch": "^5.14.2" - }, - "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/@docusaurus/theme-translations": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.7.0.tgz", "integrity": "sha512-Ewq3bEraWDmienM6eaNK7fx+/lHMtGDHQyd1O+4+3EsDxxUmrzPkV7Ct3nBWTuE0MsoZr3yNwQVKjllzCMuU3g==", + "license": "MIT", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -3579,12 +4047,14 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.7.0.tgz", "integrity": "sha512-vRsyj3yUZCjscgfgcFYjIsTcAru/4h4YH2/XAE8Rs7wWdnng98PgWKvP5ovVc4rmRpRg2WChVW0uOy2xHDvDBQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@docusaurus/types": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.7.0.tgz", "integrity": "sha512-kOmZg5RRqJfH31m+6ZpnwVbkqMJrPOG5t0IOl4i/+3ruXyNfWzZ0lVtVrD0u4ONc/0NOsS9sWYaxxWNkH1LdLQ==", + "license": "MIT", "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", @@ -3605,6 +4075,7 @@ "version": "5.10.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", @@ -3618,6 +4089,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.7.0.tgz", "integrity": "sha512-e7zcB6TPnVzyUaHMJyLSArKa2AG3h9+4CfvKXKKWNx6hRs+p0a+u7HHTJBgo6KW2m+vqDnuIHK4X+bhmoghAFA==", + "license": "MIT", "dependencies": { "@docusaurus/logger": "3.7.0", "@docusaurus/types": "3.7.0", @@ -3648,6 +4120,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.7.0.tgz", "integrity": "sha512-IZeyIfCfXy0Mevj6bWNg7DG7B8G+S6o6JVpddikZtWyxJguiQ7JYr0SIZ0qWd8pGNuMyVwriWmbWqMnK7Y5PwA==", + "license": "MIT", "dependencies": { "@docusaurus/types": "3.7.0", "tslib": "^2.6.0" @@ -3660,6 +4133,7 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.7.0.tgz", "integrity": "sha512-w8eiKk8mRdN+bNfeZqC4nyFoxNyI1/VExMKAzD9tqpJfLLbsa46Wfn5wcKH761g9WkKh36RtFV49iL9lh1DYBA==", + "license": "MIT", "dependencies": { "@docusaurus/logger": "3.7.0", "@docusaurus/utils": "3.7.0", @@ -3677,12 +4151,14 @@ "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "license": "BSD-3-Clause" }, "node_modules/@hapi/topo": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -3708,6 +4184,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -3719,6 +4196,7 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -3732,52 +4210,55 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { "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==", + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", "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", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -3786,17 +4267,20 @@ "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" }, "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", @@ -3824,9 +4308,10 @@ } }, "node_modules/@mdx-js/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", - "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", + "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", + "license": "MIT", "dependencies": { "@types/mdx": "^2.0.0" }, @@ -3855,6 +4340,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3867,6 +4353,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -3875,6 +4362,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3887,6 +4375,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", "engines": { "node": ">=12.22.0" } @@ -3895,6 +4384,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" }, @@ -3905,12 +4395,14 @@ "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" }, "node_modules/@pnpm/npm-conf": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", - "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-3.0.3.tgz", + "integrity": "sha512-//0sR/cow/s4ICQaYoAobOl4aU8cjU6x/V24V7XkKotb9+O+3zySIYp146vpaobYHnxa4pZX8NkV54Z5AwbDKA==", + "license": "MIT", "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", @@ -3921,14 +4413,16 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.28", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", - "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==" + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "license": "MIT" }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -3936,22 +4430,26 @@ "node_modules/@sideway/formula": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + "version": "0.27.12", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.12.tgz", + "integrity": "sha512-hhyNJ+nbR6ZR7pToHvllEFun9TL0sbL+tk/ON75lo+Xas054uez98qRbsuNt7MBCyZKK4+8Yli/OAGZhmfBZ/g==", + "license": "MIT" }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3963,6 +4461,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.1.0", @@ -3973,6 +4472,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3988,6 +4488,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -4003,6 +4504,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -4018,6 +4520,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -4033,6 +4536,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -4048,6 +4552,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -4063,6 +4568,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -4078,6 +4584,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -4093,6 +4600,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "license": "MIT", "dependencies": { "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", @@ -4118,6 +4626,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -4137,6 +4646,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "license": "MIT", "dependencies": { "@babel/types": "^7.21.3", "entities": "^4.4.0" @@ -4153,6 +4663,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -4174,6 +4685,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "license": "MIT", "dependencies": { "cosmiconfig": "^8.1.3", "deepmerge": "^4.3.1", @@ -4194,6 +4706,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@babel/plugin-transform-react-constant-elements": "^7.21.3", @@ -4216,6 +4729,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.1" }, @@ -4223,26 +4737,11 @@ "node": ">=14.16" } }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/acorn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "dependencies": { - "@types/estree": "*" - } - }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -4252,6 +4751,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4260,6 +4760,7 @@ "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4268,6 +4769,7 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -4527,59 +5029,46 @@ } }, "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", "dependencies": { "@types/ms": "*" } }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "license": "MIT" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", "dependencies": { "@types/estree": "*" } }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", - "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.3.tgz", + "integrity": "sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -4588,9 +5077,10 @@ } }, "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "version": "4.19.9", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.9.tgz", + "integrity": "sha512-QP2ESEe/ImWY0HDwNAnK9PvEffUyhLTnWkk7KXzHfyeWAnlrDe1fN77bXl6ia8KT3wPlmA7t9/VPRpnf4Ex9sg==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -4607,12 +5097,14 @@ "node_modules/@types/gtag.js": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", - "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==" + "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==", + "license": "MIT" }, "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==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz", + "integrity": "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -4620,27 +5112,32 @@ "node_modules/@types/history": { "version": "4.7.11", "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "license": "MIT" }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==", + "license": "MIT" }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.15", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", - "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4648,12 +5145,14 @@ "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -4662,6 +5161,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } @@ -4669,43 +5169,50 @@ "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" }, "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/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==" + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.14.tgz", + "integrity": "sha512-T48PeuJtvLosNTPVhfnIp3i/n3a4g4Bad7YCq5k64D4u7NwDrAotikQ+5+sjtUvBmxCMlbo3dVL+C2dP0rWHzg==", + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" }, "node_modules/@types/ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" }, "node_modules/@types/node": { - "version": "22.12.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.12.0.tgz", - "integrity": "sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==", + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.0.tgz", + "integrity": "sha512-FWWQhDlKSnEJVe+CTJCQL8Fol7s1MKo3Ud0fjryxoOoH+hwMIPxol0MguYrLi2I0VvIFwOU2DwdWET2+px15qg==", + "license": "MIT", "dependencies": { - "undici-types": "~6.20.0" + "undici-types": "~8.9.0" } }, "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4713,41 +5220,41 @@ "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" }, "node_modules/@types/prismjs": { - "version": "1.26.5", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", - "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" + "version": "1.26.6", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.6.tgz", + "integrity": "sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==", + "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==" + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", - "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.3.0.tgz", + "integrity": "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==", + "license": "MIT", "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" + "csstype": "^3.2.2" } }, "node_modules/@types/react-router": { "version": "5.1.20", "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*" @@ -4757,6 +5264,7 @@ "version": "5.0.11", "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -4767,6 +5275,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -4776,22 +5285,24 @@ "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" }, "node_modules/@types/sax": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "license": "MIT", "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -4799,24 +5310,37 @@ "version": "1.9.4", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "license": "MIT", "dependencies": { "@types/http-errors": "*", "@types/node": "*", - "@types/send": "*" + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" } }, "node_modules/@types/sockjs": { "version": "0.3.36", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -4831,20 +5355,23 @@ "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==" + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.14", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", - "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } @@ -4852,12 +5379,14 @@ "node_modules/@types/yargs-parser": { "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" }, "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.4.0.tgz", + "integrity": "sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==", + "license": "ISC" }, "node_modules/@upsetjs/venn.js": { "version": "2.0.0", @@ -4873,6 +5402,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" @@ -4881,22 +5411,26 @@ "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==" + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==" + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==" + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", @@ -4906,12 +5440,14 @@ "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==" + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -4923,6 +5459,7 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } @@ -4931,6 +5468,7 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } @@ -4938,12 +5476,14 @@ "node_modules/@webassemblyjs/utf8": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==" + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -4959,6 +5499,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", @@ -4971,6 +5512,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -4982,6 +5524,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", @@ -4995,6 +5538,7 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" @@ -5003,17 +5547,20 @@ "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -5026,6 +5573,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -5034,6 +5582,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -5045,14 +5594,16 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5064,14 +5615,16 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "license": "MIT", "dependencies": { "acorn": "^8.11.0" }, @@ -5083,6 +5636,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -5091,6 +5645,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -5100,9 +5655,10 @@ } }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -5115,9 +5671,10 @@ } }, "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -5134,6 +5691,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -5142,32 +5700,35 @@ } }, "node_modules/algoliasearch": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.20.0.tgz", - "integrity": "sha512-groO71Fvi5SWpxjI9Ia+chy0QBwT61mg6yxJV27f5YFf+Mw+STT75K6SHySpP8Co5LsCrtsbCH5dJZSRtkSKaQ==", - "dependencies": { - "@algolia/client-abtesting": "5.20.0", - "@algolia/client-analytics": "5.20.0", - "@algolia/client-common": "5.20.0", - "@algolia/client-insights": "5.20.0", - "@algolia/client-personalization": "5.20.0", - "@algolia/client-query-suggestions": "5.20.0", - "@algolia/client-search": "5.20.0", - "@algolia/ingestion": "1.20.0", - "@algolia/monitoring": "1.20.0", - "@algolia/recommend": "5.20.0", - "@algolia/requester-browser-xhr": "5.20.0", - "@algolia/requester-fetch": "5.20.0", - "@algolia/requester-node-http": "5.20.0" + "version": "5.59.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.59.0.tgz", + "integrity": "sha512-wUXzaeI7B526W4y1gFg3lcxgDZ67XSgRJIiellYWOas/pLpO7rOtxm9Gr2E/C8aiSDXIgx1q5TdSsvK67Uakqw==", + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.25.0", + "@algolia/client-abtesting": "5.59.0", + "@algolia/client-analytics": "5.59.0", + "@algolia/client-common": "5.59.0", + "@algolia/client-insights": "5.59.0", + "@algolia/client-personalization": "5.59.0", + "@algolia/client-query-suggestions": "5.59.0", + "@algolia/client-search": "5.59.0", + "@algolia/ingestion": "1.59.0", + "@algolia/monitoring": "1.59.0", + "@algolia/recommend": "5.59.0", + "@algolia/requester-browser-xhr": "5.59.0", + "@algolia/requester-fetch": "5.59.0", + "@algolia/requester-node-http": "5.59.0" }, "engines": { "node": ">= 14.0.0" } }, "node_modules/algoliasearch-helper": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.24.1.tgz", - "integrity": "sha512-knYRACqLH9UpeR+WRUrBzBFR2ulGuOjI2b525k4PNeqZxeFMHJE7YcL7s6Jh12Qza0rtHqZdgHMfeuaaAkf4wA==", + "version": "3.29.3", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.29.3.tgz", + "integrity": "sha512-gVOMbbPVrCO3Xs+B+BLAIGFqIQow6qHMTYCEeBqLQB9m4ZmKUqMwkEumlal2iyyezHEd4Y0FvFTLbCRutCutIQ==", + "license": "MIT", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -5179,6 +5740,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } @@ -5186,12 +5748,14 @@ "node_modules/ansi-align/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==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/ansi-align/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", @@ -5201,31 +5765,6 @@ "node": ">=8" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", @@ -5233,6 +5772,7 @@ "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -5241,6 +5781,7 @@ "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" } @@ -5249,6 +5790,7 @@ "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" }, @@ -5259,10 +5801,20 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/ansis": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-3.17.0.tgz", + "integrity": "sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==", + "license": "ISC", + "engines": { + "node": ">=14" + } + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5274,22 +5826,26 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -5298,6 +5854,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", "bin": { "astring": "bin/astring" } @@ -5306,14 +5863,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.6.1.tgz", + "integrity": "sha512-cL1Qz6ADZhcEbny/8HPfe99J6HhNoYtpX2LFLIbhgGE7Q1hlQVkYFdetDN7Id3KiQxhDrHwzlHr/YQCnZ8+xSA==", "funding": [ { "type": "opencollective", @@ -5328,12 +5886,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", + "browserslist": "^4.28.9", + "caniuse-lite": "^1.0.30001810", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -5350,6 +5908,7 @@ "version": "9.2.1", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "license": "MIT", "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -5366,17 +5925,19 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "license": "MIT", "dependencies": { "object.assign": "^4.1.0" } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", "semver": "^6.3.1" }, "peerDependencies": { @@ -5387,28 +5948,31 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" + "@babel/helper-define-polyfill-provider": "^0.6.8" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5418,6 +5982,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5426,17 +5991,32 @@ "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==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.24", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.24.tgz", + "integrity": "sha512-hYrgxie335U08WqICoGqKRzV1HFXv6zdxwJE4ekCb80CM9a0SVVsN4QPwT67RraRo+9h8IATk6uxHJw7QSkdOg==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", "engines": { "node": "*" } @@ -5445,6 +6025,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -5453,22 +6034,23 @@ } }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "1.20.8", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.8.tgz", + "integrity": "sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA==", + "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.16.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -5479,6 +6061,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5487,19 +6070,34 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.4.4.tgz", + "integrity": "sha512-jCZcVv7eoc4QesRscwEZtSROBen+6LpKAmBIsQYQrsAeVHLyMXWX/t6eIV5KiRZYNUBl8eVqImEEMQ8L5+c/Kw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" @@ -5508,12 +6106,14 @@ "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==" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" }, "node_modules/boxen": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^6.2.0", @@ -5532,18 +6132,19 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", + "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -5552,9 +6153,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.0.tgz", + "integrity": "sha512-3GSvyjvDI4Dur1Meg2BekJquu5uF+9R9a1+5M1Mde192eZoXbeXjzgOsgqPS2V8D5wrrip0gR5Hf/GhWQ9ZzaA==", "funding": [ { "type": "opencollective", @@ -5569,11 +6170,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "baseline-browser-mapping": "^2.11.23", + "caniuse-lite": "^1.0.30001810", + "electron-to-chromium": "^1.5.427", + "node-releases": "^2.0.55", + "update-browserslist-db": "^1.3.3" }, "bin": { "browserslist": "cli.js" @@ -5585,12 +6188,14 @@ "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==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5599,6 +6204,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", "engines": { "node": ">=14.16" } @@ -5607,6 +6213,7 @@ "version": "10.2.14", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", @@ -5621,13 +6228,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" }, "engines": { @@ -5638,9 +6246,10 @@ } }, "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -5650,12 +6259,13 @@ } }, "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -5668,6 +6278,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -5676,6 +6287,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -5685,6 +6297,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -5696,6 +6309,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", @@ -5704,9 +6318,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001696", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001696.tgz", - "integrity": "sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==", + "version": "1.0.30001810", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz", + "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==", "funding": [ { "type": "opencollective", @@ -5720,12 +6334,14 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5735,6 +6351,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -5750,6 +6367,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -5758,6 +6376,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5767,6 +6386,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5776,6 +6396,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5785,6 +6406,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5794,6 +6416,7 @@ "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -5814,6 +6437,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -5844,6 +6468,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -5867,6 +6492,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", "engines": { "node": ">=6.0" } @@ -5881,6 +6507,7 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } @@ -5889,6 +6516,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", "dependencies": { "source-map": "~0.6.0" }, @@ -5900,6 +6528,7 @@ "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", "engines": { "node": ">=0.10.0" } @@ -5908,6 +6537,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -5916,6 +6546,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -5927,6 +6558,7 @@ "version": "0.6.5", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -5940,12 +6572,14 @@ "node_modules/cli-table3/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==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/cli-table3/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", @@ -5959,6 +6593,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -5972,6 +6607,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" } @@ -5980,6 +6616,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -5989,6 +6626,7 @@ "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" }, @@ -5999,22 +6637,26 @@ "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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.10.0.tgz", + "integrity": "sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw==", + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" }, "node_modules/combine-promises": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", + "license": "MIT", "engines": { "node": ">=10" } @@ -6023,6 +6665,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6032,6 +6675,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -6039,12 +6683,14 @@ "node_modules/common-path-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "license": "ISC" }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -6053,34 +6699,42 @@ } }, "node_modules/compressible/node_modules/mime-db": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", - "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.2.tgz", + "integrity": "sha512-o8vI5RE5A6EVVOd9o41jKp41aJom+QTEO/Bx8MYNjexMo/Bv2WOjUfZr+aL0WnYSgymUy6zeguqLTsIhV0gMvQ==", + "license": "MIT", "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", "debug": "2.6.9", + "destroy": "1.2.0", "negotiator": "~0.6.4", - "on-headers": "~1.0.2", + "on-headers": "~1.1.0", "safe-buffer": "5.2.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/compression/node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -6089,6 +6743,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6096,17 +6751,14 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -6116,6 +6768,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "license": "BSD-2-Clause", "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -6134,14 +6787,16 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/consola": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.0.tgz", - "integrity": "sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", "engines": { "node": "^14.18.0 || >=16.10.0" } @@ -6150,6 +6805,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6158,6 +6814,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6165,25 +6822,29 @@ "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" }, "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" }, "node_modules/copy-text-to-clipboard": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", - "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz", + "integrity": "sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -6195,6 +6856,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "license": "MIT", "dependencies": { "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", @@ -6218,6 +6880,7 @@ "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" }, @@ -6229,6 +6892,7 @@ "version": "13.2.2", "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -6247,6 +6911,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -6255,21 +6920,29 @@ } }, "node_modules/core-js": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz", - "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.50.0.tgz", + "integrity": "sha512-BRWgOLKkFeCgRudR6zrs8p9XJZcE14grzKMMssoYrk6krtuEZ7MTKPIY5RzOnqsEKIR9kst7wNzphttraT+Yqw==", "hasInstallScript": true, + "license": "MIT", + "engines": { + "node": "*" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-compat": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", - "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.50.0.tgz", + "integrity": "sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==", + "license": "MIT", "dependencies": { - "browserslist": "^4.24.3" + "browserslist": "^4.28.7" + }, + "engines": { + "node": ">=6.4.0" }, "funding": { "type": "opencollective", @@ -6277,10 +6950,14 @@ } }, "node_modules/core-js-pure": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz", - "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==", + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.50.0.tgz", + "integrity": "sha512-6GP3Pxz4IKyWjAfa747vIu/jilB5z29JWROLqH/b+pXVcpgh6tM06ZIBwSuglgVqzDYURhOK6oEzTrG0bCHitA==", "hasInstallScript": true, + "license": "MIT", + "engines": { + "node": "*" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -6289,7 +6966,8 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, "node_modules/cose-base": { "version": "1.0.3", @@ -6304,6 +6982,7 @@ "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", @@ -6329,6 +7008,7 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6342,6 +7022,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", "dependencies": { "type-fest": "^1.0.1" }, @@ -6356,6 +7037,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -6377,6 +7059,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -6388,9 +7071,10 @@ } }, "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -6400,9 +7084,10 @@ } }, "node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz", + "integrity": "sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==", + "license": "ISC", "engines": { "node": "^14 || ^16 || >=18" }, @@ -6411,9 +7096,9 @@ } }, "node_modules/css-has-pseudo": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz", - "integrity": "sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz", + "integrity": "sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==", "funding": [ { "type": "github", @@ -6424,6 +7109,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0", @@ -6450,6 +7136,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -6458,9 +7145,10 @@ } }, "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -6473,6 +7161,7 @@ "version": "6.11.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.4.33", @@ -6507,6 +7196,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "cssnano": "^6.0.1", @@ -6560,6 +7250,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -6568,9 +7259,10 @@ } }, "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -6586,6 +7278,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -6595,9 +7288,10 @@ } }, "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -6606,9 +7300,9 @@ } }, "node_modules/cssdb": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.3.tgz", - "integrity": "sha512-9BDG5XmJrJQQnJ51VFxXCAtpZ5ebDlAREmO8sxMOVU0aSxN/gocbctjIG5LMh3WBUq+xTlb/jw2LoljBEqraTA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.11.0.tgz", + "integrity": "sha512-VzY/8kcK5M8oCVr/cwh24J8XVlCOITpmzCizKBC28o7Z1s23MMojXoJ3q7a+TQQoMKvxC3YlG0Z9yU10kJF1uQ==", "funding": [ { "type": "opencollective", @@ -6618,12 +7312,14 @@ "type": "github", "url": "https://github.com/sponsors/csstools" } - ] + ], + "license": "MIT-0" }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -6635,6 +7331,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "license": "MIT", "dependencies": { "cssnano-preset-default": "^6.1.2", "lilconfig": "^3.1.1" @@ -6654,6 +7351,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "license": "MIT", "dependencies": { "autoprefixer": "^10.4.19", "browserslist": "^4.23.0", @@ -6674,6 +7372,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "css-declaration-sorter": "^7.2.0", @@ -6717,6 +7416,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -6728,6 +7428,7 @@ "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", "dependencies": { "css-tree": "~2.2.0" }, @@ -6740,6 +7441,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" @@ -6752,12 +7454,14 @@ "node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" }, "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" }, "node_modules/cytoscape": { "version": "3.34.3", @@ -6986,18 +7690,6 @@ "node": ">= 10" } }, - "node_modules/d3-dsv/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/d3-ease": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", @@ -7288,12 +7980,14 @@ "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -7307,9 +8001,10 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -7322,6 +8017,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -7336,6 +8032,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -7347,6 +8044,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -7355,6 +8053,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7363,6 +8062,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "license": "BSD-2-Clause", "dependencies": { "execa": "^5.0.0" }, @@ -7374,6 +8074,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", "engines": { "node": ">=10" } @@ -7382,6 +8083,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -7398,6 +8100,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", "engines": { "node": ">=8" } @@ -7406,6 +8109,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -7422,6 +8126,7 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "license": "MIT", "dependencies": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", @@ -7452,6 +8157,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -7460,6 +8166,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -7468,6 +8175,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -7476,12 +8184,14 @@ "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" }, "node_modules/detect-port": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "license": "MIT", "dependencies": { "address": "^1.0.1", "debug": "4" @@ -7498,6 +8208,7 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "license": "MIT", "dependencies": { "address": "^1.0.1", "debug": "^2.6.0" @@ -7514,6 +8225,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -7521,12 +8233,14 @@ "node_modules/detect-port-alt/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", "dependencies": { "dequal": "^2.0.0" }, @@ -7539,6 +8253,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -7550,6 +8265,7 @@ "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -7578,46 +8294,11 @@ "@docusaurus/core": "^3.0.0" } }, - "node_modules/docusaurus-plugin-llms/node_modules/brace-expansion": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz", - "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/docusaurus-plugin-llms/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/docusaurus-plugin-llms/node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - }, "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", "dependencies": { "utila": "~0.4" } @@ -7626,6 +8307,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -7644,12 +8326,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -7673,6 +8357,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -7686,6 +8371,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -7695,6 +8381,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -7709,6 +8396,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", "engines": { "node": ">=8" } @@ -7717,6 +8405,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", @@ -7729,22 +8418,26 @@ "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.90", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.90.tgz", - "integrity": "sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==" + "version": "1.5.429", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.429.tgz", + "integrity": "sha512-/1ENIE3cx4HTIx4IfPZFaOunJmsrSVTnj6coXoRVbiJUbkeTyFkJvBeWGkdgh08OhFbxYLMT1kbkwFVSarq6Ow==", + "license": "ISC" }, "node_modules/elkjs": { "version": "0.9.3", @@ -7755,17 +8448,20 @@ "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==" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" }, "node_modules/emojilib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", - "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==" + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT" }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -7774,6 +8470,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7783,17 +8480,19 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/enhanced-resolve": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", - "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", + "version": "5.25.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.25.1.tgz", + "integrity": "sha512-nGXts5znJzmWPu+mIE9izCOzdg63oJca2mDzGWWTth7sr4aCToKcoyFVBQwN75Ij5Pf6p510EwkTqViTRzDV+w==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.3" }, "engines": { "node": ">=10.13.0" @@ -7803,6 +8502,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -7811,9 +8511,10 @@ } }, "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } @@ -7822,6 +8523,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -7830,19 +8532,22 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==" + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", + "license": "MIT" }, "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -7866,6 +8571,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", @@ -7881,6 +8587,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", @@ -7896,6 +8603,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -7904,6 +8612,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -7914,12 +8623,14 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -7927,22 +8638,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -7951,37 +8651,11 @@ "node": ">=4" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/estree-util-attach-comments": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" }, @@ -7994,6 +8668,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", @@ -8009,15 +8684,17 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/estree-util-scope": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", - "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.1.tgz", + "integrity": "sha512-B0np3dcdxqILX5e9nEi5/Fr4K7gL4oYFVPV1zRa2e9wRCbQoZZNWOZFYyoInvXUPJXBXjss+QXlWLJChDEHDkA==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0" @@ -8031,6 +8708,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", @@ -8042,9 +8720,10 @@ } }, "node_modules/estree-util-value-to-estree": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.2.1.tgz", - "integrity": "sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz", + "integrity": "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" }, @@ -8056,6 +8735,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" @@ -8069,6 +8749,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } @@ -8077,6 +8758,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -8085,6 +8767,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "license": "MIT", "engines": { "node": ">=6.0.0" }, @@ -8096,6 +8779,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8115,12 +8799,14 @@ "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { "node": ">=0.8.x" } @@ -8129,6 +8815,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -8148,38 +8835,39 @@ } }, "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.3.tgz", + "integrity": "sha512-Bdcs4+3qlpVlx2NRn6fgX2Ue2/gGRaPeawebgclM0ERSCqDpA+owF1fdPwjJUTAJWMTuAaxjDf+hzb0/4eKvvw==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", + "path-to-regexp": "~0.1.13", "proxy-addr": "~2.0.7", - "qs": "6.13.0", + "qs": "~6.16.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", + "send": "~0.19.0", + "serve-static": "~1.16.2", "setprototypeof": "1.2.0", - "statuses": "2.0.1", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -8196,6 +8884,7 @@ "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -8207,6 +8896,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -8214,17 +8904,20 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "license": "MIT" }, "node_modules/express/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -8232,12 +8925,14 @@ "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, "node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -8248,12 +8943,14 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -8268,12 +8965,13 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", + "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", "funding": [ { "type": "github", @@ -8283,12 +8981,14 @@ "type": "opencollective", "url": "https://opencollective.com/fastify" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", - "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz", + "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==", + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -8297,6 +8997,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "license": "MIT", "dependencies": { "format": "^0.2.0" }, @@ -8309,6 +9010,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -8320,6 +9022,7 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "license": "MIT", "dependencies": { "xml-js": "^1.6.11" }, @@ -8327,32 +9030,11 @@ "node": ">=0.4.0" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/file-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -8369,9 +9051,10 @@ } }, "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -8387,6 +9070,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -8394,12 +9078,14 @@ "node_modules/file-loader/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/file-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -8417,6 +9103,7 @@ "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "license": "BSD-3-Clause", "engines": { "node": ">= 0.4.0" } @@ -8425,6 +9112,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -8433,16 +9121,17 @@ } }, "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "statuses": "2.0.1", + "statuses": "~2.0.2", "unpipe": "~1.0.0" }, "engines": { @@ -8453,6 +9142,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -8460,12 +9150,14 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/find-cache-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" @@ -8481,6 +9173,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -8496,20 +9189,22 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -8523,6 +9218,7 @@ "version": "6.5.3", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.8.3", "@types/json-schema": "^7.0.5", @@ -8558,9 +9254,10 @@ } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -8576,6 +9273,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -8584,6 +9282,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", @@ -8599,6 +9298,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -8612,12 +9312,14 @@ "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.4", "ajv": "^6.12.2", @@ -8635,6 +9337,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -8643,6 +9346,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", "engines": { "node": ">= 14.17" } @@ -8659,19 +9363,21 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "license": "MIT", "engines": { "node": "*" }, "funding": { - "type": "patreon", + "type": "github", "url": "https://github.com/sponsors/rawify" } }, @@ -8679,14 +9385,16 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fs-extra": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", - "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.0.tgz", + "integrity": "sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -8697,20 +9405,23 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", + "license": "Unlicense" }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -8723,6 +9434,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8731,21 +9443,23 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", + "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "get-proto": "^1.0.0", + "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", @@ -8761,12 +9475,14 @@ "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -8779,6 +9495,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -8789,13 +9506,15 @@ "node_modules/github-slugger": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "license": "ISC" }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8815,6 +9534,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -8822,15 +9542,11 @@ "node": ">= 6" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -8845,6 +9561,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", "engines": { "node": ">=10" } @@ -8853,6 +9570,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "license": "MIT", "dependencies": { "global-prefix": "^3.0.0" }, @@ -8864,6 +9582,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "license": "MIT", "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -8877,6 +9596,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -8884,18 +9604,11 @@ "which": "bin/which" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -8915,6 +9628,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8926,6 +9640,7 @@ "version": "12.6.1", "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -8950,6 +9665,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -8960,12 +9676,14 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", "dependencies": { "js-yaml": "^3.13.1", "kind-of": "^6.0.2", @@ -8980,14 +9698,16 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.2.tgz", + "integrity": "sha512-6EuL879VkRA+1Cz578mKMiKvjPNEuk6+r1JaFzoSWejZmtf7xWbIyw1e3KkxlkzTIt9Taw6JBhEppG7utc1P+w==", + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -9000,6 +9720,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", "dependencies": { "duplexer": "^0.1.2" }, @@ -9019,12 +9740,14 @@ "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -9033,6 +9756,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -9044,6 +9768,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9055,6 +9780,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -9063,9 +9789,10 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -9074,15 +9801,16 @@ } }, "node_modules/hast-util-from-parse5": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz", - "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" @@ -9096,6 +9824,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -9108,6 +9837,7 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -9129,9 +9859,10 @@ } }, "node_modules/hast-util-to-estree": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.1.tgz", - "integrity": "sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", @@ -9144,9 +9875,9 @@ "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", + "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" }, @@ -9156,9 +9887,10 @@ } }, "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", - "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", @@ -9170,9 +9902,9 @@ "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", + "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" }, @@ -9182,14 +9914,15 @@ } }, "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" @@ -9203,6 +9936,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -9212,14 +9946,15 @@ } }, "node_modules/hastscript": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz", - "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "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", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" }, "funding": { @@ -9231,6 +9966,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", "bin": { "he": "bin/he" } @@ -9239,6 +9975,7 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2", "loose-envify": "^1.2.0", @@ -9252,6 +9989,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } @@ -9260,6 +9998,7 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -9270,12 +10009,14 @@ "node_modules/hpack.js/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -9289,20 +10030,22 @@ "node_modules/hpack.js/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", "funding": [ { "type": "github", @@ -9312,17 +10055,20 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ] + ], + "license": "MIT" }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "license": "MIT" }, "node_modules/html-minifier-terser": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "clean-css": "~5.3.2", @@ -9343,6 +10089,7 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", "engines": { "node": ">=14" } @@ -9351,6 +10098,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -9362,15 +10110,17 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/html-webpack-plugin": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", - "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", + "version": "5.6.8", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.8.tgz", + "integrity": "sha512-MZmKQcTnhEh1SPSyMiEytIeDZDUoBZVorNHivQGXMASHf/BSGGOrKa2xQ5bGx3TCe1n109ecCt+cpww7wwWhKA==", + "license": "MIT", "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", @@ -9386,7 +10136,7 @@ "url": "https://opencollective.com/html-webpack-plugin" }, "peerDependencies": { - "@rspack/core": "0.x || 1.x", + "@rspack/core": "0.x || 1.x || 2.x", "webpack": "^5.20.0" }, "peerDependenciesMeta": { @@ -9402,6 +10152,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", "engines": { "node": ">= 12" } @@ -9410,6 +10161,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", @@ -9437,6 +10189,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -9445,39 +10198,48 @@ } }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-parser-js": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", - "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==" + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -9488,9 +10250,10 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.10.tgz", + "integrity": "sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==", + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -9514,6 +10277,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -9525,6 +10289,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -9537,16 +10302,18 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -9556,6 +10323,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -9567,37 +10335,38 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/image-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.0.tgz", - "integrity": "sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==", - "dependencies": { - "queue": "6.0.2" - }, + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.4.tgz", + "integrity": "sha512-QRUkFFsRV/6fuESxb9Vkq+a0LkSrgKXuc2NEqfikiXxxN/G3tjWt5EVUlMaImRBZRZK/jRBEbYvpPYZL8t08Zw==", + "license": "MIT", "bin": { "image-size": "bin/image-size.js" }, "engines": { - "node": ">=16.x" + "node": ">=18" } }, "node_modules/immer": { "version": "9.0.21", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" } }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -9613,6 +10382,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -9631,6 +10401,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -9639,6 +10410,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -9647,6 +10419,7 @@ "version": "0.2.0-alpha.45", "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", + "license": "MIT", "engines": { "node": ">=12" } @@ -9656,6 +10429,7 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -9664,17 +10438,20 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" }, "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==" + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" }, "node_modules/internmap": { "version": "2.0.3", @@ -9689,6 +10466,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -9697,14 +10475,16 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } }, "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.5.0.tgz", + "integrity": "sha512-aq+t5NAc+cS6rZQQVWC2x98CPqGtKKTMDd4Gaodv0wShnItdKg/51djkGJ1hqH+Oy0ivDftCbSLCQob8zso01w==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -9713,6 +10493,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -9722,6 +10503,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" @@ -9734,12 +10516,14 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -9751,6 +10535,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "license": "MIT", "dependencies": { "ci-info": "^3.2.0" }, @@ -9759,11 +10544,12 @@ } }, "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "hasown": "^2.0.3" }, "engines": { "node": ">= 0.4" @@ -9776,6 +10562,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -9785,6 +10572,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -9799,6 +10587,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9807,6 +10596,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9815,6 +10605,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -9823,6 +10614,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -9834,6 +10626,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -9843,6 +10636,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -9855,9 +10649,10 @@ } }, "node_modules/is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.1.0.tgz", + "integrity": "sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -9869,6 +10664,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -9877,6 +10673,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9885,6 +10682,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -9893,6 +10691,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -9901,6 +10700,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -9912,6 +10712,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -9923,6 +10724,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9931,6 +10733,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -9939,6 +10742,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -9949,12 +10753,14 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -9966,6 +10772,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "license": "MIT", "engines": { "node": ">=12" } @@ -9973,17 +10780,20 @@ "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9992,6 +10802,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -10008,6 +10819,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -10022,6 +10834,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10036,14 +10849,16 @@ "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "version": "17.13.8", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.8.tgz", + "integrity": "sha512-iPKOGmiRw1jxf/JOPwxmCcUQAOdF359mdzYiP2DJ+TMX0YK2zjK3D+zYOaGjpumWxOFF/l2xVWjRVK5bGSLdEw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", @@ -10055,12 +10870,24 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -10072,6 +10899,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -10082,22 +10910,26 @@ "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -10106,9 +10938,10 @@ } }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -10145,6 +10978,7 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -10158,6 +10992,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10166,6 +11001,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", "engines": { "node": ">=6" } @@ -10174,6 +11010,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "license": "MIT", "dependencies": { "package-json": "^8.1.0" }, @@ -10185,12 +11022,13 @@ } }, "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz", + "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==", + "license": "MIT", "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.4" } }, "node_modules/layout-base": { @@ -10203,6 +11041,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -10211,6 +11050,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -10221,20 +11061,14 @@ "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==" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -10248,6 +11082,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, @@ -10259,9 +11094,10 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.23", @@ -10272,22 +11108,26 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10297,6 +11137,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -10308,6 +11149,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -10316,6 +11158,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -10327,6 +11170,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -10335,6 +11179,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", "engines": { "node": ">=16" }, @@ -10346,6 +11191,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10367,6 +11213,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -10375,6 +11222,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -10395,6 +11243,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", @@ -10410,6 +11259,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -10418,9 +11268,10 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -10453,12 +11304,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/mdast-util-frontmatter": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -10476,6 +11329,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -10484,9 +11338,10 @@ } }, "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", @@ -10505,6 +11360,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", @@ -10531,6 +11387,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -10549,12 +11406,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", @@ -10571,6 +11430,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -10585,6 +11445,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -10601,6 +11462,7 @@ "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", "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -10616,6 +11478,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", @@ -10632,6 +11495,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -10649,6 +11513,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -10672,6 +11537,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -10689,6 +11555,7 @@ "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" @@ -10699,9 +11566,10 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -10722,6 +11590,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -10742,6 +11611,7 @@ "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" }, @@ -10753,12 +11623,14 @@ "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10767,6 +11639,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "license": "Unlicense", "dependencies": { "fs-monkey": "^1.0.4" }, @@ -10778,6 +11651,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -10785,12 +11659,14 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -10829,31 +11705,19 @@ "node": ">=22.12.0" } }, - "node_modules/mermaid/node_modules/uuid": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.2.tgz", - "integrity": "sha512-xZe/16rV4aa+HGSOCiY2YeLT1OybRLrrkL/Rqaq7p7GMVXjFh+6wN4oMYgjFmnSnhY8t6Xpdl2l9qmnHYuMHwQ==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } - }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/micromark": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", - "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "funding": [ { "type": "GitHub Sponsors", @@ -10864,6 +11728,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -10885,9 +11750,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", - "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "funding": [ { "type": "GitHub Sponsors", @@ -10898,6 +11763,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", @@ -10931,6 +11797,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -10950,6 +11817,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -10968,12 +11836,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-directive": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -11002,6 +11872,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11021,6 +11892,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11039,12 +11911,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-frontmatter": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "license": "MIT", "dependencies": { "fault": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -11070,6 +11944,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11088,12 +11963,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", @@ -11113,6 +11990,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", @@ -11138,6 +12016,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11156,12 +12035,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-footnote": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", @@ -11191,6 +12072,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11210,6 +12092,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11228,12 +12111,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-strikethrough": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -11260,12 +12145,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-table": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", - "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.2.tgz", + "integrity": "sha512-pRzm4kDTu0MjlmBkxmS9yYhw60nncfcEwu9NNdPFSQEFXS95ZKyIIyTSHu/o3ReBUrLKYEq+7YaXCRn/bPB4MA==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -11292,6 +12179,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11311,6 +12199,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11329,12 +12218,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-tagfilter": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, @@ -11347,6 +12238,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -11373,6 +12265,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11392,6 +12285,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11410,12 +12304,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", - "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", "funding": [ { "type": "GitHub Sponsors", @@ -11426,6 +12321,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -11451,6 +12347,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11470,6 +12367,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11488,14 +12386,15 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", - "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", "dependencies": { - "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", @@ -11526,6 +12425,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11545,6 +12445,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11563,12 +12464,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-mdx-md": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, @@ -11581,6 +12484,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", @@ -11600,6 +12504,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -11630,6 +12535,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11648,7 +12554,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-destination": { "version": "2.0.1", @@ -11664,6 +12571,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -11684,6 +12592,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11702,7 +12611,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-label": { "version": "2.0.1", @@ -11718,6 +12628,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -11739,6 +12650,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11757,12 +12669,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", - "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", "funding": [ { "type": "GitHub Sponsors", @@ -11773,6 +12686,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -11799,6 +12713,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11818,6 +12733,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11836,7 +12752,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-space": { "version": "1.1.0", @@ -11852,6 +12769,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -11870,7 +12788,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-title": { "version": "2.0.1", @@ -11886,6 +12805,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -11907,6 +12827,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11926,6 +12847,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -11944,7 +12866,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-whitespace": { "version": "2.0.1", @@ -11960,6 +12883,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -11981,6 +12905,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -12000,6 +12925,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -12018,7 +12944,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-character": { "version": "1.2.0", @@ -12034,6 +12961,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -12052,7 +12980,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-chunked": { "version": "2.0.1", @@ -12068,6 +12997,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } @@ -12085,7 +13015,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-classify-character": { "version": "2.0.1", @@ -12101,6 +13032,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -12121,6 +13053,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -12139,7 +13072,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-combine-extensions": { "version": "2.0.1", @@ -12155,6 +13089,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -12174,6 +13109,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } @@ -12191,7 +13127,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-decode-string": { "version": "2.0.1", @@ -12207,6 +13144,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -12228,6 +13166,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -12246,7 +13185,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-encode": { "version": "2.0.1", @@ -12261,12 +13201,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", - "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", "funding": [ { "type": "GitHub Sponsors", @@ -12277,8 +13218,8 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { - "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", @@ -12301,7 +13242,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-html-tag-name": { "version": "2.0.1", @@ -12316,7 +13258,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-normalize-identifier": { "version": "2.0.1", @@ -12332,6 +13275,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } @@ -12349,7 +13293,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-resolve-all": { "version": "2.0.1", @@ -12365,6 +13310,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" } @@ -12383,6 +13329,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", @@ -12403,6 +13350,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -12421,12 +13369,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-subtokenize": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.4.tgz", - "integrity": "sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "funding": [ { "type": "GitHub Sponsors", @@ -12437,6 +13386,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -12457,7 +13407,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-symbol": { "version": "1.1.0", @@ -12472,12 +13423,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] - }, + ], + "license": "MIT" + }, "node_modules/micromark-util-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", - "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "funding": [ { "type": "GitHub Sponsors", @@ -12487,7 +13439,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark/node_modules/micromark-factory-space": { "version": "2.0.1", @@ -12503,6 +13456,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -12522,6 +13476,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" @@ -12540,12 +13495,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -12558,6 +13515,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -12569,6 +13527,7 @@ "version": "1.33.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -12577,6 +13536,7 @@ "version": "2.1.18", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "license": "MIT", "dependencies": { "mime-db": "~1.33.0" }, @@ -12588,6 +13548,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -12596,6 +13557,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -12604,9 +13566,10 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.2.tgz", + "integrity": "sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==", + "license": "MIT", "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" @@ -12625,31 +13588,139 @@ "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.2" }, "engines": { - "node": "*" + "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", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minimizer-webpack-plugin": { + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.10.1.tgz", + "integrity": "sha512-+dsZEyTcy1lkq41lxdiOqvb26gXbYGgwY+30w37f9PqUVkuEBejBLDotsHOTjuga9xJyGLW2DqzKDUyJ4W/PMQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.3", + "terser": "^5.51.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@napi-rs/image": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "imagemin": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "sharp": { + "optional": true + }, + "svgo": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/minimizer-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/minimizer-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", "engines": { "node": ">=10" } @@ -12657,12 +13728,14 @@ "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -12672,15 +13745,16 @@ } }, "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -12692,19 +13766,16 @@ "version": "0.6.4", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -12714,6 +13785,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.6.0", "char-regex": "^1.0.2", @@ -12725,38 +13797,37 @@ } }, "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } }, "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" + "version": "2.0.55", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.55.tgz", + "integrity": "sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.1.tgz", + "integrity": "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -12768,6 +13839,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -12778,12 +13850,14 @@ "node_modules/nprogress": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "license": "MIT" }, "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" }, @@ -12795,6 +13869,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -12811,9 +13886,10 @@ } }, "node_modules/null-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -12829,6 +13905,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -12836,12 +13913,14 @@ "node_modules/null-loader/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/null-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -12859,14 +13938,16 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -12878,6 +13959,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -12886,6 +13968,7 @@ "version": "4.1.7", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -12904,12 +13987,14 @@ "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -12918,9 +14003,10 @@ } }, "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -12929,6 +14015,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -12937,6 +14024,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -12951,6 +14039,7 @@ "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -12967,6 +14056,7 @@ "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", "bin": { "opener": "bin/opener-bin.js" } @@ -12975,6 +14065,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", "engines": { "node": ">=12.20" } @@ -12983,6 +14074,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -12997,6 +14089,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -13011,6 +14104,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -13025,6 +14119,7 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" @@ -13037,6 +14132,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -13045,6 +14141,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "license": "MIT", "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", @@ -13068,6 +14165,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -13077,6 +14175,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -13088,6 +14187,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", @@ -13105,12 +14205,14 @@ "node_modules/parse-entities/node_modules/@types/unist": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -13127,14 +14229,16 @@ "node_modules/parse-numeric-range": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", + "license": "ISC" }, "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", "dependencies": { - "entities": "^4.5.0" + "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -13144,6 +14248,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", "dependencies": { "domhandler": "^5.0.3", "parse5": "^7.0.0" @@ -13152,10 +14257,23 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -13164,6 +14282,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -13179,6 +14298,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } @@ -13187,6 +14307,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13194,12 +14315,14 @@ "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -13207,12 +14330,14 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-to-regexp": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", "dependencies": { "isarray": "0.0.1" } @@ -13221,6 +14346,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -13228,12 +14354,14 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -13245,6 +14373,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "license": "MIT", "dependencies": { "find-up": "^6.3.0" }, @@ -13259,6 +14388,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -13270,6 +14400,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -13281,6 +14412,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -13293,6 +14425,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -13307,6 +14440,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -13318,6 +14452,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -13339,9 +14474,9 @@ } }, "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", + "version": "8.5.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", + "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", "funding": [ { "type": "opencollective", @@ -13356,8 +14491,9 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.18", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -13379,6 +14515,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -13390,9 +14527,10 @@ } }, "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -13405,6 +14543,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" @@ -13420,6 +14559,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -13431,9 +14571,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.7.tgz", - "integrity": "sha512-EZvAHsvyASX63vXnyXOIynkxhaHRSsdb7z6yiXKIovGXAolW4cMZ3qoh7k3VdTsLBS6VGdksGfIo3r6+waLoOw==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz", + "integrity": "sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==", "funding": [ { "type": "github", @@ -13444,11 +14584,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -13472,6 +14613,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -13497,6 +14639,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -13512,6 +14655,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -13529,6 +14673,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -13541,9 +14686,9 @@ } }, "node_modules/postcss-custom-media": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz", - "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==", + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz", + "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==", "funding": [ { "type": "github", @@ -13554,11 +14699,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" }, "engines": { "node": ">=18" @@ -13568,9 +14714,9 @@ } }, "node_modules/postcss-custom-properties": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz", - "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==", + "version": "14.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz", + "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==", "funding": [ { "type": "github", @@ -13581,10 +14727,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -13596,9 +14743,9 @@ } }, "node_modules/postcss-custom-selectors": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz", - "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz", + "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==", "funding": [ { "type": "github", @@ -13609,10 +14756,11 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", "postcss-selector-parser": "^7.0.0" }, "engines": { @@ -13623,9 +14771,10 @@ } }, "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -13648,6 +14797,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -13659,9 +14809,10 @@ } }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -13674,6 +14825,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -13685,6 +14837,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -13696,6 +14849,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -13707,6 +14861,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -13718,6 +14873,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -13729,9 +14885,9 @@ } }, "node_modules/postcss-double-position-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz", - "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz", + "integrity": "sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==", "funding": [ { "type": "github", @@ -13742,8 +14898,9 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, @@ -13768,6 +14925,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -13779,9 +14937,10 @@ } }, "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -13804,6 +14963,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -13815,9 +14975,10 @@ } }, "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -13830,6 +14991,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", "peerDependencies": { "postcss": "^8.1.0" } @@ -13848,6 +15010,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -13869,6 +15032,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" @@ -13881,9 +15045,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.7.tgz", - "integrity": "sha512-+ONj2bpOQfsCKZE2T9VGMyVVdGcGUpr7u3SVfvkJlvhTRmDCfY25k4Jc8fubB9DclAPR4+w8uVtDZmdRgdAHig==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz", + "integrity": "sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==", "funding": [ { "type": "github", @@ -13894,11 +15058,12 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", "@csstools/utilities": "^2.0.0" }, "engines": { @@ -13912,6 +15077,7 @@ "version": "7.3.4", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "license": "MIT", "dependencies": { "cosmiconfig": "^8.3.5", "jiti": "^1.20.0", @@ -13930,9 +15096,9 @@ } }, "node_modules/postcss-logical": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.0.0.tgz", - "integrity": "sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", + "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", "funding": [ { "type": "github", @@ -13943,6 +15109,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -13957,6 +15124,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -13972,6 +15140,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^6.1.1" @@ -13987,6 +15156,7 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -14004,6 +15174,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14018,6 +15189,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "license": "MIT", "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^4.0.2", @@ -14034,6 +15206,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "cssnano-utils": "^4.0.2", @@ -14050,6 +15223,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -14064,6 +15238,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -14075,6 +15250,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^7.0.0", @@ -14088,9 +15264,10 @@ } }, "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14103,6 +15280,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -14114,9 +15292,10 @@ } }, "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14129,6 +15308,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -14140,9 +15320,9 @@ } }, "node_modules/postcss-nesting": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz", - "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz", + "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", "funding": [ { "type": "github", @@ -14153,8 +15333,9 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { - "@csstools/selector-resolve-nested": "^3.0.0", + "@csstools/selector-resolve-nested": "^3.1.0", "@csstools/selector-specificity": "^5.0.0", "postcss-selector-parser": "^7.0.0" }, @@ -14166,9 +15347,9 @@ } }, "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz", - "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", + "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", "funding": [ { "type": "github", @@ -14179,6 +15360,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -14200,6 +15382,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "engines": { "node": ">=18" }, @@ -14208,9 +15391,10 @@ } }, "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14223,6 +15407,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -14234,6 +15419,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14248,6 +15434,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14262,6 +15449,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14276,6 +15464,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14290,6 +15479,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14304,6 +15494,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -14319,6 +15510,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14333,6 +15525,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14357,6 +15550,7 @@ "url": "https://liberapay.com/mrcgrtz" } ], + "license": "MIT", "engines": { "node": ">=18" }, @@ -14368,6 +15562,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -14393,6 +15588,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14407,6 +15603,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", "peerDependencies": { "postcss": "^8" } @@ -14425,6 +15622,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14436,9 +15634,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.3.tgz", - "integrity": "sha512-9qzVhcMFU/MnwYHyYpJz4JhGku/4+xEiPTmhn0hj3IxnUYlEF9vbh7OC1KoLAnenS6Fgg43TKNp9xcuMeAi4Zw==", + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.6.1.tgz", + "integrity": "sha512-yrk74d9EvY+W7+lO9Aj1QmjWY9q5NsKjK2V9drkOPZB/X6KZ0B3igKsHUYakb7oYVhnioWypQX3xGuePf89f3g==", "funding": [ { "type": "github", @@ -14449,63 +15647,72 @@ "url": "https://opencollective.com/csstools" } ], - "dependencies": { - "@csstools/postcss-cascade-layers": "^5.0.1", - "@csstools/postcss-color-function": "^4.0.7", - "@csstools/postcss-color-mix-function": "^3.0.7", - "@csstools/postcss-content-alt-text": "^2.0.4", - "@csstools/postcss-exponential-functions": "^2.0.6", + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-alpha-function": "^1.0.1", + "@csstools/postcss-cascade-layers": "^5.0.2", + "@csstools/postcss-color-function": "^4.0.12", + "@csstools/postcss-color-function-display-p3-linear": "^1.0.1", + "@csstools/postcss-color-mix-function": "^3.0.12", + "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.2", + "@csstools/postcss-content-alt-text": "^2.0.8", + "@csstools/postcss-contrast-color-function": "^2.0.12", + "@csstools/postcss-exponential-functions": "^2.0.9", "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.7", - "@csstools/postcss-gradients-interpolation-method": "^5.0.7", - "@csstools/postcss-hwb-function": "^4.0.7", - "@csstools/postcss-ic-unit": "^4.0.0", - "@csstools/postcss-initial": "^2.0.0", - "@csstools/postcss-is-pseudo-class": "^5.0.1", - "@csstools/postcss-light-dark-function": "^2.0.7", + "@csstools/postcss-gamut-mapping": "^2.0.11", + "@csstools/postcss-gradients-interpolation-method": "^5.0.12", + "@csstools/postcss-hwb-function": "^4.0.12", + "@csstools/postcss-ic-unit": "^4.0.4", + "@csstools/postcss-initial": "^2.0.1", + "@csstools/postcss-is-pseudo-class": "^5.0.3", + "@csstools/postcss-light-dark-function": "^2.0.11", "@csstools/postcss-logical-float-and-clear": "^3.0.0", "@csstools/postcss-logical-overflow": "^2.0.0", "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", "@csstools/postcss-logical-resize": "^3.0.0", - "@csstools/postcss-logical-viewport-units": "^3.0.3", - "@csstools/postcss-media-minmax": "^2.0.6", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", + "@csstools/postcss-logical-viewport-units": "^3.0.4", + "@csstools/postcss-media-minmax": "^2.0.9", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", "@csstools/postcss-nested-calc": "^4.0.0", - "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.7", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/postcss-random-function": "^1.0.2", - "@csstools/postcss-relative-color-syntax": "^3.0.7", + "@csstools/postcss-normalize-display-values": "^4.0.1", + "@csstools/postcss-oklab-function": "^4.0.12", + "@csstools/postcss-position-area-property": "^1.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/postcss-property-rule-prelude-list": "^1.0.0", + "@csstools/postcss-random-function": "^2.0.1", + "@csstools/postcss-relative-color-syntax": "^3.0.12", "@csstools/postcss-scope-pseudo-class": "^4.0.1", - "@csstools/postcss-sign-functions": "^1.1.1", - "@csstools/postcss-stepped-value-functions": "^4.0.6", - "@csstools/postcss-text-decoration-shorthand": "^4.0.1", - "@csstools/postcss-trigonometric-functions": "^4.0.6", + "@csstools/postcss-sign-functions": "^1.1.4", + "@csstools/postcss-stepped-value-functions": "^4.0.9", + "@csstools/postcss-syntax-descriptor-syntax-production": "^1.0.1", + "@csstools/postcss-system-ui-font-family": "^1.0.0", + "@csstools/postcss-text-decoration-shorthand": "^4.0.3", + "@csstools/postcss-trigonometric-functions": "^4.0.9", "@csstools/postcss-unset-value": "^4.0.0", - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.1", + "autoprefixer": "^10.4.23", + "browserslist": "^4.28.1", "css-blank-pseudo": "^7.0.1", - "css-has-pseudo": "^7.0.2", + "css-has-pseudo": "^7.0.3", "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.2.3", + "cssdb": "^8.6.0", "postcss-attribute-case-insensitive": "^7.0.1", "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.7", + "postcss-color-functional-notation": "^7.0.12", "postcss-color-hex-alpha": "^10.0.0", "postcss-color-rebeccapurple": "^10.0.0", - "postcss-custom-media": "^11.0.5", - "postcss-custom-properties": "^14.0.4", - "postcss-custom-selectors": "^8.0.4", + "postcss-custom-media": "^11.0.6", + "postcss-custom-properties": "^14.0.6", + "postcss-custom-selectors": "^8.0.5", "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.0", + "postcss-double-position-gradients": "^6.0.4", "postcss-focus-visible": "^10.0.1", "postcss-focus-within": "^9.0.1", "postcss-font-variant": "^5.0.0", "postcss-gap-properties": "^6.0.0", "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.7", - "postcss-logical": "^8.0.0", - "postcss-nesting": "^13.0.1", + "postcss-lab-function": "^7.0.12", + "postcss-logical": "^8.1.0", + "postcss-nesting": "^13.0.2", "postcss-opacity-percentage": "^3.0.0", "postcss-overflow-shorthand": "^6.0.0", "postcss-page-break": "^3.0.4", @@ -14535,6 +15742,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT-0", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -14546,9 +15754,10 @@ } }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14561,6 +15770,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14575,6 +15785,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" @@ -14590,6 +15801,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -14604,6 +15816,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", "peerDependencies": { "postcss": "^8.0.3" } @@ -14622,6 +15835,7 @@ "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -14633,9 +15847,10 @@ } }, "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14645,9 +15860,10 @@ } }, "node_modules/postcss-selector-parser": { - "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==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14660,6 +15876,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "license": "MIT", "dependencies": { "sort-css-media-queries": "2.2.0" }, @@ -14674,6 +15891,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.2.0" @@ -14689,6 +15907,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -14702,12 +15921,14 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" }, "node_modules/postcss-zindex": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -14719,6 +15940,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" @@ -14728,6 +15950,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "license": "MIT", "engines": { "node": ">=4" } @@ -14736,6 +15959,7 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "license": "MIT", "dependencies": { "@types/prismjs": "^1.26.0", "clsx": "^2.0.0" @@ -14745,9 +15969,10 @@ } }, "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -14755,12 +15980,14 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -14773,6 +16000,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -14780,9 +16008,10 @@ } }, "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.2.0.tgz", + "integrity": "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -14791,24 +16020,31 @@ "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" }, "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz", + "integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==", + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" }, "engines": { "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/proxy-addr/node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -14817,14 +16053,16 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.3.0.tgz", + "integrity": "sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==", + "license": "MIT", "dependencies": { "escape-goat": "^4.0.0" }, @@ -14836,11 +16074,13 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz", + "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" }, "engines": { "node": ">=0.6" @@ -14849,14 +16089,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -14874,12 +16106,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -14887,31 +16121,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" @@ -14921,14 +16149,28 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -14943,14 +16185,16 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", - "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", + "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14959,6 +16203,7 @@ "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.0", "address": "^1.1.2", @@ -14993,6 +16238,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -15008,6 +16254,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", "engines": { "node": ">= 12.13.0" } @@ -15016,6 +16263,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -15030,6 +16278,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -15044,6 +16293,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -15058,6 +16308,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", "engines": { "node": ">=8" } @@ -15066,6 +16317,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -15074,31 +16326,35 @@ } }, "node_modules/react-dom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", - "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", + "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", + "license": "MIT", "dependencies": { - "scheduler": "^0.25.0" + "scheduler": "^0.28.0" }, "peerDependencies": { - "react": "^19.0.0" + "react": "^19.3.0" } }, "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.1.0.tgz", + "integrity": "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==", + "license": "MIT" }, "node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" }, "node_modules/react-helmet-async": { "name": "@slorber/react-helmet-async", "version": "1.3.0", "resolved": "https://registry.npmjs.org/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz", "integrity": "sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.12.5", "invariant": "^2.2.4", @@ -15114,13 +16370,15 @@ "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, "node_modules/react-loadable": { "name": "@docusaurus/react-loadable", "version": "6.0.0", "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "license": "MIT", "dependencies": { "@types/react": "*" }, @@ -15129,9 +16387,10 @@ } }, "node_modules/react-loadable-ssr-addon-v5-slorber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", - "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.3.tgz", + "integrity": "sha512-GXfh9VLwB5ERaCsU6RULh7tkemeX15aNh6wuMEBtfdyMa7fFG8TXrhXlx1SoEK2Ty/l6XIkzzYIQmyaWW3JgdQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.3" }, @@ -15147,6 +16406,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -15166,6 +16426,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2" }, @@ -15178,6 +16439,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -15195,6 +16457,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -15208,6 +16471,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -15218,7 +16482,8 @@ "node_modules/reading-time": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==", + "license": "MIT" }, "node_modules/rechoir": { "version": "0.6.2", @@ -15235,6 +16500,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", @@ -15246,9 +16512,10 @@ } }, "node_modules/recma-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", "dependencies": { "acorn-jsx": "^5.0.0", "estree-util-to-js": "^2.0.0", @@ -15259,12 +16526,16 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/recma-parse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "esast-util-from-js": "^2.0.0", @@ -15280,6 +16551,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-util-to-js": "^2.0.0", @@ -15295,6 +16567,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "license": "MIT", "dependencies": { "minimatch": "^3.0.5" }, @@ -15305,12 +16578,14 @@ "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -15318,41 +16593,30 @@ "node": ">=4" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", + "regenerate-unicode-properties": "^10.2.2", "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { "node": ">=4" } }, "node_modules/registry-auth-token": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz", - "integrity": "sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.1.tgz", + "integrity": "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==", + "license": "MIT", "dependencies": { - "@pnpm/npm-conf": "^2.1.0" + "@pnpm/npm-conf": "^3.0.2" }, "engines": { "node": ">=14" @@ -15362,6 +16626,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", "dependencies": { "rc": "1.2.8" }, @@ -15375,34 +16640,26 @@ "node_modules/regjsgen": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==" + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", + "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~3.0.2" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/rehype-raw": { "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", @@ -15417,6 +16674,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", @@ -15431,6 +16689,7 @@ "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", "engines": { "node": ">= 0.10" } @@ -15439,6 +16698,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.1.tgz", "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-directive": "^3.0.0", @@ -15454,6 +16714,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.2", "emoticon": "^4.0.1", @@ -15469,6 +16730,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-frontmatter": "^2.0.0", @@ -15481,9 +16743,10 @@ } }, "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", @@ -15498,9 +16761,10 @@ } }, "node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" @@ -15514,6 +16778,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -15526,9 +16791,10 @@ } }, "node_modules/remark-rehype": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", - "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -15545,6 +16811,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", @@ -15559,6 +16826,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -15571,6 +16839,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", @@ -15586,6 +16855,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -15599,6 +16869,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -15613,6 +16884,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -15626,6 +16898,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -15641,6 +16914,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", @@ -15648,18 +16922,11 @@ "entities": "^2.0.0" } }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "engines": { - "node": ">=0.10" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15675,14 +16942,17 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -15699,12 +16969,14 @@ "node_modules/resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { "node": ">=4" } @@ -15712,12 +16984,14 @@ "node_modules/resolve-pathname": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" }, "node_modules/responselike": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -15732,14 +17006,16 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -15750,6 +17026,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -15782,6 +17059,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0", @@ -15813,6 +17091,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -15840,31 +17119,39 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } }, "node_modules/scheduler": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", - "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==" + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.28.0.tgz", + "integrity": "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==", + "license": "MIT" }, "node_modules/schema-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", - "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.5.0.tgz", + "integrity": "sha512-zJlMCZ0cAR5p/Y4oVpRoqioDMJcGxaXRrQ/4rP4WyR84vc5z/DolXdbvXeDpTwbtocDFr2rhPqHPErDCUtz2kA==", + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", + "@types/json-schema": "^7.0.15", + "ajv": "^8.20.0", + "ajv-formats": "^3.0.1", "ajv-keywords": "^5.1.0" }, "engines": { @@ -15879,12 +17166,14 @@ "version": "2.17.3", "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "license": "MIT", "peer": true }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" @@ -15896,12 +17185,14 @@ "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" @@ -15911,9 +17202,10 @@ } }, "node_modules/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-DrfFnPzblFmNrIZzg5RzHegbiRWg7KMR7btwi2yjHwx06zsUbO5g613sVwEV7FTwmzJu+Io0lJe2GJ3LxqpvBQ==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -15925,6 +17217,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -15936,23 +17229,24 @@ } }, "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "2.0.1" + "statuses": "~2.0.2" }, "engines": { "node": ">= 0.8.0" @@ -15962,6 +17256,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -15969,41 +17264,37 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/send/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dependencies": { - "randombytes": "^2.1.0" + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.1.1.tgz", + "integrity": "sha512-k3CMsaIvvdSwm8oLB4MXSl0wH2/cwlH7xGcnRd2DaeRmBkbzYmyT8j0tsX60DwD1eRwHTpNpH8ljKu9oUT1MeQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" } }, "node_modules/serve-handler": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", - "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.7.tgz", + "integrity": "sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==", + "license": "MIT", "dependencies": { "bytes": "3.0.0", "content-disposition": "0.5.2", "mime-types": "2.1.18", - "minimatch": "3.1.2", + "minimatch": "3.1.5", "path-is-inside": "1.0.2", "path-to-regexp": "3.3.0", "range-parser": "1.2.0" @@ -16012,29 +17303,36 @@ "node_modules/serve-handler/node_modules/path-to-regexp": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", - "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==" + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", + "license": "MIT" }, "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "license": "MIT", "dependencies": { - "accepts": "~1.3.4", + "accepts": "~1.3.8", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" }, "engines": { "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/serve-index/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -16043,56 +17341,73 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", "dependencies": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { "node": ">= 0.6" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + "node_modules/serve-index/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.19.0" + "send": "~0.19.1" }, "engines": { "node": ">= 0.8.0" @@ -16102,6 +17417,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -16117,12 +17433,14 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -16133,12 +17451,14 @@ "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -16150,14 +17470,16 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz", + "integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -16169,6 +17491,7 @@ "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "license": "BSD-3-Clause", "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", @@ -16182,13 +17505,14 @@ } }, "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" }, @@ -16200,12 +17524,13 @@ } }, "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "object-inspect": "^1.13.4" }, "engines": { "node": ">= 0.4" @@ -16218,6 +17543,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -16235,6 +17561,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -16252,12 +17579,14 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/sirv": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -16270,12 +17599,14 @@ "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" }, "node_modules/sitemap": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", - "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.3.tgz", + "integrity": "sha512-tAjEd+wt/YwnEbfNB2ht51ybBJxbEWwe5ki/Z//Wh0rpBFTCUSj46GnxUKEWzhfuJTsee8x3lybHxFgUMig2hw==", + "license": "MIT", "dependencies": { "@types/node": "^17.0.5", "@types/sax": "^1.2.1", @@ -16293,12 +17624,14 @@ "node_modules/sitemap/node_modules/@types/node": { "version": "17.0.45", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "license": "MIT" }, "node_modules/skin-tone": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", "dependencies": { "unicode-emoji-modifier-base": "^1.0.0" }, @@ -16310,6 +17643,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -16318,6 +17652,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -16327,6 +17662,7 @@ "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -16337,22 +17673,25 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "license": "MIT", "engines": { "node": ">= 6.3.0" } }, "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", "engines": { - "node": ">= 8" + "node": ">= 12" } }, "node_modules/source-map-js": { "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" } @@ -16361,6 +17700,7 @@ "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", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -16370,6 +17710,7 @@ "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", "engines": { "node": ">=0.10.0" } @@ -16378,6 +17719,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -16387,6 +17729,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -16402,6 +17745,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -16414,12 +17758,14 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, "node_modules/srcset": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -16428,22 +17774,25 @@ } }, "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==" + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -16452,6 +17801,7 @@ "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", @@ -16465,9 +17815,10 @@ } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", + "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -16476,11 +17827,12 @@ } }, "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -16493,6 +17845,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -16506,6 +17859,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -16519,6 +17873,7 @@ "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" }, @@ -16530,6 +17885,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16538,6 +17894,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16546,6 +17903,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -16553,18 +17911,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", "dependencies": { - "inline-style-parser": "0.2.4" + "inline-style-parser": "0.2.7" } }, "node_modules/stylehacks": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.16" @@ -16586,6 +17955,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -16597,6 +17967,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -16605,22 +17976,27 @@ } }, "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.1.0.tgz", + "integrity": "sha512-bwLf38YmY+TDYHJw1Ex0Co8c4yeXuJAo8YnXGZrscxrvYoVVIvLeniEkV1Ks/54VteMnL4FtyN1+P+TZJdUPmQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.5.tgz", + "integrity": "sha512-8SQMzdrvWaD8deUmrnYB+ASyxBVgWUOilg+A75nE/76WdLpj6LopCwiAVvkzkcqy/9b7t2Mg7faFLjg0ZRcZ3w==", + "license": "MIT", "dependencies": { - "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.3.1", "css-what": "^6.1.0", "csso": "^5.0.5", - "picocolors": "^1.0.0" + "picocolors": "^1.0.0", + "sax": "^1.5.0" }, "bin": { "svgo": "bin/svgo" @@ -16637,25 +18013,32 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/terser": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", - "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", + "version": "5.51.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.51.2.tgz", + "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==", + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -16667,14 +18050,14 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", - "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==", + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { @@ -16688,12 +18071,39 @@ "webpack": "^5.1.0" }, "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, "@swc/core": { "optional": true }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, "esbuild": { "optional": true }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, "uglify-js": { "optional": true } @@ -16703,6 +18113,7 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -16716,6 +18127,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -16729,27 +18141,32 @@ "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==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "license": "MIT" }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" }, "node_modules/tiny-invariant": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" }, "node_modules/tinyexec": { "version": "1.3.1", @@ -16764,6 +18181,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -16775,6 +18193,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } @@ -16783,6 +18202,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16791,6 +18211,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -16800,6 +18221,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -16817,12 +18239,14 @@ "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/type-fest": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -16834,6 +18258,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -16846,6 +18271,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -16854,6 +18280,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -16865,6 +18292,7 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } @@ -16873,6 +18301,7 @@ "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -16882,14 +18311,16 @@ } }, "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -16898,6 +18329,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "license": "MIT", "engines": { "node": ">=4" } @@ -16906,6 +18338,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -16915,17 +18348,19 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -16934,6 +18369,7 @@ "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", @@ -16952,6 +18388,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -16963,9 +18400,10 @@ } }, "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==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -16978,6 +18416,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -16990,6 +18429,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -17002,6 +18442,7 @@ "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" }, @@ -17011,9 +18452,10 @@ } }, "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==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -17025,9 +18467,10 @@ } }, "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==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -17041,6 +18484,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -17049,14 +18493,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", + "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", "funding": [ { "type": "opencollective", @@ -17071,6 +18516,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -17086,6 +18532,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "license": "BSD-2-Clause", "dependencies": { "boxen": "^7.0.0", "chalk": "^5.0.1", @@ -17113,6 +18560,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^7.0.1", @@ -17134,6 +18582,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -17142,9 +18591,10 @@ } }, "node_modules/update-notifier/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -17156,6 +18606,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -17164,6 +18615,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "mime-types": "^2.1.27", @@ -17187,9 +18639,10 @@ } }, "node_modules/url-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -17205,6 +18658,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -17212,12 +18666,14 @@ "node_modules/url-loader/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/url-loader/node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -17226,6 +18682,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -17237,6 +18694,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -17253,17 +18711,20 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" }, "node_modules/utility-types": { "version": "3.11.0", "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -17272,27 +18733,35 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.1.tgz", + "integrity": "sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/value-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -17301,6 +18770,7 @@ "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" @@ -17314,6 +18784,7 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" @@ -17324,9 +18795,10 @@ } }, "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==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" @@ -17337,11 +18809,11 @@ } }, "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", + "license": "MIT", "dependencies": { - "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" }, "engines": { @@ -17352,6 +18824,7 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", "dependencies": { "minimalistic-assert": "^1.0.0" } @@ -17360,39 +18833,35 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/webpack": { - "version": "5.97.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", - "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", + "version": "5.111.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.111.0.tgz", + "integrity": "sha512-A2R74kfE6b3eLKS91iZiol03Ebx7avmJJBOyiP+4LePW9NNeNJGQkKeSQos4dk6R4H0YAMYlv+aOrs1CyWT3eA==", + "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", + "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", + "enhanced-resolve": "^5.25.0", + "es-module-lexer": "^2.1.0", "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" + "mime-db": "^1.54.0", + "minimizer-webpack-plugin": "^5.7.0", + "schema-utils": "^4.5.0", + "tapable": "^2.3.0", + "watchpack": "^2.5.2", + "webpack-sources": "^3.5.1" }, "bin": { "webpack": "bin/webpack.js" @@ -17414,6 +18883,7 @@ "version": "4.10.2", "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", @@ -17439,6 +18909,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -17447,6 +18918,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "license": "MIT", "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", @@ -17469,6 +18941,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -17477,6 +18950,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -17485,17 +18959,23 @@ } }, "node_modules/webpack-dev-middleware/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", + "license": "MIT", "engines": { "node": ">= 0.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/webpack-dev-server": { "version": "4.15.2", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "license": "MIT", "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -17551,9 +19031,10 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz", + "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -17574,6 +19055,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", @@ -17584,148 +19066,55 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.1.tgz", + "integrity": "sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw==", + "license": "MIT", "engines": { "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "node_modules/webpack/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/webpackbar": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", - "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-7.0.0.tgz", + "integrity": "sha512-aS9soqSO2iCHgqHoCrj4LbfGQUboDCYJPSFOAchEK+9psIjNrfSWW4Y0YEz67MKURNvMmfo0ycOg9d/+OOf9/Q==", + "license": "MIT", "dependencies": { - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", + "ansis": "^3.2.0", "consola": "^3.2.3", - "figures": "^3.2.0", - "markdown-table": "^2.0.0", "pretty-time": "^1.1.0", - "std-env": "^3.7.0", - "wrap-ansi": "^7.0.0" + "std-env": "^3.7.0" }, "engines": { "node": ">=14.21.3" }, "peerDependencies": { + "@rspack/core": "*", "webpack": "3 || 4 || 5" - } - }, - "node_modules/webpackbar/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==" - }, - "node_modules/webpackbar/node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "dependencies": { - "repeat-string": "^1.0.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webpackbar/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==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpackbar/node_modules/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==", - "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" + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", + "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", + "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -17739,6 +19128,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", "engines": { "node": ">=0.8.0" } @@ -17747,6 +19137,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -17761,6 +19152,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", "dependencies": { "string-width": "^5.0.1" }, @@ -17774,12 +19166,14 @@ "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -17793,9 +19187,10 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", + "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -17804,9 +19199,10 @@ } }, "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", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -17815,11 +19211,12 @@ } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -17831,12 +19228,14 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -17845,9 +19244,10 @@ } }, "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.13.tgz", + "integrity": "sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -17868,6 +19268,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -17879,6 +19280,7 @@ "version": "1.6.11", "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "license": "MIT", "dependencies": { "sax": "^1.2.4" }, @@ -17889,20 +19291,29 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", + "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">= 6" + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -17914,6 +19325,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" diff --git a/package.json b/package.json index ea5782b..5ad67d3 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "dependencies": { "@docusaurus/core": "3.7.0", "@docusaurus/preset-classic": "3.7.0", - "@docusaurus/theme-mermaid": "^3.7.0", + "@docusaurus/theme-mermaid": "3.7.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "docusaurus-plugin-llms": "^0.6.0", @@ -46,5 +46,14 @@ }, "engines": { "node": ">=18.0" + }, + "overrides": { + "serialize-javascript": "^7.1.1", + "minimatch": "^9.0.7", + "image-size": "^2.0.4", + "uuid": "^11.1.1", + "yaml": "^2.8.3", + "webpack": "^5.111.0", + "webpackbar": "^7.0.0" } } diff --git a/src/css/custom.css b/src/css/custom.css index 08fea8d..dbcf0da 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -8,7 +8,7 @@ * Mintlayer brand palette, aligned with www.mintlayer.org: * mint #37db8c (primary brand green) * mint light #69ee96 (dominant accent on www) - * lime #baff84 (secondary accent on www) + * lime #baff84 (secondary accent) * lime pale #e3ffc7 (pale lime tint) * dark bg #061d18 (dark green-tinted background) * dim text #859391 (gray-green) @@ -23,13 +23,18 @@ --ml-dim: #859391; --ml-purple: #a383ff; - --ifm-color-primary: #12915f; - --ifm-color-primary-dark: #108054; - --ifm-color-primary-darker: #0e744b; - --ifm-color-primary-darkest: #0b5f3d; - --ifm-color-primary-light: #27a56f; - --ifm-color-primary-lighter: #43b97f; - --ifm-color-primary-lightest: #6fd0a0; + /* Brand green as primary (buttons, badges, active states) */ + --ifm-color-primary: #37db8c; + --ifm-color-primary-dark: #2fc97e; + --ifm-color-primary-darker: #2ab873; + --ifm-color-primary-darkest: #24995f; + --ifm-color-primary-light: #69ee96; + --ifm-color-primary-lighter: #8df2ac; + --ifm-color-primary-lightest: #baff84; + + /* Body links need more contrast than raw brand mint on white */ + --ifm-link-color: #0e8a56; + --ifm-code-font-size: 95%; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); } @@ -45,3 +50,93 @@ --ifm-color-primary-lightest: #e3ffc7; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); } + +/* Hero band: dark green like www.mintlayer.org, with brand accents */ +.hero--primary { + background: radial-gradient(120% 160% at 85% 120%, #1d5c45 0%, #0c352a 50%, #061d18 100%); + color: #fff; +} + +.hero--primary .hero__title { + color: #fff; + font-weight: 800; + letter-spacing: -0.5px; +} + +.hero--primary .hero__subtitle { + color: rgba(255, 255, 255, 0.75); +} + +.hero--primary .button--secondary { + --ifm-button-color: var(--ml-dark); + background: var(--ml-mint); + border-color: var(--ml-mint); + font-weight: 700; +} + +.hero--primary .button--secondary:hover { + background: var(--ml-mint-light); + border-color: var(--ml-mint-light); + color: var(--ml-dark); +} + +.hero--primary .button--outline.button--secondary { + --ifm-button-color: #fff; + color: #fff; + background: rgba(55, 219, 140, 0.1); + border-color: rgba(55, 219, 140, 0.45); +} + +.hero--primary .button--outline.button--secondary:hover { + --ifm-button-color: var(--ml-mint-light); + color: var(--ml-mint-light); + background: rgba(55, 219, 140, 0.22); + border-color: var(--ml-mint); +} + +.hero--primary .button--outline.button--secondary:hover { + background: rgba(55, 219, 140, 0.22); + color: var(--ml-mint-light); + border-color: var(--ml-mint); +} + +/* Hero buttons wrap instead of overflowing on narrow screens */ +.hero--primary .buttons { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 0.75rem; +} + +.hero--primary .buttons .button { + margin-right: 0; +} + +/* "Documentation" must fit on phones */ +@media (max-width: 768px) { + .hero--primary .hero__title { + font-size: 2.2rem; + } + + .hero--primary .hero__subtitle { + font-size: 1.05rem; + } + + .hero--primary .buttons .button { + padding: 0.6rem 1.1rem; + font-size: 0.95rem; + } +} + +@media (max-width: 400px) { + .hero--primary .hero__title { + font-size: 1.9rem; + } +} + +/* Wide tables scroll instead of breaking the layout on phones */ +.markdown table { + display: block; + overflow-x: auto; + max-width: 100%; +} diff --git a/src/pages/index.module.css b/src/pages/index.module.css index 88cae49..e0215e6 100644 --- a/src/pages/index.module.css +++ b/src/pages/index.module.css @@ -18,8 +18,17 @@ .buttons { display: flex; + flex-wrap: wrap; align-items: center; justify-content: center; + gap: 0.75rem; +} + +@media screen and (max-width: 768px) { + .buttons .button { + padding: 0.6rem 1.1rem; + font-size: 0.95rem; + } } .mcpBanner { diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 8278bdb..f388708 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -24,12 +24,12 @@ function McpBanner() {

The documentation runs a read-only{' '} - Model Context Protocol server. + Model Context Protocol server. Point any MCP client at the endpoint and your agent can search and read every page with three tools: list_docs, search_docs,{' '} get_doc_page.

- + Setup guide → @@ -81,12 +81,12 @@ function HomepageHeader() {

{siteConfig.tagline}

Get Started Install From 5ec5ec43959f39881a49f35988cd34d04d84b98f Mon Sep 17 00:00:00 2001 From: Enrico Rubboli Date: Tue, 15 Sep 2026 23:58:37 +0400 Subject: [PATCH 2/6] mcp page: document all three servers (docs, mojito-api chain data, self-hosted node-gui); homepage links to docs server anchor --- docs/build/mcp.md | 82 +++++++++++++++++++++++++++++++++++---------- src/pages/index.tsx | 4 +-- 2 files changed, 66 insertions(+), 20 deletions(-) diff --git a/docs/build/mcp.md b/docs/build/mcp.md index 0cf4e5e..5053e02 100644 --- a/docs/build/mcp.md +++ b/docs/build/mcp.md @@ -1,33 +1,79 @@ --- title: MCP -description: Hosted MCP endpoint that lets MCP-compatible AI assistants interact with Mintlayer services. +description: "Mintlayer MCP servers: give your AI assistant access to the documentation, on-chain data, and your own node." sidebar_position: 6 --- -# Mintlayer MCP +# MCP -Mintlayer provides a hosted MCP endpoint at: +Mintlayer exposes three Model Context Protocol servers. Point any MCP-compatible client (Claude Desktop, Cursor, opencode, ...) at them and your assistant can read the documentation, query on-chain data, or talk to your own node. -`https://mojito-api.mintlayer.org/mcp` +| # | Server | Endpoint | Runs | Tools | +| - | ------ | -------- | ---- | ----- | +| 1 | [Documentation](#docs-server) | `https://docs.mintlayer.org/mcp` | Mintlayer-hosted | `list_docs`, `search_docs`, `get_doc_page` | +| 2 | [Chain data](#chain-data-server) | `https://mojito-api.mintlayer.org/mcp` | Mintlayer-hosted | 6 chain query tools | +| 3 | [Your node](#node-gui) | local to your machine | Self-hosted via node-gui | your node and wallet | -Use this endpoint in any MCP-compatible client to let your assistant interact with Mintlayer services. +## 1. Documentation server {#docs-server} -## Quick setup +Serves this entire documentation site to your agent: page index, full-text search, and per-page markdown. -1. Open your MCP-compatible client settings. -2. Add a new remote MCP server. -3. Set the server URL to `https://mojito-api.mintlayer.org/mcp`. -4. Save, reconnect, and verify the server is available. +- Endpoint: `https://docs.mintlayer.org/mcp` (Streamable HTTP, read-only, no auth) +- Tools: + - `list_docs`: all pages with title, URL, and description + - `search_docs`: full-text search with snippets + - `get_doc_page`: one page as markdown -## Example prompts +Client configuration: -After connecting the server, you can try prompts like: +```json +{ + "mcpServers": { + "mintlayer_docs": { + "url": "https://docs.mintlayer.org/mcp" + } + } +} +``` -- "List available Mintlayer tools." -- "Show me Mintlayer network information." -- "Help me prepare a transaction flow for Mintlayer." +For clients without remote-MCP support, bridge it locally with `npx -y mcp-remote https://docs.mintlayer.org/mcp`. -## Notes +## 2. Chain data server (mojito-api) {#chain-data-server} -- This is a hosted endpoint, so no local MCP server process is required. -- Tool availability depends on your MCP client and current server capabilities. +Hosted at `https://mojito-api.mintlayer.org/mcp`. Read-only queries against the Mintlayer blockchain, backed by the indexer — useful for checking balances, transactions, and blocks without running your own node. Requests are rate limited. + +| Tool | Description | +| ---- | ----------- | +| `get_block_height` | Current chain tip height | +| `get_block_info` | Block details by hash or height | +| `get_transaction_info` | Transaction details by ID | +| `get_address_info` | Address information | +| `get_address_utxos` | UTXOs for an address | +| `get_utxo_info` | UTXO details by outpoint | + +All tools accept an optional `network` parameter: `mainnet` (default) or `testnet`. The server uses the Streamable HTTP transport and requires session handling, which MCP clients manage automatically; when testing by hand, pass the `mcp-session-id` header returned by the `initialize` call on subsequent requests. + +## 3. Self-hosted (node-gui) {#node-gui} + +If you prefer to keep everything local, node-gui ships its own MCP server that runs on your machine and exposes your node and wallet to your assistant: chain and wallet queries never leave your network, and the agent can only see what your local node sees. + +Enable it in the node-gui settings and point your MCP client at the local endpoint it provides. See the node-gui documentation for the exact endpoint and available tools. + +## Client configuration + +Most MCP clients accept the servers as a JSON list in their settings file. Combine the hosted ones like this: + +```json +{ + "mcpServers": { + "mintlayer_docs": { + "url": "https://docs.mintlayer.org/mcp" + }, + "mintlayer_chain": { + "url": "https://mojito-api.mintlayer.org/mcp" + } + } +} +``` + +Clients without remote-MCP support can bridge both locally with `npx -y mcp-remote `. diff --git a/src/pages/index.tsx b/src/pages/index.tsx index f388708..865c1d4 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -24,12 +24,12 @@ function McpBanner() {

The documentation runs a read-only{' '} - Model Context Protocol server. + Model Context Protocol server. Point any MCP client at the endpoint and your agent can search and read every page with three tools: list_docs, search_docs,{' '} get_doc_page.

- + Setup guide →
From 793020c0c4b224c53fb74fb4c63f28fc83ce8141 Mon Sep 17 00:00:00 2001 From: Enrico Rubboli Date: Wed, 16 Sep 2026 00:11:35 +0400 Subject: [PATCH 3/6] whitepaper: replace with final version from mintlayer/documentation (7 chapters, math support, images); katex via remark-math/rehype-katex; update redirects --- docs/faq.md | 2 +- docs/whitepaper/1-blockchain-architecture.md | 152 ++++-- docs/whitepaper/2-mintlayer-wallet.md | 50 +- docs/whitepaper/3-tokenization-standard.md | 180 ++----- .../4-decentralized-finance-defi.md | 186 ++++--- .../5-decentralized-exchange-dex.md | 473 ++++-------------- .../6-bitcoin-mintlayer-atomic-swaps.md | 114 +++++ docs/whitepaper/6-token-and-public-sale.md | 95 ---- docs/whitepaper/7-token-and-public-sale.md | 102 ++++ docusaurus.config.ts | 11 + package-lock.json | 337 ++++++++++++- package.json | 5 +- static/_redirects | 2 +- .../img/whitepaper/node-gui-screenshot.webp | Bin 0 -> 87584 bytes .../img/whitepaper/wallet-cli-screenshot.webp | Bin 0 -> 236888 bytes static/img/whitepaper/wallets.webp | Bin 0 -> 36558 bytes 16 files changed, 983 insertions(+), 726 deletions(-) create mode 100644 docs/whitepaper/6-bitcoin-mintlayer-atomic-swaps.md delete mode 100644 docs/whitepaper/6-token-and-public-sale.md create mode 100644 docs/whitepaper/7-token-and-public-sale.md create mode 100644 static/img/whitepaper/node-gui-screenshot.webp create mode 100644 static/img/whitepaper/wallet-cli-screenshot.webp create mode 100644 static/img/whitepaper/wallets.webp diff --git a/docs/faq.md b/docs/faq.md index 96e2f76..8a55622 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -49,7 +49,7 @@ To participate as a block signer you must stake at least 0.01% of the total toke ## How do staking rounds and lock-ups work? -Rounds last about one week (1008 Bitcoin blocks). Tokens staked for a round are locked across three rounds: the auction round (when you apply), the active round (when you participate), and a lock-in round afterwards. Plan liquidity accordingly; verify round timing against the network you operate on, as parameters can change between releases. See the [whitepaper chapter 6](whitepaper/6-token-and-public-sale.md) for the full timeline. +Rounds last about one week (1008 Bitcoin blocks). Tokens staked for a round are locked across three rounds: the auction round (when you apply), the active round (when you participate), and a lock-in round afterwards. Plan liquidity accordingly; verify round timing against the network you operate on, as parameters can change between releases. See the [whitepaper chapter 6](whitepaper/7-token-and-public-sale.md) for the full timeline. ## How do I move tokens between Mintlayer and Ethereum? diff --git a/docs/whitepaper/1-blockchain-architecture.md b/docs/whitepaper/1-blockchain-architecture.md index 1b58b93..6dd2269 100644 --- a/docs/whitepaper/1-blockchain-architecture.md +++ b/docs/whitepaper/1-blockchain-architecture.md @@ -1,81 +1,161 @@ -# 1. Blockchain architecture +--- +title: "Blockchain architecture" +description: "Mintlayer whitepaper chapter: Blockchain architecture." +sidebar_position: 1 +--- -## 1.1. Consensus on top of Bitcoin +## 1.1 Introduction +Mintlayer is a Proof of Stake blockchain designed to act as a sidechain to the Bitcoin network. In Mintlayer terms, a sidechain is a chain that is directly interoperable with another blockchain; there is no master/slave relationship as some others define it. Mintlayer represents the simplest way to do DeFi-related activities in an interoperable way with Bitcoin. There is no need to use a wrapped version of Bitcoin or use Solidity or any other smart contract language to create a token. +As a UTXO-based blockchain, just like Bitcoin, a token on Mintlayer is simply extra data embedded into a UTXO. This means creating a token is as simple as creating a transaction with some additional information. The simplicity of the tokenization model, the direct access to Bitcoin, and the liquidity of the Bitcoin network will pave the way for the future of DeFi. One clear example of where all of these things come together is the idea of tokenization of real-world assets. -![](https://lh6.googleusercontent.com/1ffvgXb4ZPWGcSUEo42tzpzMXBcIV9rIGdx-79hxy8zo6dSPNTXiRwytCuirPvycqDfH8FseFclEGE7h_wijUxgbO1y6cK6wuhtxmA1sYSJ-l6I6LzAGnAfMgZFc7tb-OQVU4Vxt) +## 1.2 Participation -Mintlayer blockchain is anchored to Bitcoin: every Mintlayer block has a reference to a Bitcoin block. In each Mintlayer round, lasting 1008 Bitcoin blocks, the participants are selected among the stakers to collaborate on creating the chain’s blocks. +Mintlayer is a Proof of Stake blockchain, meaning that to participate in the system's consensus, one must lock tokens. To increase network participation, Mintlayer uses a Proof of Stake protocol based on pools, allowing those without the 40,000 ML required to run a pool to delegate to an existing pool to help secure the network and earn rewards for doing so. -A user who decides to actively participate in the network consensus needs to run a node and stake enough MLT tokens to pass a minimum threshold. Each round, an election is automatically enforced by the algorithm, where the user may be chosen as a “participant”. The higher the token stake, the higher the chances are to be selected. +## 1.3 Blocks -The selection mechanism uses hashes of the Bitcoin blocks as a randomization source to ensure an unbiased selection of the participants and randomly establish the order they will follow in the creation and validation of blocks. +A Mintlayer block is produced every 120s on average and is limited to 1MB, although it can be smaller. Each block has a version, the only implemented version at this stage is V1: -At a specific time in each round, every participant is requested to build and propagate a block for which all the transaction fees will be collected. +```rust -The long-term security of the Mintlayer chain is guaranteed by a checkpoint system on the Bitcoin blockchain. +pub struct BlockV1 \{ + pub(super) header: SignedBlockHeader, + pub(super) body: BlockBody, +\} +``` +where `SignedBlockHeader` looks like : -## 1.2. Participation in the network +```rust -In order to become a “participant” for the round, it is necessary to stake MLT tokens \([see §6](6-token-and-public-sale.md#611-staking)\). Anyone staking at least 0,01% of the total token supply has a chance to be selected by the algorithm. The 0,01% accounts for 40,000 MLT tokens upon the mainnet launch. -There are 1008 member slots available per round \(a network parameter, not a protocol constant\), but a single user can be rewarded with more than one slot \(see the Pulsar Consensus paper v0.1, §5.3 "Slot leader selection", \([Afach, Marsh and Rubboli, 2024](https://arxiv.org/pdf/2411.14245v1)\)\). +pub struct SignedBlockHeader \{ + block_header: BlockHeader, + signature_data: BlockHeaderSignature, +\} +pub struct BlockHeader \{ + pub(super) version: VersionTag<1>, + pub(super) prev_block_id: Id, + pub(super) tx_merkle_root: H256, + pub(super) witness_merkle_root: H256, + pub(super) timestamp: BlockTimestamp, + pub(super) consensus_data: ConsensusData, +\} +``` -MLT tokens must be staked two rounds before the desired participation round \(active round\). Tokens will be locked for the entire duration of 3 rounds \(auction round, active round, and lock-in round\). +And `BlockBody` looks like this: +```rust -* _Setup round_ \(round x-2\): the user who wants to apply as a participant in round x must stake MLT tokens in one block of the round x-2. Tokens are not locked during this round. -* _Auction round_ \(round x-1\): the hash of the first Bitcoin block of the round x-1 is used as a source of entropy to determine the participants for the active round x. The participants are only selected from those who \(a\) have staked tokens in one block of the round x-2 and \(b\) did not move those coins at stake up until the beginning of the round x-1. Since the first block of the auction round, the funds staked by the selected users as participants are locked-in. -* _Active round_ \(round x\): the participants selected in the auction round x-1 generate and countersign blocks. -* _Lock-in round_ \(round x+1\): the participants of round x cannot move the locked-in tokens during the auction round. +pub struct BlockBody \{ + pub(super) reward: BlockReward, + pub(super) transactions: Vec, +\} +``` +`BlockReward` is the reward for the staking pool to participate in the consensus. The rest of the block is filled with transactions. -The extended timeframe during which the coins of the participants are locked in \(about 3 weeks\) discourages users that obtained a significant number of slots from any malicious behavior or any attack attempts, considering that they will be committed with a high stake in the chain and will not be able to move the MLT tokens for a long period. +## 1.4 Transactions -If a participant decides to renew his lock-in, the same stake used to participate in the previous auction round is also used to participate in the next round, thus effectively eliminating the need to wait for several rounds to pass to participate again. This implies that the validator holding a fixed share of the network stake can maintain approximately the same amount of slots for each round. +A transaction on Mintlayer is a defined like this: -Once a round is determined, each participant knows the number of blocks they will be able to create and at what block height they will be issued. Thus, users conducting a large number of transactions in the network would benefit from being in the participant’s position as it grants them the possibility to include their own transactions in the blocks that they create while paying zero-fees for it. Therefore, those users would be economically incentivized to become MLT token holders and participants of the network. +```rust +pub struct TransactionV1 \{ + version: VersionTag<1>, + flags: u128, + inputs: Vec, + outputs: Vec, +\} +``` -## 1.3. Block frequency and size limit +The essence of that are the vectors of `TxInput` and `TxOutput`. An Input is a reference to a previous unspent output (UTXO) or an account: +```rust -**Block generation frequency on Mintlayer is dynamic:** each block proposer is given a timeframe during which there is a high probability of getting the block countersigned by other participants. That time frame spans between 1 and 2 minutes. +pub enum TxInput \{ + Utxo(UtxoOutPoint), + AccountCommand(AccountNonce, AccountCommand), +\} +``` -In case the Mintlayer mempool is empty of transactions, the block proposers have incentives to wait up to 2 minutes before creating and broadcasting the block in hopes to collect more fees from incoming transactions. If the blockchain is congested, the block proposers might be willing to create blocks faster, depending on their considerations on how the fee market will react and whether the network will benefit from a higher block issuing frequency. +In Mintlayer, accounts are utilized to distribute rewards from staking pools. The rationale behind using accounts in this specific context is to avoid the creation of an excessive number of outputs in the system. Excessive outputs could lead to increased memory usage for the nodes and result in significantly large transactions. This is because the vector of inputs could become very large when spending rewards from the pools. -Hypothetically, if there are no transactions to be validated, the participant who is expected to create the block in that timeframe has no incentives for doing so, and neither do other participants in that round have any reason to replace him in the block generation. Such a system discourages network pollution with empty blocks, especially when the blockchain has just been launched. -With the purpose of long-term sustainability, the block size limit is set to 1 MB so that, in theory, the blockchain size could not get larger than 525 GB per year even when fully saturated and with its block frequency at the peak. Furthermore, the pruning system, which is based on checkpoints, and the utreexo technology, which is used to reduce the size of the UTXO, dramatically reduce hardware storage requirements. Thanks to these optimizations, it will always be possible to run a full node on an average personal computer, fostering a more decentralized network. +## 1.5 Signatures +Mintlayer employs the elliptic curve `secp256k1` for digital signatures, following a precedent set by Bitcoin. This choice provides a robust foundation for security and compatibility. In addition, Mintlayer integrates Schnorr signatures, leveraging their linearity and other beneficial properties that enhance privacy and efficiency. +The implementation of Schnorr signatures in Mintlayer is sourced from the highly-regarded Rust library also named `secp256k1` (documented [here](https://docs.rs/secp256k1/latest/secp256k1/)). -## 1.4. Checkpoint system +For digest creation, Mintlayer uses the `Blake2b` cryptographic hash function. -**The checkpoint system serves three purposes:** +In the process, a 512-bit hash is computed using `Blake2b`. To fit within the constraints of our signature scheme and to maintain optimal security, we extract the first half of this hash for use in signature generation. This approach ensures both efficiency and security in our digital signature process. -1. To increase the security of the network, preventing long-range attacks. -2. To decrease the initial blockchain download time \(IBD\) for users willing to run a node with a fast-sync mode. -3. To discard \(prune\) the blockchain before a certain block height so that the space required on disk remains minimal. +### Segregated Witness -Anyone can create a “marker” on the Bitcoin blockchain in a Bitcoin transaction by using a specific OP\_RETURN. The participant of the Mintlayer network can include that marker in a Mintlayer block, creating a checkpoint request. The checkpoint is consolidated and locally enforced by the nodes once the participants have validated enough Mintlayer blocks on top of that checkpoint request \(see the Pulsar Consensus paper v0.1, §5.4.2 "Checkpointing", \([Afach, Marsh and Rubboli, 2024](https://arxiv.org/pdf/2411.14245v1)\)\). +Mintlayer adopts a concept similar to "segregated witness" for managing signatures within transactions. -Creating a checkpoint on the Bitcoin blockchain means to notarize or “snapshot” the status of Mintlayer so that the Bitcoin proof-of-work secures it. Anyone running a node with a fast-sync mode can download the blockchain starting from the latest checkpoint instead of downloading the whole blockchain. In the case of full-synch from the genesis block, it is always possible to prune the entire blockchain up to the checkpoint, saving most of the space otherwise required. +In this system, signatures are not embedded directly within the transaction data. Instead, they are stored separately in a vector following the transaction. -While checkpoints allow for shrinking the blockchain’s, the utreexo technology shrinks the size of the UTXO set, which is merkelized and reduced down to about 1 KB instead of several Gigabytes. +## 1.6 Consensus +Mintlayer has a novel Proof of Stake consensus protocol intended to improve upon other existing protocols when viewed as a Bitcoin sidechain. As we've already said, Mintlayer aims to produce a block every 120s, and we use verifiable random functions ( *Micali, S., Rabin, M., and Vadhan, S. (1999). Verifiable random functions. 40th Annual Symposium on Foundations of Computer Science. pp. 120-130, doi: 10.1109/SFFCS.1999.814584* ) to do so. A pool is eligible to produce a block when the random number it produces via the VRF is below a threshold, made up of a network threshold updated to keep the block production rate as close to every 120s as possible and the stake of the pool, which ensures the block production rate is proportional to the size of the pool. -## 1.5. Token inclusivity +Mintlayer uses a unique chain selection rule to pick the canonical chain. Rather than looking at the length of a chain or the amount of work or stake required to build a given chain, Mintlayer uses the idea of chain density. That is to say that the chain with the densest set of filled slots is the chain that will be selected. -In the cryptocurrency ecosystem, the blockchains supporting multiple tokens \(such as Ethereum\) force users to pay transaction fees in the native blockchain currency \(e.g., ETH\). The impossibility of transferring a token without having a “gas” bank in the native cryptocurrency creates entry barriers and introduces friction in user experience, preventing a broader network effect. +### Nash Equilibrium and Staking Pools -Mintlayer has no base currency to pay transaction fees. Instead, users can pay in any MLS-01 or MLS-02 \([see §3.2.5](3-tokenization-standard.md#325-gas-free-economy).\) cryptocurrency they choose as long as the network participants are willing to accept it. Every block proposer can signal the list of tokens accepted in the block - the free market dictates its rules. +There are security arguments using Nash Equilibrium on why we want to use the final supply as the total, and not the total stake in all pools. This is because the total stake changes over time, and the Nash Equilibrium is a dynamic equilibrium, not a static one. The final supply is the total amount of coins that will ever exist, and hence is a static value. This way, stakers can make decisions based on the final supply, and not have to worry about the total stake changing over time. Hence, the incentive structure is more stable. -Because transactions do not necessarily pay fees in a determined gas token, it is possible to make transfers without owning more cryptocurrencies, or without storing and spending a gas bank in a token which is different from the ones transferred, which implies higher transaction costs and pollution for the network \(UTXO dust\). +$$\frac{\sigma + s \cdot a \cdot \left( \frac{\sigma - s \cdot \left( \frac{z - \sigma}{z} \right)}{z} \right)}{a + 1} \Rightarrow \sigma - \frac{a}{a + 1} \cdot \left( \frac{\sigma z^2 - s (z \sigma - s (z - \sigma))}{z^2} \right)$$ +### Key Parameters +- $$z = \frac{1}{k}$$: The size of the saturated pool +- **Saturated pool**: A pool is saturated if its stake $$pledge + delegated$$ is equal to the size given by $$z = \frac{1}{k}$$. A pool that has reached saturation will not have additional rewards if the total stake is increased. This is to prevent pools from growing too large. +- $$a$$: The pledge influence parameter. When $$a=0$$, the pledge has no additional effect other than proportional to the stake. While $$a$$ increases, the pledge has more effect on the effective pool balance, and hence increases the reward more compared to delegation. The parameter $$a$$ can be controlled to incentivize pools to pledge more. +- $$s$$: The pool's pledge amount +- $$\sigma$$: The pool's stake pledge + delegated +### Formula Explanation + +The formula is rewritten as $$\sigma - \text{something}$$ to represent the result as $$\sigma$$ minus some adjustment. Also, it makes it more suitable for integer arithmetic because there is a single division at the end. + +Note: The second term is always positive, so the result is always $$\sigma$$ minus some adjustment. + +### Considerations for Maximizing Gains + +As a function of the total stake $$\sigma = \text{pledge} + \text{delegations}$$, the pool's effective balance is a concave down parabola. The maximum point is very close to $$\sigma = \frac{s}{2}$$ if $$\sigma \ll z$$. Meaning: pledge = delegations maximizes the effective balance. The true peak can be calculated by calculating the derivative of the function and equating it to zero. The result there is $$s_{\text{max}} = \frac{z \cdot \sigma}{2 \cdot (z-\sigma)}$$, where $$s_{\text{max}}$$ is the pledge that maximizes the effective balance. In that equation, we can see if $$\sigma \ll z$$, then it simplifies to $$s_{\text{max}} = \frac{\sigma}{2}$$. + +## 1.7 Checkpointing and finality + +Alongside the chain selection rule Mintlayer, there are two other features that ensure the security of the chain. These are checkpoints and finality. Checkpoints are hardcoded into the protocol to ensure that long-range attacks are infeasible and to simplify the process of syncing from the genesis block. In Mintlayer, a block is finalized after 1000 blocks, this is a tradeoff to ensure the security of the network and the practicality of being a Bitcoin sidechain, given Bitcoin can reorganize to an arbitrary depth. + +## 1.7 Token usage + +In the cryptocurrency ecosystem, the blockchains supporting multiple tokens \(such as Ethereum\) force users to pay transaction fees in the native blockchain currency \(e.g., ETH\). The impossibility of transferring a token without having a "gas" bank in the native cryptocurrency creates entry barriers and introduces friction in user experience, preventing a broader network effect. + +Mintlayer does not force the use of ML for paying transaction fees. Instead, users can pay in ML or any MLS-01 token they choose if the network participants are willing to accept it. Every block proposer can signal the list of tokens accepted in a block - the free market dictates its rules. + +> NOTE: This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change +> \{.is-danger\} + + +## 1.9 Bitcoin links + +The primary link between Mintlayer and Bitcoin is through the atomic swap[^3] system, which allows assets on both chains to be swapped directly without the need for an intermediary of any sort. Mintlayer intends to incorporate Bitcoin into its consensus system in the future, but this is an active area of research right now, so the exact form this will take is to be decided. + +> NOTE: This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change +> \{.is-danger\} + + +--- + +*[Next: Mintlayer Wallet](2-mintlayer-wallet.md)* + +The consensus protocol, its slot-based block production, and its checkpoint mechanics are formally described in the [Pulsar consensus paper](https://arxiv.org/abs/2411.14245) (Afach, Marsh and Rubboli). diff --git a/docs/whitepaper/2-mintlayer-wallet.md b/docs/whitepaper/2-mintlayer-wallet.md index f12a531..60562e1 100644 --- a/docs/whitepaper/2-mintlayer-wallet.md +++ b/docs/whitepaper/2-mintlayer-wallet.md @@ -1,46 +1,38 @@ -# 2. Mintlayer wallet +--- +title: "Mintlayer wallet" +description: "Mintlayer whitepaper chapter: Mintlayer wallet." +sidebar_position: 2 +--- -![](https://lh3.googleusercontent.com/suX59GLiX38iJHZOPlI4HhN_Ai1sMFd3IjoGMFF7HEAA4Vq3Ay6RQo0tMQsx0xwT6Vi8AIjAEskpsH225WBlajij88WXdAkhBVmWj2JB9Nj399F9_raGS_2neLm7yrhhloOqMkJz) +Mintlayer comes with several wallets, each implemented for different purposes. -Mintlayer is an open-source project, and every developer is free to contribute, fork the codebase, or create alternative software following the consensus/protocol RFC. There are two first-reference implementations released for desktop and mobile devices in the form of a full node and light node. +## 2.1 Mojito +[![mojito Wallet](/img/whitepaper/wallets.webp)\{:width="226" style="display: block; margin: 0 auto 40px; "\}](https://www.mintlayer.org/en/mojito-wallet)\{:target="_blank"\} -The full node wallet is built to serve every user type, from validators, stakers, to investors, traders or simple bitcoin holders. The mobile wallet application is made for average users with particular care for UX/UI. It also implements advanced functionalities such as transaction batching and DEX trading. Both types of wallets are non-custodial solutions, meaning that users can access their funds by managing their private keys independently, also by importing or exporting them from/to hardware wallets. +Mojito is a Bitcoin wallet that also supports the Mintlayer network. It is available for Android, Apple iPhone, as well as a browser extension for Chrome, Firefox, and Edge. -Mintlayer wallets have multi-token support, including bitcoin \(BTC\), Mintlayer \(MLT\), and all tokens issued or pegged on the chain \(the standard MLS, [see §3.](3-tokenization-standard.md#32-mls-01-features)\). +As a Bitcoin-first wallet, Mojito supports HD Wallets and the Lightning Network for fast payments. -For security tokens or other tokens that require particular policies \(see ACL conditions [§3.2.1.](3-tokenization-standard.md#321-access-control-list-conditions)\), it is possible to verify the “decentralized digital identity” \(DID, see [§4](4-decentralized-finance-defi.md#44-decentralized-identity-did-and-oracles).\) straight from the application. The private key of the DID can also enable a “login” to access the services of third party providers. +Currently, the platform supports BTC and ML tokens. In the near future, it will expand to support any token issued on the Mintlayer Network, as well as the ability to delegate ML tokens to staking pools. +## 2.2 The full node : node-gui -## 2.1 The light wallet +Node GUI is a full node GUI that can even be used to run a staking pool from a desktop computer. -A light wallet offers the basic multi-token functionalities: +[![node-gui-screenshot.png](/img/whitepaper/node-gui-screenshot.webp)](/img/whitepaper/node-gui-screenshot.webp)\{:target="_blank"\} -* Store, send, and receive Bitcoin as any other traditional Bitcoin wallet \(Bech32 native SegWit support, hierarchical deterministic, BIP38, BIP39, BIP44, BIP49, BIP84, BIP174\). -* Store, send and receive MLT token and all **MLS-01, MLS-02, MLS-03 tokens** \([see §3](3-tokenization-standard.md).\). -* Batch transactions \([see §3.](3-tokenization-standard.md#323-peer-to-peer-batching)\) with other peers before broadcasting to the network to pay lower fees, alleviate the burden of the blockchain and fasten transactions. -* Use the Lightning Network for transactions \(BTC, MLT and MLS-01\). -* Peer-to-peer exchange BTC, MLT, and MLS-01 using **atomic swap DEX** \([see §5.2.](5-decentralized-exchange-dex.md#52-the-atomic-swap-dex)\). +## 2.3 Command Line Wallet: wallet-cli +The Wallet CLI is an interactive, command-line, full-featured wallet for Mintlayer. It is the ideal choice for professional node operators who are proficient in using the command line. -## 2.2. The full node +[![wallet-cli-screenshot.png](/img/whitepaper/wallet-cli-screenshot.webp)](/img/whitepaper/wallet-cli-screenshot.webp)\{:target="_blank"\} -A Mintlayer full node is coupled with a Bitcoin Core node. The user has to download both but does not necessarily have to wait for Bitcoin Core to fully sync up with mainnet because Mintlayer node uses Pierre Rochard’s idea of “node launcher” for rapid onboarding. This way, the node's functionalities are ready in the first minutes after launching the software[ \($$^1$$\)](2-mintlayer-wallet.md#footnotes) . +## 2.4 Programmable node: wallet-rpc -Also, Mintlayer full nodes use utreexo, which compacts the size of the UTXO set down to 1 KB. As such, pruned nodes will never take up more than around 3 GB of space \(about 3 days of blockchain at maximum throughput\) even in the very long run. +The Wallet RPC is designed for developers. Once operational, it exposes a port to which developers can connect, enabling them to send commands in a programmatic manner. This feature is ideal for exchanges, marketplaces, e-shops, and similar platforms. -A Mintlayer full node offers all the light wallet functionalities, plus the following: - -* Stake MLT tokens to become the “participant” of the network. -* As a “participant”, propose or countersign blocks and earn transaction fees. -* Create an MLS-01 token by executing a Mintlayer on-chain transaction. -* Peg-in BTC to create wrapped BTC as MLS-01/02 tokens for faster transactions and lower fees \(also enabling confidential transactions\). -* Update the token policies \(such as **ACL**, [see §4.3.](4-decentralized-finance-defi.md#43-acl-rules-for-securities)\) to your issued MLS-01 tokens. -* Create custom smart contracts and **programmable pools** \(see [§4.5.](4-decentralized-finance-defi.md#45-programmable-pools-dividends-taxation)\) to manage financial operations with your tokens and create a DeFi system. -* Connect to multiple oracles to query for DEX data \(such as the DHT order book, see [§5.3.](5-decentralized-exchange-dex.md#53-dht-multiparty-swaps), [§5.4.](5-decentralized-exchange-dex.md#54-observer-of-multiparty-swaps), [§5.5.](5-decentralized-exchange-dex.md#55-book-aggregators-for-multiparty-swaps), [§5.8.](5-decentralized-exchange-dex.md#58-peer-to-peer-messaging-system)\) or identity data, also to facilitate DEX transactions or decentralized identity applications \([see §4.4.](4-decentralized-finance-defi.md#44-decentralized-identity-did-and-oracles)\). Standard wallet API is provided so that oracles can be programmed to help build smart contracts on Mintlayer. - - - -## Footnotes +--- +*[Next: Tokenization standard](3-tokenization-standard.md)* diff --git a/docs/whitepaper/3-tokenization-standard.md b/docs/whitepaper/3-tokenization-standard.md index cee6521..80d5eb3 100644 --- a/docs/whitepaper/3-tokenization-standard.md +++ b/docs/whitepaper/3-tokenization-standard.md @@ -1,153 +1,83 @@ -# 3. Tokenization standard +--- +title: "Tokenization standard" +description: "Mintlayer whitepaper chapter: Tokenization standard." +sidebar_position: 3 +--- -The MLS-01 acronym stands for Mintlayer Standard version 0.1. It represents the basic standard specification for Mintlayer tokens, featuring a typical list of rules that have to be implemented to be correctly processed by a Mintlayer wallet. Thanks to the standard, every MLS-01 can be received, sent, or stored in any Mintlayer multi-token wallet. Once the wallet is installed, every exchange or service will be ready to receive any token issued on Mintlayer. +## 3.0 Tokenization Standards -When an MLS-01 token is created, the issuer specifies the following rules: +In Mintlayer, issuing a token does not require a smart contract; instead, it is a built-in feature of the protocol. A token is represented by a `TokenId` in a `Output`. -* A maximum total token supply (if there is a cap). -* The amount of token that is issued, including the address or addresses where they are held (usually the creation address) and the inflation scheme that shall follow. -* Who or what can generate new tokens: i.e., a private key, a multi-signature, or other scripts. -* Which are Access-Control-List rules (see [§3.2.1.](3-tokenization-standard.md#321-access-control-list-conditions), [§4.3.](4-decentralized-finance-defi.md#43-acl-rules-for-securities)), if any. -* If the ACL rules are permanent or can be updated. In the latter case, what are the conditions for an update as well (script, keys). -* If the total supply/inflation scheme is permanent or can be updated (if that is the case, what are the conditions for an update). -* If the transactions with that token pay an additional fee to the network fee (which is paid to the blockmaker creating Mintlayer blocks) and the way it is collected ([see programmable pools §4.5.](4-decentralized-finance-defi.md#45-programmable-pools-dividends-taxation)). +```rust -If the token has the confidential transaction feature enabled, it is labeled as MLS-02, while non-fungible tokens are labeled as MLS-03. +pub enum OutputValue \{ + Coin(Amount), // ML Token is build-in + TokenV1(TokenId, Amount), // Any other token must specify a TokenId +\} +``` +A `TokenId` is defined as: +```rust -## 3.1. UTXO structure +pub enum Token \{\} +pub struct Id \{ + hash: H256, +\} +pub type TokenId = Id; +``` -Mintlayer uses the Bitcoin UTXO structure instead of the account base models of Ethereum, Ripple, Stellar, or others. From a certain point of view, the UTXO model is less efficient than the account base: since each transaction's output is stored separately (even when sent to a single address), it is only possible to spend the entire transaction’s output. Therefore, most of the transactions require a change, creating what is commonly referred to as “dust” - smaller outputs that are costly to be transferred, given the fee’s weight over the transaction volume. Despite this, the UTXO model has been chosen because of three essential features: -1. It is compatible with technologies already implemented in Bitcoin, such as the atomic swap and Lightning Network. -2. It is more privacy-oriented because a single wallet usually utilizes multiple addresses, making it difficult and sometimes impossible to distinguish which ones belong to the same user. -3. Payments can be batched together (aggregated) in a single transaction, saving a considerable amount of the space otherwise required for making a single transaction per payment. The transaction batching practice has a particular focus in Mintlayer’s value proposition, as described later ([see §3.2.3.](3-tokenization-standard.md#323-peer-to-peer-batching)). The aggregation can be made by a single service/exchange transferring multiple transactions in a limited timeframe (i.e., the withdrawal requests of exchange/services users), as well as through a peer-to-peer network among independent users. This method is currently implemented with coinjoin in bitcoin wallets like Wasabi. +This essentially means that within the system, a token exists as a collection of Outputs, each owned by different parties. +## 3.1 Fungible Tokens (MLS01) +Standard fungible tokens, serving a similar role to Ethereum's ERC-20, are defined by the MLS-01 standard on Mintlayer. MLS-01 represents the most basic form of token on the chain. Due to the simplicity of Mintlayer's UTXO architecture, creating these tokens is significantly more straightforward than on competing chains, where a contract written in a language like Solidity is required. Any token adhering to the MLS-01 standard should be compatible with all Mintlayer wallets. -## 3.2. MLS-01 features +An MLS-01 token has several associated features, including a ticker, an issuance amount, a number of decimals for the issuance amount, and a metadata URI and a replaceble authority. A token can also support features such as increasing the circulating supply or preventing further increases in the circulating supply. -The MLS-01 tokens and MLT are transferred solely on the Mintlayer sidechain without the necessity to pollute the Bitcoin blockchain. The MLS-01 standard supports different transaction features: +```rust +pub struct TokenIssuanceV1 \{ + pub token_ticker: Vec, + pub number_of_decimals: u8, + pub metadata_uri: Vec, + pub total_supply: TokenTotalSupply, + pub authority: Destination, + pub is_freezable: IsTokenFreezable, +\} +``` -### 3.2.1. Access-Control-List conditions -Access-Control-Lists (ACLs) are particular limitations that can be enforced on transactions of a specific cryptocurrency. ACLs help to issue or update security tokens in compliance with company policies or other legal requirements ([see §4.2.](4-decentralized-finance-defi.md#42-security-tokens-and-stablecoins)) similar to how it is done on Ethereum’s ERC-20: receiving addresses can be whitelisted or blacklisted. However, the applications may be broader: they can involve conditions on how utility tokens can be spent or determine how non-fungible the token is. For example, make it impossible to transfer a certain amount of tokens per transaction under a minimum or maximum threshold or enforce a time lock that limits the token's transferability at a particular time. +## 3.2 Non Fungible Tokens NFT (MLS03) +Non-fungible tokens, often referred to as NFTs, are implemented through the MLS-03 standard on Mintlayer. Similar to NFTs on other blockchains, they represent unique tokens. They function in a manner akin to MLS-01 tokens, with the key difference being that they do not require handling a supply, as each NFT is one-of-a-kind. However, NFTs do possess additional data attributes: a creator, a name, a description, an icon, a media hash, and a media URI. -**ACL conditions can be implemented on MLS-01 tokens**, and the token issuer can update these conditions merely by creating a new transaction on Mintlayer that contains the updated set of rules. Such centralized governance of the ACL rules is possible only if it is applicable, depending on the set of rules originating from the token’s creation: to update the ACL, it might be necessary to execute a particular script or sign a transaction with a particular set of keys (such as n of m multi-sig). -The tokens’ ACL conditions are maintained in a separate part of the block that users can decide not to sync, saving space and speeding up the syncing process. Instead, every participant of the network (blocksigners) shall validate this part of the block. +```rust + pub struct Metadata \{ + pub creator: Option, + pub name: Vec, + pub description: Vec, + pub ticker: Vec, + pub icon_uri: DataOrNoVec, + pub additional_metadata_uri: DataOrNoVec, + pub media_uri: DataOrNoVec, + pub media_hash: Vec, + \} +``` -### 3.2.2. Lightning Network +## 3.3 Confidential Token (MLS02) -Lightning network is enabled for all tokens managed by the Mintlayer wallet. Since Mintlayer’s code-base is inherited from Bitcoin and adapted with small changes, the Lightning Network wallet functionalities use the same BOLT specifications meant for Bitcoin. +The MLS-02 standard represents a similar token to MLS-01 but with the added benefit and complexity of being a privacy-focused token that allows for zero-knowledge based private transactions. -It is expected that most of the security tokens exchanged on the Mintlayer network will not use Lightning Network due to the difficulties in developing a well-distributed network of channels for tokens with a low transaction frequency and less liquidity than those meant for monetary use. +> NOTE: This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change +> \{.is-danger\} -Despite that, Lightning Network does have a great chance of success as a use case for Tether transactions and other stablecoins, especially since they are frequently transferred between custodial services/exchanges that have greater chances to create well-balanced channels. In this regard, it is worthwhile to note that the DEX will also integrate Lightning Network ([see §5.7.](5-decentralized-exchange-dex.md#57-lightning-network-dex)). +--- -### 3.2.3. Peer-to-peer batching - -Currently, transaction batching procedures are a prevalent practice in the Bitcoin ecosystem. The blockchain analysis highlights how beneficial it is for service providers to batch payments and how these procedures also have positive externalities on the entire community, lightening the blockchain’s load. - -Although batching is not possible under account-based models like Ethereum, it is advantageous for Bitcoin and UTXO-based models. Batched transactions are easily recognizable due to the presence of three or more outputs. In contrast, a typical transaction in a UTXO model has one output, or more commonly, two outputs (one is for the change going back to an address of the sender). - -In March 2018, an analysis by Nic Carter and [@hasufl](https://twitter.com/hasufl) [($$^2$$)](3-tokenization-standard.md#footnotes) reported that between 40% to 60% of the volumes transferred are in batched transactions, accounting for 40% of the total output moved on the blockchain. A similar analysis [($$^3$$)](3-tokenization-standard.md#footnotes) has been made on a sample of almost 1 million transactions (932.278) taken from 3 different months (August, July, June 2020). - -In terms of outputs, the results closely match the previously mentioned research (42% of all outputs are batched), whereas the sample shows 33% of the volumes batched. When Coinbase introduced batching in March 2020, their load on the Bitcoin network was reduced by “more than 50%”, as reported by Eli Haims, Coinbase product manager. That 50% saving in space led to an actual 75.2% saving in fees, [($$^4$$)](3-tokenization-standard.md#footnotes) as reported. It is worth noting that, with signature aggregation (requiring on Bitcoin[$$^5$$](3-tokenization-standard.md#footnotes)), the savings in terms of space are up to 70%. - -Several big companies introduced batching procedures so late due to the technical complexities required in manually aggregating transactions. For this reason, Mintlayer helps users with this task, providing a dedicated user interface for the traditional batching. - -Mintlayer develops two different tools inside the wallet to incentivize the use of batching: - -1. A unique user interface to help the services/businesses like the exchanges to massively batch transactions (of all MLS-01 tokens). -2. A peer-to-peer system of batching, inspired by Wasabi’s coinjoin, where users can send one or multiple tokens to one or several destination addresses, all while combining the transaction with other users. - -If the first tool is merely a UI improvement, the more notable innovation of Mintlayer is the extension of batching procedures to every user, not only services and exchanges that process many payments at the same time. Thanks to the communication system between wallets, users can ask other peers to aggregate the payments in a single transaction. While it is inspired by Wasabi coinjoin, batching on Mintlayer extends to every transaction type, not only payments of the same amount[($$^6$$)](3-tokenization-standard.md#footnotes). Users can aggregate transactions made in different MLS-01 tokens and use signature aggregation to reduce each payment’s size by 70%. - -With the implementations mentioned above, the expected amount of batched outputs is higher than 50%. If the blockchain gets saturated, every user can rely on batching not only for privacy reasons but also for paying lower fees. However, paying lower fees for aggregating payments is not the only benefit of such an approach. Since payment aggregation mixes inputs and outputs, blockchain analysis becomes much more challenging. - - - -### 3.2.4. Atomic swap - -In general, an atomic swap transaction allows two users to exchange tokens between different blockchains. - -1. **User A creates a transaction, sending an amount of BTC to user B.** The transaction output has some specific conditions: - - 1. B can grab the coins within a specific timeframe (about 24 hours - 144 Bitcoin blocks). Otherwise, A can get back the coins[($$^7$$)](3-tokenization-standard.md#footnotes). This clause ensures that A does not lose money in case the exchange would not happen. - 2. B’s only condition to spend those coins within 24 hours is to claim them before A, which is possible only if B knows a “secret” X revealed by A himself. - - - - B does not know the secret X, but A sends the result of a hash function of that secret h(x) to B. -2. **User B creates a transaction, sending USDT to user A in exchange for the BTC.** The transaction output has some specific conditions: - 1. A can grab the coins within a specific timeframe (about 12 hours). Otherwise, B can get his coins back. - 2. The only condition that allows A to spend those coins within 12 hours is to reveal the secret. The “key” to unlock the output of the transaction is the secret x. - -A must reveal X to grab the coins sent by B and has about 12 hours to do so. Once A grabs the coins, B knows the secret X and is able to take the BTC sent by A. - -Even if A reveals the secret at the last hour (12th), B has additional 12 hours to take the BTC sent by A since the locktime for the first transaction's output is 24 hours instead of 12. - -If A does not reveal the coins, both the users will get back their assets within 12 and 24 hours respectively. If everything goes as expected, both users will receive the coins in the first blocks validated on the respective chain (Bitcoin and Mintlayer). - -The only flaw of a traditional cross-chain atomic swap is that the timelock (nLockTime parameter on Bitcoin) cannot be reliable as one of the blockchains may remain stuck behind due to hashrate variability. Possible reorganizations or other factors may also come into play, depending on the specific blockchain structure and rules. - -Moreover, if one of the transactions involved in the atomic swap has relatively lower fees, the user might not be able to spend the output before the lock time expires. It may even invalidate the swap, leading to loss of funds for that user while the counterpart grabs all the coins on both chains. - -Mintlayer bypasses these issues by introducing the **first reliable cross-chain Bitcoin atomic swap**. Since it is structured as a Bitcoin sidechain, each Mintlayer block carries a reference to the Bitcoin blockchain. The nLockTime of the two transactions returning the coins to the sender is calculated in the exact number of Bitcoin blocks counted on both chains. - -Moreover, the wallet also provides the CPFP (child pays for parent) functionality, speeding up the atomic swap transaction if it is stuck in the mempool due to too low fees. For example, the wallet can collaborate with a watchtower (even controlled by the user himself, or by a service provider/oracle) to notify the user when the transaction spending output is late and suggest a proper CPFP transaction fee amount. - -The atomic swap technology is at the base of the concept of a decentralized exchange. Mintlayer implements it either for cross-chain DEX transactions (between two MLS-01 tokens) or intra-chain transactions (between BTC and MLS-01 tokens). [See §5.](5-decentralized-exchange-dex.md) for more information about the DEX. - - - -### 3.2.5. Gas free economy - -The default fee for any transaction on Mintlayer is set to MLT unless the user chooses otherwise. In that case, the fee is automatically expressed in the token that the user is transferring. The user can still decide which token to use to pay fees, among those available in the wallet. - -It is expected that most of the blocksigners will accept all the major MLS-01 tokens. Considering the fee economy is a free market, block proposers have incentives to accept any token as long as it has a recognized value in the market. Otherwise, transactions left behind might be grabbed by the next blocksigner. Simultaneously, this game theory mechanism may lead to the rejection of illiquid tokens, constituting an effective spam filter. - -The network participants that need to calculate the fee value (i.e., to choose which transaction is more convenient, in case the chain is saturated) will query data prices from a centralized exchange (using API) or DEX oracles. - -When preparing a transaction, the wallet UI suggests a fee amount for each token based on an algorithm that analyzes the Mintlayer’s mempool and past transactions. - -Blockmakers can also signal if they will accept a new token in the next blocks that they will produce. - - - -## 3.3. Confidential Transactions (MLS-02) - -A token can be issued on the network by implementing Bullet-proof Confidential transactions with ring signatures[($$^8$$)](3-tokenization-standard.md#footnotes), which is the feature for the tokenization standard: MLS-02. The issuance of tokens that enables confidential transactions is a guarantee of privacy and anonymity. However, it is discouraged unless there is a real need for privacy since it comes with a tradeoff: CTs take more space (higher fees), require more resources for the verification, and cannot be batched in transactions with multiple payments. Thanks to the peg-in mechanism, it is possible to issue a confidential version of other cryptocurrencies (pegged on Mintlayer, [see §3.4.](3-tokenization-standard.md#34-wrapped-tokens-and-peg-in-federation)), such as m-BTC or m-Ether, to transfer already existing cryptocurrencies with higher anonymity. - -It is worthwhile to note that, even if a token is issued without implementing the CT method, Mintlayer’s UTXO model grants some level of confidentiality: - -1. It is possible to have multiple independent addresses for a single account/wallet; -2. Lightning Network transactions provide higher privacy; -3. Peer-to-peer batching effectively mixes inputs, outputs, and signatures of different users, making chain analysis much more difficult. - - - -## 3.4. Wrapped tokens and Peg-in federation - -It is possible to use the Mintlayer blockchain as a second layer for other blockchains like Bitcoin or Ethereum. Central entities can wrap tokens on Mintlayer: they lock-in funds on the main blockchain, which creates a corresponding amount of MLS-01 or MLS-02 tokens. Independent oracles can prove the existence of the corresponding amount of locked tokens on the main blockchain. In this way, it is possible to create confidential tokens on Mintlayer([§3.3.](3-tokenization-standard.md#33-confidential-transactions-mls-02)), such as m-BTC or m-ETH. - -It is also possible to implement Strong Federations (like Liquid[$$^9$$](3-tokenization-standard.md#footnotes)) to issue wrapped tokens and confidential assets. The federation cyclically renews the lock time (nLockTime on Bitcoin) of the transaction, freezing the funds in the multi-signature UTXO and creating the corresponding token on Mintlayer. It is always possible the peg-out of the token: in that case, the Mintlayer tokens are burned, while the original cryptocurrency is unlocked on the main network and available to the original owner. - - - -![](https://lh3.googleusercontent.com/RsDcp99BVw-Fu6zFGXlknBhQaHmgjhpPehwVUmHVC\_HlwQmnQE2KXZ-yb6iEcgj7-j4EfrBJZy\_91b8UMkDYvRej3rfsHB8nGC8gVIcOtth5AEYc8EGELsRANEcum9RGwOdUmJcL) - -Developers are free to use a combination of ACL, programmable pools, and oracles to create more sophisticated smart contracts on the Mintlayer chain and bind the issuance or existence of MLS-01 tokens to their corresponding amount locked on other blockchains (or even to automatically bind MLS tokens through oracles with assets that exist out of the digital realm). - - - - -## Footnotes +*[Next: Decentralized finance](4-decentralized-finance-defi.md)* diff --git a/docs/whitepaper/4-decentralized-finance-defi.md b/docs/whitepaper/4-decentralized-finance-defi.md index 43e5c2d..90c3fb3 100644 --- a/docs/whitepaper/4-decentralized-finance-defi.md +++ b/docs/whitepaper/4-decentralized-finance-defi.md @@ -1,125 +1,185 @@ -# 4. Decentralized Finance (DeFi) +--- +title: "Decentralized Finance (DeFi)" +description: "Mintlayer whitepaper chapter: Decentralized Finance (DeFi)." +sidebar_position: 4 +--- ## 4.1. Script-based smart contracts and Turing incompleteness -Smart contracts on a blockchain mostly consist of particular conditions for locking and unlocking funds. There are three common approaches to smart contracts in the crypto ecosystem: the script-based primarily used in Bitcoin, the Solidity contract used in the Ethereum Virtual Machine \(EVM\), and, more recently, the Web Assembly Virtual Machine \(WASM\), seen in projects like EOS or Polkadot. +Smart contracts on a blockchain are self-executing contracts with the terms of an agreement between on-chain users written in software. These contracts exist across the blockchain's network. Bitcoin uses a script-based approach for its smart contracts, which are simple and limited in functionality due to its non-Turing complete scripting language. This approach allows for basic contractual conditions, such as multi-signature wallets that require signatures from multiple parties before funds can be spent. The Bitcoin approach's simplicity allows for easy contract verification and reduces the security scope. -Both EVM and WASM are Turing-complete, which means that the system can process whatever rule-set of data manipulation, opening up virtually infinite possibilities for developers to create smart contracts. Instead, Mintlayer uses the Bitcoin-like script-based approach: it is non-Turing complete and therefore limited by a determined set of rules that must be followed. This approach sacrifices some versatility in exchange for higher safety, sustainability, and speed of validation. +On the other hand, Ethereum introduced a more advanced and flexible approach to smart contracts using Solidity, a Turing-complete programming language. These contracts are executed in the Ethereum Virtual Machine (EVM), an isolated environment within each Ethereum node that ensures smart contracts run precisely as programmed, without any possibility of downtime, censorship, fraud, or third-party interference. More recent blockchain projects like EOS and Polkadot are exploring the use of WebAssembly (WASM), a binary instruction format designed as a portable target for the compilation of high-level languages like C, C++, and Rust. This approach allows smart contracts to be written in multiple languages and run at near-native speed, offering both high performance and flexibility for smart contract development. Both EVM and WASM are Turing-complete, which means that the system can process whatever rule set of data manipulation, opening up virtually infinite possibilities for developers to create smart contracts. Instead, Mintlayer uses a Bitcoin-esque approach: it is non-Turing complete and therefore limited by a determined set of rules that must be followed. This approach sacrifices some versatility for higher safety, sustainability, and validation speed. -Generally, script-based smart contracts tend to produce less network pollution and execute faster than Turing-complete contracts, thus ensuring a more manageable environment for developers. On the contrary, complicated architectures on blockchains end up causing more issues than benefits: having endless possibilities might end up clogging servers, while at its core, a Turing-complete system is not even required by most blockchain applications. +In general, the simplicity of Turing-incomplete smart contracts means they can be validated and executed faster than their Turing-complete counterparts. The existence of large Turing-complete smart contracts on some chains has caused networks to become polluted, which is less like to happen in a Turing-incomplete system due to the simplicity of the model and the fact contracts likely involve less data and fewer conditions and transactions. However, the issues caused by polluted chains have spurned innovation within the space as many large blockchains look for ways to allow smart contracts to exist on side chains to reduce traffic on the main chain. -The Ethereum whitepaper [ \($$^1‎^0$$\)](4-decentralized-finance-defi.md#footnotes) states that “Turing-incompleteness is not even that big of a limitation”. Out of all the contract examples that the Ethereum team had conceived when writing a whitepaper, only one required a loop, and even that loop could be removed by making 26 repetitions of a one-line piece of code. A more recent study[ \($$^1‎^1$$\)](4-decentralized-finance-defi.md#footnotes) says that only 6,9% of smart contracts built on the Ethereum Virtual Machine truly require Turing-complete language functions. It also notes that the vast majority of Ethereum’s smart contracts can be coded to function the same way on a Turing-incomplete machine. +The Ethereum whitepaper [1] states, "Turing-incompleteness is not even that big of a limitation." Out of all the contract examples that the Ethereum team had conceived when writing a whitepaper, only one required a loop, and even that loop could be removed by making 26 repetitions of a one-line piece of code. A more recent study [2] says that only 6.9% of smart contracts built on the EVM truly require Turing-complete language functions. It also notes that most of Ethereum's smart contracts can be implemented to have the same core functionality without needing Turing completeness. This raises an important question, is making the developer's life easier when it comes to several niche applications more important than the sustainability and security of the chain? -To prevent potentially infinite loops in an EVM environment, which requires excessive resources, the contract execution is limited by the gas \(ETH\). The problem is, when a smart contract runs out of gas, the transaction is nullified \(the fee in ETH gas is paid to the miner in any case\). Therefore, it is necessary to provide enough gas in advance to cover the worst-case scenario, which is very difficult to foresee. +To address the halting problem inherent in Turing-complete systems, Ethereum introduced the idea of gas which allows the execution of the contract to be limited and ensure its execution will complete. A Turing-incomplete system such as Mintlayer does not have to deal with the implementation details and issues caused by gas as the script is guaranteed to finish executing. As a result, a Mintlayer smart contract only requires a standard transaction fee, like in Bitcoin, which like other Mintlayer transactions, can be paid in ML or any MLS-01 token. -It is one of the main reasons why Solidity smart contracts have shown a higher probability of breaking over time: among the historical failures, more notable ones are the DAO hack and Parity's multiple signature validation program. On the other hand, the possibilities provided by a script-based system are sufficient and proportionate to the purpose of Mintlayer’s DeFi and DEX functionalities, without incurring the risks of Turing completeness. By combining several simple scripts, it is possible to produce highly advanced contracts. +The inherent complexity of Solidity-based smart contracts, to use them as an archetype for Turing-complete smart contracts, has led to numerous security issues over the years; among the historical failures, more notable ones are the DAO hack and Parity's multiple signature validation program [4]. More recently, several smart contracts implemented in Vyper were exploited, to the tune of at least $60m, due to a compiler bug [3]. Avoiding complicated languages such as Vyper can thus be seen as a sensible step towards ensuring the long-term security of the chain. -Two very primitive script-based smart contracts are the **multi-signature account** and the **time lock**. **Multi-signature** requires a number n of signatures over m to unlock a specific unspent output, whereas **time lock** requires that the output is spent only after block x, or only n blocks after the event x occurred \(event x might also be a particular transaction or block\). Combining these two simple scripts together makes it possible to create sophisticated contracts while keeping the high reliability, efficiency, and predictability of their basic components. +Two very primitive script-based smart contracts are the **multi-signature account** and the **time lock**. **Multi-signature** requires a number m of signatures out of a total of n to unlock a specific unspent output, whereas **time lock** requires that the output is spent only after block x, or only n blocks after the event x occurred \(event x might also be a particular transaction or block\). Combining these two simple scripts makes it possible to create sophisticated contracts while keeping the high reliability, efficiency, and predictability of their basic components. -The potentiality and versatility of a script-based approach are well expressed in the development of a very particular smart contract, which has been the major focus of the entire Bitcoin developers’ community in the last years: Lightning Network. It allows locking funds in a bilateral channel between two nodes \(A and B\), while particular unlocking requirements let the nodes update the balance of bitcoins held by each one. +On Mintlayer smart-contract primitives are built-in and addressable in transactions. -The revolutionary innovation is the possibility to combine more of these bilateral channels to create a payment route across the network. If a third node C is connected to B through a second channel, the bitcoins can flow between all the nodes A, B, and C just by updating the balances of two channels. Extending this mechanism to a vast network of channels can effectively create an off-chain peer-to-peer layer on top of Bitcoin, allowing to send and receive bitcoin without using transactions written on the blockchain. -Mintlayer supports Lightning Network for all MLS-01 tokens and other HTLC script-based contracts used explicitly for the DEX, like atomic swap \([§5.2.](5-decentralized-exchange-dex.md#52-the-atomic-swap-dex)\) or lightning swaps \([§5.7.](5-decentralized-exchange-dex.md#57-lightning-network-dex)\), which are also interoperable with the Bitcoin blockchain. +## 4.2. Security tokens and stablecoins +Mintlayer's MLS-01 tokens are the most versatile tokenization technology to digitize securities on Bitcoin. Tokenizing s security means representing an ownership right \(such as shares in a company\) or a credit in a token. This right is usually guaranteed by the token issuer, who is contractually bound to recognize the token as a bearer security. By issuing an asset on Mintlayer, the asset is exposed to the liquidity held on the Bitcoin blockchain, as users can interact with the assets directly from Bitcoin. +The token can also represent an asset in the issuer's custody, such as real estate, luxury goods, or, as most will be familiar with at this point, a stablecoin. Theoretically, stablecoins can be included within the broader definition of security tokens. However, in some jurisdictions, the classification may differ for legal reasons. From an implementation perspective, all tokenized assets on Mintlayer are the same. -## 4.2. Security tokens and stablecoins +Mintlayer's architecture offers various tools for developing decentralized finance. Mintlayer's tokenization system is far simpler than the solutions found in other projects. The MLS-01 standard, which exists to fill the same fungible token niche as ERC-20, is far simpler than its predecessor. In order to release a token on Mintlayer, one doesn't need to write a smart contract in a language like Solidity but can create a transaction with a few data fields filled, and once the transaction is sent, the token exists. This works as a token on Mintlayer and is no more than some extra information in the UTXO header. If you have 100 ML, which is the fee to create a token, then you can create a token with essentially no technical know-how. -On Mintlayer, MLS-01 tokens represent the most versatile tokenization technology to digitize securities. Tokenizing security means representing an ownership right \(such as shares in a company\) or a credit in a token. This right is usually guaranteed by the token issuer, who is contractually bound to recognize the token as a bearer security. +``` -The token can also represent an asset in the issuer's custody: an example is stablecoin Tether, which has the dollar as its underlying asset, held by Tether Inc. On a theoretical level, stablecoins can be included within the broader definition of security tokens, although in some jurisdictions, the classification may be different for legal reasons. +pub struct TokenIssuance \{ + pub token_ticker: Vec, + pub amount_to_issue: Amount, + pub number_of_decimals: u8, + pub metadata_uri: Vec, +\} +``` -While cryptocurrencies like Bitcoin are issued in a decentralized way, the issuance of security is always centralized, meaning the issuing entity is also prosecutable by the authorities or central entities. Despite this, the advantage of a blockchain for security is palpable: the blockchain is the first technology capable of transferring bearer securities in digital form without relying on a centralized system. -In the case of security tokens, the topic revolves around the transfer, not the issuance. However, it still makes the difference as the security can be sold directly by the company without intermediaries or even traded on a DEX for other cryptocurrencies \(i.e., Bitcoin\). The token may also grant administrative rights concerning company shares, where the token buyer exercises his rights cryptographically and anonymously by demonstrating ownership of the security using his private key. +The structure defining a basic MLS-01 token on Mintlayer can be seen above. This represents the minimum set of information required to issue the token. -Mintlayer’s architecture offers various tools for developing decentralized finance with particular regard for securities: Access-Control-List with verification through a decentralized identity, programmable pools to pay dividends, and tax transactions. +In addition to the simplicity of issuing a token, Mintlayer tokens have a number of features that make them suitable for DeFi contexts. Most notably, MLS-01 tokens support multi-sig and can include a whitelist to ensure only KYC'd addresses can receive the token, which is especially useful for a security token-based context. Mintlayer's smart contract environment allows these tokens to have additional features, such as transaction taxes and dividends, to be implemented. That is to say, all of the key features one may want from a token on Ethereum can be replicated on Mintlayer in order to safely and legally issue a security token. -It is possible to picture a future in which companies or self-employed people freely issue shares or bonds on a blockchain and then transfer them without any friction. Private arbitrators elected by the parties handle fraud cases of the token issuer. Examples of fraud cases might be: +In addition to MLS-01, Mintlayer has NFT tokens in the form of the MLS-03 standard. These have the same basic features of the MLS-01 bar the fact they're non-fungible. Once again, these tokens can be used for a variety of DeFi and other on-chain purposes. -* The business profits are not redistributed as scheduled based on the distribution of the assigned tokens; -* The administrative rights associated with the token are denied; -* The token inflation does not meet the expected schedule, or tokens are burned/locked by the issuer against the terms of the public offering. +## 4.3. ACL rules for securities -Some of these frauds might be prevented if the MLS-01 token representing the security is issued without the possibility for the token issuer to intervene in these factors, such as the generation of new tokens \(inflation control\). However, in most cases, such rigidity might not be well-suited for securities. Therefore, when serious disputes arise, the token’s digital nature and the total absence of frictions in the exchanges would immediately lead to a fall in its value, undermining the issuer’s credibility. This incentive mechanism provides a market equilibrium in the use of these instruments. +> NOTE: This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change +> \{.is-danger\} +Access control lists, often called whitelists, act as a filter to limit a token's transferability. By default, any address can transfer and use the token without any limitations unless the token creator defined some ACL upon its creation or added one at a later date. The token owner is able to update the ACL, at will, in the future to ensure the whitelist is always up-to-date. +One purpose that can be identified for ACLs is to allow the trading and transfer of security tokens that must comply with particular company policies or legislation. Limits can be enforced on transactions. -## 4.3. ACL rules for securities +With a basic ACL implementation, it is possible to ensure the token can only be sent to a known address within the ACL. This means the default behavior of the token is that it cannot be sent to anyone unless their address has been added to the ACL by the token owner. An address can also be removed from the ACL to ensure it is continuously updated. More complicated tokenization rules can be implemented through the smart contract system, which could include actions akin to a superset of the ACL feature, such as requiring a minimum transfer amount or a transfer tax when the transaction comes from or goes to an address within a specific set. + +It is possible to get similar behavior to an ACL without having to use one formally. By using the multi-sig functionality within Mintlayer, it is possible to require the owner, or a set of owners, to approve a transaction before it can happen. In this case, the address of the recipient can be checked offline in an entirely private fashion before the centralized entity approves. The centralized nature of this approach is not necessarily a downside as it is an inherent feature of the securities market, for which ACLs and multi-sig approvals are particularly important, and the standard approach relies on a centralized entity maintaining a public list anyway. There is a distinct benefit to this approach, a token issuer does not have to program their desired behavior onto the token or blockchain and can change their policy to approvals or even have a system too complicated to be automated in order to ensure the transaction is valid; for example, if the recipient of a transaction is not known to the token issuer an ACL approach would reject the transaction whereas a multi-sig approach would allow the issuer to whitelist the recipient offline. + +## 4.4 Built-in Smart-Contracts + +MLS01, MLS03 and other features like Multisig are smart-contract natively available on Mintlayer. They are controllable as Output types, see the following table: + +```rust + +pub enum TxOutput \{ + Transfer(OutputValue, Destination), + LockThenTransfer(OutputValue, Destination, OutputTimeLock), + Burn(OutputValue), + CreateStakePool(PoolId, Box), + ProduceBlockFromStake(Destination, PoolId), + CreateDelegationId(Destination, PoolId), + DelegateStaking(Amount, DelegationId), + IssueFungibleToken(Box), + IssueNft(TokenId, Box, Destination), + DataDeposit(Vec), +\} +``` + +In the future, we plan to introduce multiple output types to Mintlayer. For instance, features like Atomic Swaps and HTLC (Hashed Timelock Contracts) will be added as distinct types of Outputs. -[//]: # (![](/static/images/frame-69.png)) +### 4.4.1 Transfer +```rust -Access-Control-List \(ACL\) acts as a filter dedicated to limit the transferability property of a token. By default, any address can transfer and use the token without any limitations unless the token creator defined some ACL upon its launch. Among the rules defined, there is also the possibility \(or impossibility\) to change those rules in the future once the token is live on the mainnet. + Transfer(OutputValue, Destination), +``` -One purpose that can be identified for ACL is to allow trading and transfer of security tokens that need to comply with particular company policies or legislation. Some limits can be enforced on the input or the output of a transaction. +The 'Transfer' output is utilized to create a simple payment transaction. -On the input side: +### 4.4.2 LockThenTransfer +```rust -1. It is possible to enforce an upper or lower bound on the amount transferred; -2. Time locks can be enforced \(i.e., the UTXO cannot be spent until block x\); -3. A particular address can be blocked so that all UTXO from that address are frozen and cannot be transferred. + LockThenTransfer(OutputValue, Destination, OutputTimeLock), +``` -On the output side: +This smart contract is designed to send tokens to a specific destination. The recipient at the specified destination cannot spend the output before a certain time, which is defined in `OutputTimeLock`. -1. Only specific addresses can receive a transaction: in this case, the standard policy is to deny the transaction unless the requirement is met \(the output address is whitelisted\); -2. A certain address cannot receive a transaction: in this case, the standard policy is to allow any transaction unless the restriction is met \(the output address is blacklisted\); -3. Conditional whitelisting/blacklisting: a particular address can or cannot receive the transaction depending on the amount transferred \(upper or lower bounds\) or the lock time; -From a technical point of view, the rules are enforced through one or a series of filters and an action: _allow, deny, or check:_ +### 4.4.3 Burn +```rust -* If the action is deny, and at least one of the filters is met, then the transaction cannot be validated; -* In case of allow action, the transaction can be validated only if all the filters are met; -* In case of check action, the transaction is validated only if it passes another set of rules used for another token. The check action can be used in case of multiple tokens issued with the same policy conditions or if more tokens share a common set of rules \(recalled with check\) on top of which other rules are specifically enforced for each different token. For example, the token issuer can specify or inherit the ACL that is already defined by a trusted third party in charge of the AML/KYC procedures. + Burn(OutputValue) +``` -[//]: # (![](../.gitbook/assets/frame-70.png)) +This smart contract is used to destroy the output, effectively decreasing the supply of the token. -An additional _control_ parameter can be configured when there is a need for a particular entity to approve each transaction of the token. The entity is defined as “controller” and shall “countersign” the transaction for its validation. The difference from a simple 2/2 multi-signature is that this ACL control rule requiring the controller's signature can be combined with other ACL rules or any other desired multi-signature scheme for the UTXO. For example, the users might use a ⅗ multi-sig account to hold the tokens, which can only be transferred by providing at least 3 signatures together with the controller’s signature \(so that it effectively becomes a 4/6 scheme\) and whatever other ACL rules that are configured for that token. +### 4.4.4 CreateStakePool -The controller can be the token issuer, a service, an identity provider, or more generically, an oracle. The standard identification procedure required to ask the controller for the countersignature can be performed using the DID \([§4.4.](4-decentralized-finance-defi.md#44-decentralized-identity-did-and-oracles)\). +```rust +CreateStakePool(PoolId, Box) +``` -## 4.4. Decentralized Identity \(DID\) and Oracles +`CreateStakePool` generates a staking pool. This function is used by the wallet to inform the network that a pledge is being committed to a staking pool. Once this is done, the software can then start generating blocks. -The Mintlayer full node and light node provide a tool for creating a digital identity represented by a pair of keys: public and private. These keys can be used to encrypt/decrypt or sign/verify messages and verify the “decentralized identity”. +### 4.4.5 ProduceBlockFromStake +```rust -The DID can be used to “sign-up” or “login” to services of an oracle or directly as data is processed by the oracles to identify a particular user for generating statistics or ranking \(i.e., for the DEX transactions\). In general, oracles empower the blockchain’s inner mechanisms with data unavailable inside the blockchain. AML/KYC oracles may certify the DID countersigning their transactions to meet ACL rules. In contrast, other oracles might help the wallets perform specific tasks, such as provide better reliability of the atomic swap allowed by the watchtowers \([§3.2.4.](3-tokenization-standard.md#324-atomic-swap)\). Observers \([§5.4.](5-decentralized-exchange-dex.md#54-observer-of-multiparty-swaps)\) and book aggregators \([§5.5.](5-decentralized-exchange-dex.md#55-book-aggregators-for-multiparty-swaps)\) in DEX help synchronize the DHT and create storage for a proper order book. + ProduceBlockFromStake(Destination, PoolId) +``` -Technically, the DID is a master public key \(also known as Account Extended Public Key[ $$^1‎^2$$](4-decentralized-finance-defi.md#footnotes)\) produced by a wallet’s built-in tool. It is possible to use DID as one of the keys derived from that master key. The master private key or the derived private keys are used to sign the message, proving the user’s identity. +This output is utilized specifically for decommissioning a staking pool, enabling the movement of funds out of the pool. -Services may rely on a trusted third party that acts as a personal identity verifier \(i.e., a KYC provider\) so that the user does not need to submit the KYC procedures for all the registration processes with every service. Instead, users execute the KYC with a single identity provider and then verify themselves with all the services by signing a message with their DID. +### 4.4.6 CreateDelegationId +```rust -The user may also publicly sign up for different services with different public keys, all derived by the same master public key used for the registration to the KYC provider so that the signup is not publicly attributable to the user’s physical identity. In this case, since the user privately provided the derivation path to the service he is using, only the service \(and not even the KYC provider\) can trace the DID back to the master public key. The service asks the KYC provider for personal information only if it is necessary for compliance reasons. +CreateDelegationId(Destination, PoolId) +``` +This output is utilized to generate a delegation. Funds can subsequently be transferred to and from this delegation for participation in a staking pool. +### 4.4.7 DelegateStaking +```rust -## 4.5. Programmable Pools (dividends, taxation) + DelegateStaking(Amount, DelegationId) +``` -There are occasions when using script-based transactions can cause more network pollution, for example, when moving small amounts that are not consolidated in a single account, as it happens on account-based systems \(i.e., Ethereum\). For this reason, Mintlayer allows users to switch from UTXO to an account base with programmable pools. +Used to send a certain amount of ML tokens to a delegation. -A programmable pool can be used to pay out dividends or collect “tax” on each transaction of a specific token. Some tokens can be created with ACL rules, requiring that each transaction passes through the programmable pool. In that case, the transaction will necessarily execute the programmable pool’s rule set to be validated, which may enforce sending a fee to a specific address \(taxation\) or all the addresses holding a certain amount of tokens \(dividends\). +### 4.4.8 IssueFungibleToken +```rust -The amounts paid for taxes and dividends increase the balance of an account-based recipient, not a UTXO. The accounts can be cleared with a transaction by creating a new UTXO of the same amount of money in the account-based balance \(minus the fee paid to the blockmaker for that transaction\). +IssueFungibleToken(Box) +``` -The rule set of a programmable pool can be configured by its creator, indicating the address or addresses entitled to collect the taxes/dividends or the rule by which those addresses are selected: +This output is used to create a new fungible token. For more details, refer to [Chapter 3.1: Fungible Tokens (MLS01)](3-tokenization-standard.md#31-fungible-tokens-mls01). +The cost of issuance is specified in the chain configuration constant `FUNGIBLE_TOKEN_MIN_ISSUANCE_FEE`. -1. **Dividends**: an address can receive a share of the funds held in an indicated reserve, depending on how many tokens it stores \(which might be security tokens representing quotas of the shareholders\). The programmable pool creator defines: +### 4.4.9 IssueNft +```rust - * Specific address\(es\) entitled to receive the funds, proportionally distributed to a set of UTXO; - * A defined share of funds the beneficiary needs to hold, which is required to be eligible as a beneficiary of the dividends; - * The reserve address\(es\) from where dividends are paid; - * The combination with any ACL filter. + IssueNft(TokenId, Box, Destination) +``` -2. **Taxation**: an indicated address can receive taxes for each transaction made with a specific token. The programmable pool’s creator defines: - * The address that collects the taxes; - * A fixed quantity of token to be paid as tax for each transaction; - * In other cases, a specific percentage of the amount transferred to be used as a tax. +This output is utilized to create a new non-fungible token (NFT). For more details, please see [Chapter 3.1: Non-Fungible Tokens (MLS03)](3-tokenization-standard.md#32-non-fungible-tokens-nft-mls03). The cost of issuance is specified in the chain configuration constant `NFT_MIN_ISSUANCE_FEE`. -To create a pool and execute the pool’s functionalities, it is necessary to broadcast a transaction with a specific OP\_CODE. The pool rule set can be configured to determine a pool owner who has the ability to update or destroy the pool. +### 4.4.10 DataDeposit +```rust -The smart contracts within a programmable pool might have Turing complete functionalities, in this case the advantages of a Turing incomplete system are not applicable. +DataDeposit(Vec) +``` +In Mintlayer, the equivalent function to Bitcoin's `OP_RETURN` is used to store arbitrary data. The maximum size for this data is defined by the `DATA_DEPOSIT_MAX_SIZE` chain config constant. Additionally, the cost for data storage is set by the `DATA_DEPOSIT_MIN_FEE`. +--- + ## Footnotes + +[1] Buterin, V. (2014). Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform. https://ethereum.org/669c9e2e2027310b6b3cdce6e1c52962/Ethereum_Whitepaper_-_Buterin_2014.pdf + +[2] Jansen, M., Hdhili, F., Gouiaa, R., Qasem, Z. (2020). Do Smart Contract Languages Need to Be Turing Complete?. In: Prieto, J., Das, A., Ferretti, S., Pinto, A., Corchado, J. (eds) Blockchain and Applications. BLOCKCHAIN 2019. Advances in Intelligent Systems and Computing, vol 1010 . Springer, Cham. https://doi.org/10.1007/978-3-030-23813-1_3 + +[3] LearnWeb3. (2023). $60M hack on Curve Finance: Technical breakdown and reproducing the hack. https://learnweb3.io/lessons/60-m-hack-on-curve-finance-technical-breakdown-and-reproducing-the-hack/ + +[4] Parity technologies. (2017). A Postmortem on the Parity Multi-Sig Library Self-Destruct. https://www.parity.io/blog/a-postmortem-on-the-parity-multi-sig-library-self-destruct/ + +--- + +*[Next: Decentralized exchange](5-decentralized-exchange-dex.md)* diff --git a/docs/whitepaper/5-decentralized-exchange-dex.md b/docs/whitepaper/5-decentralized-exchange-dex.md index ab3daee..a82b49f 100644 --- a/docs/whitepaper/5-decentralized-exchange-dex.md +++ b/docs/whitepaper/5-decentralized-exchange-dex.md @@ -1,425 +1,166 @@ -# 5. Decentralized Exchange (DEX) +--- +title: "Decentralized Exchange (DEX)" +description: "Mintlayer whitepaper chapter: Decentralized Exchange (DEX)." +sidebar_position: 5 +--- -## **5.1. Decentralization, privacy, and censorship** +## 5.1. Overview -In general, any exchange has two main components: a messaging system and a trading engine. The messaging system collects trade intentions \(orders\) from the users and sends them to the trading engine that checks the orders and executes them. In the current DeFi ecosystem - mostly built on Ethereum - the messaging system generally uses protocols like 0x, while the trading engine is a smart contract. A DEX may fail in being censorship-resistant because of two distinct conditions: +Mintlayer’s decentralized exchange (DEX) is **native to the UTXO model**: there is no centralized matching engine or off-chain custody. Orders exist fully on-chain and enforce settlement atomically. +This makes the DEX censorship-resistant, transparent and secure, while still supporting a general marketplace across **any Mintlayer asset** (ML, fungible tokens under MLS01, and NFTs under MLS03). -1. When the matching engine is prone to attack vectors, for example, if there is an identifiable owner of the private key/address who manages the smart contract and, in some cases, has a power to stop it; -2. When the messaging system mostly relies on centralized access points \(i.e., a website or a node relayer\) that can be shut down[ \($$^1‎^3$$\) ](5-decentralized-exchange-dex.md#footnotes). +## 5.2. Order Representation -In this regard, Mintlayer users and developers can choose between six different types of DEX interactions, depending on their needs in terms of decentralization, privacy, and censorship resistance: from a fully decentralized solution in both trading engine and messaging system to milder solutions that introduce intermediaries in the communication to increase the spectrum of possible trades. +Orders use the `CreateOrder` output type: +```rust +CreateOrder(OrderData) +``` -## 5.2. The atomic swap DEX -The first solution is based on the **atomic swap** smart contract playing the part of the trading engine. It does not rely on any particular communication system: users can exchange order intentions using **any medium of communication**. +With payload: -This solution is likely the best choice for OTC trades as transactions require both parties to already be in contact and agree on the pair exchange details \(the precise amount of tokens and the relative price\). +```rust -The difference between other OTC trades is that this procedure is entirely trustless. The communication is facilitated via the **standardized order messages** \([described in §5.8](5-decentralized-exchange-dex.md#58-peer-to-peer-messaging-system)\) that can be used to create the atomic swap transaction in the wallet automatically. This way, the trade can easily occur without requiring escrow or technical support, while notarization becomes unnecessary if the goal is to ensure the counterpart’s compliance, given the fact that the atomic swap is fully trustless. +struct OrderData \{ + conclude_key: Destination, // who can conclude the order + ask: OutputValue, // what is requested + give: OutputValue, // what is offered +\} +``` -**The privacy is guaranteed** because **no one needs to know about the transaction** except the two parties involved, whereas **blockchain analysis cannot distinguish an atomic swap from any other transaction** in the blockchain. -Another benefit of the atomic swap is that it fully supports cross-chain swaps between BTC and MLS-01 tokens. The Mintlayer full node integrates an add-on to Bitcoin Core with a UI designed to specifically perform atomic swaps between the Bitcoin chain and Mintlayer chain. The Mintlayer mobile wallet \(which is a light wallet for managing either Bitcoin and/or Mintlayer\) also includes this functionality. +At creation: -Thanks to the link between Mintlayer blocks and Bitcoin blocks, the cross-chain atomic swap is secure even in case of reorg \(chain reorganization\): even if a reorganization happens on Bitcoin, the Mintlayer chain reorganizes too as part of the consensus mechanism. +* `give` is an amount of an asset offered by the maker. +* `ask` is an amount of another asset that the maker wants to receive in return. +* `conclude_key` defines who can conclude the order and claim the obtained amount of the asked +asset and any remaining `give` balance. +Note: though technically the conclude key can be owned by anybody, normally it will be owned by the maker. +## 5.3. Lifecycle -## **5.3. DHT multiparty swaps** +The lifecycle of an order consists of creation, zero or more fills, optional freeze, and conclusion. -Like the first solution, the second one uses the **atomic swap** as a trading engine and also introduces a **peer-to-peer communication** system that allows swaps between parties that are unknown entities to each other with no prior contact. It is possible to create **multiple atomic swaps** splitting a single order into multiple sub-orders, increasing the possibility of finding a match in terms of the amount and price for the pair requested. The functioning of both the messaging systems \(the order structure\) and the multi-swap are further described in [§5.3.](5-decentralized-exchange-dex.md#53-dht-multiparty-swaps), [§5.8](5-decentralized-exchange-dex.md#58-peer-to-peer-messaging-system). The communication system can also work on a TOR network so that users can communicate directly without exposing each other's IP addresses, only their **DIDs** \([see §4.4.](4-decentralized-finance-defi.md#44-decentralized-identity-did-and-oracles)\). +### 5.3.1. Create -The orders broadcasted are stored by the nodes in a decentralized manner using a **distributed hash table \(DHT\)**. Every full node can activate the DHT-DEX functionality: nodes are free to sync the full DHT, prune it, start partial sync only when they are online \(starting from the most recent orders\), or not sync at all. Once activated, the node starts syncing the Distributed Hash Table of orders from the peers. +A "create" transaction has an output of the `CreateOrder` type, which specifies the order details as explained above. +It also consumes the offered amount of the `give` asset, which is used to fund the order. -Not all orders that reach the peer are registered on the hash table; instead, each node stores only those orders that are filtered based on their interest and will pass on to the network only what is stored, just like it happens on BitTorrent or other similar peer-to-peer systems. A bigger DHT grants more opportunities to find a successful match, but on the other hand, it takes more time and resources to be synched and stored. +When the "create" transaction is included in a block, a temporary account associated with the order is created, +which holds the order's remaining `give` and `ask` balances (initially equal to the amounts specified in `CreateOrder`). -It means that there will never be a single equal DHT shared by all nodes, and likely there will not be nodes who know or store the entire book history since the complete set of orders is stored only collectively in many fragmented tables in possession of different node owners. +Note: the order account is not present in the blockchain explicitly. Instead, consensus nodes keep track of each order's +lifecycle and maintain their current states locally. -The filters applied in the syncing phase can be set over a chosen pair, a price range and the amount requested in the transaction. Nodes can freely prune the unwelcome orders from their DHT, also stopping relaying them to other nodes. +### 5.3.2. Fill -Orders can have a **due-date**; some are dropped by the nodes who created them, while others are closed because the swap has already been successfully finalized. To notify peers of **closed or canceled orders**, it is necessary to prove those orders’ ownership by signing the message with the private key connected to the original order creator’s DID. Nodes also notify the peers by relaying messages about the closed orders. +To fill the order, a taker creates a transaction that: -An anti-spam filter is necessary because an attacker could populate the DHT with fake orders. For this reason, each node can configure **anti-spam** filters, removing old orders or directly those nodes that spread a suspiciously high amount of orders which are never fulfilled, closed, or canceled. If the anti-spam would prove to be insufficient to manage a vast amount of fake orders or require too many resources, a third party can intermediate the DHT synchronization \([see §5.3.](5-decentralized-exchange-dex.md#53-dht-multiparty-swaps)\). +* Contains a special pseudo-input called `FillOrder`, which specifies the order id and the amount of the `ask` asset +to fill the order with. +* Consumes the specified amount of the `ask` asset. +* Receives the proportional amount of the `give` asset into an output of their choice. -The user creating an order may use a **price ratio** suggested directly by the wallet node. The user chooses between two indicators: a\) the price provided by a **centralized exchange/service through API** or b\) the price **retrieved from the DHT**, which is calculated in a fully decentralized way. +Once the "fill" transaction is included in a block, the order's remaining balances are reduced by the corresponding amounts. +This can repeat until the give balance reaches zero**\***, or the order is frozen or concluded. +Each fill is **atomic**: the taker's payment and reward are settled together in the same transaction. -## **5.4. Observer of multiparty swaps** +**\*** Or until the remaining `ask` balance becomes so low that it's not enough to obtain even a single atom of the `give` asset. -A messaging system based on a **distributed hash table \(DHT\)** has a few drawbacks: +### 5.3.3. Conclude -1. Speed and efficiency are far below what a centralized server can provide; -2. It might be too heavy and resource-draining, especially for mobile devices, considering what an average user is willing to dedicate to the purpose; -3. It is impossible to know exactly when an order is closed since the atomic swap is bilateral, meaning that users cannot remove orders from the DHT unless confirmation is already provided. It may lead to a huge number of contacts between concurrent users that match each other even if some of them already finalized the exchange transaction. Moreover, some orders might be left unmanaged by the users \(i.e., the user broadcasted them but went offline afterward, or never finalized the atomic swap for any reasons\). Even if they can be filtered by the wallet, they can increase the DHT size with useless information; -4. It leaves room for spam attacks: an attacker could populate the Mintlayer DEX with fake orders. This attack would be free and could disrupt the network. +The holder of `conclude_key` (chosen by the maker) can at any time withdraw the accumulated amount of the `ask` asset +and the remaining amount of the `give` asset by concluding the order. -For these reasons, **specialized nodes can intermediate the messaging system**. Nodes can subscribe to the “observer” services, which act as the quality guarantee to its subscribers. The observer aims to voluntarily store the entire DHT, plus a few additional pieces of information provided by the nodes connected to them that report the effective status of the orders. +To do so, the concluder creates a transaction that: -The observer checks the status and the frequency of the operations to create a rank, which is higher when the number of finalized operations is higher when both involved users confirm that the atomic swap was successfully achieved. The observer cross-checks the DHT order book with the subscribers' data, proving that the transactions are effectively executed. It also performs a blockchain analysis to determine each user’s reliability. +* Contains an input of the `ConcludeOrder` type, which specifies the id of the order to conclude and is signed by `conclude_key`. +* Receives the accumulated amount of the `ask` asset**\*\*** into an output of their choice. +* Receives the remaining amount of the `give` asset into an output of their choice. -The observer ranks the user and their associated orders, communicating information to each subscriber about the **estimated reliability of a particular order/node, reporting spam, and notifying closed or inactive orders**. It may also relay orders to the subscriber that are already filtered along with the subscriber's interests and sorted according to the observer's priority set. Wallets can use the observers as “oracles” and accept or reject connections with other peers based on the reported reputation. This way, the users syncing the DHT may leave aside useless information or decide not to initiate a particular atomic swap transaction if the counterpart is not “verified” by the observer. +Once the "conclude" transaction is included in a block, the order is closed and its associated account is removed. -The observer could require a payment fee for its services. However, hypothetically it could also operate for free if it represents an entity benefiting from developing a reliable DEX, like a service that provides complimentary services connected to the DEX. Moreover, given that the observer privately gathers data from the users, it also disposes of more resources for elaborating DEX statistics, which may have an economic value or grant reputational value, allowing monetization of advertising. +**\*\*** Which is equal to **initial ask balance** minus **remaining ask balance**. -The observer also collects information, such as **price and timestamp**, about orders that led to successful atomic swaps. Keeping track of this information may serve when **calculating each pair's price ratio on the DEX**, not only estimated values by the book, but actual prices of the last exchange performed on-chain. +### 5.3.4. Freeze (optional) -For a node to rely on the observer services, it does not require much trust: even if the observer is shut down or does not provide any useful information, the communication between peers is not interrupted, nor the observer has any influence on the atomic swaps that are going to be performed. The only trade-off is the loss of privacy since the observer can distinguish the on-chain transactions as atomic swaps in the DEX, thus associating them to a particular owner and tracking down each ownership transfer. +Freezing an order is an optional operation that may be performed **before** the conclusion. It's only useful +when the order has to be concluded prematurely, i.e. before it was completely filled. +Same as "conclude", "freeze" can only be done by the holder of `conclude_key`. Once the order is frozen, it can +no longer be filled and the only possible operation for it is "conclude". +The reason why this may be needed is that during a premature conclusion the remaining `give` balance is non-zero, so it +has to be withdrawn as well (otherwise it will be lost). At this point if there is a malicious actor who wants to prevent +the concluder from doing the premature conclusion, they could do it by making frequent small fills for the order, thus +constantly changing its remaining `give` balance. If such a fill manages to get into a block before the "conclude" +transaction, the latter may become invalid due to the over-withdrawal of the `give` balance, in which case it will be +rejected by consensus nodes. -## **5.5. Book aggregators for multiparty swaps** +One way for the concluder to overcome this is to willingly reduce the withdrawn `give` amount in the "conclude" +transaction (thus losing a certain amount of the asset), so that even after the interference of malicious fills +the withdrawn amount stays at or below the remaining balance. This approach is not ideal though, as, first of all, +the concluder will lose money and, secondly, it's unreliable. -A second solution to avoid the drawbacks of a DHT constructed in a peer-to-peer way is to trust special node relayers that act as book aggregators and store the DHT on behalf of the users. It is particularly helpful for light node/mobile wallet users as they do not have time and resources to sync many megabytes of orders, or sort and filter them. +The better approach is to freeze the order first. This operation always succeeds and once the order is frozen, +it can no longer be filled. Which means that its balances are now fixed and a "conclude" transaction can be submitted reliably. -The relayer stores and broadcasts the orders on behalf of the users and also collects all the information from the subscribed users \(like any observer node\). When users intend to exchange tokens, the Mintlayer wallet uses bloom-filters to ask a book aggregator for a specific pair’s order. Then, the node relayer provides an answer – a list of all the orders in the network that may be of interest \(in terms of price and amount\) and already filtered or ordered according to a rank. It also combines matches between simultaneous online users, directly suggesting how to initiate the atomic swap transactions and what parties can be involved in it. +To freeze an order, the concluder creates a transaction that contains an input of the `FreezeOrder` type, which +specifies the id of the order to freeze and is signed by `conclude_key`. -Mintlayer app enables a specific configuration of push notifications to let the book aggregators notify users of a contact received. This way, users avoid the “always-on-display” screen and can unlock the phone only at the moment of initiating the atomic swap. +## 5.4. Atomic Settlement -When a user finalizes the order for the entire amount, it sends a closure notification to the book aggregator so that no more matches are proposed. It is useful as the relayer by itself never knows if the exchange transaction has been effectively carried out between parties after establishing contact through the relayer. +* Every fill either completes fully in a transaction or does not occur at all. +* There is no risk of partial execution. +* Settlement is deterministic: the price is fixed by the initial `(ask, give)` ratio, with proportional amounts computed as: -Such “book aggregator” relayers can be paid off using three specific fields in the order package \(see peer-to-peer messaging system §5.8\): + ``` -* feeRecipient: the address of the relayer; -* feeToken: the token used to pay the relayer; -* Fee: the fee amount sent to the relayer. + (taker_receives) = (fill_ask) * (give_total) / (ask_total) + ``` -Given that book aggregators centralize the communication system in a single entity, no exchange can happen if the aggregator is shut down until nodes find an alternative book aggregator. Another drawback of this solution is that the aggregators can track down all the users’ operations, limiting their privacy. However, aggregators also might be highly efficient in finding matches and achieving a prolific market of exchange transactions. -The essential difference between a book aggregator and a centralized exchange is that: +## 5.5. Fully On-Chain Order Book -1. it’s a non-custodial solution; -2. the matching engine remains a trustless atomic swap; -3. users identify themselves using pseudonyms \(DID\). +**The order book is the blockchain itself.** -There is no correct choice between a DHT, an observer, or a book aggregator; **the best solution depends on the degree of trust the user is willing to give to third parties**. +* No entity controls discovery or matching. +* Liquidity is transparent and globally accessible. +## 5.6. Asset-Agnostic +Both `ask` and `give` are `OutputValue`. This allows trading of: -## **5.6. Programmable pool DEX** +* Native ML, +* MLS01 fungible tokens, +* MLS03 NFTs, +* Even cross-type barters (e.g., token for NFT). -To participate in a programmable pool DEX, the traders need to “consolidate” one or more UTXO in an account-based address. The programmable pool DEX offers less privacy but more efficiency than the atomic swap because of two features: +## 5.7. Example Flow -1. Each participant in the pool publicly provides the address of his balance when submitting an order and uses the addressPool parameter in the order package \(§5.8\). It allows for a well-ordered and spam-free DHT as all nodes can monitor all the user activities: they can independently keep track of the finalized orders and easily recognize fake/spam orders, which are immediately discarded. Meanwhile, other order messages that refer to the same balance will be blocked. The programmable pool DHT is shared only between nodes that participate in the pool to lower resource consumption of other nodes committed to different types of DEX, like those that require the DHT sync. -2. The output of a successful trade is always the update of an account balance, not a UTXO. Therefore, there is no UTXO dust creation, even if orders are split in multiple transactions. +1. **Maker:** posts order *Give 100 ML, Ask 500 USDT*. + → Order created with balances: give=100 ML, ask=500 USDT. -The order packages are relayed between all the users belonging to the pool, while the trades are executed through the pool’s script-based smart contract rather than the atomic swap. For this reason, the programmable pool can work only with MLS-01 tokens and not bitcoins \(BTC\), which needs to be wrapped in a MLS-01 form before being traded in the pool. +2. **Taker A:** fills with 100 USDT. -The pool may also provide a particular transaction script, allowing the construction of an order book on-chain: nodes directly lock-in the tokens in a smart contract paired with a corresponding order package. When another trader sees an order of interest, the smart contract can be unlocked simply by executing the on-chain transaction required by that order package. + * Receives 20 ML. + * Order balances update: give=80 ML, ask=400 USDT. -For example: +3. **Taker B:** fills with 400 USDT. -Trader A locks-in 10.000 m-USDT in an address with the following script: the sender of a transaction who transfers 1 m-BTC to that address will be able to withdraw the 10.000 m-USDT to a different address \(the balance of Trader B\). In this case, the trader A is the “maker” who sets the exchange price \(10.000m-USDT/1m-BTC\), and trader B is the taker, getting 10.000 m-USDT to his address in exchange for 1 m-BTC. + * Receives 80 ML. + * Order balances update: give=0, ask=0 USDT. + * The order is now exhausted; only the maker (via `conclude_key`) can conclude and withdraw the accumulated `ask` + amount - 500 USDT. -The maker’s order automatically expires after n blocks after the on-chain transaction is executed. Until that order expires, no other participant in the pool accepts the locked 10.000 m-USDT for other transactions. If the order expires, nodes can freely prune the maker’s on-chain transaction as if it was never broadcasted to the network, and the tokens are still considered to be in the account balance of trader A. +## 5.8. Safety & Governance -This functionality has the great benefit of enabling out-of-sync exchanges because two traders do not have to be simultaneously online and connected to each other. On the other hand, if too many maker transactions are made without resulting in a successful trade \(matching with a taker\), it may produce on-chain pollution \(higher resources committed to syncing the chain even if those orders will expire someday and therefore, in the long run, do not pollute the blockchain but require more space on disk\). - -More importantly, an on-chain transaction pays a fee to the blockmaker. Therefore, it is more costly and poses a risk to end up with no successful trades. The free market economy will determine what is the more convenient solution between an off-chain DHT book with programmable pool swaps where traders connect to each other, and an on-chain book with out-of-sync makers and traders. - - - -## 5.7. Lightning Network DEX - -Order packages can be integrated into the functionality of the Mintlayer wallet to trigger Lightning Network transactions. When a user wants to execute the trade, the wallet recognizes the Lightning Network swap's specific request, thanks to the parameter lightningSwap \([§5.8.](5-decentralized-exchange-dex.md#58-peer-to-peer-messaging-system)\). It also automatically produces the payment invoices and HTLC transactions according to that order request \(exchange rate, amount of tokens, and expiring time\). - -The swap can be executed only if the two parties have already established a channel between them in both exchange pairs. - -1. Bob produces an order package asking for an amount \(valueB\) of tokenB in exchange for an amount \(valueA\) of tokenA and sends it to Alice. -2. Alice receives the order package, produces a Lightning Network payment invoice \(A\) for tokenA, and passes the invoice to Bob. -3. Bob creates an invoice \(B\) for tokenB, whose output can be redeemed only by revealing a secret \(HTLC contract\). -4. Bob creates a conditional payment to Alice's invoice \(A\), which is hash-locked with the same secret required to redeem the tokenB output paid to invoice B. -5. Alice pays the invoice \(B\) by passing the amount \(valueB\) of tokenB to Bob, as asked by him in the order package. -6. Bob redeems the payment executed by Alice, revealing the secret. -7. Alice can now redeem the conditional payment sent to invoice A. - -The benefits of Lightning Network DEX transactions are speed, privacy, near-zero fees, and no on-chain pollution. The limitation is the establishment of two different channels \(for both the tokens exchanged\). Even with enough liquidity, it is unlikely unless the parties involved already know each other and have agreed on those channels' specific purpose. However, this solution can be used by exchanges and services for directly trading BTC against MLS-01 tokens. - -When Lightning Network usage becomes more widespread, the relevance of such a solution will likely rise, allowing for additional features to be implemented. One example would be order packages with a field for submarine swaps to enable the direct purchase of BTC or MLS-01 tokens that already exist on a Lightning Network channel. - - - -## 5.8. Peer-to-peer messaging system - -As described in the previous paragraphs, Mintlayer’s DEX mostly uses technologies that assume the parties involved are already in contact when transferring money between each other \(i.e., the atomic swap [described in §3.2.4.](3-tokenization-standard.md#324-atomic-swap)\). However, while building a real marketplace, users must also be able to get in touch without knowing each other in advance. Therefore, a communication system is needed to allow them to choose between different orders available in the market waiting to be fulfilled. - -Carrying out this process without a centralized book is challenging. Moreover, an atomic swap transaction is necessarily bilateral, meaning that both involved users must be online and agree on the exact amount of tokens that shall be exchanged. It could cause issues since it is unlikely to find an exact match between maker and taker in a precise moment. - -The “request” of exchange preceding the atomic swap is a message that would need to be relayed all over the network before reaching a match. It would take time and resources and also expose the node relayers to spam attacks, while orders might never be fulfilled in the first place. It would result in an extremely inefficient and illiquid network. Mintlayer solves this puzzle by merging ideas and technologies that are already developed on other blockchains. - -If the maker and the taker do not know each other in advance, they need to find the counterpart and communicate to perform an atomic swap. The communication is structured according to a protocol inspired by Ethereum 0x[ \($$^1‎^4$$\) ](5-decentralized-exchange-dex.md#footnotes), allowing users to lean on node relayers to speed up the reconciliation process between demand and supply. - -Each message is a data packet that contains order parameters concatenated and hashed to 32 bytes using the Keccak SHA3 function. The maker signs the order with the private key associated with his digital identity \([DID, see §4.4.](4-decentralized-finance-defi.md#44-decentralized-identity-did-and-oracles)\). - -Once packaged, the order can be sent to the recipient using whatever medium of communication, even a direct message \(i.e., using Messenger, Telegram, etc.\), that is if the recipient already knows the maker. - -The message is structured as follows: - -[//]: # () -[//]: # () -[//]: # () - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # ( ) - -[//]: # (
name) - -[//]: # ( datatype) - -[//]: # ( description) - -[//]: # (
identity) - -[//]: # ( uint256) - -[//]: # ( Contact (DID) of the maker) - -[//]: # (
tokenA) - -[//]: # ( uint256) - -[//]: # ( ID of the tokenA offered by the maker) - -[//]: # (
valueA) - -[//]: # ( uint256) - -[//]: # ( total units of tokenA offered by the maker) - -[//]: # (
tokenB) - -[//]: # ( uint256) - -[//]: # ( ID of the tokenB requested by the maker) - -[//]: # (
valueB) - -[//]: # ( uint256) - -[//]: # ( total units of tokenB requested by the maker) - -[//]: # (
expiration) - -[//]: # ( uint256) - -[//]: # ( time at which the order expires) - -[//]: # (
priceRange) - -[//]: # ( uint256) - -[//]: # ( % of deviation from the price (valueA/valueB ratio) accepted by the maker (optional)) - -[//]: # (
multipartySwap) - -[//]: # ( uint256) - -[//]: # ( ) - -[//]: # (

If equal to tokenA it enables only an exact match (no multiparty swap)) - -[//]: # (

) - -[//]: # (

If different from tokenA it indicates the minimum amount of token accepted for a multi-party swap (it shall be less or equal than tokenA/2)) - -[//]: # (

) - -[//]: # (
feeRecipient) - -[//]: # ( address) - -[//]: # ( address of a relayer (optional)) - -[//]: # (
feeToken) - -[//]: # ( Uint256) - -[//]: # ( ID of the token used to pay the relayer (optional)) - -[//]: # (
fee) - -[//]: # ( uint256) - -[//]: # ( fee paid to the relayer (optional)) - -[//]: # (
lightningSwap) - -[//]: # ( uint256) - -[//]: # ( Indicates if the order have to be executed on Lightning Network (optional)) - -[//]: # (
addressPool) - -[//]: # ( uint256) - -[//]: # ( Address of the maker referring to the tokenA account in the pool that will be used for the trade (optional, mandatory for programmable pool DEX trades)) - -[//]: # (
) - -The data contained in the order does not reveal any confidential information that directly relates to the maker except for the maker’s **id**, which is necessary for the taker\(s\) to get in touch and perform the transaction. There is an **expiration time** at which the offer is no longer considered valid, and the wallet will reject any match proposed by other nodes. Two additional parameters are introduced to increase the chances of having a match between maker and taker, both freely configurable by the user: - -1. **multipartySwap**: it is expected that the amount of tokens requested for the atomic swap is not easily matched in the market with an equal and opposite order expressed in the same pairs. Therefore, to fulfill an order, it might be necessary to split the amount in smaller orders, which are going to be performed by different users in a “multi-party swap” \(i.e., the maker can send 0.4 BTC to user1, 0.2 BTC to user2 and 0.4 BTC to user3, creating three different atomic swaps\). The trade-off is that several atomic swap transactions require more fees to be paid on-chain, and the users are not willing to create so much dust. Therefore, the maker can introduce a threshold in the number of tokens exchanged in the atomic swap, under which any request of exchange would be rejected. If the parameter is set equal to valueA, it means that the maker intends to perform a single atomic swap and exchange the entire amount of tokenA. If the parameter is different, it represents an arbitrary value equal to or below half of the valueA, which indicates the minimum amount accepted for every single swap with other users. The lower the parameter is set, the higher the chances to find a match, but fees and dust increase. On the other hand, if the parameter is high, failure is probable in finalizing the order \(i.e., only a few orders find a match and execute as atomic swaps\). -2. **priceRange**: indicates the deviation from the actual price in the offer that might be accepted by the maker. For example, if tokenA is BTC, and tokenB is USDT, and the ratio between valueA and valueB is 1/10.000, then a 1% priceRange means that the maker is willing to accept an atomic swap transaction for any amount of USDT that is higher than 9,900 USDT in exchange for a single BTC. By default, each node accepts whatever more favorable price ratio, so the priceRange deviation is calculated only for higher tokenA/tokenB ratios than what is indicated by the maker \(which is usually the price suggested by the wallet, [see §4.5.](4-decentralized-finance-defi.md#45-programmable-pools-dividends-taxation)\). Accepting a small variability in price levels makes it much more likely to find a match on the DEX but may also imply less advantageous trades. By default, the wallet picks up the most favorable price among the matches. - -The wallet automatically prepares the message when the user selects the pair and digits the amount of token, desired exchange price, and the expiration date. The parameter priceRange is optional, set to 0,02% by default, as well as the parameter multipartySwap, set to one-fifth of the amount by default. - -The nodes store the messages sent in the network in a distributed hash table. If any user in the network is interested in receiving an order message \(i.e., directly from the maker, relayed from a peer, or a node relayer\), they will connect and initiate the atomic swap \(only if both users are online\). The wallet looks for possible matches until it finds the first user online, then initiates the atomic swap. In the presence of multiple available offers, the wallet will choose the ones closer to the amount requested and a more favorable price to reduce the number of atomic swap transactions required and maximize the profit. - -In this type of transaction, the labeling of “maker” and “taker” is imprecise since all users are, or can be, either makers and takers. The order is carried out only when there is a match between two “maker” offers expressed in the same pair \(but in the opposite direction\) and are consistent in terms of amount and price range. - -In case of low liquidity of a specific asset, users might be unsure about the possibility of finalizing a big order for its entire amount, so it shall be split into many different atomic swaps. Here comes the “**traffic** **light**” function into play, which allows for three different configurations: - -* **Red Light**: no atomic swap is ever initiated unless there are enough matches to close the entire order, and the corresponding users are all online at a specific moment. Contacted users are considered online when they positively confirm the reception of a message at the last minute. This option minimizes the possibility of starting a multi-party swap without finalizing it. Still, it may also slow down the process or end up with the exchange transaction stuck at the very beginning. -* **Yellow Light**: no atomic swap is initiated unless the user is aware of enough matches in the market to finalize the order for its entire amount. -* **Green Light** \(set by default\): the atomic swap is automatically initiated with the first user available for whatever amount equal or above the amount indicated in the multipartySwap parameter. - - - -## Footnotes +* **Maker authority:** only `conclude_key` can withdraw. +* **Freeze:** prevents fill spam from blocking conclusion. +* **Transparency:** all orders and balances are on-chain. +* **Parallelism:** multiple independent orders and multiple fills, on the same order, can be performed in parallel thanks to UTXO concurrency. diff --git a/docs/whitepaper/6-bitcoin-mintlayer-atomic-swaps.md b/docs/whitepaper/6-bitcoin-mintlayer-atomic-swaps.md new file mode 100644 index 0000000..81ad6ab --- /dev/null +++ b/docs/whitepaper/6-bitcoin-mintlayer-atomic-swaps.md @@ -0,0 +1,114 @@ +--- +title: "Mintlayer ↔ Bitcoin Atomic Swaps" +description: "Mintlayer whitepaper chapter: Mintlayer ↔ Bitcoin Atomic Swaps." +sidebar_position: 6 +--- + +This page defines recommended **default parameters** for Hashed Timelock Contract (HTLC) atomic swaps between Mintlayer and Bitcoin. These parameters provide safe interoperability while balancing liveness, fee markets, and security assumptions. + +## 6.1. Hash Function + +* **HASH160** (`RIPEMD160(SHA-256(x))`) is the canonical choice for cross‑chain compatibility with Mintlayer’s HTLC implementation. +* Mintlayer derives `secret_hash = RIPEMD160(SHA-256(secret))` from a **32‑byte secret**. +* Use the **same hash function on Bitcoin** (OP_HASH160) to ensure the revealed preimage unlocks both chains. + +## 6.2. Bitcoin Script Style + +* **P2WSH (SegWit v0):** widely supported. Use **OP_HASH160** for the hash path to match Mintlayer’s HASH160. +* **Taproot (P2TR):** preferred long‑term option; encode HASH160 in a script path. If counterparties only support SHA‑256 templates, do **not** mix with Mintlayer HASH160-both sides must match. + +**Recommendation:** Prefer Taproot where supported; otherwise P2WSH. Ensure **HASH160** is used consistently on both chains. + +## 6.3. Timelock Defaults + +Atomicity in HTLCs requires **asymmetric timelocks**: the HTLC of the initiator (the party who creates the secret and locks first) should always have a **significantly longer refund timelock** compared to that of the responder, to avoid race conditions. + +In other words, the initiator’s HTLC must expire much later, giving the responder enough time to learn the secret and claim funds before the initiator’s refund path becomes available. + +The difference (`T_initiator − T_responder`) provides a safety margin covering reorg depth, network propagation, and confirmation lag. + +The recommended timelock for the initiator is 48h (or 288 Bitcoin blocks, or 1440 Mintlayer blocks). +The recommended timelock for the responder is 24h (or 144 Bitcoin blocks, or 720 Mintlayer blocks). + +## 6.4. Confirmations + +* **Mintlayer:** 1–3 blocks recommended before considering the HTLC lock confirmed. +* **Bitcoin:** 1–3 blocks recommended, depending on value and risk tolerance. + +Wallets should wait for these confirmations before moving to the next protocol step. + +## 6.5. Fee Policy + +* Each chain pays fees in its **native asset** (ML on Mintlayer, BTC on Bitcoin). +* On Bitcoin, fee bumping (RBF, CPFP) should be supported for time‑critical claim transactions. +* On Mintlayer, indexers/wallets should estimate fees based on mempool congestion and block target times. + +## 6.6. Example Parameter Set + +Assuming that the initiator is on Bitcoin and the responder is on Mintlayer. + +* **Hash:** HASH160 (RIPEMD160(SHA‑256)) +* **Bitcoin Script:** Taproot (fallback to P2WSH) +* **T_ml:** 720 ML blocks (~24h) +* **T_btc:** 288 BTC blocks (~48h) +* **Confirmations:** ML: 2, BTC: 2 + +This ensures that if the initiator reveals the preimage on Bitcoin, the responder has at least 24 hours to claim on Mintlayer before initiator's refund path becomes valid. + +## 6.7. Bitcoin HTLC Script Example (Single‑Signature, P2WSH) + +Below is the **actual script** used for Mintlayer ↔ Bitcoin swaps. It employs **OP_HASH160** for the hash path and **OP_CHECKSEQUENCEVERIFY (CSV)** for the refund path. This ensures compatibility with Mintlayer’s `HtlcSecretHash` (RIPEMD160(SHA‑256(secret))). + +```text + +OP_IF + OP_HASH160 + + OP_EQUALVERIFY + +OP_ELSE + + OP_CHECKSEQUENCEVERIFY + OP_DROP + +OP_ENDIF +OP_CHECKSIG +``` + + +### 6.7.1. Semantics + +* **Hash path (OP_IF):** + + * Redeemer must provide a preimage `x` such that `HASH160(x) = secretHash`. + * Must also provide a valid signature with ``. +* **Refund path (OP_ELSE):** + + * After `` blocks have passed (relative to confirmation), `` can sign and refund. +* **Final OP_CHECKSIG:** Enforces that either branch requires a valid ECDSA/Schnorr signature. + +### 6.7.2. Witness Examples + +*Hash‑path spend (receiver claims before timelock):* + +```text + + 1 +``` + + +*Refund path (sender after timelock):* + +```text + + 0 +``` + + +### 6.7.3. Notes + +* Refund uses **CSV**: relative timelock from confirmation, not absolute CLTV. +* Both branches enforce signatures, avoiding anyone spending with only the preimage. +* Must set `nSequence` fields correctly when broadcasting refund transactions. + +**Taproot variant (optional):** The same logic can be encoded as a Taproot script path using HASH160 and CSV; this reduces fingerprinting and improves efficiency. diff --git a/docs/whitepaper/6-token-and-public-sale.md b/docs/whitepaper/6-token-and-public-sale.md deleted file mode 100644 index d541eb7..0000000 --- a/docs/whitepaper/6-token-and-public-sale.md +++ /dev/null @@ -1,95 +0,0 @@ -# 6. MLT Token - -## 6.1. MLT token - -The MLT token serves a utility purpose in the ecosystem. 400,000,000 MLT tokens are pre-mined and are either distributed in the market or locked, according to the token distribution table ([§6.2](https://docs.mintlayer.org/whitepaper/6-token-and-public-sale#6-2-token-distribution)). - -### 6.1.1. Staking - -The main token use case is staking in the Mintlayer implementation of the [Pulsar consensus protocol](https://arxiv.org/abs/2411.14245): the blocksigners \(slot leaders\) are users who “legitimize” the blocks created by signing them. They alternate in the creation of new blocks according to a selection algorithm. - -The blocksigner group is dynamic: for participating in the auction, it is necessary to stake the MLT token. Every user can apply for the blocksigner role as long as they stake enough MLT Tokens (40,000 tokens, equal to 0.01% of the initial total token supply). - -There is no Proof-of-Work: users have to stake their tokens and participate in a recurring auction that determines who qualifies as blocksigners for the next round. Each round lasts about 1 week (or every 1008 Bitcoin blocks). If the demand for participants is higher than the available blocksigner slots, users with more MLT tokens have a higher probability of becoming a blocksigner. - -Blocksigners collect transaction fees from the blocks they create (mining), while the network users can pay fees in any token transferred on the Mintlayer, including MLT. - -### 6.1.2. Community Engagement - -Mintlayer is an open-source project. To encourage community-driven protocol, MLT token allows its holders to express their opinion regarding the development of the network. Users can help prioritizing roadmap events, suggest features, and more. - -### 6.1.3. Ecosystem Tools - -MLT token can be used pay network fees as well as the token issuance fee that users pay when issuing a token on Mintlayer. - -RBB LAB services can be bought using MLT tokens: - -* Mintlayer smart contracts development -* Security audit of Mintlayer smart-contracts -* Software Engineering of decentralised application on Mintlayer - -### 6.1.4. Farming - -**This approach strengthens the Mintlayer community:** - -* In the first 10 years since the mainnet launch, each Mintlayer - - block will generate a reward for the block creators until the - - total supply reaches the 600,000,000 MLT hard cap -* Newly generated tokens are collected by network participants - - staking a minimum of 40,000 MLT tokens, following the - - Mintlayer conensus rules. -* Long-term believers will benefit from the commitment to the project, because the longer they participate in staking, the more MLT tokens they receive. - -## **6.2. Token distribution** - -| Pool name | Token Amount | Pool Share | Vesting Type | -| ------------------------------ | ------------ | ---------- | ------------ | -| Pre-seed | 2,500,000 | 0.63% | 4 | -| Seed | 54,600,000 | 13.65% | 2 | -| Fair launch | 12,605,042 | 3.15% | 2 | -| Public sale | 22,000,000 | 5.50% | unlocked | -| Marketing and Listing | 48,000,000 | 12.00% | 1 | -| Strategic sale - Long Vesting | 52,000,000 | 13.00% | 5 | -| Strategic sale - Short Vesting | 26,000,000 | 6.50% | 2 | -| Protocol Development | 40,000,000 | 10.00% | 4 | -| Community Incentives | 20,000,000 | 5.00% | 3 | -| Company Reserve | 72,294,958 | 18.07% | 5 | -| Team & Advisors | 50,000,000 | 12.50% | 4 | - -Vesting Types: - -* Type 1 unlocking 12% at TGE + 8% monthly over 11 months -* Type 2 unlocking 10% at TGE + 6% monthly over 15 months -* Type 3 unlocking 10% at TGE + 5% monthly over 18 months -* Type 4 4 months locked after TGE, then unlocking 5% monthly over 20 months -* Type 5 4 months locked after TGE, then unlocking 2% monthly over 10 months, then 4% over 20 months - -The initial unlocked token supply is set to 39,080,504 MLT at the Token Generation Event. - -## 6.3. Roadmap - -| Time | Goal | -| ------- | -------------------------------------------------------------------------------- | -| Q1/2021 | Mintlayer DSA and DEX prototyping | -| Q2/2021 | Implementation of UTXO and BLS on Substrate | -| Q3/2021 | Testnet fullnode with basic PoS consensus | -| Q4/2021 | Launch of “Von Neumann” Testnet | -| Q1/2022 | New node codebase off Substrate started | -| Q2/2022 | Mobile wallet beta version (Bitcoin enabled) | -| Q3/2022 | Mobile wallet support for Bitcoin Lightning Network | -| Q4/2022 | Launch of “Lovelace” testnet Fullnode release candidate for Linux, Windows, Mac | -| | MLS-01 and MLS-03 standards in testnet | -| Q1/2023 | Mainnet launch | -| | DSA Consensus System v.0 | -| Q2/2023 | Mobile wallet integration of MLT and MLS tokens | -| | Free gas market for transactions | -| Q3/2023 | WebAssembly Programmable Pools | -| | Access Control List for MLS-01 | -| Q4/2023 | Basic Atomic Swap system | -| Q1/2024 | Atomic Swap DEX with Distributed Hash Table | -| Q2/2024 | Lightning Network Integration | -| Q3/2024 | MLS-02 Confidential Transactions | diff --git a/docs/whitepaper/7-token-and-public-sale.md b/docs/whitepaper/7-token-and-public-sale.md new file mode 100644 index 0000000..85aad18 --- /dev/null +++ b/docs/whitepaper/7-token-and-public-sale.md @@ -0,0 +1,102 @@ +--- +title: "ML Token" +description: "Mintlayer whitepaper chapter: ML Token." +sidebar_position: 7 +--- + +## 7.1. ML token + +The ML token serves a utility purpose in the ecosystem. 400,000,000 ML tokens are pre-mined and are either distributed in the market or locked, according to the [token distribution table](#73-token-distribution). + +### 7.1.1. Staking + +The primary purposes of the ML token include paying for transaction fees and covering extra costs associated with specific transactions, such as token creation. Additionally, ML tokens enable users to stake and participate in the network as block producers, thereby earning block rewards through the consensus protocol. + +Mintlayer's consensus protocol relies on pools acting as block producers within the network. This approach allows users with any amount of ML to actively participate in the network and earn rewards. A pool must be established with a minimum of 40,000 ML tokens, equivalent to 0.01% of the total initial supply, as a pledge from the pool owner. However, any user can delegate their tokens to a pool to earn rewards later. + +For the first 10 years of the network's operation, each block produced will include a block reward. These rewards are paid in ML, with the specifics outlined in the following table: + +| **Year after launch**| **ML Per Block**| +|----|----| +| 1st | 202 ML | +| 2nd | 151 ML | +| 3rd | 113 ML | +| 4th | 85 ML | +| 5th | 64 ML | +| 6th | 48 ML | +| 7th | 36 ML | +| 8th | 27 ML | +| 9th | 20 ML | +| 10th | 15 ML | +| .. | 0 ML | + +### 7.1.2. Community Engagement + +Mintlayer is an open-source project. To encourage a community-driven protocol, the ML token allows its holders to express their opinion regarding the development of the network. Users can help prioritize roadmap events, suggest features, and more. + +### 7.1.3. Ecosystem Tools + +ML tokens can be used to pay network fees as well as the token issuance fee that users pay when issuing a token on Mintlayer. + +RBB LAB services can be bought using ML tokens: + +* Mintlayer smart contracts development +* Security audit of Mintlayer smart-contracts +* Software Engineering of decentralized application on Mintlayer + +## 7.2. Burn Operations + +Specific operations within the network will trigger the burning of ML tokens, effectively reducing the total supply. + +| Asset | Function | Fee in $ML | +|-------|----------|------------| +| Fungible | Issuance | 100 | +| Non-Fungible | Issuance | 5 | +| Fungible | Supply Change | 50 | +| Fungible | Freeze | 50 | +| Non-Fungible | Freeze | 50 | +| Fungible | Authority Change | 20 | +| Non-Fungible | Authority Change | 20 | +| Fungible | Metadata URI Change | 20 | +| Non-Fungible | Metadata URI Change | 20 | +| - | Data Deposit | 20 | + + +## 7.3. Token distribution + +| Pool name | Token Amount | Pool Share | Vesting Type | +| ------------------------------ | ------------ | ---------- | ------------ | +| Pre-seed | 2,500,000 | 0.62% | 4 | +| Seed | 54,600,000 | 13.65% | 2 | +| Strategic sale - Long Vesting | 52,000,000 | 13.00% | 5 | +| Strategic sale - Short Vesting | 26,000,000 | 6.50% | 2 | +| Marketing and Listing | 48,000,000 | 12.00% | 1 | +| Protocol Development | 40,000,000 | 10.00% | 4 | +| Community Incentives | 20,000,000 | 5.00% | 3 | +| Company Reserve | 106,900,000 | 26.73% | 5 | +| Team & Advisors | 50,000,000 | 12.50% | 4 | + + ( pool share are rounded to 2 decimal places ) + +**Vesting Types:** + + +| Type | Unlock at TGE | Unlock after TGE | +|------|---------------|------------------| +| 1 | 12% | 8% monthly over 11 months | +| 2 | 10% | 6% monthly over 15 months | +| 3 | 10% | 5% monthly over 18 months | +| 4 | 0% | 4 months locked, then unlocking 5% monthly over 20 months | +| 5 | 0% | 4 months locked, then unlocking 2% monthly over 10 months, then 4% over 20 | + + +The initial unlocked token supply is set to **15,820,000 ML** at the Token Generation Event. + +## 7.4. Technical Roadmap + +View the roadmap on the [main site](https://www.mintlayer.org/en/roadmap/) + + +--- + +[Back to home](/) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index b8d90e9..01fedb6 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -1,3 +1,5 @@ +import remarkMath from 'remark-math'; +import rehypeKatex from 'rehype-katex'; import {themes as prismThemes} from 'prism-react-renderer'; import type {Config} from '@docusaurus/types'; import type * as Preset from '@docusaurus/preset-classic'; @@ -37,6 +39,8 @@ const config: Config = { { docs: { sidebarPath: './sidebars.ts', + remarkPlugins: [remarkMath], + rehypePlugins: [rehypeKatex], // Please change this to your repo. // Remove this to remove the "edit this page" links. editUrl: @@ -211,6 +215,13 @@ const config: Config = { ], copyright: `Copyright © ${new Date().getFullYear()} Mintlayer.`, }, + stylesheets: [ + { + href: 'https://cdn.jsdelivr.net/npm/katex@0.16.21/dist/katex.min.css', + type: 'text/css', + crossorigin: 'anonymous', + }, + ], prism: { theme: prismThemes.github, darkTheme: prismThemes.dracula, diff --git a/package-lock.json b/package-lock.json index 4e5bccb..f9241ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,9 +14,12 @@ "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "docusaurus-plugin-llms": "^0.6.0", + "katex": "^0.18.7", "prism-react-renderer": "^2.3.0", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "rehype-katex": "^7.0.1", + "remark-math": "^6.0.0" }, "devDependencies": { "@docusaurus/module-type-aliases": "3.7.0", @@ -5172,6 +5175,12 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "license": "MIT" }, + "node_modules/@types/katex": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.8.tgz", + "integrity": "sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==", + "license": "MIT" + }, "node_modules/@types/mdast": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", @@ -9800,6 +9809,55 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-from-dom": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.1.tgz", + "integrity": "sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==", + "license": "ISC", + "dependencies": { + "@types/hast": "^3.0.0", + "hastscript": "^9.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html-isomorphic": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz", + "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-dom": "^5.0.0", + "hast-util-from-html": "^2.0.0", + "unist-util-remove-position": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-from-parse5": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", @@ -9820,6 +9878,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-parse-selector": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", @@ -9932,6 +10003,22 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-whitespace": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", @@ -10950,28 +11037,28 @@ } }, "node_modules/katex": { - "version": "0.16.47", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz", - "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==", + "version": "0.18.7", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.18.7.tgz", + "integrity": "sha512-h+UCwkZ+4Jz8WQ7MLGfj7UVFrRCizGb912fwF4luGdYsC5paYG1vx+jy+KRcC/XkpjGva/P7nAWuxNnPzRvzHw==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" ], "license": "MIT", "dependencies": { - "commander": "^8.3.0" + "commander": "^15.0.0" }, "bin": { "katex": "cli.js" } }, "node_modules/katex/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz", + "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==", "license": "MIT", "engines": { - "node": ">= 12" + "node": ">=22.12.0" } }, "node_modules/keyv": { @@ -11474,6 +11561,25 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-math": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", + "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "longest-streak": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.1.0", + "unist-util-remove-position": "^5.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", @@ -11705,6 +11811,31 @@ "node": ">=22.12.0" } }, + "node_modules/mermaid/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/mermaid/node_modules/katex": { + "version": "0.16.47", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz", + "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -12307,6 +12438,106 @@ ], "license": "MIT" }, + "node_modules/micromark-extension-math": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", + "license": "MIT", + "dependencies": { + "@types/katex": "^0.16.0", + "devlop": "^1.0.0", + "katex": "^0.16.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-math/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/micromark-extension-math/node_modules/katex": { + "version": "0.16.47", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz", + "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/micromark-extension-math/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "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-math/node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "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-extension-math/node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, "node_modules/micromark-extension-mdx-expression": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", @@ -16655,6 +16886,50 @@ "regjsparser": "bin/parser" } }, + "node_modules/rehype-katex": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz", + "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/katex": "^0.16.0", + "hast-util-from-html-isomorphic": "^2.0.0", + "hast-util-to-text": "^4.0.0", + "katex": "^0.16.0", + "unist-util-visit-parents": "^6.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/rehype-katex/node_modules/katex": { + "version": "0.16.47", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.47.tgz", + "integrity": "sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "license": "MIT", + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, "node_modules/rehype-raw": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", @@ -16760,6 +17035,22 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/remark-math": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", + "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-math": "^3.0.0", + "micromark-extension-math": "^3.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-mdx": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", @@ -18399,6 +18690,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-is": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", @@ -18438,6 +18743,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "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", diff --git a/package.json b/package.json index 5ad67d3..86c9a86 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,12 @@ "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "docusaurus-plugin-llms": "^0.6.0", + "katex": "^0.18.7", "prism-react-renderer": "^2.3.0", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "rehype-katex": "^7.0.1", + "remark-math": "^6.0.0" }, "devDependencies": { "@docusaurus/module-type-aliases": "3.7.0", diff --git a/static/_redirects b/static/_redirects index f3adb59..44996d7 100644 --- a/static/_redirects +++ b/static/_redirects @@ -4,7 +4,7 @@ /whitepaper/3-tokenization-standard /docs/whitepaper/tokenization-standard 301 /whitepaper/4-decentralized-finance-defi /docs/whitepaper/decentralized-finance-defi 301 /whitepaper/5-decentralized-exchange-dex /docs/whitepaper/decentralized-exchange-dex 301 -/whitepaper/6-bitcoin-mintlayer-atomic-swaps /docs/whitepaper/decentralized-exchange-dex 301 +/whitepaper/6-bitcoin-mintlayer-atomic-swaps /docs/whitepaper/bitcoin-mintlayer-atomic-swaps 301 /whitepaper/7-token-and-public-sale /docs/whitepaper/token-and-public-sale 301 /testnet/node-setup-cli /docs/getting-started/install/install-from-binaries 301 /testnet/node-setup-docker /docs/getting-started/install/install-from-docker 301 diff --git a/static/img/whitepaper/node-gui-screenshot.webp b/static/img/whitepaper/node-gui-screenshot.webp new file mode 100644 index 0000000000000000000000000000000000000000..f188c58aa3571f34d3069b8274914325b2b35992 GIT binary patch literal 87584 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

~YEygU8({^P@b!L>zpDj_S6umeADv)97zCu zV#BBb4b``_v{K=g+LKosE!Xp659dKw$Ccx5N_Gx!hb1(udoKD+M!c`0^YsvxIGX6Y zYQY)&umY8NMYrs#4~5QhEvBz1k*h;d`c;}>Gj#ao0~pl z!sX@Y$-_ai5ML;%-Cv?w@4AeV(`;vq$J?UNf|X&&=W@Tz3*?b4!v2m^4MHyFeV zpkl#NY48~N0iaq3oZkcT{id+C*u+Hzsw}ODS&7>YC+aXaD zZbr%`=!xuYMW+xeFPQzXl`Y6Koa&v9a0-~f%QrdOJq@weVaLd6pMP9nTW)%&Z1#*m z?reHe3RLseJOQmibtTk$R(Jlxd=7g%eJCj`CNf(2+@R746y#y`|1MoK3aL~jKyu#o zW{3G$Z^dhA=DjF0d>DSz)=c9LtW|$KDd}UF8(6$T?;)-k8SpUYPA5+psaB9;HO=bv z-2*C*nWQ5S&Y()X=fodv4cAPzF#bSAXH23_?5dX2A;@ukLksLr$C3?W=3Ov zow$UmoYXTA*SYt7_zm=piYVdcK--wpTy3h_S%I z&{IT{kah)UQ{5RuDcP^+tGjI$7f3Xs8JZUy4f7^Y!PT?!DkS`$apZt5clgtblw;LP zCAy-F)!>;V#4^*e4d;Z6wLl&3*K|h_i_n57rE|gxn0i={>Gv`>P0G$|VL0}&5H}uN z>!!s2kW$OmjtFDHQ(c6rxNL$&nb0HR2lbUxD@5_wD+e7s%)sW)CNoYykZ5dXml$(*s}NgEw4BS3c9hOAWEcl(D8H1 zE~N`b0x=0+X?2=JKzBEl9#vYs;mmfNH9w=+F7mh;5oZb%_r5vjZclSSXdgPC;atox zo8(*brS@+%&y)xx_dXZYNhAIIv#a@9#BQ#=!_-R81&)NSy{(smj0JS z@2U=Ex~k4kGb;v<4W7su+W;-$devzWfVoe-`%1q+E2%n|OhC=`Hjjp{8Ii&^pFFb~ zQtS8|kgvIy+1(ka#PsJY`y3)Ybyn>~Wsz?$S{P5stgR<_aEJWCVo944TY^YwSSCK1 z8O?t^6pF|Q+^uVD(YJGiPb^Tsgm!|z!DVP6^2 zB_T~5#v`O!4J_4X%1dSwzkCM<{BF@UzR(4~=Rrb}MTzzQgqSXmV%7oi(K782CsRsqS4xlzDOiizhdTlC+g|03TU>sW}2w>WB*nV!mDD)f2 zN4~l2!W~$q{APmAaV8`BCXMpBA{^jHQqW7h7+8>Upool1ejWRu_O4l|2FN9(8rCOy z+r~y;pStO(THIAo>3iupeW%H*J3cBUml@*s+rR4+MT7fyrTa-Ja2A~nJ5VWf zIfnM!Ecv0;+!@#4wNs&ZK$Y(#Rp~b}*UC?}TFwRGMgIuoO8yGyf`@f)nCY3iEo{Xc zeuT=0rM-XIDFevx69v-{$>=QEriCY$%oY~Kx(YTXp`vqVhXBZ>57kg2@ttgnw#ry2 z2Xt{<(WX+Ppa=_LDc0O4ZwY%3Y*E=$Y96Ev18TbA3xX%c+-FS5=#m{B-aXNqSg%M zICSmbkayA7)D>e z>?A}ivlY_i)jPFgSt?CX?|r4y4Z!DbAq#z~PO75(mZysk67p;Ks!%J7VavPmQ7iv$ zrpHq4={VDm<~_(^;gGbxd-0jS^5D*Y0-anrXY0TLqRVi)aF&I`zn|f>L0-3Bpd(4Z zAh8D&a35iTw_T^y9W(ijvQfk5E97v={?a7pUtY+Pt2+cspj2X-(pj^Rbc~dR#l&~a zw(8K@w)lu+ft&z&v(2)R$kotYN5cN)q-;kYZk~mlgq<;5oDLwSI+qNbvznQjUb(BH z)tg&LDdsN#TQaY}U3^FhOV$jIDuSAV%MrpPenGn3hd2hVMe`{7;gY_Cl~M!hY}%fb zKT=W}jB~?;?XDkCSr4%2JqcaQMbGn*bVuJ7hsl-i6HCtiov#EQ`}3CREQHcM;qeaR z8tug;dI%Fam^s!ej6q-gus;^4&wm0F!4% z2p`k~;S-d;%TIRD{T5TtJ(2aBPAing@8lN=fPhL1o$QQ47%DQ%WcBhln4voqC!z48 z188esKbPfM0@A^Rb~^F4f^6_m^&&u?J<;}N&=Io)Y|5+8+VZP>)+o-$YWI4MS1D@t zxeX8iW*+uUiM6nq%7>1;@KmWMh?E((eA1mNl3vQYVxd3FH!;M|6YptBvF0R^aZkqU zfepeQNy)uAqmQ_KNH^-cI9%03`p^R$v?{2!9e=2qLOX+y5`P4d;S8S zU8)xY#S&Yc<2TqkPYa`*nD~N?5?>6ct;N%f+7Tz$iS%#2MWZ3_j=_=j+3oz_fAb2a zbUZ>NH@y@)yM2_MH-DL#i-^6wD`mV+AVcA{tYYt#3(fvea4 zrUOV0+8zhUi8cbMdav>7Jqv;9L4uk~2U-c$q&4BlSio%^PYb11#scr|(t+{@Lp?Kf z5gcWok*Xf0mXIx|Kegk8Tvb@hcZ2eTKTkgzp=in57-dTbx~2IxvKv8KRXdn`)L9y- z>JShcc&rOMP2ck40Irfy5B)L;=*U}pvlC;%Y24>UgUhlNlM*|bt|Nz&Wt%DS2k^PR z&GAo>GJyQEb8tUrqr|duwArS`+oHvG?tcis6@-k0CbcxJzZAXP1RZun5*9O4lXLE| z4CCZvuT_z8LZlSW;W_Ww(%W7brg2gzC zF0d-378N*#KM*2K(eI>vjaER21-yrm3MQ_<5O+R+c~Vm6{Fz2UeFdaub#ZO>aVO;# z_@^o&?7-zQMfW&526@o3wqVSwFWJpnH@o93oax`Xm;F_>7`>@1R`mS$)Jtpc2^2r)c`qC zu)ZPRZBKImx)7NOHmhoIG^BP1EtyKLbu)%9$4g55DMHBbUV_4U*J#j(R4LG!a^pwN ziaem&RYej{O&EsrieHg0Sv$4*1`;?x*CuyA3Js<3@sazm=gBKE_qg^?%o8zx-yNrf zrK=Z3s6mrXEH%La*EG3Nz8|;RH@ZH*EW3B0f6@iuq$;LYD&Dl@P!=^UphBu)<5jw z1-j%%VCq2iMJ%^?w?#BoT{%Bn1;{4ji{Rb@rbyo$-xp!S@ny|J0qh_HIE6J4vYt8l zNzMdIRnu)TgdhuCCix7Z=|CLyAtX7Rp^WEk&0DE_?!^X6lpK@zZxiCNnjlO@4xWr$ z*kc{?R7e6%QE&D#pg;v+!ZGm~8hzYK=V^t00>yyw<;`)mRiM)$Dv>^*k#7C;`L&Oh ze;~g|7$UQ&!o*6IXW&>=2WyAhJ2&12V5&!KTK-__ZsGTi#*Z=P^U-!;#f@ym*ZO{K zkLD82!W8~ljUoLdvpNwbEn+1rvM0qWAc=2}A*HHoR>xd!Fz1qI_K_pYRWPcgcnMKUZ-^T@ndUw*5g9LG1gx~A6Y&So_$bNLg_vXCSsucS zjsh;!^DAgIpHJ_j>gNOYj&X3HIa@)kX4xfwVs@>Wnh%E#Nk)M|3&{lC2OCZoPZETq zXN6hpiA{HBy;mGwe>StV(s3n=bTnUl4Trlep@cOlRvBG{>JX177BT>1Y&=pUJrjx- z3^*TEZ+#k6unup&xGV5F`181d5f_+^FArJ!D`G%Ue*B(kMLFU&lzG9?@$A~ncm)#}*wox>I= z{Y27jQo3%w^L7MLB=qWZe)@&pu`vMhgDF?}S=I7g$R8WhOsX3?3Ni5nIe2^6g2A<@tpcc-lpujTvqMmj?L$?9?zl@(EY#+qEAQpFjjeieS0PU05HzPkX?6ux%&y z9L_Y?OHs-@;}#!o5v>)z7;0Va%OQ)ZzG$@f45le;%J47$Kk7<^=bPYp9gjhC?IDK= zaB4bPF6hQMjjqq~@=H%Ntg3C_E!Im>SG>+R;w|bmjA&oK=q8WTpQ(~&z0RbC{U8~~ ztmHgSU!&vuEsBVAY_=jrMcy~d9Y&DQhB^n!ERHZ2YWya zHBt2(rYl>#qho&h}H6hsZZi=2bg(2j^@mQ#q+j9p65c5G?0XeqsUBm)&J z7Am$rR%CJ#`ZNvAY=xKcGjaepZA-9 zZ{k^-ne=lzYd`j$bDb^vq`~ITOnV|(@sUO}N+|gwzpVM1$ez}=QCv9%I81Wp08pS{ zzQfzxU*mEHNlCZ~w>G+3acjSs;|3%qYU9V27MPLSQQ9;|xRG;t?j33kKGt?dpgmIi z$pf3SF;Jn!#H{VXdl#pmxEZfL!bE;6gJ9u=$>YC1>@<#zJaR#NQbk zb@{9&*?RD?N=rKf^b#PzM!B#hTVIg^#lUnIdmCF7M-$3{Z|81LBsD%dro=ML9?1kO zU*Qb0uCM`S zG>WW?WMMP$sKz(?B>~uYeZ2&+&U)L0_K?DCUj3^i&{sc*`Rf&ivu{tF<_~a!@&1NL z`UGK(ZLZLg_tfno2V*tl(C##u^1GDWmo+iOZGlkvDHy|Gla%MNG~Psa{Qn+!UmEU= zY-V+gU{N+7^+K)*La}>Lnab*(C02rIXT%Cp5SNw=TvaR-9dnr1(%ep)MBaE@<=@;z zhY`FCU?HO>g(|}LE6#Oi-M|D?*!Ou#EooNd6p}YR zG4myxZ)Qd@cw!sf;?z-=iI5th!WRULA!%0Dw2Kglq=4v;0V&1{$EICCDRSuDIdmh|oz}O)_2CayxE)2=!$r ze~P2IXkk&%6G7tW=E%zXZU+<)l$}ETAl1pC;?CU>?*Ibn%qQ@0fNN4+f0ZLX=x@~_Ty9o6sEj_g ztc42@!VR04nT`y%%ofB*H^(b4;4v8Ph6?LwG6axaIa&yLimiz$HYdK1NxR#g;CAd# zeZ#x=R)WCoJ3hERsdY4}ONUG?)aftIr}s7+3Vl5l-#r@`ZP~|H57W@71(j;Q8TdG@ zw$(J{`Gcjl_n`#`qUou{O%JG;m)H1WXc%v*Dvq(+!F`cmm}SOUT_Wu--PC)?pGszO zjgAg$t#(E>kWupCDd{+61@t8Xk>s+ZTM1gyx6MOU+Gt6F9d-F<>@|VrIncX9D?Y6a zWCEN;I`dcB`OJ&_Y$3hcX|cI_H>frZ@?0s<XZk z^a1Z*MoQ=K=3o!G)E7#ChPtryWGos)+G4!*v^tW8=5lCA)?2RZ`)*?L&JADJXlO zkw;TwL+ac(@7SKW9b~O%8;!M`t&0e8eg7aYzCPQr0kVSK|So@##q-xCNa9K^vXKuupj{> zb@l2~=XRfh-&T-v^*FS|%Qxf*N2U>U*+>F=zYk}A^LcDg4RZrCL4O);KB8ynUkZp! z!Vkj|Pw;cC)e}$7KX%GhFj%C=ID4@{dE5YM>)RzGLogCwTwf1}yG>tpR~EGK!7ZUr z(^24ffD43~2SyfLo)E2i-n6b>`7q3LfO>CsL(0vU?Q5LMC|zzG1j>NW!2e@LX@-RvJ0bfL}8S|NG6~OpVou z9~Kpp>I1lhxWOyC^ZzlkK(0zw9Fq~u<80bc2>gg3H;a}w(a15@2*Vhy=Z-3}%^Qj?}Rm*HE3;D5f_DPBR z@p}>+K1)#2*_XNc$`=+N*F`gg!v+YW7@Gi}Ve6)_#4S)dv_-aC`SwL_xrq};@v87p zGF^eoK@E+VB>}uk1t0-!RH>#RmN~U}%z~^XB&c4A_mYj&lj@>?rSBCYbc?8ZO>nAQ zGWfP6oKib_=BfI!Ri04cd!}hsL2*q`#)%hn#hoK}<6z2AiY(?Y`5PR}zDd^6 zqBqNvHcl7t4)qmou{nihhVTPc+i@-_M;H~ko8f#klI=|U9RMe{gu&{n|9TJQcQK+Ud}VCJ%m3uTSyv>CL$i}GphuT_{02Q`-h zL3L5kq%}fcMT#2nE*ZY|(cgS*!q!-s9AS&vlxTvn1>g7;zXLqU>>DEj@BC?f4j0R7 z#iO#VwIxYZ$wDm}k^=9`y;XdGZ1cUiO-d~#Kc?u9k^n8zv}=6*xy-HKPX&j!Gfi9E zH$TU=S+b;~7x^{AFDq?NzpPC);$>pvPM=#GBCSQkhXGho!?#a*&Qn|ZE)LY z-!W&!4IRt*lc?A`t?>4FoyEF1)BFvr61;nC*zq^zWf_yZ42>UBYF}!)h8rpmE|A>()0dOU>qlY28kk^8PdjOW``@Kyl|%- zhdh4MTp53^iWsF|C)Sznir29do>L>vaY%UdpnGA1wf-?bBXM*)S51~@X^7TkCynqW z_vabjAcc9Zwc~IEMFsywdt;7b_2K_wc7!GzP0t zFyjCeVsz@V?LEAy1KBWGDme_=+3~#D<1`d_A&xFshN4 zR{AAMXNAgZGcYh9O#3ZyZ)V_uU5Yxe!Y^+*#?Zms}2kZn!Q!FMSoNDCoG z483i?d6gO3G^~P*!SNLx$(GK~;`Utjvo%>d>gv!Q2}}Ep9bSE(w5Dh$`bH5W{sl;v zC|smSk?U0)r&4;+P>1QvN!Wh{$YaYBq3ICF%qAXj7MOh5Fv;kH@tM8oy}C6q=6g;& z%HE3RBs@EPvG_`z14QK|I=v{|}js=-&9r4ak5|skz#wqW!mv(XSPUrjX|r4zO(N5-#F4Gr+D+B%tmMj)hN!-^ z5efVzw`v>EI4)HU4ipI&4hTV$YjL~?fmb)qRV~H7XqSqPY%fj9AzT<@cXJ9?mLd|H zKi&FyM6#LVZ*^#TzHYTTyT{8(dN9X=`snS7fSsl-G>qlBsm<&eQ)`{h$zRLMTkrIP ziNn4JpZZmdBC0d++NLjF%s3Y47#NIau@6GD=Zz)u17iZ@CH=n6PnPl4_kK6eUCR}~ zbY_WwCsAN@1}Ys4kZX@RZsFEb4nMe;)iRRBKd4j0@uIoqW}jsIl<$j+2{N#$*|?qQ z8K8}56rP#&x$t}HPBXRG6YN3&2deSu_*O!|B(02QO)`J4RsAZgB=j{Tnl@A%JnIu) z*w{>M8P9~reGQfjXlNPfyK&>Rwey>T-ym`NxZD1J^8Ny2pd7CPjmU90@0?B|hUcj7 zlE^p9&ctpBd>Ujsh4!$|=*ZR%h>?h*DDaR`S&BaEO_v+@a!*RJ#MreLI;HzMdhyh6 zZZ0rv_~fGMvMx{QV!#h8yO;7|)cL)-0-?4VEs^=|AxC{ing-7DQojYEM00^7RaPvL z`tyJBtp6|)6U8q}369xA#H&E5q6n%iiZeIJ8?&`Pp080Nn?&n%mO^DI^dA-ZLX>I* ze=D#FgvRdQ(55DI`SCNc^i(yo&@3y*X_*3t?ziF9Ch$HJy8wNSOj22X>AXfEq~ z9qimO706j`+&Uikp0ls@L03J&Fy-V#GN@SJ6*2xhomQ!-OLtB%Mt7-30w-MkgPB;4 zPp%Gz2qe1yTF7=27mNKDnok1Q=QEjM;$gpzRQb}uxU zfc07TsgnWIW|3hr&?Xe%7XM%B*a)4L3p35Fnq(gZp4LQL{rLPGKo0NwcEDM$==@sY~E8Lndg=$UGF_Pd_j+^o?V5tAb*dz|> z(?xG6)%Hk$wi8r%tQJ9k-O*yEce|*M$!#wedieh@k!Fw&DEPnG)2}kE^wqti#~lv3 z11JU0y@?a3+ko7_)L{l5lL&$bhoMk5Cw=0qzC8{8VDdC0DKte`0Jx?5c-D+6YID$x z%*VvcdGFrp%ij>qyb&{TsrwHN9Oj?8Am zcD#O&cB2G16x)9;rt?r=2RGislmmo@c!y#+iArdzJC!T90#+I+^~RRnkK|sv{agh1 zV=J^3QsUqogf3=!jvn^$EPG>LP4e#*d&XW}1@K{>;wt9nRm8jWm9G|{FhC72nKddg z;SsJw>(f!OBN7V-gffW^u388dTq4iqW5CFS2F2r{FY(AH&H(Z?DnVwV=|Z%+XWWg< zPF!WCXlfJgs0Sq1GO8_8F+68vuj59@SNqa2egef{`2#DlUSt9s>0xQ_$~xtq8h*3u zL9F5mpI_j4h}tC5HiD5|qt%hCci{YR0hv8dT1|fwRG|XZ!FEVv`dLu4bLPY{e9V4( zUZjAOoFx!vI<)+j2@1%t;d{RJtb!xUS<4^U-478d+OzHHYIP_vpeO1XA>&!-PQY&T zrfK#_=1$p``J>=a&t}xi5WBOXmWnM#rv%gf7F0fQ?!}>&)E`z2@%nr>qX0(7-*Gq{ zp+|%Se5e{2J72IavN8!3DIB$EIf2G^NAkJFQqJKpO;!Yte0tA+^;T0bo~LJIp=Tc%TZI!uh<7L}HlyXQHbR z;v?qosiQ*s+jB{>7ZonO+cL{=mWNq0|N7s0mj68iwABQ%fi(k*Tin(3%n-ZB+h{D) z8T#=gE*%I{#(#l!qapHA=a}*JDi#*TP(M3bU3^X_bXm)sZtv~`XNiJAt~%Ytkxkr(-p&ix;^pg~yJ0QalkqRh*uFvQH@gpc(-k!3jl4#*@Z|R%JbR6Ryqwf)uhbI0x0&LbJx23fh zc=qo6=6NS=3Auh}7hKp?fl`dPiO_SoK3@WA=y*5pgKU}c=H2o%`-8)+8dMtU`!Js5 zy3}MM9nKT1hvP-%J19KgXiqY#DD1ilUS9V?&-O7>^7Mbd(pQdfbxAvJMa-^|=vq+X zW5B}Fd;%NvEDkE1_^49+UWrkETskm8XEO-GH1t+;LVER*N2PcrE+1Jakb1ZEo{36`$V!efvkt z1xcNEZZnmA3i;;y+Zo#rQh5O7?vUD7%c8I|*b($X)JK%wNmd-G_VuRNvooXmpjlHQ zZn=MWoda|k`QxbJ&9x~GuHv~Z?DmN?m)CX?SFkSe9JwyD(SSopPJydgTaT{G4<63e z`)n?~zLg?GDjst?Hy52(T+S;VsDiEgS}eYe#$18I-XhA7uh%e-R+ea$1TotnZ%^fz zML?+jIbvd`Bub)CsihUW{wM4$s!C?^L>j18h6P$Sh@os);_mQ8EM&|CRQ1ze(;L|Y zX9x$`y{W~Y+oR774U29RKb#3e)8}kzWrv|ufF7B~IH25Zos}N-jnN;IjkwkLUL{NP z&p&bcmj$Ze4j>S^@_2Q)wy#F<{zTese^g7)!ZFNu4cfaTPE+wT{vG-?Fgga28QT4yhU?>D@KynDKptFZlT%B{6@u4} zTb_0WeqC=N$swDeeawBE3ZBM|sT=9<0BJL^H@ur?s5uAJZ1btw*m;$A{RI^1uKSO~j|<0Mn7QLbjV^cg$fDwlEJ}PtILW1% z|FQaFnlQ0cujc7_?wwOKo13hU??IQ$RQ}fVFmChWeTmzyc;3w=HVE@lX8FV701@p* z6&(x0Z5;jtO8#c1Bj{}aoCp0gkhwzxeKc$UsFUX>I> zvv&g3%d(XAh%7FoCpxMbtPDYhJA~%1n&?CCOsA45 zZfTrX4S2JWLZhXjXsY*rfB|OU_oc^>;AVPKgCWgi+ZCU}B4cNFGteFIL6kgoXnFHc z$w`zk3=NfH_YX>M=`VS#oAcx7U^Ap{YZfc}3T4b5OAW;ebub|kxa_muQoU<#+Xy~A z&s|@3T*PD4+hn50fMowlvaMj} zz;r=iUl-1u396YwsSCyPw1gqKFCa2gYv8Tj?cNOHy81*!2~peZriLMpTCq#8C(65O zZ=9^n`{drHn?l`L9KrG9DO zz@XtR;Q;R7xNQF_^g!{BD>di-47_Mlr*R?=z`B~z251wskjoe=4fQ@RsxLGs7AQ%k zJu9BrBZB_fVfr6TnS5A`CBcx5*81|3?tQkp;&YrafexA$4SL+Qq3j&qX$CM!NJ0P+ z>@p`KUHdg80M8Q*!bLQl)J`^hr*WzbaHRDa(8)5TQ`al*`^`CrZC3Y`ZOCp{n9TZn zS%vX%w%rS;UzUIXyQHYG(Kg2KLr*MOI|4;Fzp5>f}w$(33~f zE7F+cyfYe`oItBnhK_qNAoFs3=y+@!U9V$~+D7RT97*PJY1nUI7!BLieu}M~Y?`H^ z>(;v_BPndtx4w>r0&9wwx<)Y60pFGzJl%%U=xo2JD-I~=TrkdkE-a+ZX9IP}L-MHD5v(38j zqWz}o6I*0e_?POTh@|UMQUDGdXu(7{n1m8S;jrq4-q(x|jNRGm`#q|2Ii{V=YVT z^lvbA;7JK|jI5@JPbt)Q^M;RnD3e7x&26ygq71tKp%h30OVk<6H*Z!<3PwFiRhJ0b zcCP(!rE&kgNdqi%quz;Y=d1OkJpNI`vqiAZZ-PJmkWdekmq`!gl99n=*gsEMn~|GY zM%uYH5WW^rc-+a1lgI+RDc|}i!U9xq__*ysbA>?@y%be z7xrJFXc{yF%ivva5(komn_peWBzw{8Wz|-#xc|nJ{0JudzZ;gFAych{KAWh6&cl24mm4g>1oXY%m74hA4jt@qtOJ|P+txb){P&vRSzpyn z*KE<>agEpVjeEJ64$QOil& z`+}}Ma)R7|afA^-(V4Klq_dZvK5PpfC`O-b2gNUyJ(E2A@*@wpB7qBb8rxtY-D)8R zRWFSccs>S%nGhaTBRiJrAqyy*gX8@2@bjxVId6UQ|8;=kS!Fr|q>nPM6WtjIRtF2& zw>Rw;8IlK>p$kqSA_72~%31-Qi6j(ZjYN99Irx9$dh*9;0AL#>Q|^`_E)2Cl#MgvU z7jG8mn+Z9*~%X^h3{5Mn%PkGyQmT7A?il_@;*9pYH z8nvV6_uUmr8LY{~UPYNL_sa}@Jmwhly9bc8RFParrz8*Epvs$e2Hbcij*Lo(a^Jt` z*5;hsKO_UA$jl@MmJuex0dRWW{WKn5Er0m{zYCm1@TnTPKu9d!p-VY2tWAnjiYq7I zUCCEjOA1DxUL8L#KLq8HqkXFIEgo|BHy@+2k8wYL!WK`&?ka=>((hX!3-IpXZ^*mK zCy;{y67<7Xp|#L%iR7PKI;}RT!czpRB`g2-Y!%X z8yDlK^}t$mvDHH8p%Tu;y{DulOtT*BRVi} z^@)lj3!-n3SFd`Ue(>LIJo`Ba!rL0PY{aE!=yb?oFeLmIOEaoF4sj$FR2iKKbO_Xz ztS?(Ks7OM%;dXtyJdMc@2K`j=Au8Dtp~OupZ7G(bJrKEPD%iu5Mn@eH|8dZ$XO6-1 zok9<;+VEv5*SJ%17Dh7>yv+Yy*8bW0Uu-Oq6il z!uGH>@d{U==yMnMZ3sL+JV?|@{g>!k28{sn_!nEmf#jhk)?ExB0V0HdjVJgVAIo6# z(tLpZ>f&Ytofi|5Oz<%gHq^mT+Kz~xtarIZwUjJciUg}LEj&iGN_6Y?b=oTg6J)=? zSr!-f8>0ntm_B00S6S2lXh?ia8q%0&+98iaPOwU_BDblh-ApdGlxcb;Y;A_hBX2B>i zBNaDkq#G4rwe3Om%+~u+r>Yt{nd?09cZD#AM@Hqpj)7RMy7fE`>HdQF)iUVfu~C`g z$m>qgzt&Q*fOOX!+CLK9kyu(g2SLKG7bte_^@?Hc@EVpHNNN^HQ&)tJ$ZvcnET-1_ zkNpCXHPFdVvi%D{(VzdjIB|Dj!;7K`UhRPmqm6%!zbZrk0H&G#WC8EX^&qE!xpkAK-bYJ&SU5xHs7)}+S8Z$E((onF`o zFu(-7lT<8j@H4(_G~C;^eX5svTrzl~t;R|vwaSne%>hI1Mft%=bDu3YBpkd!^TBr_ z`Vv7O1kL`(!8;L0*hfH>`zgG*&)$mXhWv$^mZ|ANb&bAE(Selbn>!MQlG7h66T_VN zQyNr1fKA@S!;(5#M|s0$PC_>NwMqvpl-%_xwIM%Q1Y9{8gJSWb0CkquJ;)gUq5|gw zXhxBWcV~uES_~K8yd`z*alWIx$F?Q|43oo;-pKVd)d`4qh}VNBl{Z5u>O$85(JKD=>tu3kG#dhm57Q zAmmujt966Rt9C6?>s<qc`P>leiWV@MT8%n>ypY zKFS&EoXJJSa#3g8a|KM)yebmx{fj!+#tYlEWJ!``W{wA(ziYM(UZ>`A* z38w^~zh{kscxAr{rD0dlx+t1g3$oL&6}rSvQ$Xb&nu9Ga5WO#umIBH;a~3g`b^|rA zNZ1=u;on8KjJh`RdF2s(nG-;b^dlhgxHGujNtkvn^ankr$~bTx#XO`E^$6Zd&x z2;6mJpzD`58*W=M{)n*4V3TMhh}tqKQc-c-YxF)MJ+hxa`1nL)kNpv@JwkGyJW?Bm zHZa0vYz>~b+()!kQblk)%WWW8eVuozSXTZSD%i@N2Me7-g{4=IsS~7{7?3{Tq%ZmkS24Ty7WR?GCbgYg`Bv&#$ZAY#Mki8UdDq%v4XBe zQ=;4158fSxg+T@;D4G^l=d-2G+Ug;0jkn{j2lE}{-a=|R$<=C81VMEAcfSp;U7vkv zgmgn#(X8mWc~&-$Jn=r%VJ5gSyd+_(YWD?=0m5x zjmrLe`EUDvc70qPB9LC#W{nQ*1s>U{uK)#h~6(pk>TtTT6R5>`WGvA5ObR$k#%oqtS8N1 z!?Ge9^$z5F=G5o-Z!Rx7w#F@6wZ3PCzqtn=F?D2U9d$X}ZzHfKH+MRFzya)sfEo9LwR4CvY9zK&7SPU6Lai=4FMZPu<5KCq z>ojk^Wx+bn&)p5t6SrU&O>5lTw_A_)1d+Y%jsIiP_S?HXM#gW`*QB-c>MUC(APMq= zy*9PfQ#&I`M75>C<2ir?D5{a4)adWF$vQ)+%GtII4s*KwEUw#8)2^Iur6Bg;8WyHp zt5xd(QRwE!kB-G-=`OFbXPynG$gWO#5QipB_5;&yEf^QOjl*?C*dbIY7#YmrZ6M=> zoZNo4#kb~o)MSn>0mXd|nR77R41Ep1*0S|5hX!cHy=SR>>UZ^yyifqD7mHL_x`_n$ zPGPNrbgcOdeh>wB9C6kn%=URiiG8*3Bp;HA!PK?e+3UJ2gSrXwKHG~hjp@Kaf-S5? z(Hyb^vl>&BbFQ<&5iBN)+BT4ybu3LNLz(s_Hw!#Vo@#*%_Z0hewfK@akWxf4mYm$e zMM`GgR1@xHjOCf^0zZuWb#&y+m7R*^ymb;8ji|))`ARNq0~R2;+YfG9zCB)tZjJ$Cw z7NHH$tHQN_N&DIdj{`aHw%Ow)i!J+;8e`>|qk#MVozMi9+sI`^d7Ro=^jJfVhR#7z zb6w|uCX+S2=im7cHAkQ1tHZsg26b#I&OUGJ)CDeG3SLPu&xxrcI?8sL;uwf>`=?WO zeU*E@{yA9i9Jr|R`(fsJ)?1vxY0P%7%rX0eohTbtp896#`$3H)Ex!z=6^uCH2;m*!S4<1&~bHh z*2x*dIH%feIZhs%J;nA{F!Pvtv$b@x0i(6OFpK*LU}g)LdeYPh>1q4McxfYTw7I<| z{!dK9=4dZmzupZxx;0wMC%NCkxxCS%7PO?#>2G z`)jfAc`Lr?BSJ?=hGGW1CQJZ(2a%=FFaaQpT?>VwIGu^t2T#~9tadgr*<|k!_mA6Ner^1Z}FB;8%+hG&e0oHDm?Gh!1o?9#Il7vHkn$# z6?lVM&;p5l;DU5e*d69gcmSY%w6-*Z%0&8?65g%sPUq+n61BZHQ98D2ar^GTR}KMXOI+`TX;mrrZMfS?QR$%S{$u8h zlcYA236MVNPsox%E|3YbhEVnP6<2GrX653}JEdzv@_$|jsl2h~ZvH>z8`T68f_t~a zZ1VICQt@`H{=R3Rw|hH!4b@?MP`kRlgN{^cDUv-T@b*zZ?ePKuO?L*k;38`UUbeJuMkWNl;$Dw@}oaVnI&+H z;d~Z$`6?40I~H7TyOC{HkG8oOndtT5*p<_izk;vCSS0x3`I8bL&zCI3bv(5L^Z3%450sMXGL7I zFCV~;RO$_&aF?C!TlFd=?M0uH9jlUfzTYIM+VUSPsKz5?pYSa70zKVS5%qIg?8W{N*AcH)uK zjmyGEeiQI18-;e`uRSw;^S++>=dx)L%BV5jFfURD{uEdjr4aew&W zS@YxOpA*@z9g=9w6O-8w@dY#Ev%K&w5RVAOz=5-AxwHH-aifxaU5bur=$;}}b!`j{ zr=&yuzNP)3huqb;%}dR6d)!q5lMP;y*s3nO_e@QLEmJBK-XCdI`}wbwx_2`I)SqWp zuBtjg`EMH##)Y#uMxI$E3tVVhL4ik{z?!QARh#itrPMb8lw+{4%Wp>}^?5|(TCa<4 z27z@?T~Uh-j5jvi$>}>td6X+dTg0aM#=9)D(?SJ<(j-7LV$#an2T}O+qPE9#%QEi8 zUJXEgvSl=Z65m67@Z`OZ>FW<7frS3Te7pEHqJl;xK?D1z!p)ZwsxSlLGV8rSYfPgP zbzr>a5aGiz_b+32HT&qsu;g7@N>OfU$Ex6i5WwXz{B(lWK3*t>uuW=$`TbW_jv@28 z-^>RWiJ}-gIdVNP9@N|NH2ESZT5*cO=zap?94Z0n+8tQ-KQySi0uJNcf>Xx_6J^uI zuE;D)f~(2S|1~zfK(IbgzsqTKrLC>E9*RwGQY=B9jN5~|CiiI$ru>Dhb|WdaK&K>tW#J>(LQXRg@i%hab+zdBty4`{L0^gbt8eczA<`wF*H z5BUQzvW5#PctN$%&B-MGIlP7{H^50Jal8$yt|GLk$!`5NSrn0b2>qa(;fJtg+S)x@@=^&(&NB3ZJg|3EKVOE7k{D7RzP=2yGblXVe?8)oIAx2O=gK|BTS!*A>u**x1h&F`Eah#DDK%P@y@yR zl6{S4DJdms+}vH zm?^xCh@S&cP!I3S;+S%7+`=d4Rt~d+LjK~y&+Jzg9413|YpYIbyp!n+VN8@2bsr-d z`Sd@<%txN{%rU>bL;>frCo^*fI)YiEvc|38x2VnI*7ji`fgB;&7L%aMZ@(Cv-uA7q z@llySj3tLj_EEI?G%)a9KyGe*lkzHdsIVOQdKAtMsH zS7S>h&Q3!mp;S#9yb=22K@RQe1=Q!u)it-H+XX^wfjo;TCsv5iwF;lB=oe*#b(MI^zsPP+03KU=FH4U*D4aU4C5715Pt$Xz zsZ02;Qyc<1y=1BGpvcLHl8!t!)ozd)*?qsR3FZZju(totNK2nyVW-<_>ex7t%rb;2^^3V zsqtG$uB$8qo?Xv*DP?_24NLJENU>Tx)GPH_MsbktZAt&Z3+f1A0uz*!$%9Y zXz(lOo9PR;(d)cH5?sXVBWk+CO;+jT6Ie+wQvU6|byOY8wm!OWhv4o6cZcBa!CitZ z++BhMcbDMq5}e?cpg{rzcL?t8{1(|ed+&4adE>o%$NS@r@lG>}p4~O;oAdjsyVhDY zTH2S}C!~5yG)E%^Gk#twy|OKkV^MLZSV=2Dcez32S6m1s^0H<4aqyD|^^Kz+m2oXp z$ZUb;?#UED7Tb{W2e%o9*H-$XhKQLY`s z;SNbi}d)p%jlcY&k|A{Zn={9C6ejhhb^cMy>QzhOXMH~!<^`1@%XdJ>kDP=CCu{-y> z6?MP6GO0zP_ngq0z@YccPG(K9Iv<({SM>x7y7Vz)3*>L5WW4tVVjFha&=y)E$xznV?niCl_h%FqDh|6GC zM*>gMk+{-lPH(XcmD=T6VXa312$zfbVs4S(iluhHIy2Gm+Zq44x1`0SB}dhb9mMc! z#LqDNNk89=?9FH}FYVw0;S9-wHE^e&!AULdmWTLGPDQ|m-a4`EzB1d4oYWB5DNOZP z@5~1Ug&qbs>aCG`L8_eINyQ(XFYo>1Eb=GKQuO6|tv$^Ls74`GV_u(}g4J{un z9>B{_zu^V$C6V1xgedg7bc_}1_}G)0WrlT4deE08)MSq}V;bNPCm`4JOG2eBMNldd zwl^SS1V7kQ`YHgV{L*8^<(T+X@_DAW(BN5=&=TKYWN5)D;&v@RG!)7q7Ab{&K5@Il zJ7J0Y#?fQPy{S5F7jl(-(!Uw?UF7nO>%|wL0F#h$Fx$pUj0g+n?v90bsmZziN7s*X zwuPqdTX%-egoIc~c-L?t`1EgW2jrBFQ6RJQBH)ALD2-0#0*6{w+}WfDQIoymTfb2+ zM@#OaUFdF<;2<=U>2;c5t<=rOw|X4Zrxab`5>F}J9X;%U`^mfQ*ovm2=pLLiDjX{a zqGIN4dAzyWU(}NbKaRgQ7Vzb(jSy+K(%{ckr9y8N&MD-}^p{%>DpKN7qpl|>-_4(j zrXFp-c3MctTG;e57X{22)Ro2g=N2!rItQeQ8OMxwShi_y(sq-3-zvh&-XBLO42UsQ zdmf;ZGX21u94D~BZwO6g{C$?l2ZnP{r0cZw-Ic#qU&Q zfk|GHmHkddP?UR$Cn?*aI3}4-Z$p4jppuO_%JHyrlSUC$#!tK|gpNwGQZlLWO8{pP zL+4rFJM-u>C%D461mbWB*ftv0jPHT6B4Y@No#T{NfZO;(of{T-H1_bfkrkvNh5&fM zG*vldbkiA=@Z>Cw-n2D|l4qxaDo4XullDbG;b8Z zv{Rf>-%)w!MNd>%h1o!uc%AUvC;L5ROQ-2^W=LORlM4h#bu!q^KWP{X9vE1acgZr?;G<>cjc1=PZ* zoHTO;YlN46*X5fmTq88oy)#o+B`SWHb>YFt}zaKV%_(e22HwR9BgAnd10Xj{Hj8C}Q}kfKE6*+1B&zuE5<|Nq6Sn z9-^K|?}~>cI8NdF)zjIk=lPP@tcZcVox_WPMfZ10Zb}I)0h4Uuau3*V#I>RGX5Oc* zn>-Opqm>q1a<41PA)ejr_4-yt&%BL8;8$E#C8-J+@3*|UUxvyKYKcR^TWF15bP#vX zUnuTD`RL0V;D(}C&>IustV9x6d{Yb2iprFHPwpYR6WFHJ?32GtdwDix{n_`KA!di8 zxY)Fd0JW|n$(?YO*$!=;;roQX2_J`J<2VyDgW&U%`NR+*{wuwB(_vGpN{0`7LyN)o zK1Z^SrL0mdg0fA8(i5dqGyI~wD4%N*3fVo~J%E{WNQe)EaFe)kf{zjkNcFL=TRjYl zjF_EQPrMI#iK>Tf+~alYM1crG=A*=WxmXtg)hZ1kdtB&nd`kFZYLgR%!eEDtx9`mn zi=DLDnV@IVTc19m@gaiAj<^s)WeU7P}Q$dvPS{ajw?6`&A#*JGkZ970L)MDdJ zyYF#7j#ocCRcB_297Rrp=G0)jP0x3UoJitzhi=Q2Cy`VsW3O z;_}#6isbvWMCnM0&rxs6yx>~i&WifaT+i%?AXB=8%0t7s?~yAzsgqWJWK7#6u3L?w zuL$;k8!@p_BIl3R;H$^}#+JFm%zRccfW3ZVJ|F=eIzCO;Bmh{T6s+K$__gDVwJk35`#MutI=CYA0a|z$;Tigh z1}p`80_grd*XjYnQcngfs8Kw_$XkDgNu0|q)Js6XRY~K}N8XQ4NQh!(Q5{4MruZG) zLbA?Wf%)%+Q3qfTv2zXz3FHqo{E2CvM`Aa!M+xuV1)6EB>s%}h7q*HzN!E~#+E>pg zxJ^q=wNV?V`U#}*R|2jRUpMz3cx#X>ig@aw zj_=aLA(RdFH|mzdC!JA$Y!-l;ZH~h(xZ0TFX$~EcjUlda!aVUSzP95K3_qW7i%jiu zyh51t`|6C?A;vRFB)*w_d_)1GVFzW*Am)^yB0(F7!sYOJ+sm#2Mgguj*z49hc)Ow6 zPnSMlKkZ%6@zn$y!QuRDk5)=f%#!m*n82TyA3z ziDk7PVr5FBxtVacgV0<7ky7rs#TKW~%1`f%!=;7; zl>z>k)7WDU$~&}+5G-JGHl0;q*2EVWXn>(U5#_7ek`_fju* zTEVMQ)v}`$RzKVyy1GP_$*7vYu`0ODa-F!m=S$Jn-=JCzc>kU}f#=}LnP2Tw(@jog z#YkISSU8*j*%1f^Ie|R)Q<`BpM=-7Z(6$*YH1qe-fma zFRU|fG|EYf(_WGndN_5P{k-GR@a$c0EShcAJw60Z)h+0AvnsCni8vV5y%SIM;D+d= zqsp7Fb+{(0i=^c1UTrjOoC}x)0j+zm;QIE}ku&ETo+GzIAdyGSXjlj|)&*lT{aJv& zdNbFg4+&CHz&mqMhvGY|IOzx(3u$=M3(T<|xX9xkwKZ}iil}D%DH;1Csj?qciHD|P zo;jaB#feN}zUsX&w}be?5s32@QdTMq)|@VA_0bt3xS&n4GokAzqb6x1 z;>W|HKuw#6xOS_Gw;tL) z79(?#gZ6H>5{Y63kB4;(ZRLLXPV|K1bLKc3%v^eIdURKxdqB!yrVCJ`LXFRifJ61W zN3?I~I!Bd?t$i)ltG@Ng6^%Y){K?J3u6XdlYULzSS>sCzj3kw@_L1lijK+1}FY`0_ zZ+~jdtN?b6rAu8txEWR#R3vm>Ad@}o$H{%0#Jgyz=8F8XS}AmUihUbYK>8HQdlk8V z&R?t_c+mys21X!U`Qz)PvpP-^m8hrjW9l2kqs|~}r$yFXAkTuj2Cj8)*QEsTp=S$B zSv{2^J%*m0bTvY(ve$YUop1NE!T=TP#_NY*sdW3y z+UY7ECj@_)kD$wFlI%4Y+uyer+u+UcM?mh@M($VlpA&{}b(n)Qet@bXpAmVW)Vgf5$VTRe+^4AW+KTx}IUsyholWD5K88Q^|eW zM;Jd=Gf{{TSHavmEe>7SRooi!TJ49btZ8MsQV0y)zYe8G6mfcHMbHxzThD*IVxe=X zG?d6um?F7EK^Ay|rwsD?NWQ4WziK~UcVkJXhs(bhggpbARctajdWO9dq8#L3@Zv?{ z%5{ZK-af21fIxD+ss}r#$780IX2#!$*_yX!#q80mjf1+fy>w9FviW3gmBEW3guT$S z2PLAmk1fgOnIq8n$xCQ5Ws`38c^)j^t_QE;NA?2o0dB6+HqUDLQB1rdWq_YDxtfQo z+u#*-P@F-sYyKmqebHd&;)WWw%lD%e5y$Oa`vf=B5FZpj7f?e(2 zcv0=~iHxj}&>A=DknI!kUg)LIT01VSr&Y&j@iNHdde76#IkPC@>YNqF+WEn~#e&UL zN0`Wrp{R|YzDQIyZ!otwgHqnh+ux+uoSEr!q-yN#GR zHG|-FT#-ocDHV2C##KidRJqm6Juvj`T7X@A5uaq7^wu)mY*SiA@Y9pyIP{jvDpAQO z9HNuaMaUgmZs(;QZ*7~~;_KPwx-Iz&a0MwSB(D;L|37Rk3`ju7|4P_EPxX zhg`RzML?m}%w?XOWzxAKamPCk7Xo+{okwD^k&-?Zqn@iE87Pt%OLX}jXq+Y$Dhv`1 z&pg!JM(iOP5v>lj*WdXtpjtd%Uk19S_t!hKmd7HC5hUSeVsSh_v%EX0C#m{`^H@Pl z_?fWI)%{M!BD%qBKn2e0GyBJdkM63{Vp|RxD6jV4KqZ^((ooXIrF&m)P;J@yxks&+ zADs`Xl;*yX(P2#mOm){hDsWn0B{3rUG){F#+f=EQcfRty)pURnVL`YyOn6M)%_o7v zC8eooth6LEQ@jbopQ~*0#%?>HQ6ty!Ff=^TMKK%U@ z-|ffXKo0t`U92`Z9%Uz}A!*jiS=+TDe2z4O!F(!7f_z|(9Sa$q?_|eH-vcI3yzF-p z;AL7eePt7L3>5s@=e6{owU<#6hVjFao*hDAQLf;$z;cQ~LDvE`s>E6b-dU{T3wi+NS}wQDbBfcN%8^(M9T%J z348-6u%^c4_O4*b^S6~baIUBQae6SIqMD1N1j;SK?xL&DdYG5)xcU#{#_>WTj_IoB z^y+CC5=%)37!yO*Lf4eqeQ-pKhPek+bnJWJN6J37PPYeGNJ-{e4oD-AwDv0owYy=C zdt=v(7>;XU-1h}DJ@U#;m@~1@2YzNJgQdMh+<0t3Fa^ zHIds{_Uk}jf#a?s+H|~|)G{gKK54Ctc&j}_B=p4-b|l7iAAk+JM$0eARz=w$dFn}b|MTsrPnc_du+1b9#uG}l0~KZm3XY{njxT$ zNlY>CGlOv3p!o4uk!L9Co1VquIg2cEsXHicH>qjlZI2+A5JxBU#qTcH(kHmhE+n!y zw&>*5vx3gIz|Z=3y;f*FOXt}bIN=Tin|s>jVxg;@G&wm36B9Pk9*$Pr$WctZ-}*mU zE;F@@!LV9=gF8Y4`w{j?-$vB+UN-*SXUB{XeNHp#QZHc68%p#!edMgmY&5!?%CJt0 ztB&HDK9G2|(lTEdgBW+g4tpQb~O!*Ll zH-+$n5>CqC;BpYMRGe#d97jGd}8I!bo)tgagwlDKXCEv-=UKgSeeSs+Cr0|RW{(9IrE7wobZqKeZ5LVO5 zQKGulsS;8UHgr>T0T(-kv*OLi*as%g3`{aT_%}sA9AzwVSXpx|MTqIP z7Tb{%f+f}qGV9yt4e7qX=7~FAza2uW@3KrND}cSyX1%^uW?*LpKe^F<=Fw-#)P95TmlI+L?0#asgf4RBa_Dc zRxf#|GAq~8s&sRUJrDE`vAv>%--;CHP_Ucw@ z?xM)u?1{|3g+^oRA;o|A!okk9(Z8HS5(Bkbe(TomsYfqVgA}s)T@y=n{p>lbv?uJv18~tIZz-ie89dE_T@EDY2O{mOEVDWAr%RAd~WqzFs|eh zPP)>ghx6o$v?9Y)uWkx;of}?0R}$WVDqtXNwb3zhm!Fu&OW}~At4}x3b}QGpMeECS zgOZ9B$1eCVW)`WMD_f8}`kjMSGtKzk=%Jb>gp3D_(3X}=lrUJAOHi%3pr(4h1!k9W z1)ADZEVrmWtMco2;+&)8;Q$C(3Ot%YX=u6@FV7eoyLo5=rW%#$MfH1J$f77DB53x_ z6N|RWM+r~IdxQ3mVL9YYml&%U0k!7%R?^6PDHGfC6mzf6wkVN(Bp7rJ9h=&DZQ zgMvM%=9w6sA41xxX=jy+C_B!T&S$HV3uT+*S?pPo5fnw6KIYOi9-fp?x_Qph2XPu!L~&$Q(L@?;jYq)T@TkM5%f?LwUm{b zs_HrF7VgReSU%gq?je)Y1<&KVCB$-&Qp8u4S;o zW9$W3`26EG;TNKx@jCBu@??Kvf0klin)Kfv(tfVKiaVcUWKdcN2wz4{2uzBg4mk{` zE=?rQaIcLxjXe?1Q(yY=mS$_l0!7&uVeb;DbbJsyhB|Dof|I_GaZE+nGEv1R5wm`^ z6m3V-SzjDdE^76G@@o|KJd+3*zpUQ4-`S2OxMpps=Nv)=8t1Ula2?WaMW|Tx=Oy5# z%t9-Wb3sd$+J1x195%m2X+X;JD~bW`9`a>ZyxS}A+UWZJiQ?5UV> zX)D6KdH9Jnmq3?;nMf)Gr>EUGt0%37)Wws5>u1N{a7vIBl0P~SQI^$ENDyHuCxjxe z0Z;WO2i@f6$KiN+nUFPiNtod9fE_l9v)A{Cm)(=%;5NqC^4sRzZ3 z5{{;If86*i6f3_g`skI3pbpq3q)U@cnCEywOoSZyO%8jqS-DL)lDh(Dls6yeSBePe z3^r)(MtKZlWcv%x2mbiCnLzHS>CPMOSQozUNPx?P$Eq^nT4f z9e!+W!qCy4c^E;$U%rP3&KnRqv^XPw4Ut8*iC4Tz&!dl_nW!HRU(VlI`gv*9tGG`E z(uzY@xDYXTV8v#HJTkrFEnJy^ml?~Rb^+Dp#UPvuak$xvO>3h9o?@$46J@JU@?N$6 z$;KH+-SqCN#a(pvSf7Q+psyO04u98(ndlXHA5u+dEE0(#{g!2MQ&1NRO_7F6a?`Gt zwU{I6L3O%ANf`#uEeU<4le=T+;iDvGdq5d>?sv2qO}xAQuqbP&yTIleyv0D1FJVF> zb~<-aC~Ul6vFW)Y8~&j0`b;+oPDSEvAhv@|UM7PO530DwUPz(Cd$49NV` zW`_mpn?nr{^AMv2r6ix{V)D61rH4B*SY{?mE?C2>B!KG{`0bfx-UzQ!#b~0&Shl?VJGsYfu)1pxWPSNojdS5>`eQ zW=1w<5Ee5lJ1;XEFAE0=3kNR;CoeNM01^-!4+B60wLt_Sg5~_3DR|D`EFu21Us(Qg z`8zfo;0c8Fo8@nXUUvLes1MZew?eU?{SbdLeu0GkhmH9UCBVS{z)S}Dga2t8y!s=9 zKiEIdKCc2^$w){`fC9Zp4Ep!H01yShLPNtqL&3tpz`()5!XsiJAtE3k;-aCWU=ZRF z6A|JO5RgzXQjw6+lM@h7bJ5Tvaz$ifPlfl!670b;vga6u#ysx zvi^^k=Pm#$ET9hzM3xKyjtT~W3ikX3Kn%(g3hdYNTTC!;2uLVs7+5%X1dv0+s~4pp zz#$=^pdcYZ-rk^k03<3D8Yzn~G`f-@44DH4>xZ~pSaOk?ZcOFxClqW(j{b1)SlBqY zc&{m`sA*`~IXJnvd3Z&|#3dx9q-9i8)zmdKwX}^*fTm{V7M4!VF0O9w9-aY#LBS!R zVd3!!iAl*RA5+uv@(T)!ic3n%YU}D78k;^hxAgRW`P$b%FgP?ZIrU?DW_E6VZGB_& z=hpVl?%wIy`Niec_08?w3$GWRzn4Fl{TE)SAYR~*kPwhCFTB9O-9QBb6%vY+1sY9Q z3C7R?os9JZEQUy2ZcR5FIh*ncrjg@!cq|I`wb!RF)P6Dhe@4vzf5q%CVt@0R2OvU# zfjSQY6(9(>0ya!x9qo3E3ykhSqK0<<$Z#3+B$`oX)2dwzispOFecySR^^w0!8Yr3l zE&9&9+vcmQi7~)9E0gVJstH?3E=SUdf`Z_u3Qxrn1?Z*KS9;RT<$?_L3zMhEQz=%y zE}gWTP1ibSB@DLeggsVGABj?9Ak|_H5qyt{?>B$U>h{>!9X0)wn10&#QSF?^dIl^D zUJvHqi>%!DKi#rx@&wMWEZGf3RX$EXl={{)JOkQ%j}wHaZ2TyiyPg3i-`{Pa{~e|9 zX}sy_^cm10Py8DyulpP2FYsS+WFK?w9ygu=@6!Z-V~GcRlz%}lt6XZ|tO#CS?SWZ_ z=AU~8z&HI{=Mk*5+IaCj&bOz+<6cG?(`l)&>KD+sOZU@sQYzb}e_ zVNqCKeuN0Cf=s$Zc^&h3X8ttZ_;mZi5ewPym$v!81TZ*6uzS(;`(K#!1pijtKQjC80KN}{ zLB5+>u?e^zdC^~@vq_Dj2H;z3UhRZ)p(M^KlGn_NpcP4yDnjVz#=TxZ6<$(nV6#Pi z2BW-W4!*iWU6uu0eUFn*w})bI{z$t7z?k#>!8MVYW|F;^zAJ>17fuZ*YpVHnYKjX> zUUnY*(ELzlA(v%v)Ob8_zeHO*=o^!U(~({R?q$9i{pxjWt1pw?GeA#X^Btyu03GiUwf;eRSfEwC%_26;(;alZBfn+An0syZYh&|!lhttuYczH?*bF|e50Fs( z3Z4MkLyab{__yD$z^N zfK}1+5(BM94TPVa@?Vm=Al!AIOrF#%wMfuF_w8`KFWD}B27u1YVQsGECY3%O;Ypqx z*wH$pSDYK8Lipai&j5pgAG0RX>u4mmZ{;G@Sgr`Fu?EkB|ey{gqt))&+4UF;~vR4xsA-mXxPZ zlTpIh3v*KO<%Bqdd~}2Xn;gb^0`aL~*YFg_Ttz9v_7VM2DR7O8uJ|Uy)4jaUj`Ay> zMIYE3cgQD>PdWQfWZC*n^;7d-x+&N0lWuEaX2NHl0YScN*>{lQ&j4S82g~WqH9~Zm zHl0>NUT!l*AqR2-AJeKTIt1zl94ot@23ypVC0U<9gQ=fmiU8#)PfMna{0DJI40aO& zvza0*s~*q3x)S}x?sA5bIlLAR@~N!0Y?)Rr|29Dfwh_h@bg9icmbhENOx=kG!6Nfd zh2cyvb1)fl<0$qPLKT z-=26a>4}m{8|+tn>-85NBc+)xW{k^1v+CdH_!)Do;(B}&n(yCdkkzosXYTA!#_4zaW6lab=+t% zT=3%`q-bX**5T?)xMx7!MtiESTvcU10|cj^0oNxQ-=5?;&j+6Ypb;~H>EX;5^lA4D zFcf|A@gY8u)|^gCd|NcF+8Qis#Y+&CCr0YW&aQG8W8KMH1xFst=k%~2aifR-4Co=` zb&R$phK$aDKiKqlB%2eMC=cE^#yfGqNTRJR$~+jobKD9~aX6tEn7}nbhP!o`b$SL& zmzML*Eu(&L6&fTfV$rjSq#w$az>iF>kfo1HBIhpik>4vpu+Q`j^HN#$cmMG)_|PM~ z3F_*-lCPBm`vUGyr#TRVQ-a&;g7;flHF~kFKMh(SjA!^J+fpCC+Hs>sd-){(Xv~0U zamv{K)F}h-Zd2)7X-n|jz`f*ngIEe!jhiluu(+nN7zNzt&+ID%6{a zTiwGlf#p5IrFuBmu*^`uw%qU7#DF;p+T&-_pa#$X>TY5x8wjr;lC*m$6Ss7%LNQoR zBoduh6h??UEU@~P=*Me-Qar-?X1{$|!3DYCMCBI>RO+Mv0Ui>2%hrV@tT&9D0W*=4 zK4b3a2yW+ICG23X;o(cKr3RAa596J}ll|bS^Zuo<0mY(C)h5Y-kcR%q-d?UnRg3TE zWdi!eh}YCjri{YZa$OP}H)5M%BCkqwGHuD1Qx`HES>C2zBVZn``U5FtVb{qCSdlI5 zYUZB-WA%d92dWoJ-|mA#1^TU?0RrQoPsJL^*+bv$dE)ykT2JaN@18FLB9QUaQxZ77 zfIj}4qA|$$7Ivq4FX0`wG{&FNI3}zDT@qaHGJMpudC1yLbi9g@(9XNJ8$I$y%0H0Q zH7_N2_GiQ-EbJ?!O;}_wx0v*7z`wb>EE!2Sd|kD8I=H>EvT{*2;$Y`!9LAKv1C*sPo#@i))ZckCRioYJv1ETFbGY5qF2;UMe0KK8{|xAh zMfXl^fOPC8UZgGxF4&+{gjKw35(%aP*rV2n@p| z3>i+hF6A!DvXmYO2w@mlOMY*EPFIdYan)zk(6|qvC}InaCLFkta#lY0-5o$@Tsg84 z=(YsR`rhq!8pcxoXiX&6uLm<)rXh>5j!)I0I3mYn5Vu1Y#np%%a8%e(9tRW0Q2b|s zvS2#Qjhm1bsYT2<-F+gGqsE%cIOx#t^s#^+3UXT93%p+GDq`4FiH zSr7W+fB`B>QM&ZpLHe3o>aIe__xs&F!R+`@D7Z?qe`AR=A8=95hFwtaw z35uY>IiRCmkZuj%qB0RG>xxHm#!$kGrYS(urOpfg5QL#51ob~GumZPt@Y=%HW8?pw z**{tS-`U_O9X|fau`fy21C+!u{?{eoI6J4XfcX6*6vHotUR3(u6q5Vx9U2Rm6+vOy z|FJ0l6!HHH0)Y{rRa~8Z%L$4T1$dq-|3i^qEY1IQ)cUWZ*nitDEZ?Ik*mYVSh}?fQ zsI~`cF8DkL&;(7On1d!`_ypbU4UMgU&Ll=aGYeaOvg6iHG7<|DeliUXd1iTgQJ}en zl&2$5#Zy7m*wf0G$AnB!fP~MT*WJe62Iy=^;%;MY>%{BMPiAOhX9VO0*)O}9$Vh&< zI9u_Py@V3Aa|DvGGqN)>Gl;uexU!OgFdR)xd6mT^{zL$6@spW5JKOUzF}b<9F}kra z+BuprvGDNlfZoK;#LCJ5@?dcCuyr!G&Hhvaporj z#s4EQ8+&>AzkqF>7=NY7Xl!T0w9`-;c zWuTLti=#16+!bi+O#ZvMiSb`;?OhzLe-SV-W&&CRZ9r~LplB?Ag#x-;{7v{@BE8i7 zO6)i6%WT(Qz%SaES=iYB0ta=%Ux3aQrvDd!FE#%H2x|5h-oJ$YEy+t{kZ!zUcE&C* zsY{FTlf4AxHL)|cFyZ}Wvau3QwI1R1;na>N32?&SX#E6~6*p!RGl!b$Xft{0$oq?N$(};nSgV~ssgUf`& zl!c3o#Kf3a!p_mg5Y)RCHil+ECO4pwJsHW1*1U=q?m%lzF$)k=C(vQUPsYm3&iT(e zt$)<9aBy>zk-T&Xudt#t$d{4%&rL;ZLuXS^41O{>3tJcWKliGFU{#zAUleEIVqxZB zVdvmtW9H#x<>dI&LmlY&XV^a`G|5O_I*b>@8Kk`7%YhAQ`b!C3QAePmvz?==ot-s5 z*vE{Uv4L1giG<^W;(iI{ax_Taf%Zw0RAU|G;xHbOoA_{khZF+|bqx2s-6K z$I>5e7XPNd*o;|?d5pMN890qiO&Qot*nps}2I*{S%+6`dWz5M9GzRJXM|&qbQ)f3r zN1(77hyo~6(4q5dx|W3cmozlL{oKrfzvO0RXJBSyVBt{xWB!(fjgFax7j%Cg6DWVC zm$Uj0Dop>C<*)8ja{@Yw+S$Aur+?BFw*GB_h=a~-UTY9R(2>Ugnj|!Iv34dC_&=~e&{xu{Dko;%)j{^Tu;6DodM}hw+@E-;K|EIv; QKdOMXps!VKpr1_t2SR}iCIA2c literal 0 HcmV?d00001 diff --git a/static/img/whitepaper/wallet-cli-screenshot.webp b/static/img/whitepaper/wallet-cli-screenshot.webp new file mode 100644 index 0000000000000000000000000000000000000000..9a0c0be149cd371b4cf6bc6e3ec22a9601844cf4 GIT binary patch literal 236888 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 z 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 =?ZiR&VKum4v{ihg`F8#|B3SJ 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 Date: Wed, 16 Sep 2026 00:35:15 +0400 Subject: [PATCH 4/6] mcp page: document web-gui self-hosted server (12 tools, permission tiers, TOTP gating); fix whitepaper anchors after re-port --- docs/build/mcp.md | 47 ++++++++++++++++-- .../createnewaccount-command-guide.md | 1 + .../newaddress-command-guide.md | 1 + .../newpublickey-command-guide.md | 1 + .../selectaccount-command-guide.md | 1 + .../showreceiveaddresses-command-guide.md | 1 + .../staking/createdelegation-command-guide.md | 1 + .../staking/createstakepool-command-guide.md | 1 + ...dfromdelegationtoaddress-command-manual.md | 1 + .../abandontransaction-command-guide.md | 1 + .../closewallet-command-guide.md | 1 + .../createwallet-command-guide.md | 1 + .../encryptprivatekeys-command-guide.md | 1 + .../lockprivatekeys-command-guide.md | 1 + .../openwallet-command-guide.md | 1 + .../purgeseedphrase-command-guide.md | 1 + ...moveprivatekeysencryption-command-guide.md | 1 + .../showseedphrase-command-guide.md | 1 + .../unlockprivatekeys-command-guide.md | 1 + docs/whitepaper/1-blockchain-architecture.md | 48 +++++++++---------- docs/whitepaper/2-mintlayer-wallet.md | 2 +- docs/whitepaper/3-tokenization-standard.md | 33 ++++++------- .../4-decentralized-finance-defi.md | 39 ++++----------- .../5-decentralized-exchange-dex.md | 10 +--- .../6-bitcoin-mintlayer-atomic-swaps.md | 6 --- docusaurus.config.ts | 34 +++++++++++++ sidebars.ts | 27 ++--------- 27 files changed, 146 insertions(+), 118 deletions(-) diff --git a/docs/build/mcp.md b/docs/build/mcp.md index 5053e02..57d83fc 100644 --- a/docs/build/mcp.md +++ b/docs/build/mcp.md @@ -12,7 +12,7 @@ Mintlayer exposes three Model Context Protocol servers. Point any MCP-compatible | - | ------ | -------- | ---- | ----- | | 1 | [Documentation](#docs-server) | `https://docs.mintlayer.org/mcp` | Mintlayer-hosted | `list_docs`, `search_docs`, `get_doc_page` | | 2 | [Chain data](#chain-data-server) | `https://mojito-api.mintlayer.org/mcp` | Mintlayer-hosted | 6 chain query tools | -| 3 | [Your node](#node-gui) | local to your machine | Self-hosted via node-gui | your node and wallet | +| 3 | [Your wallet](#self-hosted-web-gui) | stdio, from your own machine | Self-hosted via the web-gui | 12 wallet tools | ## 1. Documentation server {#docs-server} @@ -53,11 +53,50 @@ Hosted at `https://mojito-api.mintlayer.org/mcp`. Read-only queries against the All tools accept an optional `network` parameter: `mainnet` (default) or `testnet`. The server uses the Streamable HTTP transport and requires session handling, which MCP clients manage automatically; when testing by hand, pass the `mcp-session-id` header returned by the `initialize` call on subsequent requests. -## 3. Self-hosted (node-gui) {#node-gui} +## 3. Self-hosted wallet server (web-gui) {#self-hosted-web-gui} -If you prefer to keep everything local, node-gui ships its own MCP server that runs on your machine and exposes your node and wallet to your assistant: chain and wallet queries never leave your network, and the agent can only see what your local node sees. +The [Mojito web-gui](https://github.com/mintlayer/web-gui) ships a **stdio** MCP server (`scripts/mcp-server.mjs`) that talks to your own `wallet-rpc-daemon`. Nothing leaves your machine, and the agent only ever sees what your wallet sees. -Enable it in the node-gui settings and point your MCP client at the local endpoint it provides. See the node-gui documentation for the exact endpoint and available tools. +### Enable it + +In the web-gui, open **Management → Settings → MCP Server**: + +1. Toggle **Enabled** (read-only access). +2. Optionally grant **Allow wallet actions** and **Allow fund-moving operations**. Granting either requires 2FA to be configured and a valid authenticator code at save time. +3. Copy the client configuration shown in the panel (below) and add it to your MCP client. + +```json +{ + "mcpServers": { + "mintlayer-wallet": { + "command": "docker", + "args": [ + "compose", "-f", "/path/to/mintlayer-web-gui/docker-compose.yml", + "run", "--rm", "-T", "--no-deps", + "web-gui", "node", "scripts/mcp-server.mjs" + ] + } + } +} +``` + +Permissions are re-read from the settings database on every tool call, so panel changes apply immediately without restarting the client. + +### Tools + +| Tier | Tools | Requires | +| ---- | ----- | -------- | +| read (default) | `get_status`, `get_balance`, `list_addresses`, `list_transactions`, `list_utxos`, `get_staking_overview`, `list_orders` | Enabled | +| actions | `new_address`, `set_staking` | Allow wallet actions | +| spend | `send_coins` | Allow fund-moving operations | +| escape hatch | `wallet_rpc` | per-method tier check | + +- `send_coins` moves real funds and is additionally capped by the optional `mcp.max_send_amount` pref (decimal ML per transaction). +- Methods that expose secrets (`wallet_show_seed_phrase`, `wallet_unlock_private_keys`, wallet open/create) are **never** callable through MCP, regardless of settings. + +### How it works + +The server is a plain Node script inside the web-gui image. It reads permissions from the same SQLite preferences database as the settings panel (fresh read per call), and forwards tool calls to `wallet-rpc-daemon` over JSON-RPC using the standard `WALLET_RPC_URL` / `WALLET_RPC_USERNAME` / `WALLET_RPC_PASSWORD` environment variables. ## Client configuration diff --git a/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md index 01183ba..39c4bf3 100644 --- a/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "createnewaccount" sidebar_position: 22 --- diff --git a/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md index e5a4063..9972758 100644 --- a/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "newaddress" sidebar_position: 37 --- diff --git a/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md index c627734..9fd7f9b 100644 --- a/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "newpublickey" sidebar_position: 38 --- diff --git a/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md index 4dc2733..7ad329c 100644 --- a/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "selectaccount" sidebar_position: 74 --- diff --git a/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md index df3115c..3bac18c 100644 --- a/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "showreceiveaddresses" sidebar_position: 76 --- diff --git a/docs/wallet/cli/commands/staking/createdelegation-command-guide.md b/docs/wallet/cli/commands/staking/createdelegation-command-guide.md index 840a7d0..822ea5a 100644 --- a/docs/wallet/cli/commands/staking/createdelegation-command-guide.md +++ b/docs/wallet/cli/commands/staking/createdelegation-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "createdelegation" sidebar_position: 21 --- diff --git a/docs/wallet/cli/commands/staking/createstakepool-command-guide.md b/docs/wallet/cli/commands/staking/createstakepool-command-guide.md index 75addf3..b4669a1 100644 --- a/docs/wallet/cli/commands/staking/createstakepool-command-guide.md +++ b/docs/wallet/cli/commands/staking/createstakepool-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "createstakepool" sidebar_position: 23 --- diff --git a/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md b/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md index 66af510..55289b0 100644 --- a/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md +++ b/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "`sendfromdelegationtoaddress` Command Manual" sidebar_position: 75 --- diff --git a/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md b/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md index 162e5c9..d951edd 100644 --- a/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md +++ b/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "abandontransaction" sidebar_position: 1 --- diff --git a/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md b/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md index 0f64556..762412b 100644 --- a/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "closewallet" sidebar_position: 19 --- diff --git a/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md b/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md index 9960d61..09105ff 100644 --- a/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "`createwallet` Command Guide" sidebar_position: 24 --- diff --git a/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md b/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md index 9e14fef..13c459c 100644 --- a/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "encryptprivatekeys" sidebar_position: 29 --- diff --git a/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md b/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md index cc215b9..e1acef9 100644 --- a/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "lockprivatekeys" sidebar_position: 36 --- diff --git a/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md b/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md index a846827..22477cf 100644 --- a/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "openwallet" sidebar_position: 63 --- diff --git a/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md b/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md index 763ff4e..d8bd6f8 100644 --- a/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "purgeseedphrase" sidebar_position: 70 --- diff --git a/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md b/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md index 8ff0530..6b9a304 100644 --- a/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "removeprivatekeysencryption" sidebar_position: 71 --- diff --git a/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md b/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md index 889667b..927570f 100644 --- a/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "showseedphrase" sidebar_position: 77 --- diff --git a/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md b/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md index 0c96364..4f5c033 100644 --- a/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md @@ -1,4 +1,5 @@ --- +deprecated: true title: "unlockprivatekeys" sidebar_position: 118 --- diff --git a/docs/whitepaper/1-blockchain-architecture.md b/docs/whitepaper/1-blockchain-architecture.md index 6dd2269..e8ca719 100644 --- a/docs/whitepaper/1-blockchain-architecture.md +++ b/docs/whitepaper/1-blockchain-architecture.md @@ -19,42 +19,36 @@ Mintlayer is a Proof of Stake blockchain, meaning that to participate in the sys A Mintlayer block is produced every 120s on average and is limited to 1MB, although it can be smaller. Each block has a version, the only implemented version at this stage is V1: ```rust - -pub struct BlockV1 \{ +pub struct BlockV1 { pub(super) header: SignedBlockHeader, pub(super) body: BlockBody, -\} +} ``` - where `SignedBlockHeader` looks like : ```rust - -pub struct SignedBlockHeader \{ +pub struct SignedBlockHeader { block_header: BlockHeader, signature_data: BlockHeaderSignature, -\} -pub struct BlockHeader \{ +} +pub struct BlockHeader { pub(super) version: VersionTag<1>, pub(super) prev_block_id: Id, pub(super) tx_merkle_root: H256, pub(super) witness_merkle_root: H256, pub(super) timestamp: BlockTimestamp, pub(super) consensus_data: ConsensusData, -\} +} ``` - And `BlockBody` looks like this: ```rust - -pub struct BlockBody \{ +pub struct BlockBody { pub(super) reward: BlockReward, pub(super) transactions: Vec, -\} +} ``` - `BlockReward` is the reward for the staking pool to participate in the consensus. The rest of the block is filled with transactions. ## 1.4 Transactions @@ -62,25 +56,21 @@ pub struct BlockBody \{ A transaction on Mintlayer is a defined like this: ```rust - -pub struct TransactionV1 \{ +pub struct TransactionV1 { version: VersionTag<1>, flags: u128, inputs: Vec, outputs: Vec, -\} +} ``` - The essence of that are the vectors of `TxInput` and `TxOutput`. An Input is a reference to a previous unspent output (UTXO) or an account: ```rust - -pub enum TxInput \{ +pub enum TxInput { Utxo(UtxoOutPoint), AccountCommand(AccountNonce, AccountCommand), -\} +} ``` - In Mintlayer, accounts are utilized to distribute rewards from staking pools. The rationale behind using accounts in this specific context is to avoid the creation of an excessive number of outputs in the system. Excessive outputs could lead to increased memory usage for the nodes and result in significantly large transactions. This is because the vector of inputs could become very large when spending rewards from the pools. @@ -142,16 +132,22 @@ In the cryptocurrency ecosystem, the blockchains supporting multiple tokens \(su Mintlayer does not force the use of ML for paying transaction fees. Instead, users can pay in ML or any MLS-01 token they choose if the network participants are willing to accept it. Every block proposer can signal the list of tokens accepted in a block - the free market dictates its rules. -> NOTE: This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change -> \{.is-danger\} +:::danger[NOTE] + +This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change + +::: ## 1.9 Bitcoin links The primary link between Mintlayer and Bitcoin is through the atomic swap[^3] system, which allows assets on both chains to be swapped directly without the need for an intermediary of any sort. Mintlayer intends to incorporate Bitcoin into its consensus system in the future, but this is an active area of research right now, so the exact form this will take is to be decided. -> NOTE: This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change -> \{.is-danger\} +:::danger[NOTE] + +This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change + +::: --- diff --git a/docs/whitepaper/2-mintlayer-wallet.md b/docs/whitepaper/2-mintlayer-wallet.md index 60562e1..bd843d8 100644 --- a/docs/whitepaper/2-mintlayer-wallet.md +++ b/docs/whitepaper/2-mintlayer-wallet.md @@ -7,7 +7,7 @@ sidebar_position: 2 Mintlayer comes with several wallets, each implemented for different purposes. ## 2.1 Mojito -[![mojito Wallet](/img/whitepaper/wallets.webp)\{:width="226" style="display: block; margin: 0 auto 40px; "\}](https://www.mintlayer.org/en/mojito-wallet)\{:target="_blank"\} +[![mojito Wallet](/img/whitepaper/wallets.webp)](https://www.mintlayer.org/en/mojito-wallet)\{:target="_blank"\} Mojito is a Bitcoin wallet that also supports the Mintlayer network. It is available for Android, Apple iPhone, as well as a browser extension for Chrome, Firefox, and Edge. diff --git a/docs/whitepaper/3-tokenization-standard.md b/docs/whitepaper/3-tokenization-standard.md index 80d5eb3..6ecada3 100644 --- a/docs/whitepaper/3-tokenization-standard.md +++ b/docs/whitepaper/3-tokenization-standard.md @@ -9,25 +9,21 @@ sidebar_position: 3 In Mintlayer, issuing a token does not require a smart contract; instead, it is a built-in feature of the protocol. A token is represented by a `TokenId` in a `Output`. ```rust - -pub enum OutputValue \{ +pub enum OutputValue { Coin(Amount), // ML Token is build-in TokenV1(TokenId, Amount), // Any other token must specify a TokenId -\} +} ``` - A `TokenId` is defined as: ```rust - -pub enum Token \{\} -pub struct Id \{ +pub enum Token {} +pub struct Id { hash: H256, -\} +} pub type TokenId = Id; ``` - This essentially means that within the system, a token exists as a collection of Outputs, each owned by different parties. ## 3.1 Fungible Tokens (MLS01) @@ -38,25 +34,22 @@ An MLS-01 token has several associated features, including a ticker, an issuance ```rust - -pub struct TokenIssuanceV1 \{ +pub struct TokenIssuanceV1 { pub token_ticker: Vec, pub number_of_decimals: u8, pub metadata_uri: Vec, pub total_supply: TokenTotalSupply, pub authority: Destination, pub is_freezable: IsTokenFreezable, -\} +} ``` - ## 3.2 Non Fungible Tokens NFT (MLS03) Non-fungible tokens, often referred to as NFTs, are implemented through the MLS-03 standard on Mintlayer. Similar to NFTs on other blockchains, they represent unique tokens. They function in a manner akin to MLS-01 tokens, with the key difference being that they do not require handling a supply, as each NFT is one-of-a-kind. However, NFTs do possess additional data attributes: a creator, a name, a description, an icon, a media hash, and a media URI. ```rust - - pub struct Metadata \{ + pub struct Metadata { pub creator: Option, pub name: Vec, pub description: Vec, @@ -65,16 +58,18 @@ Non-fungible tokens, often referred to as NFTs, are implemented through the MLS- pub additional_metadata_uri: DataOrNoVec, pub media_uri: DataOrNoVec, pub media_hash: Vec, - \} + } ``` - ## 3.3 Confidential Token (MLS02) The MLS-02 standard represents a similar token to MLS-01 but with the added benefit and complexity of being a privacy-focused token that allows for zero-knowledge based private transactions. -> NOTE: This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change -> \{.is-danger\} +:::danger[NOTE] + +This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change + +::: --- diff --git a/docs/whitepaper/4-decentralized-finance-defi.md b/docs/whitepaper/4-decentralized-finance-defi.md index 90c3fb3..25f23af 100644 --- a/docs/whitepaper/4-decentralized-finance-defi.md +++ b/docs/whitepaper/4-decentralized-finance-defi.md @@ -32,16 +32,14 @@ The token can also represent an asset in the issuer's custody, such as real esta Mintlayer's architecture offers various tools for developing decentralized finance. Mintlayer's tokenization system is far simpler than the solutions found in other projects. The MLS-01 standard, which exists to fill the same fungible token niche as ERC-20, is far simpler than its predecessor. In order to release a token on Mintlayer, one doesn't need to write a smart contract in a language like Solidity but can create a transaction with a few data fields filled, and once the transaction is sent, the token exists. This works as a token on Mintlayer and is no more than some extra information in the UTXO header. If you have 100 ML, which is the fee to create a token, then you can create a token with essentially no technical know-how. ``` - -pub struct TokenIssuance \{ +pub struct TokenIssuance { pub token_ticker: Vec, pub amount_to_issue: Amount, pub number_of_decimals: u8, pub metadata_uri: Vec, -\} +} ``` - The structure defining a basic MLS-01 token on Mintlayer can be seen above. This represents the minimum set of information required to issue the token. In addition to the simplicity of issuing a token, Mintlayer tokens have a number of features that make them suitable for DeFi contexts. Most notably, MLS-01 tokens support multi-sig and can include a whitelist to ensure only KYC'd addresses can receive the token, which is especially useful for a security token-based context. Mintlayer's smart contract environment allows these tokens to have additional features, such as transaction taxes and dividends, to be implemented. That is to say, all of the key features one may want from a token on Ethereum can be replicated on Mintlayer in order to safely and legally issue a security token. @@ -50,8 +48,11 @@ In addition to MLS-01, Mintlayer has NFT tokens in the form of the MLS-03 standa ## 4.3. ACL rules for securities -> NOTE: This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change -> \{.is-danger\} +:::danger[NOTE] + +This feature is currently under development and will be part of a future upgrade. Please note that technical details are subject to change + +::: Access control lists, often called whitelists, act as a filter to limit a token's transferability. By default, any address can transfer and use the token without any limitations unless the token creator defined some ACL upon its creation or added one at a later date. The token owner is able to update the ACL, at will, in the future to ensure the whitelist is always up-to-date. @@ -66,8 +67,7 @@ It is possible to get similar behavior to an ACL without having to use one forma MLS01, MLS03 and other features like Multisig are smart-contract natively available on Mintlayer. They are controllable as Output types, see the following table: ```rust - -pub enum TxOutput \{ +pub enum TxOutput { Transfer(OutputValue, Destination), LockThenTransfer(OutputValue, Destination, OutputTimeLock), Burn(OutputValue), @@ -78,93 +78,72 @@ pub enum TxOutput \{ IssueFungibleToken(Box), IssueNft(TokenId, Box, Destination), DataDeposit(Vec), -\} +} ``` - In the future, we plan to introduce multiple output types to Mintlayer. For instance, features like Atomic Swaps and HTLC (Hashed Timelock Contracts) will be added as distinct types of Outputs. ### 4.4.1 Transfer ```rust - Transfer(OutputValue, Destination), ``` - The 'Transfer' output is utilized to create a simple payment transaction. ### 4.4.2 LockThenTransfer ```rust - LockThenTransfer(OutputValue, Destination, OutputTimeLock), ``` - This smart contract is designed to send tokens to a specific destination. The recipient at the specified destination cannot spend the output before a certain time, which is defined in `OutputTimeLock`. ### 4.4.3 Burn ```rust - Burn(OutputValue) ``` - This smart contract is used to destroy the output, effectively decreasing the supply of the token. ### 4.4.4 CreateStakePool ```rust - CreateStakePool(PoolId, Box) ``` - `CreateStakePool` generates a staking pool. This function is used by the wallet to inform the network that a pledge is being committed to a staking pool. Once this is done, the software can then start generating blocks. ### 4.4.5 ProduceBlockFromStake ```rust - ProduceBlockFromStake(Destination, PoolId) ``` - This output is utilized specifically for decommissioning a staking pool, enabling the movement of funds out of the pool. ### 4.4.6 CreateDelegationId ```rust - CreateDelegationId(Destination, PoolId) ``` - This output is utilized to generate a delegation. Funds can subsequently be transferred to and from this delegation for participation in a staking pool. ### 4.4.7 DelegateStaking ```rust - DelegateStaking(Amount, DelegationId) ``` - Used to send a certain amount of ML tokens to a delegation. ### 4.4.8 IssueFungibleToken ```rust - IssueFungibleToken(Box) ``` - This output is used to create a new fungible token. For more details, refer to [Chapter 3.1: Fungible Tokens (MLS01)](3-tokenization-standard.md#31-fungible-tokens-mls01). The cost of issuance is specified in the chain configuration constant `FUNGIBLE_TOKEN_MIN_ISSUANCE_FEE`. ### 4.4.9 IssueNft ```rust - IssueNft(TokenId, Box, Destination) ``` - This output is utilized to create a new non-fungible token (NFT). For more details, please see [Chapter 3.1: Non-Fungible Tokens (MLS03)](3-tokenization-standard.md#32-non-fungible-tokens-nft-mls03). The cost of issuance is specified in the chain configuration constant `NFT_MIN_ISSUANCE_FEE`. ### 4.4.10 DataDeposit ```rust - DataDeposit(Vec) ``` - In Mintlayer, the equivalent function to Bitcoin's `OP_RETURN` is used to store arbitrary data. The maximum size for this data is defined by the `DATA_DEPOSIT_MAX_SIZE` chain config constant. Additionally, the cost for data storage is set by the `DATA_DEPOSIT_MIN_FEE`. diff --git a/docs/whitepaper/5-decentralized-exchange-dex.md b/docs/whitepaper/5-decentralized-exchange-dex.md index a82b49f..aaf9370 100644 --- a/docs/whitepaper/5-decentralized-exchange-dex.md +++ b/docs/whitepaper/5-decentralized-exchange-dex.md @@ -14,23 +14,19 @@ This makes the DEX censorship-resistant, transparent and secure, while still sup Orders use the `CreateOrder` output type: ```rust - CreateOrder(OrderData) ``` - With payload: ```rust - -struct OrderData \{ +struct OrderData { conclude_key: Destination, // who can conclude the order ask: OutputValue, // what is requested give: OutputValue, // what is offered -\} +} ``` - At creation: * `give` is an amount of an asset offered by the maker. @@ -120,11 +116,9 @@ specifies the id of the order to freeze and is signed by `conclude_key`. * Settlement is deterministic: the price is fixed by the initial `(ask, give)` ratio, with proportional amounts computed as: ``` - (taker_receives) = (fill_ask) * (give_total) / (ask_total) ``` - ## 5.5. Fully On-Chain Order Book **The order book is the blockchain itself.** diff --git a/docs/whitepaper/6-bitcoin-mintlayer-atomic-swaps.md b/docs/whitepaper/6-bitcoin-mintlayer-atomic-swaps.md index 81ad6ab..5edcc1d 100644 --- a/docs/whitepaper/6-bitcoin-mintlayer-atomic-swaps.md +++ b/docs/whitepaper/6-bitcoin-mintlayer-atomic-swaps.md @@ -60,7 +60,6 @@ This ensures that if the initiator reveals the preimage on Bitcoin, the responde Below is the **actual script** used for Mintlayer ↔ Bitcoin swaps. It employs **OP_HASH160** for the hash path and **OP_CHECKSEQUENCEVERIFY (CSV)** for the refund path. This ensures compatibility with Mintlayer’s `HtlcSecretHash` (RIPEMD160(SHA‑256(secret))). ```text - OP_IF OP_HASH160 @@ -75,7 +74,6 @@ OP_ENDIF OP_CHECKSIG ``` - ### 6.7.1. Semantics * **Hash path (OP_IF):** @@ -92,19 +90,15 @@ OP_CHECKSIG *Hash‑path spend (receiver claims before timelock):* ```text - 1 ``` - *Refund path (sender after timelock):* ```text - 0 ``` - ### 6.7.3. Notes * Refund uses **CSV**: relative timelock from confirmation, not absolute CLTV. diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 01fedb6..75c5e79 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -1,6 +1,39 @@ import remarkMath from 'remark-math'; import rehypeKatex from 'rehype-katex'; +import fs from 'node:fs'; +import path from 'node:path'; import {themes as prismThemes} from 'prism-react-renderer'; + +// Docs flagged `deprecated: true` in frontmatter stay reachable by URL but +// are hidden from the autogenerated sidebar (legacy command names). +const DOC_ROOT = path.join(__dirname, 'docs'); + +function collectDeprecatedIds(dir: string): Set { + const ids = new Set(); + const walk = (d: string) => { + for (const entry of fs.readdirSync(d, {withFileTypes: true})) { + const full = path.join(d, entry.name); + if (entry.isDirectory()) { + walk(full); + } else if (entry.name.endsWith('.md')) { + const m = fs.readFileSync(full, 'utf8').match(/^---\n([\s\S]*?)\n---/); + if (m && /^deprecated:\s*true$/m.test(m[1])) { + const rel = path.relative(DOC_ROOT, full).replace(/\\/g, '/').replace(/\.md$/, ''); + ids.add(rel); + } + } + } + }; + walk(DOC_ROOT); + return ids; +} + +const deprecatedIds = collectDeprecatedIds(DOC_ROOT); + +async function sidebarItemsGenerator({...generatorArgs}) { + const items = await generatorArgs.defaultSidebarItemsGenerator(generatorArgs); + return items.filter((item) => !(item.type === 'doc' && deprecatedIds.has(item.id))); +} import type {Config} from '@docusaurus/types'; import type * as Preset from '@docusaurus/preset-classic'; @@ -39,6 +72,7 @@ const config: Config = { { docs: { sidebarPath: './sidebars.ts', + sidebarItemsGenerator, remarkPlugins: [remarkMath], rehypePlugins: [rehypeKatex], // Please change this to your repo. diff --git a/sidebars.ts b/sidebars.ts index 2897139..37ed001 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -2,32 +2,11 @@ import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; // This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ +// Section order comes from the _category_.json positions. Deprecated pages +// (e.g. legacy wallet-cli command names) are filtered out of the sidebar by +// the sidebarItemsGenerator configured in docusaurus.config.ts. const sidebars: SidebarsConfig = { - // By default, Docusaurus generates a sidebar from the docs folder structure tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], - - // But you can create a sidebar manually - /* - tutorialSidebar: [ - 'intro', - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, - ], - */ }; export default sidebars; From 673448d8738c3d29b355fea14fdbc910cf8e8a36 Mon Sep 17 00:00:00 2001 From: Enrico Rubboli Date: Wed, 16 Sep 2026 00:40:35 +0400 Subject: [PATCH 5/6] whitepaper ch2: strip leftover Kramdown attribute suffixes; mcp page: em-dash cleanup --- docs/build/mcp.md | 2 +- docs/whitepaper/2-mintlayer-wallet.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/build/mcp.md b/docs/build/mcp.md index 57d83fc..ab2d1a9 100644 --- a/docs/build/mcp.md +++ b/docs/build/mcp.md @@ -40,7 +40,7 @@ For clients without remote-MCP support, bridge it locally with `npx -y mcp-remot ## 2. Chain data server (mojito-api) {#chain-data-server} -Hosted at `https://mojito-api.mintlayer.org/mcp`. Read-only queries against the Mintlayer blockchain, backed by the indexer — useful for checking balances, transactions, and blocks without running your own node. Requests are rate limited. +Hosted at `https://mojito-api.mintlayer.org/mcp`. Read-only queries against the Mintlayer blockchain, backed by the indexer: useful for checking balances, transactions, and blocks without running your own node. Requests are rate limited. | Tool | Description | | ---- | ----------- | diff --git a/docs/whitepaper/2-mintlayer-wallet.md b/docs/whitepaper/2-mintlayer-wallet.md index bd843d8..d142063 100644 --- a/docs/whitepaper/2-mintlayer-wallet.md +++ b/docs/whitepaper/2-mintlayer-wallet.md @@ -7,7 +7,7 @@ sidebar_position: 2 Mintlayer comes with several wallets, each implemented for different purposes. ## 2.1 Mojito -[![mojito Wallet](/img/whitepaper/wallets.webp)](https://www.mintlayer.org/en/mojito-wallet)\{:target="_blank"\} +[![mojito Wallet](/img/whitepaper/wallets.webp)](https://www.mintlayer.org/en/mojito-wallet) Mojito is a Bitcoin wallet that also supports the Mintlayer network. It is available for Android, Apple iPhone, as well as a browser extension for Chrome, Firefox, and Edge. @@ -20,14 +20,14 @@ Currently, the platform supports BTC and ML tokens. In the near future, it will Node GUI is a full node GUI that can even be used to run a staking pool from a desktop computer. -[![node-gui-screenshot.png](/img/whitepaper/node-gui-screenshot.webp)](/img/whitepaper/node-gui-screenshot.webp)\{:target="_blank"\} +[![node-gui-screenshot.png](/img/whitepaper/node-gui-screenshot.webp)](/img/whitepaper/node-gui-screenshot.webp) ## 2.3 Command Line Wallet: wallet-cli The Wallet CLI is an interactive, command-line, full-featured wallet for Mintlayer. It is the ideal choice for professional node operators who are proficient in using the command line. -[![wallet-cli-screenshot.png](/img/whitepaper/wallet-cli-screenshot.webp)](/img/whitepaper/wallet-cli-screenshot.webp)\{:target="_blank"\} +[![wallet-cli-screenshot.png](/img/whitepaper/wallet-cli-screenshot.webp)](/img/whitepaper/wallet-cli-screenshot.webp) ## 2.4 Programmable node: wallet-rpc From 4c0d0a981b0f04b4736b1b5680a668d4f6b64f8e Mon Sep 17 00:00:00 2001 From: Enrico Rubboli Date: Wed, 16 Sep 2026 00:53:18 +0400 Subject: [PATCH 6/6] sidebar: hide deprecated command pages (recursive filter); deprecation notices as red danger admonitions --- .../createnewaccount-command-guide.md | 2 +- .../accounts-addresses/newaddress-command-guide.md | 2 +- .../newpublickey-command-guide.md | 2 +- .../selectaccount-command-guide.md | 2 +- .../showreceiveaddresses-command-guide.md | 2 +- .../staking/createdelegation-command-guide.md | 2 +- .../staking/createstakepool-command-guide.md | 2 +- .../sendfromdelegationtoaddress-command-manual.md | 2 +- .../abandontransaction-command-guide.md | 2 +- .../wallet-management/closewallet-command-guide.md | 2 +- .../createwallet-command-guide.md | 2 +- .../encryptprivatekeys-command-guide.md | 2 +- .../lockprivatekeys-command-guide.md | 2 +- .../wallet-management/openwallet-command-guide.md | 2 +- .../purgeseedphrase-command-guide.md | 2 +- .../removeprivatekeysencryption-command-guide.md | 2 +- .../showseedphrase-command-guide.md | 2 +- .../unlockprivatekeys-command-guide.md | 2 +- docusaurus.config.ts | 14 ++++++++++++-- 19 files changed, 30 insertions(+), 20 deletions(-) diff --git a/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md index 39c4bf3..81f75a8 100644 --- a/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/createnewaccount-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "createnewaccount" sidebar_position: 22 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`account-create`](account-create-command-guide.md). diff --git a/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md index 9972758..daad43e 100644 --- a/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/newaddress-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "newaddress" sidebar_position: 37 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`address-new`](address-new-command-guide.md). diff --git a/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md index 9fd7f9b..42c51c9 100644 --- a/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/newpublickey-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "newpublickey" sidebar_position: 38 --- -:::warning[Removed command] +:::danger[Removed command] This command is no longer available in current wallet-cli versions. see the [Accounts & Addresses commands](/docs/wallet/cli/commands) for current key and address commands. diff --git a/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md index 7ad329c..80041d2 100644 --- a/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/selectaccount-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "selectaccount" sidebar_position: 74 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`account-select`](account-select-command-guide.md). diff --git a/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md b/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md index 3bac18c..07e56ca 100644 --- a/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md +++ b/docs/wallet/cli/commands/accounts-addresses/showreceiveaddresses-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "showreceiveaddresses" sidebar_position: 76 --- -:::warning[Removed command] +:::danger[Removed command] This command is no longer available in current wallet-cli versions. use [`address-show`](address-show-command-guide.md) instead. diff --git a/docs/wallet/cli/commands/staking/createdelegation-command-guide.md b/docs/wallet/cli/commands/staking/createdelegation-command-guide.md index 822ea5a..ab87451 100644 --- a/docs/wallet/cli/commands/staking/createdelegation-command-guide.md +++ b/docs/wallet/cli/commands/staking/createdelegation-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "createdelegation" sidebar_position: 21 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`delegation-create`](delegation-create-command-guide.md). diff --git a/docs/wallet/cli/commands/staking/createstakepool-command-guide.md b/docs/wallet/cli/commands/staking/createstakepool-command-guide.md index b4669a1..c598481 100644 --- a/docs/wallet/cli/commands/staking/createstakepool-command-guide.md +++ b/docs/wallet/cli/commands/staking/createstakepool-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "createstakepool" sidebar_position: 23 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`staking-create-pool`](staking-create-pool-command-guide.md). diff --git a/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md b/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md index 55289b0..72d0b30 100644 --- a/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md +++ b/docs/wallet/cli/commands/staking/sendfromdelegationtoaddress-command-manual.md @@ -3,7 +3,7 @@ deprecated: true title: "`sendfromdelegationtoaddress` Command Manual" sidebar_position: 75 --- -:::warning[Removed command] +:::danger[Removed command] This command is no longer available in current wallet-cli versions. use [`delegation-withdraw`](delegation-withdraw-command-guide.md) instead. diff --git a/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md b/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md index d951edd..9793be6 100644 --- a/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md +++ b/docs/wallet/cli/commands/transactions/abandontransaction-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "abandontransaction" sidebar_position: 1 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`transaction-abandon`](transaction-abandon-command-guide.md). diff --git a/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md b/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md index 762412b..97d6cc0 100644 --- a/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/closewallet-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "closewallet" sidebar_position: 19 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`wallet-close`](wallet-close-command-guide.md). diff --git a/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md b/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md index 09105ff..51c6b13 100644 --- a/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/createwallet-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "`createwallet` Command Guide" sidebar_position: 24 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`wallet-create`](wallet-create-command-guide.md). diff --git a/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md b/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md index 13c459c..cd0740f 100644 --- a/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/encryptprivatekeys-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "encryptprivatekeys" sidebar_position: 29 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`wallet-encrypt-private-keys`](wallet-encrypt-private-keys-command-guide.md). diff --git a/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md b/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md index e1acef9..3aab965 100644 --- a/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/lockprivatekeys-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "lockprivatekeys" sidebar_position: 36 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`wallet-lock-private-keys`](wallet-lock-private-keys-command-guide.md). diff --git a/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md b/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md index 22477cf..9675684 100644 --- a/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/openwallet-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "openwallet" sidebar_position: 63 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`wallet-open`](wallet-open-command-guide.md). diff --git a/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md b/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md index d8bd6f8..8e696af 100644 --- a/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/purgeseedphrase-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "purgeseedphrase" sidebar_position: 70 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`wallet-purge-seed-phrase`](wallet-purge-seed-phrase-command-guide.md). diff --git a/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md b/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md index 6b9a304..6b7f338 100644 --- a/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/removeprivatekeysencryption-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "removeprivatekeysencryption" sidebar_position: 71 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`wallet-disable-private-keys-encryption`](wallet-disable-private-keys-encryption-command-guide.md). diff --git a/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md b/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md index 927570f..fdd4c38 100644 --- a/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/showseedphrase-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "showseedphrase" sidebar_position: 77 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`wallet-show-seed-phrase`](wallet-show-seed-phrase-command-guide.md). diff --git a/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md b/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md index 4f5c033..9cddb55 100644 --- a/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md +++ b/docs/wallet/cli/commands/wallet-management/unlockprivatekeys-command-guide.md @@ -3,7 +3,7 @@ deprecated: true title: "unlockprivatekeys" sidebar_position: 118 --- -:::note[Deprecated command name] +:::danger[Deprecated command name] This page documents a legacy command name. In current wallet versions the command is called [`wallet-unlock-private-keys`](wallet-unlock-private-keys-command-guide.md). diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 75c5e79..20f97ce 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -30,9 +30,19 @@ function collectDeprecatedIds(dir: string): Set { const deprecatedIds = collectDeprecatedIds(DOC_ROOT); +function filterDeprecated(items) { + return items + .filter((item) => !(item.type === 'doc' && deprecatedIds.has(item.id))) + .map((item) => + item.type === 'category' && Array.isArray(item.items) + ? {...item, items: filterDeprecated(item.items)} + : item, + ) + .filter((item) => !(item.type === 'category' && item.items && item.items.length === 0)); +} + async function sidebarItemsGenerator({...generatorArgs}) { - const items = await generatorArgs.defaultSidebarItemsGenerator(generatorArgs); - return items.filter((item) => !(item.type === 'doc' && deprecatedIds.has(item.id))); + return filterDeprecated(await generatorArgs.defaultSidebarItemsGenerator(generatorArgs)); } import type {Config} from '@docusaurus/types'; import type * as Preset from '@docusaurus/preset-classic';