diff --git a/.github/workflows/guardian-prover-health-check-ui.yml b/.github/workflows/guardian-prover-health-check-ui.yml index ad0d4aa069c..2312694c0fe 100644 --- a/.github/workflows/guardian-prover-health-check-ui.yml +++ b/.github/workflows/guardian-prover-health-check-ui.yml @@ -28,8 +28,6 @@ jobs: # vercel_org_id: ${{ secrets.VERCEL_ORG_ID }} # vercel_token: ${{ secrets.VERCEL_TOKEN }} - - deploy_guardians-ui_hekla_preview: if: ${{ github.event.pull_request.draft == false && !startsWith(github.head_ref, 'release-please') }} needs: build-and-test diff --git a/.github/workflows/protocol.yml b/.github/workflows/protocol.yml index 174b02a4df0..b5c4e1dee38 100644 --- a/.github/workflows/protocol.yml +++ b/.github/workflows/protocol.yml @@ -10,6 +10,13 @@ on: - "!packages/protocol/docs/**" - "!packages/protocol/simulation/**" - "!packages/protocol/deployments/**" + - "!packages/protocol/script/layer2/hekla/**" + - "!packages/protocol/script/layer2/mainnet/**" + - "!packages/protocol/script/layer1/hekla/**" + - "!packages/protocol/script/layer1/mainnet/**" + - "!packages/protocol/script/layer1/preconf/**" + - "!packages/protocol/script/layer1/provers/**" + - "!packages/protocol/script/layer1/team/**" branches-ignore: - release-please--branches--** diff --git a/packages/protocol/contract_layout_layer1.md b/packages/protocol/contract_layout_layer1.md index 299e675c91e..258225906e2 100644 --- a/packages/protocol/contract_layout_layer1.md +++ b/packages/protocol/contract_layout_layer1.md @@ -1,950 +1,622 @@ -## ERC1155Vault -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------------|------|--------|-------|-----------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | ERC1155Vault | -| _initializing | bool | 0 | 1 | 1 | ERC1155Vault | -| __gap | uint256[50] | 1 | 0 | 1600 | ERC1155Vault | -| _owner | address | 51 | 0 | 20 | ERC1155Vault | -| __gap | uint256[49] | 52 | 0 | 1568 | ERC1155Vault | -| _pendingOwner | address | 101 | 0 | 20 | ERC1155Vault | -| __gap | uint256[49] | 102 | 0 | 1568 | ERC1155Vault | -| addressManager | address | 151 | 0 | 20 | ERC1155Vault | -| __gap | uint256[49] | 152 | 0 | 1568 | ERC1155Vault | -| __reentry | uint8 | 201 | 0 | 1 | ERC1155Vault | -| __paused | uint8 | 201 | 1 | 1 | ERC1155Vault | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC1155Vault | -| __gap | uint256[49] | 202 | 0 | 1568 | ERC1155Vault | -| __gap | uint256[50] | 251 | 0 | 1600 | ERC1155Vault | -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | ERC1155Vault | -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC1155Vault | -| __gap | uint256[48] | 303 | 0 | 1536 | ERC1155Vault | -| __gap | uint256[50] | 351 | 0 | 1600 | ERC1155Vault | -| __gap | uint256[50] | 401 | 0 | 1600 | ERC1155Vault | -| __gap | uint256[50] | 451 | 0 | 1600 | ERC1155Vault | - -## ERC20Vault -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------------|------|--------|-------|-------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | ERC20Vault | -| _initializing | bool | 0 | 1 | 1 | ERC20Vault | -| __gap | uint256[50] | 1 | 0 | 1600 | ERC20Vault | -| _owner | address | 51 | 0 | 20 | ERC20Vault | -| __gap | uint256[49] | 52 | 0 | 1568 | ERC20Vault | -| _pendingOwner | address | 101 | 0 | 20 | ERC20Vault | -| __gap | uint256[49] | 102 | 0 | 1568 | ERC20Vault | -| addressManager | address | 151 | 0 | 20 | ERC20Vault | -| __gap | uint256[49] | 152 | 0 | 1568 | ERC20Vault | -| __reentry | uint8 | 201 | 0 | 1 | ERC20Vault | -| __paused | uint8 | 201 | 1 | 1 | ERC20Vault | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC20Vault | -| __gap | uint256[49] | 202 | 0 | 1568 | ERC20Vault | -| __gap | uint256[50] | 251 | 0 | 1600 | ERC20Vault | -| bridgedToCanonical | mapping(address => struct ERC20Vault.CanonicalERC20) | 301 | 0 | 32 | ERC20Vault | -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC20Vault | -| btokenDenylist | mapping(address => bool) | 303 | 0 | 32 | ERC20Vault | -| lastMigrationStart | mapping(uint256 => mapping(address => uint256)) | 304 | 0 | 32 | ERC20Vault | -| __gap | uint256[46] | 305 | 0 | 1472 | ERC20Vault | - -## ERC721Vault -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------------|------|--------|-------|---------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | ERC721Vault | -| _initializing | bool | 0 | 1 | 1 | ERC721Vault | -| __gap | uint256[50] | 1 | 0 | 1600 | ERC721Vault | -| _owner | address | 51 | 0 | 20 | ERC721Vault | -| __gap | uint256[49] | 52 | 0 | 1568 | ERC721Vault | -| _pendingOwner | address | 101 | 0 | 20 | ERC721Vault | -| __gap | uint256[49] | 102 | 0 | 1568 | ERC721Vault | -| addressManager | address | 151 | 0 | 20 | ERC721Vault | -| __gap | uint256[49] | 152 | 0 | 1568 | ERC721Vault | -| __reentry | uint8 | 201 | 0 | 1 | ERC721Vault | -| __paused | uint8 | 201 | 1 | 1 | ERC721Vault | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC721Vault | -| __gap | uint256[49] | 202 | 0 | 1568 | ERC721Vault | -| __gap | uint256[50] | 251 | 0 | 1600 | ERC721Vault | -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | ERC721Vault | -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC721Vault | -| __gap | uint256[48] | 303 | 0 | 1536 | ERC721Vault | -| __gap | uint256[50] | 351 | 0 | 1600 | ERC721Vault | - -## BridgedERC20 -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------------------------------------------|------|--------|-------|-----------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | BridgedERC20 | -| _initializing | bool | 0 | 1 | 1 | BridgedERC20 | -| __gap | uint256[50] | 1 | 0 | 1600 | BridgedERC20 | -| _owner | address | 51 | 0 | 20 | BridgedERC20 | -| __gap | uint256[49] | 52 | 0 | 1568 | BridgedERC20 | -| _pendingOwner | address | 101 | 0 | 20 | BridgedERC20 | -| __gap | uint256[49] | 102 | 0 | 1568 | BridgedERC20 | -| addressManager | address | 151 | 0 | 20 | BridgedERC20 | -| __gap | uint256[49] | 152 | 0 | 1568 | BridgedERC20 | -| __reentry | uint8 | 201 | 0 | 1 | BridgedERC20 | -| __paused | uint8 | 201 | 1 | 1 | BridgedERC20 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC20 | -| __gap | uint256[49] | 202 | 0 | 1568 | BridgedERC20 | -| _balances | mapping(address => uint256) | 251 | 0 | 32 | BridgedERC20 | -| _allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | BridgedERC20 | -| _totalSupply | uint256 | 253 | 0 | 32 | BridgedERC20 | -| _name | string | 254 | 0 | 32 | BridgedERC20 | -| _symbol | string | 255 | 0 | 32 | BridgedERC20 | -| __gap | uint256[45] | 256 | 0 | 1440 | BridgedERC20 | -| srcToken | address | 301 | 0 | 20 | BridgedERC20 | -| __srcDecimals | uint8 | 301 | 20 | 1 | BridgedERC20 | -| srcChainId | uint256 | 302 | 0 | 32 | BridgedERC20 | -| migratingAddress | address | 303 | 0 | 20 | BridgedERC20 | -| migratingInbound | bool | 303 | 20 | 1 | BridgedERC20 | -| __gap | uint256[47] | 304 | 0 | 1504 | BridgedERC20 | - -## BridgedERC20V2 -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------------------------------------|------|--------|-------|---------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | BridgedERC20V2 | -| _initializing | bool | 0 | 1 | 1 | BridgedERC20V2 | -| __gap | uint256[50] | 1 | 0 | 1600 | BridgedERC20V2 | -| _owner | address | 51 | 0 | 20 | BridgedERC20V2 | -| __gap | uint256[49] | 52 | 0 | 1568 | BridgedERC20V2 | -| _pendingOwner | address | 101 | 0 | 20 | BridgedERC20V2 | -| __gap | uint256[49] | 102 | 0 | 1568 | BridgedERC20V2 | -| addressManager | address | 151 | 0 | 20 | BridgedERC20V2 | -| __gap | uint256[49] | 152 | 0 | 1568 | BridgedERC20V2 | -| __reentry | uint8 | 201 | 0 | 1 | BridgedERC20V2 | -| __paused | uint8 | 201 | 1 | 1 | BridgedERC20V2 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC20V2 | -| __gap | uint256[49] | 202 | 0 | 1568 | BridgedERC20V2 | -| _balances | mapping(address => uint256) | 251 | 0 | 32 | BridgedERC20V2 | -| _allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | BridgedERC20V2 | -| _totalSupply | uint256 | 253 | 0 | 32 | BridgedERC20V2 | -| _name | string | 254 | 0 | 32 | BridgedERC20V2 | -| _symbol | string | 255 | 0 | 32 | BridgedERC20V2 | -| __gap | uint256[45] | 256 | 0 | 1440 | BridgedERC20V2 | -| srcToken | address | 301 | 0 | 20 | BridgedERC20V2 | -| __srcDecimals | uint8 | 301 | 20 | 1 | BridgedERC20V2 | -| srcChainId | uint256 | 302 | 0 | 32 | BridgedERC20V2 | -| migratingAddress | address | 303 | 0 | 20 | BridgedERC20V2 | -| migratingInbound | bool | 303 | 20 | 1 | BridgedERC20V2 | -| __gap | uint256[47] | 304 | 0 | 1504 | BridgedERC20V2 | -| _hashedName | bytes32 | 351 | 0 | 32 | BridgedERC20V2 | -| _hashedVersion | bytes32 | 352 | 0 | 32 | BridgedERC20V2 | -| _name | string | 353 | 0 | 32 | BridgedERC20V2 | -| _version | string | 354 | 0 | 32 | BridgedERC20V2 | -| __gap | uint256[48] | 355 | 0 | 1536 | BridgedERC20V2 | -| _nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | BridgedERC20V2 | -| __gap | uint256[49] | 404 | 0 | 1568 | BridgedERC20V2 | - -## BridgedERC721 -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|----------------------------------------------|------|--------|-------|-------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | BridgedERC721 | -| _initializing | bool | 0 | 1 | 1 | BridgedERC721 | -| __gap | uint256[50] | 1 | 0 | 1600 | BridgedERC721 | -| _owner | address | 51 | 0 | 20 | BridgedERC721 | -| __gap | uint256[49] | 52 | 0 | 1568 | BridgedERC721 | -| _pendingOwner | address | 101 | 0 | 20 | BridgedERC721 | -| __gap | uint256[49] | 102 | 0 | 1568 | BridgedERC721 | -| addressManager | address | 151 | 0 | 20 | BridgedERC721 | -| __gap | uint256[49] | 152 | 0 | 1568 | BridgedERC721 | -| __reentry | uint8 | 201 | 0 | 1 | BridgedERC721 | -| __paused | uint8 | 201 | 1 | 1 | BridgedERC721 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC721 | -| __gap | uint256[49] | 202 | 0 | 1568 | BridgedERC721 | -| __gap | uint256[50] | 251 | 0 | 1600 | BridgedERC721 | -| _name | string | 301 | 0 | 32 | BridgedERC721 | -| _symbol | string | 302 | 0 | 32 | BridgedERC721 | -| _owners | mapping(uint256 => address) | 303 | 0 | 32 | BridgedERC721 | -| _balances | mapping(address => uint256) | 304 | 0 | 32 | BridgedERC721 | -| _tokenApprovals | mapping(uint256 => address) | 305 | 0 | 32 | BridgedERC721 | -| _operatorApprovals | mapping(address => mapping(address => bool)) | 306 | 0 | 32 | BridgedERC721 | -| __gap | uint256[44] | 307 | 0 | 1408 | BridgedERC721 | -| srcToken | address | 351 | 0 | 20 | BridgedERC721 | -| srcChainId | uint256 | 352 | 0 | 32 | BridgedERC721 | -| __gap | uint256[48] | 353 | 0 | 1536 | BridgedERC721 | - -## BridgedERC1155 -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|-------------------------------------------------|------|--------|-------|---------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | BridgedERC1155 | -| _initializing | bool | 0 | 1 | 1 | BridgedERC1155 | -| __gap | uint256[50] | 1 | 0 | 1600 | BridgedERC1155 | -| _owner | address | 51 | 0 | 20 | BridgedERC1155 | -| __gap | uint256[49] | 52 | 0 | 1568 | BridgedERC1155 | -| _pendingOwner | address | 101 | 0 | 20 | BridgedERC1155 | -| __gap | uint256[49] | 102 | 0 | 1568 | BridgedERC1155 | -| addressManager | address | 151 | 0 | 20 | BridgedERC1155 | -| __gap | uint256[49] | 152 | 0 | 1568 | BridgedERC1155 | -| __reentry | uint8 | 201 | 0 | 1 | BridgedERC1155 | -| __paused | uint8 | 201 | 1 | 1 | BridgedERC1155 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC1155 | -| __gap | uint256[49] | 202 | 0 | 1568 | BridgedERC1155 | -| __gap | uint256[50] | 251 | 0 | 1600 | BridgedERC1155 | -| _balances | mapping(uint256 => mapping(address => uint256)) | 301 | 0 | 32 | BridgedERC1155 | -| _operatorApprovals | mapping(address => mapping(address => bool)) | 302 | 0 | 32 | BridgedERC1155 | -| _uri | string | 303 | 0 | 32 | BridgedERC1155 | -| __gap | uint256[47] | 304 | 0 | 1504 | BridgedERC1155 | -| srcToken | address | 351 | 0 | 20 | BridgedERC1155 | -| srcChainId | uint256 | 352 | 0 | 32 | BridgedERC1155 | -| symbol | string | 353 | 0 | 32 | BridgedERC1155 | -| name | string | 354 | 0 | 32 | BridgedERC1155 | -| __gap | uint256[46] | 355 | 0 | 1472 | BridgedERC1155 | - -## Bridge -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------------------|------|--------|-------|-------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | Bridge | -| _initializing | bool | 0 | 1 | 1 | Bridge | -| __gap | uint256[50] | 1 | 0 | 1600 | Bridge | -| _owner | address | 51 | 0 | 20 | Bridge | -| __gap | uint256[49] | 52 | 0 | 1568 | Bridge | -| _pendingOwner | address | 101 | 0 | 20 | Bridge | -| __gap | uint256[49] | 102 | 0 | 1568 | Bridge | -| addressManager | address | 151 | 0 | 20 | Bridge | -| __gap | uint256[49] | 152 | 0 | 1568 | Bridge | -| __reentry | uint8 | 201 | 0 | 1 | Bridge | -| __paused | uint8 | 201 | 1 | 1 | Bridge | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | Bridge | -| __gap | uint256[49] | 202 | 0 | 1568 | Bridge | -| __reserved1 | uint64 | 251 | 0 | 8 | Bridge | -| nextMessageId | uint64 | 251 | 8 | 8 | Bridge | -| messageStatus | mapping(bytes32 => enum IBridge.Status) | 252 | 0 | 32 | Bridge | -| __ctx | struct IBridge.Context | 253 | 0 | 64 | Bridge | -| __reserved2 | uint256 | 255 | 0 | 32 | Bridge | -| __reserved3 | uint256 | 256 | 0 | 32 | Bridge | -| __gap | uint256[44] | 257 | 0 | 1408 | Bridge | - -## QuotaManager -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------------------------|------|--------|-------|-------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | QuotaManager | -| _initializing | bool | 0 | 1 | 1 | QuotaManager | -| __gap | uint256[50] | 1 | 0 | 1600 | QuotaManager | -| _owner | address | 51 | 0 | 20 | QuotaManager | -| __gap | uint256[49] | 52 | 0 | 1568 | QuotaManager | -| _pendingOwner | address | 101 | 0 | 20 | QuotaManager | -| __gap | uint256[49] | 102 | 0 | 1568 | QuotaManager | -| addressManager | address | 151 | 0 | 20 | QuotaManager | -| __gap | uint256[49] | 152 | 0 | 1568 | QuotaManager | -| __reentry | uint8 | 201 | 0 | 1 | QuotaManager | -| __paused | uint8 | 201 | 1 | 1 | QuotaManager | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | QuotaManager | -| __gap | uint256[49] | 202 | 0 | 1568 | QuotaManager | -| tokenQuota | mapping(address => struct QuotaManager.Quota) | 251 | 0 | 32 | QuotaManager | -| quotaPeriod | uint24 | 252 | 0 | 3 | QuotaManager | -| __gap | uint256[48] | 253 | 0 | 1536 | QuotaManager | - -## AddressManager -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------------------------------------------|------|--------|-------|-----------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | AddressManager | -| _initializing | bool | 0 | 1 | 1 | AddressManager | -| __gap | uint256[50] | 1 | 0 | 1600 | AddressManager | -| _owner | address | 51 | 0 | 20 | AddressManager | -| __gap | uint256[49] | 52 | 0 | 1568 | AddressManager | -| _pendingOwner | address | 101 | 0 | 20 | AddressManager | -| __gap | uint256[49] | 102 | 0 | 1568 | AddressManager | -| addressManager | address | 151 | 0 | 20 | AddressManager | -| __gap | uint256[49] | 152 | 0 | 1568 | AddressManager | -| __reentry | uint8 | 201 | 0 | 1 | AddressManager | -| __paused | uint8 | 201 | 1 | 1 | AddressManager | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | AddressManager | -| __gap | uint256[49] | 202 | 0 | 1568 | AddressManager | -| __addresses | mapping(uint256 => mapping(bytes32 => address)) | 251 | 0 | 32 | AddressManager | -| __gap | uint256[49] | 252 | 0 | 1568 | AddressManager | - -## AddressResolver -| Name | Type | Slot | Offset | Bytes | Contract | -|----------------|-------------|------|--------|-------|-------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | AddressResolver | -| _initializing | bool | 0 | 1 | 1 | AddressResolver | -| addressManager | address | 0 | 2 | 20 | AddressResolver | -| __gap | uint256[49] | 1 | 0 | 1568 | AddressResolver | - -## EssentialContract -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------|------|--------|-------|-----------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | EssentialContract | -| _initializing | bool | 0 | 1 | 1 | EssentialContract | -| __gap | uint256[50] | 1 | 0 | 1600 | EssentialContract | -| _owner | address | 51 | 0 | 20 | EssentialContract | -| __gap | uint256[49] | 52 | 0 | 1568 | EssentialContract | -| _pendingOwner | address | 101 | 0 | 20 | EssentialContract | -| __gap | uint256[49] | 102 | 0 | 1568 | EssentialContract | -| addressManager | address | 151 | 0 | 20 | EssentialContract | -| __gap | uint256[49] | 152 | 0 | 1568 | EssentialContract | -| __reentry | uint8 | 201 | 0 | 1 | EssentialContract | -| __paused | uint8 | 201 | 1 | 1 | EssentialContract | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | EssentialContract | -| __gap | uint256[49] | 202 | 0 | 1568 | EssentialContract | - -## SignalService -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------------------------|------|--------|-------|---------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | SignalService | -| _initializing | bool | 0 | 1 | 1 | SignalService | -| __gap | uint256[50] | 1 | 0 | 1600 | SignalService | -| _owner | address | 51 | 0 | 20 | SignalService | -| __gap | uint256[49] | 52 | 0 | 1568 | SignalService | -| _pendingOwner | address | 101 | 0 | 20 | SignalService | -| __gap | uint256[49] | 102 | 0 | 1568 | SignalService | -| addressManager | address | 151 | 0 | 20 | SignalService | -| __gap | uint256[49] | 152 | 0 | 1568 | SignalService | -| __reentry | uint8 | 201 | 0 | 1 | SignalService | -| __paused | uint8 | 201 | 1 | 1 | SignalService | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | SignalService | -| __gap | uint256[49] | 202 | 0 | 1568 | SignalService | -| topBlockId | mapping(uint64 => mapping(bytes32 => uint64)) | 251 | 0 | 32 | SignalService | -| isAuthorized | mapping(address => bool) | 252 | 0 | 32 | SignalService | -| __gap | uint256[48] | 253 | 0 | 1536 | SignalService | - -## TaikoToken -| Name | Type | Slot | Offset | Bytes | Contract | -|-----------------------------------------------------|---------------------------------------------------------------|------|--------|-------|--------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | TaikoToken | -| _initializing | bool | 0 | 1 | 1 | TaikoToken | -| __gap | uint256[50] | 1 | 0 | 1600 | TaikoToken | -| _owner | address | 51 | 0 | 20 | TaikoToken | -| __gap | uint256[49] | 52 | 0 | 1568 | TaikoToken | -| _pendingOwner | address | 101 | 0 | 20 | TaikoToken | -| __gap | uint256[49] | 102 | 0 | 1568 | TaikoToken | -| addressManager | address | 151 | 0 | 20 | TaikoToken | -| __gap | uint256[49] | 152 | 0 | 1568 | TaikoToken | -| __reentry | uint8 | 201 | 0 | 1 | TaikoToken | -| __paused | uint8 | 201 | 1 | 1 | TaikoToken | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | TaikoToken | -| __gap | uint256[49] | 202 | 0 | 1568 | TaikoToken | -| __slots_previously_used_by_ERC20SnapshotUpgradeable | uint256[50] | 251 | 0 | 1600 | TaikoToken | -| _balances | mapping(address => uint256) | 301 | 0 | 32 | TaikoToken | -| _allowances | mapping(address => mapping(address => uint256)) | 302 | 0 | 32 | TaikoToken | -| _totalSupply | uint256 | 303 | 0 | 32 | TaikoToken | -| _name | string | 304 | 0 | 32 | TaikoToken | -| _symbol | string | 305 | 0 | 32 | TaikoToken | -| __gap | uint256[45] | 306 | 0 | 1440 | TaikoToken | -| _hashedName | bytes32 | 351 | 0 | 32 | TaikoToken | -| _hashedVersion | bytes32 | 352 | 0 | 32 | TaikoToken | -| _name | string | 353 | 0 | 32 | TaikoToken | -| _version | string | 354 | 0 | 32 | TaikoToken | -| __gap | uint256[48] | 355 | 0 | 1536 | TaikoToken | -| _nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | TaikoToken | -| _PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 404 | 0 | 32 | TaikoToken | -| __gap | uint256[49] | 405 | 0 | 1568 | TaikoToken | -| _delegates | mapping(address => address) | 454 | 0 | 32 | TaikoToken | -| _checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 455 | 0 | 32 | TaikoToken | -| _totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 456 | 0 | 32 | TaikoToken | -| __gap | uint256[47] | 457 | 0 | 1504 | TaikoToken | -| __gap | uint256[50] | 504 | 0 | 1600 | TaikoToken | - -## ComposeVerifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------|------|--------|-------|------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | ComposeVerifier | -| _initializing | bool | 0 | 1 | 1 | ComposeVerifier | -| __gap | uint256[50] | 1 | 0 | 1600 | ComposeVerifier | -| _owner | address | 51 | 0 | 20 | ComposeVerifier | -| __gap | uint256[49] | 52 | 0 | 1568 | ComposeVerifier | -| _pendingOwner | address | 101 | 0 | 20 | ComposeVerifier | -| __gap | uint256[49] | 102 | 0 | 1568 | ComposeVerifier | -| addressManager | address | 151 | 0 | 20 | ComposeVerifier | -| __gap | uint256[49] | 152 | 0 | 1568 | ComposeVerifier | -| __reentry | uint8 | 201 | 0 | 1 | ComposeVerifier | -| __paused | uint8 | 201 | 1 | 1 | ComposeVerifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | ComposeVerifier | -| __gap | uint256[49] | 202 | 0 | 1568 | ComposeVerifier | -| __gap | uint256[50] | 251 | 0 | 1600 | ComposeVerifier | - -## TeeAnyVerifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------|------|--------|-------|----------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | TeeAnyVerifier | -| _initializing | bool | 0 | 1 | 1 | TeeAnyVerifier | -| __gap | uint256[50] | 1 | 0 | 1600 | TeeAnyVerifier | -| _owner | address | 51 | 0 | 20 | TeeAnyVerifier | -| __gap | uint256[49] | 52 | 0 | 1568 | TeeAnyVerifier | -| _pendingOwner | address | 101 | 0 | 20 | TeeAnyVerifier | -| __gap | uint256[49] | 102 | 0 | 1568 | TeeAnyVerifier | -| addressManager | address | 151 | 0 | 20 | TeeAnyVerifier | -| __gap | uint256[49] | 152 | 0 | 1568 | TeeAnyVerifier | -| __reentry | uint8 | 201 | 0 | 1 | TeeAnyVerifier | -| __paused | uint8 | 201 | 1 | 1 | TeeAnyVerifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | TeeAnyVerifier | -| __gap | uint256[49] | 202 | 0 | 1568 | TeeAnyVerifier | -| __gap | uint256[50] | 251 | 0 | 1600 | TeeAnyVerifier | -| __gap | uint256[50] | 301 | 0 | 1600 | TeeAnyVerifier | - -## ZkAndTeeVerifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------|------|--------|-------|--------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | ZkAndTeeVerifier | -| _initializing | bool | 0 | 1 | 1 | ZkAndTeeVerifier | -| __gap | uint256[50] | 1 | 0 | 1600 | ZkAndTeeVerifier | -| _owner | address | 51 | 0 | 20 | ZkAndTeeVerifier | -| __gap | uint256[49] | 52 | 0 | 1568 | ZkAndTeeVerifier | -| _pendingOwner | address | 101 | 0 | 20 | ZkAndTeeVerifier | -| __gap | uint256[49] | 102 | 0 | 1568 | ZkAndTeeVerifier | -| addressManager | address | 151 | 0 | 20 | ZkAndTeeVerifier | -| __gap | uint256[49] | 152 | 0 | 1568 | ZkAndTeeVerifier | -| __reentry | uint8 | 201 | 0 | 1 | ZkAndTeeVerifier | -| __paused | uint8 | 201 | 1 | 1 | ZkAndTeeVerifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | ZkAndTeeVerifier | -| __gap | uint256[49] | 202 | 0 | 1568 | ZkAndTeeVerifier | -| __gap | uint256[50] | 251 | 0 | 1600 | ZkAndTeeVerifier | -| __gap | uint256[50] | 301 | 0 | 1600 | ZkAndTeeVerifier | - -## ZkAnyVerifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------|------|--------|-------|--------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | ZkAnyVerifier | -| _initializing | bool | 0 | 1 | 1 | ZkAnyVerifier | -| __gap | uint256[50] | 1 | 0 | 1600 | ZkAnyVerifier | -| _owner | address | 51 | 0 | 20 | ZkAnyVerifier | -| __gap | uint256[49] | 52 | 0 | 1568 | ZkAnyVerifier | -| _pendingOwner | address | 101 | 0 | 20 | ZkAnyVerifier | -| __gap | uint256[49] | 102 | 0 | 1568 | ZkAnyVerifier | -| addressManager | address | 151 | 0 | 20 | ZkAnyVerifier | -| __gap | uint256[49] | 152 | 0 | 1568 | ZkAnyVerifier | -| __reentry | uint8 | 201 | 0 | 1 | ZkAnyVerifier | -| __paused | uint8 | 201 | 1 | 1 | ZkAnyVerifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | ZkAnyVerifier | -| __gap | uint256[49] | 202 | 0 | 1568 | ZkAnyVerifier | -| __gap | uint256[50] | 251 | 0 | 1600 | ZkAnyVerifier | -| __gap | uint256[50] | 301 | 0 | 1600 | ZkAnyVerifier | - -## Risc0Verifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------|------|--------|-------|------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | Risc0Verifier | -| _initializing | bool | 0 | 1 | 1 | Risc0Verifier | -| __gap | uint256[50] | 1 | 0 | 1600 | Risc0Verifier | -| _owner | address | 51 | 0 | 20 | Risc0Verifier | -| __gap | uint256[49] | 52 | 0 | 1568 | Risc0Verifier | -| _pendingOwner | address | 101 | 0 | 20 | Risc0Verifier | -| __gap | uint256[49] | 102 | 0 | 1568 | Risc0Verifier | -| addressManager | address | 151 | 0 | 20 | Risc0Verifier | -| __gap | uint256[49] | 152 | 0 | 1568 | Risc0Verifier | -| __reentry | uint8 | 201 | 0 | 1 | Risc0Verifier | -| __paused | uint8 | 201 | 1 | 1 | Risc0Verifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | Risc0Verifier | -| __gap | uint256[49] | 202 | 0 | 1568 | Risc0Verifier | -| isImageTrusted | mapping(bytes32 => bool) | 251 | 0 | 32 | Risc0Verifier | -| __gap | uint256[49] | 252 | 0 | 1568 | Risc0Verifier | - -## SP1Verifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------|------|--------|-------|--------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | SP1Verifier | -| _initializing | bool | 0 | 1 | 1 | SP1Verifier | -| __gap | uint256[50] | 1 | 0 | 1600 | SP1Verifier | -| _owner | address | 51 | 0 | 20 | SP1Verifier | -| __gap | uint256[49] | 52 | 0 | 1568 | SP1Verifier | -| _pendingOwner | address | 101 | 0 | 20 | SP1Verifier | -| __gap | uint256[49] | 102 | 0 | 1568 | SP1Verifier | -| addressManager | address | 151 | 0 | 20 | SP1Verifier | -| __gap | uint256[49] | 152 | 0 | 1568 | SP1Verifier | -| __reentry | uint8 | 201 | 0 | 1 | SP1Verifier | -| __paused | uint8 | 201 | 1 | 1 | SP1Verifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | SP1Verifier | -| __gap | uint256[49] | 202 | 0 | 1568 | SP1Verifier | -| isProgramTrusted | mapping(bytes32 => bool) | 251 | 0 | 32 | SP1Verifier | -| __gap | uint256[49] | 252 | 0 | 1568 | SP1Verifier | - -## SgxVerifier -| Name | Type | Slot | Offset | Bytes | Contract | -|-------------------|-------------------------------------------------|------|--------|-------|--------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | SgxVerifier | -| _initializing | bool | 0 | 1 | 1 | SgxVerifier | -| __gap | uint256[50] | 1 | 0 | 1600 | SgxVerifier | -| _owner | address | 51 | 0 | 20 | SgxVerifier | -| __gap | uint256[49] | 52 | 0 | 1568 | SgxVerifier | -| _pendingOwner | address | 101 | 0 | 20 | SgxVerifier | -| __gap | uint256[49] | 102 | 0 | 1568 | SgxVerifier | -| addressManager | address | 151 | 0 | 20 | SgxVerifier | -| __gap | uint256[49] | 152 | 0 | 1568 | SgxVerifier | -| __reentry | uint8 | 201 | 0 | 1 | SgxVerifier | -| __paused | uint8 | 201 | 1 | 1 | SgxVerifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | SgxVerifier | -| __gap | uint256[49] | 202 | 0 | 1568 | SgxVerifier | -| nextInstanceId | uint256 | 251 | 0 | 32 | SgxVerifier | -| instances | mapping(uint256 => struct SgxVerifier.Instance) | 252 | 0 | 32 | SgxVerifier | -| addressRegistered | mapping(address => bool) | 253 | 0 | 32 | SgxVerifier | -| __gap | uint256[47] | 254 | 0 | 1504 | SgxVerifier | - -## AutomataDcapV3Attestation -| Name | Type | Slot | Offset | Bytes | Contract | -|-------------------------|-------------------------------------------------|------|--------|-------|-----------------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | AutomataDcapV3Attestation | -| _initializing | bool | 0 | 1 | 1 | AutomataDcapV3Attestation | -| __gap | uint256[50] | 1 | 0 | 1600 | AutomataDcapV3Attestation | -| _owner | address | 51 | 0 | 20 | AutomataDcapV3Attestation | -| __gap | uint256[49] | 52 | 0 | 1568 | AutomataDcapV3Attestation | -| _pendingOwner | address | 101 | 0 | 20 | AutomataDcapV3Attestation | -| __gap | uint256[49] | 102 | 0 | 1568 | AutomataDcapV3Attestation | -| addressManager | address | 151 | 0 | 20 | AutomataDcapV3Attestation | -| __gap | uint256[49] | 152 | 0 | 1568 | AutomataDcapV3Attestation | -| __reentry | uint8 | 201 | 0 | 1 | AutomataDcapV3Attestation | -| __paused | uint8 | 201 | 1 | 1 | AutomataDcapV3Attestation | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | AutomataDcapV3Attestation | -| __gap | uint256[49] | 202 | 0 | 1568 | AutomataDcapV3Attestation | -| sigVerifyLib | contract ISigVerifyLib | 251 | 0 | 20 | AutomataDcapV3Attestation | -| pemCertLib | contract IPEMCertChainLib | 252 | 0 | 20 | AutomataDcapV3Attestation | -| checkLocalEnclaveReport | bool | 252 | 20 | 1 | AutomataDcapV3Attestation | -| trustedUserMrEnclave | mapping(bytes32 => bool) | 253 | 0 | 32 | AutomataDcapV3Attestation | -| trustedUserMrSigner | mapping(bytes32 => bool) | 254 | 0 | 32 | AutomataDcapV3Attestation | -| serialNumIsRevoked | mapping(uint256 => mapping(bytes => bool)) | 255 | 0 | 32 | AutomataDcapV3Attestation | -| tcbInfo | mapping(string => struct TCBInfoStruct.TCBInfo) | 256 | 0 | 32 | AutomataDcapV3Attestation | -| qeIdentity | struct EnclaveIdStruct.EnclaveId | 257 | 0 | 128 | AutomataDcapV3Attestation | -| __gap | uint256[39] | 261 | 0 | 1248 | AutomataDcapV3Attestation | - -## TaikoL1 -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|------------------------|------|--------|-------|--------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | TaikoL1 | -| _initializing | bool | 0 | 1 | 1 | TaikoL1 | -| __gap | uint256[50] | 1 | 0 | 1600 | TaikoL1 | -| _owner | address | 51 | 0 | 20 | TaikoL1 | -| __gap | uint256[49] | 52 | 0 | 1568 | TaikoL1 | -| _pendingOwner | address | 101 | 0 | 20 | TaikoL1 | -| __gap | uint256[49] | 102 | 0 | 1568 | TaikoL1 | -| addressManager | address | 151 | 0 | 20 | TaikoL1 | -| __gap | uint256[49] | 152 | 0 | 1568 | TaikoL1 | -| __reentry | uint8 | 201 | 0 | 1 | TaikoL1 | -| __paused | uint8 | 201 | 1 | 1 | TaikoL1 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | TaikoL1 | -| __gap | uint256[49] | 202 | 0 | 1568 | TaikoL1 | -| state | struct TaikoData.State | 251 | 0 | 1600 | TaikoL1 | -| __gap | uint256[50] | 301 | 0 | 1600 | TaikoL1 | - -## HeklaTaikoL1 -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|------------------------|------|--------|-------|------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | HeklaTaikoL1 | -| _initializing | bool | 0 | 1 | 1 | HeklaTaikoL1 | -| __gap | uint256[50] | 1 | 0 | 1600 | HeklaTaikoL1 | -| _owner | address | 51 | 0 | 20 | HeklaTaikoL1 | -| __gap | uint256[49] | 52 | 0 | 1568 | HeklaTaikoL1 | -| _pendingOwner | address | 101 | 0 | 20 | HeklaTaikoL1 | -| __gap | uint256[49] | 102 | 0 | 1568 | HeklaTaikoL1 | -| addressManager | address | 151 | 0 | 20 | HeklaTaikoL1 | -| __gap | uint256[49] | 152 | 0 | 1568 | HeklaTaikoL1 | -| __reentry | uint8 | 201 | 0 | 1 | HeklaTaikoL1 | -| __paused | uint8 | 201 | 1 | 1 | HeklaTaikoL1 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | HeklaTaikoL1 | -| __gap | uint256[49] | 202 | 0 | 1568 | HeklaTaikoL1 | -| state | struct TaikoData.State | 251 | 0 | 1600 | HeklaTaikoL1 | -| __gap | uint256[50] | 301 | 0 | 1600 | HeklaTaikoL1 | - -## HeklaTierRouter -| Name | Type | Slot | Offset | Bytes | Contract | -|------|------|------|--------|-------|----------| - -## MainnetBridge -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------------------|------|--------|-------|----------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetBridge | -| _initializing | bool | 0 | 1 | 1 | MainnetBridge | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetBridge | -| _owner | address | 51 | 0 | 20 | MainnetBridge | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetBridge | -| _pendingOwner | address | 101 | 0 | 20 | MainnetBridge | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetBridge | -| addressManager | address | 151 | 0 | 20 | MainnetBridge | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetBridge | -| __reentry | uint8 | 201 | 0 | 1 | MainnetBridge | -| __paused | uint8 | 201 | 1 | 1 | MainnetBridge | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetBridge | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetBridge | -| __reserved1 | uint64 | 251 | 0 | 8 | MainnetBridge | -| nextMessageId | uint64 | 251 | 8 | 8 | MainnetBridge | -| messageStatus | mapping(bytes32 => enum IBridge.Status) | 252 | 0 | 32 | MainnetBridge | -| __ctx | struct IBridge.Context | 253 | 0 | 64 | MainnetBridge | -| __reserved2 | uint256 | 255 | 0 | 32 | MainnetBridge | -| __reserved3 | uint256 | 256 | 0 | 32 | MainnetBridge | -| __gap | uint256[44] | 257 | 0 | 1408 | MainnetBridge | - -## MainnetSignalService -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------------------------|------|--------|-------|------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetSignalService | -| _initializing | bool | 0 | 1 | 1 | MainnetSignalService | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetSignalService | -| _owner | address | 51 | 0 | 20 | MainnetSignalService | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetSignalService | -| _pendingOwner | address | 101 | 0 | 20 | MainnetSignalService | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetSignalService | -| addressManager | address | 151 | 0 | 20 | MainnetSignalService | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetSignalService | -| __reentry | uint8 | 201 | 0 | 1 | MainnetSignalService | -| __paused | uint8 | 201 | 1 | 1 | MainnetSignalService | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetSignalService | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetSignalService | -| topBlockId | mapping(uint64 => mapping(bytes32 => uint64)) | 251 | 0 | 32 | MainnetSignalService | -| isAuthorized | mapping(address => bool) | 252 | 0 | 32 | MainnetSignalService | -| __gap | uint256[48] | 253 | 0 | 1536 | MainnetSignalService | - -## MainnetERC20Vault -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------------|------|--------|-------|------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetERC20Vault | -| _initializing | bool | 0 | 1 | 1 | MainnetERC20Vault | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetERC20Vault | -| _owner | address | 51 | 0 | 20 | MainnetERC20Vault | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetERC20Vault | -| _pendingOwner | address | 101 | 0 | 20 | MainnetERC20Vault | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetERC20Vault | -| addressManager | address | 151 | 0 | 20 | MainnetERC20Vault | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetERC20Vault | -| __reentry | uint8 | 201 | 0 | 1 | MainnetERC20Vault | -| __paused | uint8 | 201 | 1 | 1 | MainnetERC20Vault | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetERC20Vault | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetERC20Vault | -| __gap | uint256[50] | 251 | 0 | 1600 | MainnetERC20Vault | -| bridgedToCanonical | mapping(address => struct ERC20Vault.CanonicalERC20) | 301 | 0 | 32 | MainnetERC20Vault | -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | MainnetERC20Vault | -| btokenDenylist | mapping(address => bool) | 303 | 0 | 32 | MainnetERC20Vault | -| lastMigrationStart | mapping(uint256 => mapping(address => uint256)) | 304 | 0 | 32 | MainnetERC20Vault | -| __gap | uint256[46] | 305 | 0 | 1472 | MainnetERC20Vault | - -## MainnetERC1155Vault -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------------|------|--------|-------|----------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetERC1155Vault | -| _initializing | bool | 0 | 1 | 1 | MainnetERC1155Vault | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetERC1155Vault | -| _owner | address | 51 | 0 | 20 | MainnetERC1155Vault | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetERC1155Vault | -| _pendingOwner | address | 101 | 0 | 20 | MainnetERC1155Vault | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetERC1155Vault | -| addressManager | address | 151 | 0 | 20 | MainnetERC1155Vault | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetERC1155Vault | -| __reentry | uint8 | 201 | 0 | 1 | MainnetERC1155Vault | -| __paused | uint8 | 201 | 1 | 1 | MainnetERC1155Vault | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetERC1155Vault | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetERC1155Vault | -| __gap | uint256[50] | 251 | 0 | 1600 | MainnetERC1155Vault | -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | MainnetERC1155Vault | -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | MainnetERC1155Vault | -| __gap | uint256[48] | 303 | 0 | 1536 | MainnetERC1155Vault | -| __gap | uint256[50] | 351 | 0 | 1600 | MainnetERC1155Vault | -| __gap | uint256[50] | 401 | 0 | 1600 | MainnetERC1155Vault | -| __gap | uint256[50] | 451 | 0 | 1600 | MainnetERC1155Vault | - -## MainnetERC721Vault -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------------|------|--------|-------|--------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetERC721Vault | -| _initializing | bool | 0 | 1 | 1 | MainnetERC721Vault | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetERC721Vault | -| _owner | address | 51 | 0 | 20 | MainnetERC721Vault | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetERC721Vault | -| _pendingOwner | address | 101 | 0 | 20 | MainnetERC721Vault | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetERC721Vault | -| addressManager | address | 151 | 0 | 20 | MainnetERC721Vault | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetERC721Vault | -| __reentry | uint8 | 201 | 0 | 1 | MainnetERC721Vault | -| __paused | uint8 | 201 | 1 | 1 | MainnetERC721Vault | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetERC721Vault | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetERC721Vault | -| __gap | uint256[50] | 251 | 0 | 1600 | MainnetERC721Vault | -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | MainnetERC721Vault | -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | MainnetERC721Vault | -| __gap | uint256[48] | 303 | 0 | 1536 | MainnetERC721Vault | -| __gap | uint256[50] | 351 | 0 | 1600 | MainnetERC721Vault | - -## MainnetSharedAddressManager -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------------------------------------------|------|--------|-------|--------------------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetSharedAddressManager | -| _initializing | bool | 0 | 1 | 1 | MainnetSharedAddressManager | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetSharedAddressManager | -| _owner | address | 51 | 0 | 20 | MainnetSharedAddressManager | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetSharedAddressManager | -| _pendingOwner | address | 101 | 0 | 20 | MainnetSharedAddressManager | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetSharedAddressManager | -| addressManager | address | 151 | 0 | 20 | MainnetSharedAddressManager | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetSharedAddressManager | -| __reentry | uint8 | 201 | 0 | 1 | MainnetSharedAddressManager | -| __paused | uint8 | 201 | 1 | 1 | MainnetSharedAddressManager | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetSharedAddressManager | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetSharedAddressManager | -| __addresses | mapping(uint256 => mapping(bytes32 => address)) | 251 | 0 | 32 | MainnetSharedAddressManager | -| __gap | uint256[49] | 252 | 0 | 1568 | MainnetSharedAddressManager | - -## RollupAddressCache -| Name | Type | Slot | Offset | Bytes | Contract | -|------|------|------|--------|-------|----------| - -## SharedAddressCache -| Name | Type | Slot | Offset | Bytes | Contract | -|------|------|------|--------|-------|----------| - -## AddressCache -| Name | Type | Slot | Offset | Bytes | Contract | -|------|------|------|--------|-------|----------| - -## MainnetSgxVerifier -| Name | Type | Slot | Offset | Bytes | Contract | -|-------------------|-------------------------------------------------|------|--------|-------|-------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetSgxVerifier | -| _initializing | bool | 0 | 1 | 1 | MainnetSgxVerifier | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetSgxVerifier | -| _owner | address | 51 | 0 | 20 | MainnetSgxVerifier | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetSgxVerifier | -| _pendingOwner | address | 101 | 0 | 20 | MainnetSgxVerifier | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetSgxVerifier | -| addressManager | address | 151 | 0 | 20 | MainnetSgxVerifier | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetSgxVerifier | -| __reentry | uint8 | 201 | 0 | 1 | MainnetSgxVerifier | -| __paused | uint8 | 201 | 1 | 1 | MainnetSgxVerifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetSgxVerifier | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetSgxVerifier | -| nextInstanceId | uint256 | 251 | 0 | 32 | MainnetSgxVerifier | -| instances | mapping(uint256 => struct SgxVerifier.Instance) | 252 | 0 | 32 | MainnetSgxVerifier | -| addressRegistered | mapping(address => bool) | 253 | 0 | 32 | MainnetSgxVerifier | -| __gap | uint256[47] | 254 | 0 | 1504 | MainnetSgxVerifier | - -## MainnetSP1Verifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------|------|--------|-------|-------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetSP1Verifier | -| _initializing | bool | 0 | 1 | 1 | MainnetSP1Verifier | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetSP1Verifier | -| _owner | address | 51 | 0 | 20 | MainnetSP1Verifier | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetSP1Verifier | -| _pendingOwner | address | 101 | 0 | 20 | MainnetSP1Verifier | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetSP1Verifier | -| addressManager | address | 151 | 0 | 20 | MainnetSP1Verifier | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetSP1Verifier | -| __reentry | uint8 | 201 | 0 | 1 | MainnetSP1Verifier | -| __paused | uint8 | 201 | 1 | 1 | MainnetSP1Verifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetSP1Verifier | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetSP1Verifier | -| isProgramTrusted | mapping(bytes32 => bool) | 251 | 0 | 32 | MainnetSP1Verifier | -| __gap | uint256[49] | 252 | 0 | 1568 | MainnetSP1Verifier | - -## MainnetZkAnyVerifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------|------|--------|-------|-----------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetZkAnyVerifier | -| _initializing | bool | 0 | 1 | 1 | MainnetZkAnyVerifier | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetZkAnyVerifier | -| _owner | address | 51 | 0 | 20 | MainnetZkAnyVerifier | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetZkAnyVerifier | -| _pendingOwner | address | 101 | 0 | 20 | MainnetZkAnyVerifier | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetZkAnyVerifier | -| addressManager | address | 151 | 0 | 20 | MainnetZkAnyVerifier | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetZkAnyVerifier | -| __reentry | uint8 | 201 | 0 | 1 | MainnetZkAnyVerifier | -| __paused | uint8 | 201 | 1 | 1 | MainnetZkAnyVerifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetZkAnyVerifier | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetZkAnyVerifier | -| __gap | uint256[50] | 251 | 0 | 1600 | MainnetZkAnyVerifier | -| __gap | uint256[50] | 301 | 0 | 1600 | MainnetZkAnyVerifier | - -## MainnetRisc0Verifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------|------|--------|-------|-----------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetRisc0Verifier | -| _initializing | bool | 0 | 1 | 1 | MainnetRisc0Verifier | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetRisc0Verifier | -| _owner | address | 51 | 0 | 20 | MainnetRisc0Verifier | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetRisc0Verifier | -| _pendingOwner | address | 101 | 0 | 20 | MainnetRisc0Verifier | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetRisc0Verifier | -| addressManager | address | 151 | 0 | 20 | MainnetRisc0Verifier | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetRisc0Verifier | -| __reentry | uint8 | 201 | 0 | 1 | MainnetRisc0Verifier | -| __paused | uint8 | 201 | 1 | 1 | MainnetRisc0Verifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetRisc0Verifier | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetRisc0Verifier | -| isImageTrusted | mapping(bytes32 => bool) | 251 | 0 | 32 | MainnetRisc0Verifier | -| __gap | uint256[49] | 252 | 0 | 1568 | MainnetRisc0Verifier | - -## MainnetZkAndTeeVerifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------|------|--------|-------|-----------------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetZkAndTeeVerifier | -| _initializing | bool | 0 | 1 | 1 | MainnetZkAndTeeVerifier | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetZkAndTeeVerifier | -| _owner | address | 51 | 0 | 20 | MainnetZkAndTeeVerifier | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetZkAndTeeVerifier | -| _pendingOwner | address | 101 | 0 | 20 | MainnetZkAndTeeVerifier | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetZkAndTeeVerifier | -| addressManager | address | 151 | 0 | 20 | MainnetZkAndTeeVerifier | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetZkAndTeeVerifier | -| __reentry | uint8 | 201 | 0 | 1 | MainnetZkAndTeeVerifier | -| __paused | uint8 | 201 | 1 | 1 | MainnetZkAndTeeVerifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetZkAndTeeVerifier | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetZkAndTeeVerifier | -| __gap | uint256[50] | 251 | 0 | 1600 | MainnetZkAndTeeVerifier | -| __gap | uint256[50] | 301 | 0 | 1600 | MainnetZkAndTeeVerifier | - -## MainnetTeeAnyVerifier -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------|------|--------|-------|-------------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetTeeAnyVerifier | -| _initializing | bool | 0 | 1 | 1 | MainnetTeeAnyVerifier | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetTeeAnyVerifier | -| _owner | address | 51 | 0 | 20 | MainnetTeeAnyVerifier | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetTeeAnyVerifier | -| _pendingOwner | address | 101 | 0 | 20 | MainnetTeeAnyVerifier | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetTeeAnyVerifier | -| addressManager | address | 151 | 0 | 20 | MainnetTeeAnyVerifier | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetTeeAnyVerifier | -| __reentry | uint8 | 201 | 0 | 1 | MainnetTeeAnyVerifier | -| __paused | uint8 | 201 | 1 | 1 | MainnetTeeAnyVerifier | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetTeeAnyVerifier | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetTeeAnyVerifier | -| __gap | uint256[50] | 251 | 0 | 1600 | MainnetTeeAnyVerifier | -| __gap | uint256[50] | 301 | 0 | 1600 | MainnetTeeAnyVerifier | - -## MainnetGuardianProver -| Name | Type | Slot | Offset | Bytes | Contract | -|-------------------------|-------------------------------------------------|------|--------|-------|---------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetGuardianProver | -| _initializing | bool | 0 | 1 | 1 | MainnetGuardianProver | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetGuardianProver | -| _owner | address | 51 | 0 | 20 | MainnetGuardianProver | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetGuardianProver | -| _pendingOwner | address | 101 | 0 | 20 | MainnetGuardianProver | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetGuardianProver | -| addressManager | address | 151 | 0 | 20 | MainnetGuardianProver | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetGuardianProver | -| __reentry | uint8 | 201 | 0 | 1 | MainnetGuardianProver | -| __paused | uint8 | 201 | 1 | 1 | MainnetGuardianProver | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetGuardianProver | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetGuardianProver | -| guardianIds | mapping(address => uint256) | 251 | 0 | 32 | MainnetGuardianProver | -| approvals | mapping(uint256 => mapping(bytes32 => uint256)) | 252 | 0 | 32 | MainnetGuardianProver | -| guardians | address[] | 253 | 0 | 32 | MainnetGuardianProver | -| version | uint32 | 254 | 0 | 4 | MainnetGuardianProver | -| minGuardians | uint32 | 254 | 4 | 4 | MainnetGuardianProver | -| provingAutoPauseEnabled | bool | 254 | 8 | 1 | MainnetGuardianProver | -| latestProofHash | mapping(uint256 => mapping(uint256 => bytes32)) | 255 | 0 | 32 | MainnetGuardianProver | -| __gap | uint256[45] | 256 | 0 | 1440 | MainnetGuardianProver | - -## MainnetTaikoL1 -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|------------------------|------|--------|-------|-------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetTaikoL1 | -| _initializing | bool | 0 | 1 | 1 | MainnetTaikoL1 | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetTaikoL1 | -| _owner | address | 51 | 0 | 20 | MainnetTaikoL1 | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetTaikoL1 | -| _pendingOwner | address | 101 | 0 | 20 | MainnetTaikoL1 | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetTaikoL1 | -| addressManager | address | 151 | 0 | 20 | MainnetTaikoL1 | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetTaikoL1 | -| __reentry | uint8 | 201 | 0 | 1 | MainnetTaikoL1 | -| __paused | uint8 | 201 | 1 | 1 | MainnetTaikoL1 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetTaikoL1 | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetTaikoL1 | -| state | struct TaikoData.State | 251 | 0 | 1600 | MainnetTaikoL1 | -| __gap | uint256[50] | 301 | 0 | 1600 | MainnetTaikoL1 | - -## MainnetRollupAddressManager -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------------------------------------------|------|--------|-------|---------------------------------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetRollupAddressManager | -| _initializing | bool | 0 | 1 | 1 | MainnetRollupAddressManager | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetRollupAddressManager | -| _owner | address | 51 | 0 | 20 | MainnetRollupAddressManager | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetRollupAddressManager | -| _pendingOwner | address | 101 | 0 | 20 | MainnetRollupAddressManager | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetRollupAddressManager | -| addressManager | address | 151 | 0 | 20 | MainnetRollupAddressManager | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetRollupAddressManager | -| __reentry | uint8 | 201 | 0 | 1 | MainnetRollupAddressManager | -| __paused | uint8 | 201 | 1 | 1 | MainnetRollupAddressManager | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetRollupAddressManager | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetRollupAddressManager | -| __addresses | mapping(uint256 => mapping(bytes32 => address)) | 251 | 0 | 32 | MainnetRollupAddressManager | -| __gap | uint256[49] | 252 | 0 | 1568 | MainnetRollupAddressManager | - -## MainnetTierRouter -| Name | Type | Slot | Offset | Bytes | Contract | -|------|------|------|--------|-------|----------| - -## MainnetProverSet -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------|------|--------|-------|-----------------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetProverSet | -| _initializing | bool | 0 | 1 | 1 | MainnetProverSet | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetProverSet | -| _owner | address | 51 | 0 | 20 | MainnetProverSet | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetProverSet | -| _pendingOwner | address | 101 | 0 | 20 | MainnetProverSet | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetProverSet | -| addressManager | address | 151 | 0 | 20 | MainnetProverSet | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetProverSet | -| __reentry | uint8 | 201 | 0 | 1 | MainnetProverSet | -| __paused | uint8 | 201 | 1 | 1 | MainnetProverSet | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetProverSet | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetProverSet | -| isProver | mapping(address => bool) | 251 | 0 | 32 | MainnetProverSet | -| admin | address | 252 | 0 | 20 | MainnetProverSet | -| __gap | uint256[48] | 253 | 0 | 1536 | MainnetProverSet | - -## TokenUnlock -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------|------|--------|-------|---------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | TokenUnlock | -| _initializing | bool | 0 | 1 | 1 | TokenUnlock | -| __gap | uint256[50] | 1 | 0 | 1600 | TokenUnlock | -| _owner | address | 51 | 0 | 20 | TokenUnlock | -| __gap | uint256[49] | 52 | 0 | 1568 | TokenUnlock | -| _pendingOwner | address | 101 | 0 | 20 | TokenUnlock | -| __gap | uint256[49] | 102 | 0 | 1568 | TokenUnlock | -| addressManager | address | 151 | 0 | 20 | TokenUnlock | -| __gap | uint256[49] | 152 | 0 | 1568 | TokenUnlock | -| __reentry | uint8 | 201 | 0 | 1 | TokenUnlock | -| __paused | uint8 | 201 | 1 | 1 | TokenUnlock | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | TokenUnlock | -| __gap | uint256[49] | 202 | 0 | 1568 | TokenUnlock | -| amountVested | uint256 | 251 | 0 | 32 | TokenUnlock | -| recipient | address | 252 | 0 | 20 | TokenUnlock | -| tgeTimestamp | uint64 | 252 | 20 | 8 | TokenUnlock | -| isProverSet | mapping(address => bool) | 253 | 0 | 32 | TokenUnlock | -| __gap | uint256[47] | 254 | 0 | 1504 | TokenUnlock | - -## ProverSet -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------|------|--------|-------|--------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | ProverSet | -| _initializing | bool | 0 | 1 | 1 | ProverSet | -| __gap | uint256[50] | 1 | 0 | 1600 | ProverSet | -| _owner | address | 51 | 0 | 20 | ProverSet | -| __gap | uint256[49] | 52 | 0 | 1568 | ProverSet | -| _pendingOwner | address | 101 | 0 | 20 | ProverSet | -| __gap | uint256[49] | 102 | 0 | 1568 | ProverSet | -| addressManager | address | 151 | 0 | 20 | ProverSet | -| __gap | uint256[49] | 152 | 0 | 1568 | ProverSet | -| __reentry | uint8 | 201 | 0 | 1 | ProverSet | -| __paused | uint8 | 201 | 1 | 1 | ProverSet | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | ProverSet | -| __gap | uint256[49] | 202 | 0 | 1568 | ProverSet | -| isProver | mapping(address => bool) | 251 | 0 | 32 | ProverSet | -| admin | address | 252 | 0 | 20 | ProverSet | -| __gap | uint256[48] | 253 | 0 | 1536 | ProverSet | - -## GuardianProver -| Name | Type | Slot | Offset | Bytes | Contract | -|-------------------------|-------------------------------------------------|------|--------|-------|------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | GuardianProver | -| _initializing | bool | 0 | 1 | 1 | GuardianProver | -| __gap | uint256[50] | 1 | 0 | 1600 | GuardianProver | -| _owner | address | 51 | 0 | 20 | GuardianProver | -| __gap | uint256[49] | 52 | 0 | 1568 | GuardianProver | -| _pendingOwner | address | 101 | 0 | 20 | GuardianProver | -| __gap | uint256[49] | 102 | 0 | 1568 | GuardianProver | -| addressManager | address | 151 | 0 | 20 | GuardianProver | -| __gap | uint256[49] | 152 | 0 | 1568 | GuardianProver | -| __reentry | uint8 | 201 | 0 | 1 | GuardianProver | -| __paused | uint8 | 201 | 1 | 1 | GuardianProver | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | GuardianProver | -| __gap | uint256[49] | 202 | 0 | 1568 | GuardianProver | -| guardianIds | mapping(address => uint256) | 251 | 0 | 32 | GuardianProver | -| approvals | mapping(uint256 => mapping(bytes32 => uint256)) | 252 | 0 | 32 | GuardianProver | -| guardians | address[] | 253 | 0 | 32 | GuardianProver | -| version | uint32 | 254 | 0 | 4 | GuardianProver | -| minGuardians | uint32 | 254 | 4 | 4 | GuardianProver | -| provingAutoPauseEnabled | bool | 254 | 8 | 1 | GuardianProver | -| latestProofHash | mapping(uint256 => mapping(uint256 => bytes32)) | 255 | 0 | 32 | GuardianProver | -| __gap | uint256[45] | 256 | 0 | 1440 | GuardianProver | - +## contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ---------------------------------------------------- | ---- | ------ | ----- | --------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_owner | address | 51 | 0 | 20 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_gap | uint256[48] | 303 | 0 | 1536 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_gap | uint256[50] | 351 | 0 | 1600 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_gap | uint256[50] | 401 | 0 | 1600 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | +| \_\_gap | uint256[50] | 451 | 0 | 1600 | contracts/shared/tokenvault/ERC1155Vault.sol:ERC1155Vault | + +## contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ---------------------------------------------------- | ---- | ------ | ----- | ----------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_owner | address | 51 | 0 | 20 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| bridgedToCanonical | mapping(address => struct ERC20Vault.CanonicalERC20) | 301 | 0 | 32 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| btokenDenylist | mapping(address => bool) | 303 | 0 | 32 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| lastMigrationStart | mapping(uint256 => mapping(address => uint256)) | 304 | 0 | 32 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | +| \_\_gap | uint256[46] | 305 | 0 | 1472 | contracts/shared/tokenvault/ERC20Vault.sol:ERC20Vault | + +## contracts/shared/tokenvault/ERC721Vault.soenunlock/Tol:ERC721Vault + +## contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------------------------------------------- | ---- | ------ | ----- | --------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_owner | address | 51 | 0 | 20 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_balances | mapping(address => uint256) | 251 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_totalSupply | uint256 | 253 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_name | string | 254 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_symbol | string | 255 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_gap | uint256[45] | 256 | 0 | 1440 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| srcToken | address | 301 | 0 | 20 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_srcDecimals | uint8 | 301 | 20 | 1 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| srcChainId | uint256 | 302 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| migratingAddress | address | 303 | 0 | 20 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| migratingInbound | bool | 303 | 20 | 1 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | +| \_\_gap | uint256[47] | 304 | 0 | 1504 | contracts/shared/tokenvault/BridgedERC20.sol:BridgedERC20 | + +## contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ------------------------------------------------------ | ---- | ------ | ----- | ------------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_owner | address | 51 | 0 | 20 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_balances | mapping(address => uint256) | 251 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_totalSupply | uint256 | 253 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_name | string | 254 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_symbol | string | 255 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_gap | uint256[45] | 256 | 0 | 1440 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| srcToken | address | 301 | 0 | 20 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_srcDecimals | uint8 | 301 | 20 | 1 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| srcChainId | uint256 | 302 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| migratingAddress | address | 303 | 0 | 20 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| migratingInbound | bool | 303 | 20 | 1 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_gap | uint256[47] | 304 | 0 | 1504 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_hashedName | bytes32 | 351 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_hashedVersion | bytes32 | 352 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_name | string | 353 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_version | string | 354 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_gap | uint256[48] | 355 | 0 | 1536 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | +| \_\_gap | uint256[49] | 404 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC20V2.sol:BridgedERC20V2 | + +## contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | -------------------------------------------- | ---- | ------ | ----- | ----------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_owner | address | 51 | 0 | 20 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_name | string | 301 | 0 | 32 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_symbol | string | 302 | 0 | 32 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_owners | mapping(uint256 => address) | 303 | 0 | 32 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_balances | mapping(address => uint256) | 304 | 0 | 32 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_tokenApprovals | mapping(uint256 => address) | 305 | 0 | 32 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_operatorApprovals | mapping(address => mapping(address => bool)) | 306 | 0 | 32 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_gap | uint256[44] | 307 | 0 | 1408 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| srcToken | address | 351 | 0 | 20 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| srcChainId | uint256 | 352 | 0 | 32 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | +| \_\_gap | uint256[48] | 353 | 0 | 1536 | contracts/shared/tokenvault/BridgedERC721.sol:BridgedERC721 | + +## contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------------------------------------------- | ---- | ------ | ----- | ------------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_owner | address | 51 | 0 | 20 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_balances | mapping(uint256 => mapping(address => uint256)) | 301 | 0 | 32 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_operatorApprovals | mapping(address => mapping(address => bool)) | 302 | 0 | 32 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_uri | string | 303 | 0 | 32 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_gap | uint256[47] | 304 | 0 | 1504 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| srcToken | address | 351 | 0 | 20 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| srcChainId | uint256 | 352 | 0 | 32 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| symbol | string | 353 | 0 | 32 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| name | string | 354 | 0 | 32 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | +| \_\_gap | uint256[46] | 355 | 0 | 1472 | contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155 | + +## contracts/shared/bridge/Bridge.sol:Bridge + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------------------- | ---- | ------ | ----- | ----------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_owner | address | 51 | 0 | 20 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_reserved1 | uint64 | 251 | 0 | 8 | contracts/shared/bridge/Bridge.sol:Bridge | +| nextMessageId | uint64 | 251 | 8 | 8 | contracts/shared/bridge/Bridge.sol:Bridge | +| messageStatus | mapping(bytes32 => enum IBridge.Status) | 252 | 0 | 32 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_ctx | struct IBridge.Context | 253 | 0 | 64 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_reserved2 | uint256 | 255 | 0 | 32 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_reserved3 | uint256 | 256 | 0 | 32 | contracts/shared/bridge/Bridge.sol:Bridge | +| \_\_gap | uint256[44] | 257 | 0 | 1408 | contracts/shared/bridge/Bridge.sol:Bridge | + +## contracts/shared/bridge/QuotaManager.sol:QuotaManager + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------------------------- | ---- | ------ | ----- | ----------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_owner | address | 51 | 0 | 20 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| tokenQuota | mapping(address => struct QuotaManager.Quota) | 251 | 0 | 32 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| quotaPeriod | uint24 | 252 | 0 | 3 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | +| \_\_gap | uint256[48] | 253 | 0 | 1536 | contracts/shared/bridge/QuotaManager.sol:QuotaManager | + +## contracts/shared/common/DefaultResolver.sol:DefaultResolver + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------------------------------------------- | ---- | ------ | ----- | ----------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_owner | address | 51 | 0 | 20 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_addresses | mapping(uint256 => mapping(bytes32 => address)) | 251 | 0 | 32 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | +| \_\_gap | uint256[49] | 252 | 0 | 1568 | contracts/shared/common/DefaultResolver.sol:DefaultResolver | + +## contracts/shared/common/EssentialContract.sol:EssentialContract + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------- | ---- | ------ | ----- | --------------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_owner | address | 51 | 0 | 20 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/common/EssentialContract.sol:EssentialContract | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/common/EssentialContract.sol:EssentialContract | + +## contracts/shared/signal/SignalService.sol:SignalService + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------------------------- | ---- | ------ | ----- | ------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/shared/signal/SignalService.sol:SignalService | +| \_initializing | bool | 0 | 1 | 1 | contracts/shared/signal/SignalService.sol:SignalService | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/shared/signal/SignalService.sol:SignalService | +| \_owner | address | 51 | 0 | 20 | contracts/shared/signal/SignalService.sol:SignalService | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/shared/signal/SignalService.sol:SignalService | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/shared/signal/SignalService.sol:SignalService | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/shared/signal/SignalService.sol:SignalService | +| \_\_resolver | address | 151 | 0 | 20 | contracts/shared/signal/SignalService.sol:SignalService | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/shared/signal/SignalService.sol:SignalService | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/shared/signal/SignalService.sol:SignalService | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/shared/signal/SignalService.sol:SignalService | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/shared/signal/SignalService.sol:SignalService | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/shared/signal/SignalService.sol:SignalService | +| topBlockId | mapping(uint64 => mapping(bytes32 => uint64)) | 251 | 0 | 32 | contracts/shared/signal/SignalService.sol:SignalService | +| isAuthorized | mapping(address => bool) | 252 | 0 | 32 | contracts/shared/signal/SignalService.sol:SignalService | +| \_\_gap | uint256[48] | 253 | 0 | 1536 | contracts/shared/signal/SignalService.sol:SignalService | + +## contracts/layer1/token/TaikoToken.sol:TaikoToken + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------------------------------- | ------------------------------------------------------------- | ---- | ------ | ----- | ------------------------------------------------ | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_slots_previously_used_by_ERC20SnapshotUpgradeable | uint256[50] | 251 | 0 | 1600 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_balances | mapping(address => uint256) | 301 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_allowances | mapping(address => mapping(address => uint256)) | 302 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_totalSupply | uint256 | 303 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_name | string | 304 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_symbol | string | 305 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_gap | uint256[45] | 306 | 0 | 1440 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_hashedName | bytes32 | 351 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_hashedVersion | bytes32 | 352 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_name | string | 353 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_version | string | 354 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_gap | uint256[48] | 355 | 0 | 1536 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 404 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_gap | uint256[49] | 405 | 0 | 1568 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_delegates | mapping(address => address) | 454 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 455 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 456 | 0 | 32 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_gap | uint256[47] | 457 | 0 | 1504 | contracts/layer1/token/TaikoToken.sol:TaikoToken | +| \_\_gap | uint256[50] | 504 | 0 | 1600 | contracts/layer1/token/TaikoToken.sol:TaikoToken | + +## contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------- | ---- | ------ | ----- | ---------------------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/layer1/verifiers/compose/ComposeVerifier.sol:ComposeVerifier | + +## contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------- | ---- | ------ | ----- | -------------------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | +| \_\_gap | uint256[50] | 301 | 0 | 1600 | contracts/layer1/verifiers/compose/TeeAnyVerifier.sol:TeeAnyVerifier | + +## contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------- | ---- | ------ | ----- | ------------------------------------------------------------------------ | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | +| \_\_gap | uint256[50] | 301 | 0 | 1600 | contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol:ZkAndTeeVerifier | + +## contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------- | ---- | ------ | ----- | ------------------------------------------------------------------ | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | +| \_\_gap | uint256[50] | 301 | 0 | 1600 | contracts/layer1/verifiers/compose/ZkAnyVerifier.sol:ZkAnyVerifier | + +## contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ------------------------ | ---- | ------ | ----- | ---------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| isImageTrusted | mapping(bytes32 => bool) | 251 | 0 | 32 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | +| \_\_gap | uint256[49] | 252 | 0 | 1568 | contracts/layer1/verifiers/Risc0Verifier.sol:Risc0Verifier | + +## contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ------------------------ | ---- | ------ | ----- | ------------------------------------------------------ | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| isProgramTrusted | mapping(bytes32 => bool) | 251 | 0 | 32 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | +| \_\_gap | uint256[49] | 252 | 0 | 1568 | contracts/layer1/verifiers/SP1Verifier.sol:SP1Verifier | + +## contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------------------------------------------- | ---- | ------ | ----- | ------------------------------------------------------ | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| nextInstanceId | uint256 | 251 | 0 | 32 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| instances | mapping(uint256 => struct SgxVerifier.Instance) | 252 | 0 | 32 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| addressRegistered | mapping(address => bool) | 253 | 0 | 32 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | +| \_\_gap | uint256[47] | 254 | 0 | 1504 | contracts/layer1/verifiers/SgxVerifier.sol:SgxVerifier | + +## contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------------------------------------------- | ---- | ------ | ----- | --------------------------------------------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| sigVerifyLib | contract ISigVerifyLib | 251 | 0 | 20 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| pemCertLib | contract IPEMCertChainLib | 252 | 0 | 20 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| checkLocalEnclaveReport | bool | 252 | 20 | 1 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| trustedUserMrEnclave | mapping(bytes32 => bool) | 253 | 0 | 32 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| trustedUserMrSigner | mapping(bytes32 => bool) | 254 | 0 | 32 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| serialNumIsRevoked | mapping(uint256 => mapping(bytes => bool)) | 255 | 0 | 32 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| tcbInfo | mapping(string => struct TCBInfoStruct.TCBInfo) | 256 | 0 | 32 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| qeIdentity | struct EnclaveIdStruct.EnclaveId | 257 | 0 | 128 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | +| \_\_gap | uint256[39] | 261 | 0 | 1248 | contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation | + +## contracts/layer1/based/TaikoL1.sol:TaikoL1 + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ---------------------- | ---- | ------ | ----- | ------------------------------------------ | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| state | struct TaikoData.State | 251 | 0 | 1600 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | +| \_\_gap | uint256[50] | 301 | 0 | 1600 | contracts/layer1/based/TaikoL1.sol:TaikoL1 | + +## contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ---------------------- | ---- | ------ | ----- | ---------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| state | struct TaikoData.State | 251 | 0 | 1600 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | +| \_\_gap | uint256[50] | 301 | 0 | 1600 | contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1 | + +## contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------------------- | ---- | ------ | ----- | -------------------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_reserved1 | uint64 | 251 | 0 | 8 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| nextMessageId | uint64 | 251 | 8 | 8 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| messageStatus | mapping(bytes32 => enum IBridge.Status) | 252 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_ctx | struct IBridge.Context | 253 | 0 | 64 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_reserved2 | uint256 | 255 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_reserved3 | uint256 | 256 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | +| \_\_gap | uint256[44] | 257 | 0 | 1408 | contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge | + +## contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------------------------- | ---- | ------ | ----- | ---------------------------------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| topBlockId | mapping(uint64 => mapping(bytes32 => uint64)) | 251 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| isAuthorized | mapping(address => bool) | 252 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | +| \_\_gap | uint256[48] | 253 | 0 | 1536 | contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService | + +## contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ---------------------------------------------------- | ---- | ------ | ----- | ---------------------------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| bridgedToCanonical | mapping(address => struct ERC20Vault.CanonicalERC20) | 301 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| btokenDenylist | mapping(address => bool) | 303 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| lastMigrationStart | mapping(uint256 => mapping(address => uint256)) | 304 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | +| \_\_gap | uint256[46] | 305 | 0 | 1472 | contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault | + +## contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ---------------------------------------------------- | ---- | ------ | ----- | -------------------------------------------------------------------------------- | +| \_initialized | uint8 | 0 | 0 | 1 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_initializing | bool | 0 | 1 | 1 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_owner | address | 51 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_pendingOwner | address | 101 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_resolver | address | 151 | 0 | 20 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_reentry | uint8 | 201 | 0 | 1 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_paused | uint8 | 201 | 1 | 1 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_gap | uint256[48] | 303 | 0 | 1536 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_gap | uint256[50] | 351 | 0 | 1600 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_gap | uint256[50] | 401 | 0 | 1600 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | +| \_\_gap | uint256[50] | 451 | 0 | 1600 | contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault | + +## contracts/layer1/mainnet/multirollup/MainnetERC721Vault.sol:MainnetERC721Vault diff --git a/packages/protocol/contract_layout_layer2.md b/packages/protocol/contract_layout_layer2.md index e0f97f06590..eb6e7faeb5a 100644 --- a/packages/protocol/contract_layout_layer2.md +++ b/packages/protocol/contract_layout_layer2.md @@ -1,431 +1,439 @@ ## ERC1155Vault -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------------|------|--------|-------|-----------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | ERC1155Vault | -| _initializing | bool | 0 | 1 | 1 | ERC1155Vault | -| __gap | uint256[50] | 1 | 0 | 1600 | ERC1155Vault | -| _owner | address | 51 | 0 | 20 | ERC1155Vault | -| __gap | uint256[49] | 52 | 0 | 1568 | ERC1155Vault | -| _pendingOwner | address | 101 | 0 | 20 | ERC1155Vault | -| __gap | uint256[49] | 102 | 0 | 1568 | ERC1155Vault | -| addressManager | address | 151 | 0 | 20 | ERC1155Vault | -| __gap | uint256[49] | 152 | 0 | 1568 | ERC1155Vault | -| __reentry | uint8 | 201 | 0 | 1 | ERC1155Vault | -| __paused | uint8 | 201 | 1 | 1 | ERC1155Vault | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC1155Vault | -| __gap | uint256[49] | 202 | 0 | 1568 | ERC1155Vault | -| __gap | uint256[50] | 251 | 0 | 1600 | ERC1155Vault | -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | ERC1155Vault | -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC1155Vault | -| __gap | uint256[48] | 303 | 0 | 1536 | ERC1155Vault | -| __gap | uint256[50] | 351 | 0 | 1600 | ERC1155Vault | -| __gap | uint256[50] | 401 | 0 | 1600 | ERC1155Vault | -| __gap | uint256[50] | 451 | 0 | 1600 | ERC1155Vault | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ---------------------------------------------------- | ---- | ------ | ----- | ------------ | +| \_initialized | uint8 | 0 | 0 | 1 | ERC1155Vault | +| \_initializing | bool | 0 | 1 | 1 | ERC1155Vault | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | ERC1155Vault | +| \_owner | address | 51 | 0 | 20 | ERC1155Vault | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | ERC1155Vault | +| \_pendingOwner | address | 101 | 0 | 20 | ERC1155Vault | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | ERC1155Vault | +| \_\_resolver | address | 151 | 0 | 20 | ERC1155Vault | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | ERC1155Vault | +| \_\_reentry | uint8 | 201 | 0 | 1 | ERC1155Vault | +| \_\_paused | uint8 | 201 | 1 | 1 | ERC1155Vault | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC1155Vault | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | ERC1155Vault | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | ERC1155Vault | +| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | ERC1155Vault | +| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC1155Vault | +| \_\_gap | uint256[48] | 303 | 0 | 1536 | ERC1155Vault | +| \_\_gap | uint256[50] | 351 | 0 | 1600 | ERC1155Vault | +| \_\_gap | uint256[50] | 401 | 0 | 1600 | ERC1155Vault | +| \_\_gap | uint256[50] | 451 | 0 | 1600 | ERC1155Vault | ## ERC20Vault -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------------|------|--------|-------|-------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | ERC20Vault | -| _initializing | bool | 0 | 1 | 1 | ERC20Vault | -| __gap | uint256[50] | 1 | 0 | 1600 | ERC20Vault | -| _owner | address | 51 | 0 | 20 | ERC20Vault | -| __gap | uint256[49] | 52 | 0 | 1568 | ERC20Vault | -| _pendingOwner | address | 101 | 0 | 20 | ERC20Vault | -| __gap | uint256[49] | 102 | 0 | 1568 | ERC20Vault | -| addressManager | address | 151 | 0 | 20 | ERC20Vault | -| __gap | uint256[49] | 152 | 0 | 1568 | ERC20Vault | -| __reentry | uint8 | 201 | 0 | 1 | ERC20Vault | -| __paused | uint8 | 201 | 1 | 1 | ERC20Vault | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC20Vault | -| __gap | uint256[49] | 202 | 0 | 1568 | ERC20Vault | -| __gap | uint256[50] | 251 | 0 | 1600 | ERC20Vault | -| bridgedToCanonical | mapping(address => struct ERC20Vault.CanonicalERC20) | 301 | 0 | 32 | ERC20Vault | -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC20Vault | -| btokenDenylist | mapping(address => bool) | 303 | 0 | 32 | ERC20Vault | -| lastMigrationStart | mapping(uint256 => mapping(address => uint256)) | 304 | 0 | 32 | ERC20Vault | -| __gap | uint256[46] | 305 | 0 | 1472 | ERC20Vault | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ---------------------------------------------------- | ---- | ------ | ----- | ---------- | +| \_initialized | uint8 | 0 | 0 | 1 | ERC20Vault | +| \_initializing | bool | 0 | 1 | 1 | ERC20Vault | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | ERC20Vault | +| \_owner | address | 51 | 0 | 20 | ERC20Vault | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | ERC20Vault | +| \_pendingOwner | address | 101 | 0 | 20 | ERC20Vault | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | ERC20Vault | +| \_\_resolver | address | 151 | 0 | 20 | ERC20Vault | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | ERC20Vault | +| \_\_reentry | uint8 | 201 | 0 | 1 | ERC20Vault | +| \_\_paused | uint8 | 201 | 1 | 1 | ERC20Vault | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC20Vault | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | ERC20Vault | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | ERC20Vault | +| bridgedToCanonical | mapping(address => struct ERC20Vault.CanonicalERC20) | 301 | 0 | 32 | ERC20Vault | +| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC20Vault | +| btokenDenylist | mapping(address => bool) | 303 | 0 | 32 | ERC20Vault | +| lastMigrationStart | mapping(uint256 => mapping(address => uint256)) | 304 | 0 | 32 | ERC20Vault | +| \_\_gap | uint256[46] | 305 | 0 | 1472 | ERC20Vault | ## ERC721Vault -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|------------------------------------------------------|------|--------|-------|---------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | ERC721Vault | -| _initializing | bool | 0 | 1 | 1 | ERC721Vault | -| __gap | uint256[50] | 1 | 0 | 1600 | ERC721Vault | -| _owner | address | 51 | 0 | 20 | ERC721Vault | -| __gap | uint256[49] | 52 | 0 | 1568 | ERC721Vault | -| _pendingOwner | address | 101 | 0 | 20 | ERC721Vault | -| __gap | uint256[49] | 102 | 0 | 1568 | ERC721Vault | -| addressManager | address | 151 | 0 | 20 | ERC721Vault | -| __gap | uint256[49] | 152 | 0 | 1568 | ERC721Vault | -| __reentry | uint8 | 201 | 0 | 1 | ERC721Vault | -| __paused | uint8 | 201 | 1 | 1 | ERC721Vault | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC721Vault | -| __gap | uint256[49] | 202 | 0 | 1568 | ERC721Vault | -| __gap | uint256[50] | 251 | 0 | 1600 | ERC721Vault | -| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | ERC721Vault | -| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC721Vault | -| __gap | uint256[48] | 303 | 0 | 1536 | ERC721Vault | -| __gap | uint256[50] | 351 | 0 | 1600 | ERC721Vault | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ---------------------------------------------------- | ---- | ------ | ----- | ----------- | +| \_initialized | uint8 | 0 | 0 | 1 | ERC721Vault | +| \_initializing | bool | 0 | 1 | 1 | ERC721Vault | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | ERC721Vault | +| \_owner | address | 51 | 0 | 20 | ERC721Vault | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | ERC721Vault | +| \_pendingOwner | address | 101 | 0 | 20 | ERC721Vault | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | ERC721Vault | +| \_\_resolver | address | 151 | 0 | 20 | ERC721Vault | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | ERC721Vault | +| \_\_reentry | uint8 | 201 | 0 | 1 | ERC721Vault | +| \_\_paused | uint8 | 201 | 1 | 1 | ERC721Vault | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | ERC721Vault | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | ERC721Vault | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | ERC721Vault | +| bridgedToCanonical | mapping(address => struct BaseNFTVault.CanonicalNFT) | 301 | 0 | 32 | ERC721Vault | +| canonicalToBridged | mapping(uint256 => mapping(address => address)) | 302 | 0 | 32 | ERC721Vault | +| \_\_gap | uint256[48] | 303 | 0 | 1536 | ERC721Vault | +| \_\_gap | uint256[50] | 351 | 0 | 1600 | ERC721Vault | ## BridgedERC20 -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------------------------------------------|------|--------|-------|-----------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | BridgedERC20 | -| _initializing | bool | 0 | 1 | 1 | BridgedERC20 | -| __gap | uint256[50] | 1 | 0 | 1600 | BridgedERC20 | -| _owner | address | 51 | 0 | 20 | BridgedERC20 | -| __gap | uint256[49] | 52 | 0 | 1568 | BridgedERC20 | -| _pendingOwner | address | 101 | 0 | 20 | BridgedERC20 | -| __gap | uint256[49] | 102 | 0 | 1568 | BridgedERC20 | -| addressManager | address | 151 | 0 | 20 | BridgedERC20 | -| __gap | uint256[49] | 152 | 0 | 1568 | BridgedERC20 | -| __reentry | uint8 | 201 | 0 | 1 | BridgedERC20 | -| __paused | uint8 | 201 | 1 | 1 | BridgedERC20 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC20 | -| __gap | uint256[49] | 202 | 0 | 1568 | BridgedERC20 | -| _balances | mapping(address => uint256) | 251 | 0 | 32 | BridgedERC20 | -| _allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | BridgedERC20 | -| _totalSupply | uint256 | 253 | 0 | 32 | BridgedERC20 | -| _name | string | 254 | 0 | 32 | BridgedERC20 | -| _symbol | string | 255 | 0 | 32 | BridgedERC20 | -| __gap | uint256[45] | 256 | 0 | 1440 | BridgedERC20 | -| srcToken | address | 301 | 0 | 20 | BridgedERC20 | -| __srcDecimals | uint8 | 301 | 20 | 1 | BridgedERC20 | -| srcChainId | uint256 | 302 | 0 | 32 | BridgedERC20 | -| migratingAddress | address | 303 | 0 | 20 | BridgedERC20 | -| migratingInbound | bool | 303 | 20 | 1 | BridgedERC20 | -| __gap | uint256[47] | 304 | 0 | 1504 | BridgedERC20 | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------------------------------------------- | ---- | ------ | ----- | ------------ | +| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC20 | +| \_initializing | bool | 0 | 1 | 1 | BridgedERC20 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | BridgedERC20 | +| \_owner | address | 51 | 0 | 20 | BridgedERC20 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | BridgedERC20 | +| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC20 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | BridgedERC20 | +| \_\_resolver | address | 151 | 0 | 20 | BridgedERC20 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | BridgedERC20 | +| \_\_reentry | uint8 | 201 | 0 | 1 | BridgedERC20 | +| \_\_paused | uint8 | 201 | 1 | 1 | BridgedERC20 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC20 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | BridgedERC20 | +| \_balances | mapping(address => uint256) | 251 | 0 | 32 | BridgedERC20 | +| \_allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | BridgedERC20 | +| \_totalSupply | uint256 | 253 | 0 | 32 | BridgedERC20 | +| \_name | string | 254 | 0 | 32 | BridgedERC20 | +| \_symbol | string | 255 | 0 | 32 | BridgedERC20 | +| \_\_gap | uint256[45] | 256 | 0 | 1440 | BridgedERC20 | +| srcToken | address | 301 | 0 | 20 | BridgedERC20 | +| \_\_srcDecimals | uint8 | 301 | 20 | 1 | BridgedERC20 | +| srcChainId | uint256 | 302 | 0 | 32 | BridgedERC20 | +| migratingAddress | address | 303 | 0 | 20 | BridgedERC20 | +| migratingInbound | bool | 303 | 20 | 1 | BridgedERC20 | +| \_\_gap | uint256[47] | 304 | 0 | 1504 | BridgedERC20 | ## BridgedERC20V2 -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|--------------------------------------------------------|------|--------|-------|---------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | BridgedERC20V2 | -| _initializing | bool | 0 | 1 | 1 | BridgedERC20V2 | -| __gap | uint256[50] | 1 | 0 | 1600 | BridgedERC20V2 | -| _owner | address | 51 | 0 | 20 | BridgedERC20V2 | -| __gap | uint256[49] | 52 | 0 | 1568 | BridgedERC20V2 | -| _pendingOwner | address | 101 | 0 | 20 | BridgedERC20V2 | -| __gap | uint256[49] | 102 | 0 | 1568 | BridgedERC20V2 | -| addressManager | address | 151 | 0 | 20 | BridgedERC20V2 | -| __gap | uint256[49] | 152 | 0 | 1568 | BridgedERC20V2 | -| __reentry | uint8 | 201 | 0 | 1 | BridgedERC20V2 | -| __paused | uint8 | 201 | 1 | 1 | BridgedERC20V2 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC20V2 | -| __gap | uint256[49] | 202 | 0 | 1568 | BridgedERC20V2 | -| _balances | mapping(address => uint256) | 251 | 0 | 32 | BridgedERC20V2 | -| _allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | BridgedERC20V2 | -| _totalSupply | uint256 | 253 | 0 | 32 | BridgedERC20V2 | -| _name | string | 254 | 0 | 32 | BridgedERC20V2 | -| _symbol | string | 255 | 0 | 32 | BridgedERC20V2 | -| __gap | uint256[45] | 256 | 0 | 1440 | BridgedERC20V2 | -| srcToken | address | 301 | 0 | 20 | BridgedERC20V2 | -| __srcDecimals | uint8 | 301 | 20 | 1 | BridgedERC20V2 | -| srcChainId | uint256 | 302 | 0 | 32 | BridgedERC20V2 | -| migratingAddress | address | 303 | 0 | 20 | BridgedERC20V2 | -| migratingInbound | bool | 303 | 20 | 1 | BridgedERC20V2 | -| __gap | uint256[47] | 304 | 0 | 1504 | BridgedERC20V2 | -| _hashedName | bytes32 | 351 | 0 | 32 | BridgedERC20V2 | -| _hashedVersion | bytes32 | 352 | 0 | 32 | BridgedERC20V2 | -| _name | string | 353 | 0 | 32 | BridgedERC20V2 | -| _version | string | 354 | 0 | 32 | BridgedERC20V2 | -| __gap | uint256[48] | 355 | 0 | 1536 | BridgedERC20V2 | -| _nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | BridgedERC20V2 | -| __gap | uint256[49] | 404 | 0 | 1568 | BridgedERC20V2 | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ------------------------------------------------------ | ---- | ------ | ----- | -------------- | +| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC20V2 | +| \_initializing | bool | 0 | 1 | 1 | BridgedERC20V2 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | BridgedERC20V2 | +| \_owner | address | 51 | 0 | 20 | BridgedERC20V2 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | BridgedERC20V2 | +| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC20V2 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | BridgedERC20V2 | +| \_\_resolver | address | 151 | 0 | 20 | BridgedERC20V2 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | BridgedERC20V2 | +| \_\_reentry | uint8 | 201 | 0 | 1 | BridgedERC20V2 | +| \_\_paused | uint8 | 201 | 1 | 1 | BridgedERC20V2 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC20V2 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | BridgedERC20V2 | +| \_balances | mapping(address => uint256) | 251 | 0 | 32 | BridgedERC20V2 | +| \_allowances | mapping(address => mapping(address => uint256)) | 252 | 0 | 32 | BridgedERC20V2 | +| \_totalSupply | uint256 | 253 | 0 | 32 | BridgedERC20V2 | +| \_name | string | 254 | 0 | 32 | BridgedERC20V2 | +| \_symbol | string | 255 | 0 | 32 | BridgedERC20V2 | +| \_\_gap | uint256[45] | 256 | 0 | 1440 | BridgedERC20V2 | +| srcToken | address | 301 | 0 | 20 | BridgedERC20V2 | +| \_\_srcDecimals | uint8 | 301 | 20 | 1 | BridgedERC20V2 | +| srcChainId | uint256 | 302 | 0 | 32 | BridgedERC20V2 | +| migratingAddress | address | 303 | 0 | 20 | BridgedERC20V2 | +| migratingInbound | bool | 303 | 20 | 1 | BridgedERC20V2 | +| \_\_gap | uint256[47] | 304 | 0 | 1504 | BridgedERC20V2 | +| \_hashedName | bytes32 | 351 | 0 | 32 | BridgedERC20V2 | +| \_hashedVersion | bytes32 | 352 | 0 | 32 | BridgedERC20V2 | +| \_name | string | 353 | 0 | 32 | BridgedERC20V2 | +| \_version | string | 354 | 0 | 32 | BridgedERC20V2 | +| \_\_gap | uint256[48] | 355 | 0 | 1536 | BridgedERC20V2 | +| \_nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | BridgedERC20V2 | +| \_\_gap | uint256[49] | 404 | 0 | 1568 | BridgedERC20V2 | ## BridgedERC721 -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|----------------------------------------------|------|--------|-------|-------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | BridgedERC721 | -| _initializing | bool | 0 | 1 | 1 | BridgedERC721 | -| __gap | uint256[50] | 1 | 0 | 1600 | BridgedERC721 | -| _owner | address | 51 | 0 | 20 | BridgedERC721 | -| __gap | uint256[49] | 52 | 0 | 1568 | BridgedERC721 | -| _pendingOwner | address | 101 | 0 | 20 | BridgedERC721 | -| __gap | uint256[49] | 102 | 0 | 1568 | BridgedERC721 | -| addressManager | address | 151 | 0 | 20 | BridgedERC721 | -| __gap | uint256[49] | 152 | 0 | 1568 | BridgedERC721 | -| __reentry | uint8 | 201 | 0 | 1 | BridgedERC721 | -| __paused | uint8 | 201 | 1 | 1 | BridgedERC721 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC721 | -| __gap | uint256[49] | 202 | 0 | 1568 | BridgedERC721 | -| __gap | uint256[50] | 251 | 0 | 1600 | BridgedERC721 | -| _name | string | 301 | 0 | 32 | BridgedERC721 | -| _symbol | string | 302 | 0 | 32 | BridgedERC721 | -| _owners | mapping(uint256 => address) | 303 | 0 | 32 | BridgedERC721 | -| _balances | mapping(address => uint256) | 304 | 0 | 32 | BridgedERC721 | -| _tokenApprovals | mapping(uint256 => address) | 305 | 0 | 32 | BridgedERC721 | -| _operatorApprovals | mapping(address => mapping(address => bool)) | 306 | 0 | 32 | BridgedERC721 | -| __gap | uint256[44] | 307 | 0 | 1408 | BridgedERC721 | -| srcToken | address | 351 | 0 | 20 | BridgedERC721 | -| srcChainId | uint256 | 352 | 0 | 32 | BridgedERC721 | -| __gap | uint256[48] | 353 | 0 | 1536 | BridgedERC721 | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | -------------------------------------------- | ---- | ------ | ----- | ------------- | +| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC721 | +| \_initializing | bool | 0 | 1 | 1 | BridgedERC721 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | BridgedERC721 | +| \_owner | address | 51 | 0 | 20 | BridgedERC721 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | BridgedERC721 | +| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC721 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | BridgedERC721 | +| \_\_resolver | address | 151 | 0 | 20 | BridgedERC721 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | BridgedERC721 | +| \_\_reentry | uint8 | 201 | 0 | 1 | BridgedERC721 | +| \_\_paused | uint8 | 201 | 1 | 1 | BridgedERC721 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC721 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | BridgedERC721 | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | BridgedERC721 | +| \_name | string | 301 | 0 | 32 | BridgedERC721 | +| \_symbol | string | 302 | 0 | 32 | BridgedERC721 | +| \_owners | mapping(uint256 => address) | 303 | 0 | 32 | BridgedERC721 | +| \_balances | mapping(address => uint256) | 304 | 0 | 32 | BridgedERC721 | +| \_tokenApprovals | mapping(uint256 => address) | 305 | 0 | 32 | BridgedERC721 | +| \_operatorApprovals | mapping(address => mapping(address => bool)) | 306 | 0 | 32 | BridgedERC721 | +| \_\_gap | uint256[44] | 307 | 0 | 1408 | BridgedERC721 | +| srcToken | address | 351 | 0 | 20 | BridgedERC721 | +| srcChainId | uint256 | 352 | 0 | 32 | BridgedERC721 | +| \_\_gap | uint256[48] | 353 | 0 | 1536 | BridgedERC721 | ## BridgedERC1155 -| Name | Type | Slot | Offset | Bytes | Contract | -|--------------------|-------------------------------------------------|------|--------|-------|---------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | BridgedERC1155 | -| _initializing | bool | 0 | 1 | 1 | BridgedERC1155 | -| __gap | uint256[50] | 1 | 0 | 1600 | BridgedERC1155 | -| _owner | address | 51 | 0 | 20 | BridgedERC1155 | -| __gap | uint256[49] | 52 | 0 | 1568 | BridgedERC1155 | -| _pendingOwner | address | 101 | 0 | 20 | BridgedERC1155 | -| __gap | uint256[49] | 102 | 0 | 1568 | BridgedERC1155 | -| addressManager | address | 151 | 0 | 20 | BridgedERC1155 | -| __gap | uint256[49] | 152 | 0 | 1568 | BridgedERC1155 | -| __reentry | uint8 | 201 | 0 | 1 | BridgedERC1155 | -| __paused | uint8 | 201 | 1 | 1 | BridgedERC1155 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC1155 | -| __gap | uint256[49] | 202 | 0 | 1568 | BridgedERC1155 | -| __gap | uint256[50] | 251 | 0 | 1600 | BridgedERC1155 | -| _balances | mapping(uint256 => mapping(address => uint256)) | 301 | 0 | 32 | BridgedERC1155 | -| _operatorApprovals | mapping(address => mapping(address => bool)) | 302 | 0 | 32 | BridgedERC1155 | -| _uri | string | 303 | 0 | 32 | BridgedERC1155 | -| __gap | uint256[47] | 304 | 0 | 1504 | BridgedERC1155 | -| srcToken | address | 351 | 0 | 20 | BridgedERC1155 | -| srcChainId | uint256 | 352 | 0 | 32 | BridgedERC1155 | -| symbol | string | 353 | 0 | 32 | BridgedERC1155 | -| name | string | 354 | 0 | 32 | BridgedERC1155 | -| __gap | uint256[46] | 355 | 0 | 1472 | BridgedERC1155 | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------------------------------------------- | ---- | ------ | ----- | -------------- | +| \_initialized | uint8 | 0 | 0 | 1 | BridgedERC1155 | +| \_initializing | bool | 0 | 1 | 1 | BridgedERC1155 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | BridgedERC1155 | +| \_owner | address | 51 | 0 | 20 | BridgedERC1155 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | BridgedERC1155 | +| \_pendingOwner | address | 101 | 0 | 20 | BridgedERC1155 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | BridgedERC1155 | +| \_\_resolver | address | 151 | 0 | 20 | BridgedERC1155 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | BridgedERC1155 | +| \_\_reentry | uint8 | 201 | 0 | 1 | BridgedERC1155 | +| \_\_paused | uint8 | 201 | 1 | 1 | BridgedERC1155 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedERC1155 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | BridgedERC1155 | +| \_\_gap | uint256[50] | 251 | 0 | 1600 | BridgedERC1155 | +| \_balances | mapping(uint256 => mapping(address => uint256)) | 301 | 0 | 32 | BridgedERC1155 | +| \_operatorApprovals | mapping(address => mapping(address => bool)) | 302 | 0 | 32 | BridgedERC1155 | +| \_uri | string | 303 | 0 | 32 | BridgedERC1155 | +| \_\_gap | uint256[47] | 304 | 0 | 1504 | BridgedERC1155 | +| srcToken | address | 351 | 0 | 20 | BridgedERC1155 | +| srcChainId | uint256 | 352 | 0 | 32 | BridgedERC1155 | +| symbol | string | 353 | 0 | 32 | BridgedERC1155 | +| name | string | 354 | 0 | 32 | BridgedERC1155 | +| \_\_gap | uint256[46] | 355 | 0 | 1472 | BridgedERC1155 | ## Bridge -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------------------|------|--------|-------|-------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | Bridge | -| _initializing | bool | 0 | 1 | 1 | Bridge | -| __gap | uint256[50] | 1 | 0 | 1600 | Bridge | -| _owner | address | 51 | 0 | 20 | Bridge | -| __gap | uint256[49] | 52 | 0 | 1568 | Bridge | -| _pendingOwner | address | 101 | 0 | 20 | Bridge | -| __gap | uint256[49] | 102 | 0 | 1568 | Bridge | -| addressManager | address | 151 | 0 | 20 | Bridge | -| __gap | uint256[49] | 152 | 0 | 1568 | Bridge | -| __reentry | uint8 | 201 | 0 | 1 | Bridge | -| __paused | uint8 | 201 | 1 | 1 | Bridge | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | Bridge | -| __gap | uint256[49] | 202 | 0 | 1568 | Bridge | -| __reserved1 | uint64 | 251 | 0 | 8 | Bridge | -| nextMessageId | uint64 | 251 | 8 | 8 | Bridge | -| messageStatus | mapping(bytes32 => enum IBridge.Status) | 252 | 0 | 32 | Bridge | -| __ctx | struct IBridge.Context | 253 | 0 | 64 | Bridge | -| __reserved2 | uint256 | 255 | 0 | 32 | Bridge | -| __reserved3 | uint256 | 256 | 0 | 32 | Bridge | -| __gap | uint256[44] | 257 | 0 | 1408 | Bridge | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------------------- | ---- | ------ | ----- | -------- | +| \_initialized | uint8 | 0 | 0 | 1 | Bridge | +| \_initializing | bool | 0 | 1 | 1 | Bridge | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | Bridge | +| \_owner | address | 51 | 0 | 20 | Bridge | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | Bridge | +| \_pendingOwner | address | 101 | 0 | 20 | Bridge | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | Bridge | +| \_\_resolver | address | 151 | 0 | 20 | Bridge | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | Bridge | +| \_\_reentry | uint8 | 201 | 0 | 1 | Bridge | +| \_\_paused | uint8 | 201 | 1 | 1 | Bridge | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | Bridge | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | Bridge | +| \_\_reserved1 | uint64 | 251 | 0 | 8 | Bridge | +| nextMessageId | uint64 | 251 | 8 | 8 | Bridge | +| messageStatus | mapping(bytes32 => enum IBridge.Status) | 252 | 0 | 32 | Bridge | +| \_\_ctx | struct IBridge.Context | 253 | 0 | 64 | Bridge | +| \_\_reserved2 | uint256 | 255 | 0 | 32 | Bridge | +| \_\_reserved3 | uint256 | 256 | 0 | 32 | Bridge | +| \_\_gap | uint256[44] | 257 | 0 | 1408 | Bridge | ## QuotaManager -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------------------------|------|--------|-------|-------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | QuotaManager | -| _initializing | bool | 0 | 1 | 1 | QuotaManager | -| __gap | uint256[50] | 1 | 0 | 1600 | QuotaManager | -| _owner | address | 51 | 0 | 20 | QuotaManager | -| __gap | uint256[49] | 52 | 0 | 1568 | QuotaManager | -| _pendingOwner | address | 101 | 0 | 20 | QuotaManager | -| __gap | uint256[49] | 102 | 0 | 1568 | QuotaManager | -| addressManager | address | 151 | 0 | 20 | QuotaManager | -| __gap | uint256[49] | 152 | 0 | 1568 | QuotaManager | -| __reentry | uint8 | 201 | 0 | 1 | QuotaManager | -| __paused | uint8 | 201 | 1 | 1 | QuotaManager | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | QuotaManager | -| __gap | uint256[49] | 202 | 0 | 1568 | QuotaManager | -| tokenQuota | mapping(address => struct QuotaManager.Quota) | 251 | 0 | 32 | QuotaManager | -| quotaPeriod | uint24 | 252 | 0 | 3 | QuotaManager | -| __gap | uint256[48] | 253 | 0 | 1536 | QuotaManager | - -## AddressManager -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------------------------------------------|------|--------|-------|-----------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | AddressManager | -| _initializing | bool | 0 | 1 | 1 | AddressManager | -| __gap | uint256[50] | 1 | 0 | 1600 | AddressManager | -| _owner | address | 51 | 0 | 20 | AddressManager | -| __gap | uint256[49] | 52 | 0 | 1568 | AddressManager | -| _pendingOwner | address | 101 | 0 | 20 | AddressManager | -| __gap | uint256[49] | 102 | 0 | 1568 | AddressManager | -| addressManager | address | 151 | 0 | 20 | AddressManager | -| __gap | uint256[49] | 152 | 0 | 1568 | AddressManager | -| __reentry | uint8 | 201 | 0 | 1 | AddressManager | -| __paused | uint8 | 201 | 1 | 1 | AddressManager | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | AddressManager | -| __gap | uint256[49] | 202 | 0 | 1568 | AddressManager | -| __addresses | mapping(uint256 => mapping(bytes32 => address)) | 251 | 0 | 32 | AddressManager | -| __gap | uint256[49] | 252 | 0 | 1568 | AddressManager | - -## AddressResolver -| Name | Type | Slot | Offset | Bytes | Contract | -|----------------|-------------|------|--------|-------|-------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | AddressResolver | -| _initializing | bool | 0 | 1 | 1 | AddressResolver | -| addressManager | address | 0 | 2 | 20 | AddressResolver | -| __gap | uint256[49] | 1 | 0 | 1568 | AddressResolver | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------------------------- | ---- | ------ | ----- | ------------ | +| \_initialized | uint8 | 0 | 0 | 1 | QuotaManager | +| \_initializing | bool | 0 | 1 | 1 | QuotaManager | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | QuotaManager | +| \_owner | address | 51 | 0 | 20 | QuotaManager | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | QuotaManager | +| \_pendingOwner | address | 101 | 0 | 20 | QuotaManager | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | QuotaManager | +| \_\_resolver | address | 151 | 0 | 20 | QuotaManager | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | QuotaManager | +| \_\_reentry | uint8 | 201 | 0 | 1 | QuotaManager | +| \_\_paused | uint8 | 201 | 1 | 1 | QuotaManager | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | QuotaManager | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | QuotaManager | +| tokenQuota | mapping(address => struct QuotaManager.Quota) | 251 | 0 | 32 | QuotaManager | +| quotaPeriod | uint24 | 252 | 0 | 3 | QuotaManager | +| \_\_gap | uint256[48] | 253 | 0 | 1536 | QuotaManager | + +## DefaultResolver + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------------------------------------------- | ---- | ------ | ----- | --------------- | +| \_initialized | uint8 | 0 | 0 | 1 | DefaultResolver | +| \_initializing | bool | 0 | 1 | 1 | DefaultResolver | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | DefaultResolver | +| \_owner | address | 51 | 0 | 20 | DefaultResolver | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | DefaultResolver | +| \_pendingOwner | address | 101 | 0 | 20 | DefaultResolver | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | DefaultResolver | +| \_\_resolver | address | 151 | 0 | 20 | DefaultResolver | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | DefaultResolver | +| \_\_reentry | uint8 | 201 | 0 | 1 | DefaultResolver | +| \_\_paused | uint8 | 201 | 1 | 1 | DefaultResolver | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | DefaultResolver | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | DefaultResolver | +| \_\_addresses | mapping(uint256 => mapping(bytes32 => address)) | 251 | 0 | 32 | DefaultResolver | +| \_\_gap | uint256[49] | 252 | 0 | 1568 | DefaultResolver | ## EssentialContract -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------|------|--------|-------|-----------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | EssentialContract | -| _initializing | bool | 0 | 1 | 1 | EssentialContract | -| __gap | uint256[50] | 1 | 0 | 1600 | EssentialContract | -| _owner | address | 51 | 0 | 20 | EssentialContract | -| __gap | uint256[49] | 52 | 0 | 1568 | EssentialContract | -| _pendingOwner | address | 101 | 0 | 20 | EssentialContract | -| __gap | uint256[49] | 102 | 0 | 1568 | EssentialContract | -| addressManager | address | 151 | 0 | 20 | EssentialContract | -| __gap | uint256[49] | 152 | 0 | 1568 | EssentialContract | -| __reentry | uint8 | 201 | 0 | 1 | EssentialContract | -| __paused | uint8 | 201 | 1 | 1 | EssentialContract | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | EssentialContract | -| __gap | uint256[49] | 202 | 0 | 1568 | EssentialContract | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------- | ---- | ------ | ----- | ----------------- | +| \_initialized | uint8 | 0 | 0 | 1 | EssentialContract | +| \_initializing | bool | 0 | 1 | 1 | EssentialContract | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | EssentialContract | +| \_owner | address | 51 | 0 | 20 | EssentialContract | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | EssentialContract | +| \_pendingOwner | address | 101 | 0 | 20 | EssentialContract | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | EssentialContract | +| \_\_resolver | address | 151 | 0 | 20 | EssentialContract | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | EssentialContract | +| \_\_reentry | uint8 | 201 | 0 | 1 | EssentialContract | +| \_\_paused | uint8 | 201 | 1 | 1 | EssentialContract | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | EssentialContract | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | EssentialContract | ## SignalService -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------------------------|------|--------|-------|---------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | SignalService | -| _initializing | bool | 0 | 1 | 1 | SignalService | -| __gap | uint256[50] | 1 | 0 | 1600 | SignalService | -| _owner | address | 51 | 0 | 20 | SignalService | -| __gap | uint256[49] | 52 | 0 | 1568 | SignalService | -| _pendingOwner | address | 101 | 0 | 20 | SignalService | -| __gap | uint256[49] | 102 | 0 | 1568 | SignalService | -| addressManager | address | 151 | 0 | 20 | SignalService | -| __gap | uint256[49] | 152 | 0 | 1568 | SignalService | -| __reentry | uint8 | 201 | 0 | 1 | SignalService | -| __paused | uint8 | 201 | 1 | 1 | SignalService | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | SignalService | -| __gap | uint256[49] | 202 | 0 | 1568 | SignalService | -| topBlockId | mapping(uint64 => mapping(bytes32 => uint64)) | 251 | 0 | 32 | SignalService | -| isAuthorized | mapping(address => bool) | 252 | 0 | 32 | SignalService | -| __gap | uint256[48] | 253 | 0 | 1536 | SignalService | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------------------------- | ---- | ------ | ----- | ------------- | +| \_initialized | uint8 | 0 | 0 | 1 | SignalService | +| \_initializing | bool | 0 | 1 | 1 | SignalService | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | SignalService | +| \_owner | address | 51 | 0 | 20 | SignalService | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | SignalService | +| \_pendingOwner | address | 101 | 0 | 20 | SignalService | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | SignalService | +| \_\_resolver | address | 151 | 0 | 20 | SignalService | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | SignalService | +| \_\_reentry | uint8 | 201 | 0 | 1 | SignalService | +| \_\_paused | uint8 | 201 | 1 | 1 | SignalService | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | SignalService | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | SignalService | +| topBlockId | mapping(uint64 => mapping(bytes32 => uint64)) | 251 | 0 | 32 | SignalService | +| isAuthorized | mapping(address => bool) | 252 | 0 | 32 | SignalService | +| \_\_gap | uint256[48] | 253 | 0 | 1536 | SignalService | ## BridgedTaikoToken -| Name | Type | Slot | Offset | Bytes | Contract | -|-----------------------------------------------------|---------------------------------------------------------------|------|--------|-------|----------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | BridgedTaikoToken | -| _initializing | bool | 0 | 1 | 1 | BridgedTaikoToken | -| __gap | uint256[50] | 1 | 0 | 1600 | BridgedTaikoToken | -| _owner | address | 51 | 0 | 20 | BridgedTaikoToken | -| __gap | uint256[49] | 52 | 0 | 1568 | BridgedTaikoToken | -| _pendingOwner | address | 101 | 0 | 20 | BridgedTaikoToken | -| __gap | uint256[49] | 102 | 0 | 1568 | BridgedTaikoToken | -| addressManager | address | 151 | 0 | 20 | BridgedTaikoToken | -| __gap | uint256[49] | 152 | 0 | 1568 | BridgedTaikoToken | -| __reentry | uint8 | 201 | 0 | 1 | BridgedTaikoToken | -| __paused | uint8 | 201 | 1 | 1 | BridgedTaikoToken | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedTaikoToken | -| __gap | uint256[49] | 202 | 0 | 1568 | BridgedTaikoToken | -| __slots_previously_used_by_ERC20SnapshotUpgradeable | uint256[50] | 251 | 0 | 1600 | BridgedTaikoToken | -| _balances | mapping(address => uint256) | 301 | 0 | 32 | BridgedTaikoToken | -| _allowances | mapping(address => mapping(address => uint256)) | 302 | 0 | 32 | BridgedTaikoToken | -| _totalSupply | uint256 | 303 | 0 | 32 | BridgedTaikoToken | -| _name | string | 304 | 0 | 32 | BridgedTaikoToken | -| _symbol | string | 305 | 0 | 32 | BridgedTaikoToken | -| __gap | uint256[45] | 306 | 0 | 1440 | BridgedTaikoToken | -| _hashedName | bytes32 | 351 | 0 | 32 | BridgedTaikoToken | -| _hashedVersion | bytes32 | 352 | 0 | 32 | BridgedTaikoToken | -| _name | string | 353 | 0 | 32 | BridgedTaikoToken | -| _version | string | 354 | 0 | 32 | BridgedTaikoToken | -| __gap | uint256[48] | 355 | 0 | 1536 | BridgedTaikoToken | -| _nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | BridgedTaikoToken | -| _PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 404 | 0 | 32 | BridgedTaikoToken | -| __gap | uint256[49] | 405 | 0 | 1568 | BridgedTaikoToken | -| _delegates | mapping(address => address) | 454 | 0 | 32 | BridgedTaikoToken | -| _checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 455 | 0 | 32 | BridgedTaikoToken | -| _totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 456 | 0 | 32 | BridgedTaikoToken | -| __gap | uint256[47] | 457 | 0 | 1504 | BridgedTaikoToken | -| __gap | uint256[50] | 504 | 0 | 1600 | BridgedTaikoToken | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------------------------------- | ------------------------------------------------------------- | ---- | ------ | ----- | ----------------- | +| \_initialized | uint8 | 0 | 0 | 1 | BridgedTaikoToken | +| \_initializing | bool | 0 | 1 | 1 | BridgedTaikoToken | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | BridgedTaikoToken | +| \_owner | address | 51 | 0 | 20 | BridgedTaikoToken | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | BridgedTaikoToken | +| \_pendingOwner | address | 101 | 0 | 20 | BridgedTaikoToken | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | BridgedTaikoToken | +| \_\_resolver | address | 151 | 0 | 20 | BridgedTaikoToken | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | BridgedTaikoToken | +| \_\_reentry | uint8 | 201 | 0 | 1 | BridgedTaikoToken | +| \_\_paused | uint8 | 201 | 1 | 1 | BridgedTaikoToken | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | BridgedTaikoToken | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | BridgedTaikoToken | +| \_\_slots_previously_used_by_ERC20SnapshotUpgradeable | uint256[50] | 251 | 0 | 1600 | BridgedTaikoToken | +| \_balances | mapping(address => uint256) | 301 | 0 | 32 | BridgedTaikoToken | +| \_allowances | mapping(address => mapping(address => uint256)) | 302 | 0 | 32 | BridgedTaikoToken | +| \_totalSupply | uint256 | 303 | 0 | 32 | BridgedTaikoToken | +| \_name | string | 304 | 0 | 32 | BridgedTaikoToken | +| \_symbol | string | 305 | 0 | 32 | BridgedTaikoToken | +| \_\_gap | uint256[45] | 306 | 0 | 1440 | BridgedTaikoToken | +| \_hashedName | bytes32 | 351 | 0 | 32 | BridgedTaikoToken | +| \_hashedVersion | bytes32 | 352 | 0 | 32 | BridgedTaikoToken | +| \_name | string | 353 | 0 | 32 | BridgedTaikoToken | +| \_version | string | 354 | 0 | 32 | BridgedTaikoToken | +| \_\_gap | uint256[48] | 355 | 0 | 1536 | BridgedTaikoToken | +| \_nonces | mapping(address => struct CountersUpgradeable.Counter) | 403 | 0 | 32 | BridgedTaikoToken | +| \_PERMIT_TYPEHASH_DEPRECATED_SLOT | bytes32 | 404 | 0 | 32 | BridgedTaikoToken | +| \_\_gap | uint256[49] | 405 | 0 | 1568 | BridgedTaikoToken | +| \_delegates | mapping(address => address) | 454 | 0 | 32 | BridgedTaikoToken | +| \_checkpoints | mapping(address => struct ERC20VotesUpgradeable.Checkpoint[]) | 455 | 0 | 32 | BridgedTaikoToken | +| \_totalSupplyCheckpoints | struct ERC20VotesUpgradeable.Checkpoint[] | 456 | 0 | 32 | BridgedTaikoToken | +| \_\_gap | uint256[47] | 457 | 0 | 1504 | BridgedTaikoToken | +| \_\_gap | uint256[50] | 504 | 0 | 1600 | BridgedTaikoToken | ## DelegateOwner -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-------------|------|--------|-------|--------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | DelegateOwner | -| _initializing | bool | 0 | 1 | 1 | DelegateOwner | -| __gap | uint256[50] | 1 | 0 | 1600 | DelegateOwner | -| _owner | address | 51 | 0 | 20 | DelegateOwner | -| __gap | uint256[49] | 52 | 0 | 1568 | DelegateOwner | -| _pendingOwner | address | 101 | 0 | 20 | DelegateOwner | -| __gap | uint256[49] | 102 | 0 | 1568 | DelegateOwner | -| addressManager | address | 151 | 0 | 20 | DelegateOwner | -| __gap | uint256[49] | 152 | 0 | 1568 | DelegateOwner | -| __reentry | uint8 | 201 | 0 | 1 | DelegateOwner | -| __paused | uint8 | 201 | 1 | 1 | DelegateOwner | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | DelegateOwner | -| __gap | uint256[49] | 202 | 0 | 1568 | DelegateOwner | -| remoteChainId | uint64 | 251 | 0 | 8 | DelegateOwner | -| admin | address | 251 | 8 | 20 | DelegateOwner | -| nextTxId | uint64 | 252 | 0 | 8 | DelegateOwner | -| remoteOwner | address | 252 | 8 | 20 | DelegateOwner | -| __gap | uint256[48] | 253 | 0 | 1536 | DelegateOwner | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | ----------- | ---- | ------ | ----- | ------------- | +| \_initialized | uint8 | 0 | 0 | 1 | DelegateOwner | +| \_initializing | bool | 0 | 1 | 1 | DelegateOwner | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | DelegateOwner | +| \_owner | address | 51 | 0 | 20 | DelegateOwner | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | DelegateOwner | +| \_pendingOwner | address | 101 | 0 | 20 | DelegateOwner | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | DelegateOwner | +| \_\_resolver | address | 151 | 0 | 20 | DelegateOwner | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | DelegateOwner | +| \_\_reentry | uint8 | 201 | 0 | 1 | DelegateOwner | +| \_\_paused | uint8 | 201 | 1 | 1 | DelegateOwner | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | DelegateOwner | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | DelegateOwner | +| remoteChainId | uint64 | 251 | 0 | 8 | DelegateOwner | +| admin | address | 251 | 8 | 20 | DelegateOwner | +| nextTxId | uint64 | 252 | 0 | 8 | DelegateOwner | +| remoteOwner | address | 252 | 8 | 20 | DelegateOwner | +| \_\_gap | uint256[48] | 253 | 0 | 1536 | DelegateOwner | ## TaikoL2 -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------|------|--------|-------|--------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | TaikoL2 | -| _initializing | bool | 0 | 1 | 1 | TaikoL2 | -| __gap | uint256[50] | 1 | 0 | 1600 | TaikoL2 | -| _owner | address | 51 | 0 | 20 | TaikoL2 | -| __gap | uint256[49] | 52 | 0 | 1568 | TaikoL2 | -| _pendingOwner | address | 101 | 0 | 20 | TaikoL2 | -| __gap | uint256[49] | 102 | 0 | 1568 | TaikoL2 | -| addressManager | address | 151 | 0 | 20 | TaikoL2 | -| __gap | uint256[49] | 152 | 0 | 1568 | TaikoL2 | -| __reentry | uint8 | 201 | 0 | 1 | TaikoL2 | -| __paused | uint8 | 201 | 1 | 1 | TaikoL2 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | TaikoL2 | -| __gap | uint256[49] | 202 | 0 | 1568 | TaikoL2 | -| _blockhashes | mapping(uint256 => bytes32) | 251 | 0 | 32 | TaikoL2 | -| publicInputHash | bytes32 | 252 | 0 | 32 | TaikoL2 | -| parentGasExcess | uint64 | 253 | 0 | 8 | TaikoL2 | -| lastSyncedBlock | uint64 | 253 | 8 | 8 | TaikoL2 | -| parentTimestamp | uint64 | 253 | 16 | 8 | TaikoL2 | -| parentGasTarget | uint64 | 253 | 24 | 8 | TaikoL2 | -| l1ChainId | uint64 | 254 | 0 | 8 | TaikoL2 | -| __gap | uint256[46] | 255 | 0 | 1472 | TaikoL2 | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------- | ---- | ------ | ----- | -------- | +| \_initialized | uint8 | 0 | 0 | 1 | TaikoL2 | +| \_initializing | bool | 0 | 1 | 1 | TaikoL2 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | TaikoL2 | +| \_owner | address | 51 | 0 | 20 | TaikoL2 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | TaikoL2 | +| \_pendingOwner | address | 101 | 0 | 20 | TaikoL2 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | TaikoL2 | +| \_\_resolver | address | 151 | 0 | 20 | TaikoL2 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | TaikoL2 | +| \_\_reentry | uint8 | 201 | 0 | 1 | TaikoL2 | +| \_\_paused | uint8 | 201 | 1 | 1 | TaikoL2 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | TaikoL2 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | TaikoL2 | +| \_blockhashes | mapping(uint256 => bytes32) | 251 | 0 | 32 | TaikoL2 | +| publicInputHash | bytes32 | 252 | 0 | 32 | TaikoL2 | +| parentGasExcess | uint64 | 253 | 0 | 8 | TaikoL2 | +| lastSyncedBlock | uint64 | 253 | 8 | 8 | TaikoL2 | +| parentTimestamp | uint64 | 253 | 16 | 8 | TaikoL2 | +| parentGasTarget | uint64 | 253 | 24 | 8 | TaikoL2 | +| l1ChainId | uint64 | 254 | 0 | 8 | TaikoL2 | +| \_\_gap | uint256[46] | 255 | 0 | 1472 | TaikoL2 | ## HeklaTaikoL2 -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------|------|--------|-------|------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | HeklaTaikoL2 | -| _initializing | bool | 0 | 1 | 1 | HeklaTaikoL2 | -| __gap | uint256[50] | 1 | 0 | 1600 | HeklaTaikoL2 | -| _owner | address | 51 | 0 | 20 | HeklaTaikoL2 | -| __gap | uint256[49] | 52 | 0 | 1568 | HeklaTaikoL2 | -| _pendingOwner | address | 101 | 0 | 20 | HeklaTaikoL2 | -| __gap | uint256[49] | 102 | 0 | 1568 | HeklaTaikoL2 | -| addressManager | address | 151 | 0 | 20 | HeklaTaikoL2 | -| __gap | uint256[49] | 152 | 0 | 1568 | HeklaTaikoL2 | -| __reentry | uint8 | 201 | 0 | 1 | HeklaTaikoL2 | -| __paused | uint8 | 201 | 1 | 1 | HeklaTaikoL2 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | HeklaTaikoL2 | -| __gap | uint256[49] | 202 | 0 | 1568 | HeklaTaikoL2 | -| _blockhashes | mapping(uint256 => bytes32) | 251 | 0 | 32 | HeklaTaikoL2 | -| publicInputHash | bytes32 | 252 | 0 | 32 | HeklaTaikoL2 | -| parentGasExcess | uint64 | 253 | 0 | 8 | HeklaTaikoL2 | -| lastSyncedBlock | uint64 | 253 | 8 | 8 | HeklaTaikoL2 | -| parentTimestamp | uint64 | 253 | 16 | 8 | HeklaTaikoL2 | -| parentGasTarget | uint64 | 253 | 24 | 8 | HeklaTaikoL2 | -| l1ChainId | uint64 | 254 | 0 | 8 | HeklaTaikoL2 | -| __gap | uint256[46] | 255 | 0 | 1472 | HeklaTaikoL2 | + +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------- | ---- | ------ | ----- | ------------ | +| \_initialized | uint8 | 0 | 0 | 1 | HeklaTaikoL2 | +| \_initializing | bool | 0 | 1 | 1 | HeklaTaikoL2 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | HeklaTaikoL2 | +| \_owner | address | 51 | 0 | 20 | HeklaTaikoL2 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | HeklaTaikoL2 | +| \_pendingOwner | address | 101 | 0 | 20 | HeklaTaikoL2 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | HeklaTaikoL2 | +| \_\_resolver | address | 151 | 0 | 20 | HeklaTaikoL2 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | HeklaTaikoL2 | +| \_\_reentry | uint8 | 201 | 0 | 1 | HeklaTaikoL2 | +| \_\_paused | uint8 | 201 | 1 | 1 | HeklaTaikoL2 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | HeklaTaikoL2 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | HeklaTaikoL2 | +| \_blockhashes | mapping(uint256 => bytes32) | 251 | 0 | 32 | HeklaTaikoL2 | +| publicInputHash | bytes32 | 252 | 0 | 32 | HeklaTaikoL2 | +| parentGasExcess | uint64 | 253 | 0 | 8 | HeklaTaikoL2 | +| lastSyncedBlock | uint64 | 253 | 8 | 8 | HeklaTaikoL2 | +| parentTimestamp | uint64 | 253 | 16 | 8 | HeklaTaikoL2 | +| parentGasTarget | uint64 | 253 | 24 | 8 | HeklaTaikoL2 | +| l1ChainId | uint64 | 254 | 0 | 8 | HeklaTaikoL2 | +| \_\_gap | uint256[46] | 255 | 0 | 1472 | HeklaTaikoL2 | ## MainnetTaikoL2 -| Name | Type | Slot | Offset | Bytes | Contract | -|------------------|-----------------------------|------|--------|-------|------------------------------------------------------------| -| _initialized | uint8 | 0 | 0 | 1 | MainnetTaikoL2 | -| _initializing | bool | 0 | 1 | 1 | MainnetTaikoL2 | -| __gap | uint256[50] | 1 | 0 | 1600 | MainnetTaikoL2 | -| _owner | address | 51 | 0 | 20 | MainnetTaikoL2 | -| __gap | uint256[49] | 52 | 0 | 1568 | MainnetTaikoL2 | -| _pendingOwner | address | 101 | 0 | 20 | MainnetTaikoL2 | -| __gap | uint256[49] | 102 | 0 | 1568 | MainnetTaikoL2 | -| addressManager | address | 151 | 0 | 20 | MainnetTaikoL2 | -| __gap | uint256[49] | 152 | 0 | 1568 | MainnetTaikoL2 | -| __reentry | uint8 | 201 | 0 | 1 | MainnetTaikoL2 | -| __paused | uint8 | 201 | 1 | 1 | MainnetTaikoL2 | -| __lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetTaikoL2 | -| __gap | uint256[49] | 202 | 0 | 1568 | MainnetTaikoL2 | -| _blockhashes | mapping(uint256 => bytes32) | 251 | 0 | 32 | MainnetTaikoL2 | -| publicInputHash | bytes32 | 252 | 0 | 32 | MainnetTaikoL2 | -| parentGasExcess | uint64 | 253 | 0 | 8 | MainnetTaikoL2 | -| lastSyncedBlock | uint64 | 253 | 8 | 8 | MainnetTaikoL2 | -| parentTimestamp | uint64 | 253 | 16 | 8 | MainnetTaikoL2 | -| parentGasTarget | uint64 | 253 | 24 | 8 | MainnetTaikoL2 | -| l1ChainId | uint64 | 254 | 0 | 8 | MainnetTaikoL2 | -| __gap | uint256[46] | 255 | 0 | 1472 | MainnetTaikoL2 | +| Name | Type | Slot | Offset | Bytes | Contract | +| ----------------------------- | --------------------------- | ---- | ------ | ----- | -------------- | +| \_initialized | uint8 | 0 | 0 | 1 | MainnetTaikoL2 | +| \_initializing | bool | 0 | 1 | 1 | MainnetTaikoL2 | +| \_\_gap | uint256[50] | 1 | 0 | 1600 | MainnetTaikoL2 | +| \_owner | address | 51 | 0 | 20 | MainnetTaikoL2 | +| \_\_gap | uint256[49] | 52 | 0 | 1568 | MainnetTaikoL2 | +| \_pendingOwner | address | 101 | 0 | 20 | MainnetTaikoL2 | +| \_\_gap | uint256[49] | 102 | 0 | 1568 | MainnetTaikoL2 | +| \_\_resolver | address | 151 | 0 | 20 | MainnetTaikoL2 | +| \_\_gapFromOldAddressResolver | uint256[49] | 152 | 0 | 1568 | MainnetTaikoL2 | +| \_\_reentry | uint8 | 201 | 0 | 1 | MainnetTaikoL2 | +| \_\_paused | uint8 | 201 | 1 | 1 | MainnetTaikoL2 | +| \_\_lastUnpausedAt | uint64 | 201 | 2 | 8 | MainnetTaikoL2 | +| \_\_gap | uint256[49] | 202 | 0 | 1568 | MainnetTaikoL2 | +| \_blockhashes | mapping(uint256 => bytes32) | 251 | 0 | 32 | MainnetTaikoL2 | +| publicInputHash | bytes32 | 252 | 0 | 32 | MainnetTaikoL2 | +| parentGasExcess | uint64 | 253 | 0 | 8 | MainnetTaikoL2 | +| lastSyncedBlock | uint64 | 253 | 8 | 8 | MainnetTaikoL2 | +| parentTimestamp | uint64 | 253 | 16 | 8 | MainnetTaikoL2 | +| parentGasTarget | uint64 | 253 | 24 | 8 | MainnetTaikoL2 | +| l1ChainId | uint64 | 254 | 0 | 8 | MainnetTaikoL2 | +| \_\_gap | uint256[46] | 255 | 0 | 1472 | MainnetTaikoL2 | diff --git a/packages/protocol/contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol b/packages/protocol/contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol index 4b019c4723c..4ebff55fd2a 100644 --- a/packages/protocol/contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol +++ b/packages/protocol/contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol @@ -437,7 +437,7 @@ contract AutomataDcapV3Attestation is IAttestation, EssentialContract { for (uint256 i; i < 3; ++i) { bool isPckCert = i == 0; // additional parsing for PCKCert bool certDecodedSuccessfully; - // todo! move decodeCert offchain + // TODO(Yue): move decodeCert offchain (certDecodedSuccessfully, parsedQuoteCerts[i]) = pemCertLib.decodeCert( authDataV3.certification.decodedCertDataArray[i], isPckCert ); diff --git a/packages/protocol/contracts/layer1/automata-attestation/lib/QuoteV3Auth/V3Struct.sol b/packages/protocol/contracts/layer1/automata-attestation/lib/QuoteV3Auth/V3Struct.sol index 9ecb7572947..e215829d9c0 100644 --- a/packages/protocol/contracts/layer1/automata-attestation/lib/QuoteV3Auth/V3Struct.sol +++ b/packages/protocol/contracts/layer1/automata-attestation/lib/QuoteV3Auth/V3Struct.sol @@ -37,7 +37,7 @@ library V3Struct { struct CertificationData { uint16 certType; - // todo! In encoded path, we need to calculate the size of certDataArray + // TODO(Yue): In encoded path, we need to calculate the size of certDataArray // certDataSize = len(join((BEGIN_CERT, certArray[i], END_CERT) for i in 0..3)) // But for plain bytes path, we don't need that. uint32 certDataSize; diff --git a/packages/protocol/contracts/layer1/based/ITaikoL1.sol b/packages/protocol/contracts/layer1/based/ITaikoL1.sol index a3d1d02e660..73cf2c55d68 100644 --- a/packages/protocol/contracts/layer1/based/ITaikoL1.sol +++ b/packages/protocol/contracts/layer1/based/ITaikoL1.sol @@ -93,5 +93,5 @@ interface ITaikoL1 { /// @notice Gets the configuration of the TaikoL1 contract. /// @return Config struct containing configuration parameters. - function getConfig() external pure returns (TaikoData.Config memory); + function getConfig() external view returns (TaikoData.Config memory); } diff --git a/packages/protocol/contracts/layer1/based/LibBonds.sol b/packages/protocol/contracts/layer1/based/LibBonds.sol index 64aceb36e94..fa2a01c8983 100644 --- a/packages/protocol/contracts/layer1/based/LibBonds.sol +++ b/packages/protocol/contracts/layer1/based/LibBonds.sol @@ -3,9 +3,9 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "src/shared/common/IAddressResolver.sol"; -import "src/shared/common/LibAddress.sol"; -import "src/shared/common/LibStrings.sol"; +import "src/shared/common/IResolver.sol"; +import "src/shared/libs/LibAddress.sol"; +import "src/shared/libs/LibStrings.sol"; import "./TaikoData.sol"; /// @title LibBonds @@ -43,7 +43,7 @@ library LibBonds { /// @param _amount The amount of tokens to deposit. function depositBond( TaikoData.State storage _state, - IAddressResolver _resolver, + IResolver _resolver, uint256 _amount ) public @@ -58,7 +58,7 @@ library LibBonds { /// @param _amount The amount of tokens to withdraw. function withdrawBond( TaikoData.State storage _state, - IAddressResolver _resolver, + IResolver _resolver, uint256 _amount ) public @@ -97,7 +97,7 @@ library LibBonds { /// @param _amount The amount of tokens to debit. function debitBond( TaikoData.State storage _state, - IAddressResolver _resolver, + IResolver _resolver, address _user, uint256 _blockId, uint256 _amount @@ -142,7 +142,7 @@ library LibBonds { /// @param _resolver The address resolver. /// @param _user The user who made the deposit /// @param _amount The amount of tokens or Ether to deposit. - function _handleDeposit(IAddressResolver _resolver, address _user, uint256 _amount) private { + function _handleDeposit(IResolver _resolver, address _user, uint256 _amount) private { address bondToken = _bondToken(_resolver); if (bondToken != address(0)) { @@ -158,7 +158,7 @@ library LibBonds { /// is used as bond asset. /// @param _resolver The address resolver. /// @return The IERC20 interface of the TAIKO token. - function _bondToken(IAddressResolver _resolver) private view returns (address) { - return _resolver.resolve(LibStrings.B_BOND_TOKEN, true); + function _bondToken(IResolver _resolver) private view returns (address) { + return _resolver.resolve(block.chainid, LibStrings.B_BOND_TOKEN, true); } } diff --git a/packages/protocol/contracts/layer1/based/LibProposing.sol b/packages/protocol/contracts/layer1/based/LibProposing.sol index 4f6788a480b..16712a367ae 100644 --- a/packages/protocol/contracts/layer1/based/LibProposing.sol +++ b/packages/protocol/contracts/layer1/based/LibProposing.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/shared/common/LibAddress.sol"; -import "src/shared/common/LibNetwork.sol"; +import "src/shared/libs/LibAddress.sol"; +import "src/shared/libs/LibNetwork.sol"; import "./LibBonds.sol"; import "./LibData.sol"; import "./LibUtils.sol"; @@ -55,7 +55,7 @@ library LibProposing { function proposeBlocks( TaikoData.State storage _state, TaikoData.Config memory _config, - IAddressResolver _resolver, + IResolver _resolver, bytes[] calldata _paramsArr, bytes[] calldata _txListArr ) @@ -91,7 +91,7 @@ library LibProposing { function proposeBlock( TaikoData.State storage _state, TaikoData.Config memory _config, - IAddressResolver _resolver, + IResolver _resolver, bytes calldata _params, bytes calldata _txList ) @@ -117,7 +117,7 @@ library LibProposing { function _proposeBlock( TaikoData.State storage _state, TaikoData.Config memory _config, - IAddressResolver _resolver, + IResolver _resolver, bytes calldata _params, bytes calldata _txList ) @@ -139,7 +139,8 @@ library LibProposing { ); } - address preconfTaskManager = _resolver.resolve(LibStrings.B_PRECONF_TASK_MANAGER, true); + address preconfTaskManager = + _resolver.resolve(block.chainid, LibStrings.B_PRECONF_TASK_MANAGER, true); if (preconfTaskManager != address(0)) { require(preconfTaskManager == msg.sender, L1_INVALID_PROPOSER()); local.allowCustomProposer = true; @@ -191,14 +192,13 @@ library LibProposing { emit CalldataTxList(meta_.id, _txList); } - local.tierProvider = ITierProvider( - ITierRouter(_resolver.resolve(LibStrings.B_TIER_ROUTER, false)).getProvider( - local.b.numBlocks - ) - ); + local.tierProvider = + ITierProvider(_resolver.resolve(block.chainid, LibStrings.B_TIER_PROVIDER, false)); // Use the difficulty as a random number - meta_.minTier = local.tierProvider.getMinTier(meta_.proposer, uint256(meta_.difficulty)); + meta_.minTier = local.tierProvider.getMinTier( + local.b.numBlocks, meta_.proposer, uint256(meta_.difficulty) + ); // Create the block that will be stored onchain TaikoData.BlockV2 memory blk = TaikoData.BlockV2({ diff --git a/packages/protocol/contracts/layer1/based/LibProving.sol b/packages/protocol/contracts/layer1/based/LibProving.sol index d5b26727daf..ea8be0e1724 100644 --- a/packages/protocol/contracts/layer1/based/LibProving.sol +++ b/packages/protocol/contracts/layer1/based/LibProving.sol @@ -105,7 +105,7 @@ library LibProving { function proveBlocks( TaikoData.State storage _state, TaikoData.Config memory _config, - IAddressResolver _resolver, + IResolver _resolver, uint64[] calldata _blockIds, bytes[] calldata _inputs, bytes calldata _batchProof @@ -145,7 +145,7 @@ library LibProving { // If batch verifier name is not empty, verify the batch proof. if (batchVerifierName != LibStrings.B_TIER_OPTIMISTIC) { - IVerifier(_resolver.resolve(batchVerifierName, false)).verifyBatchProof( + IVerifier(_resolver.resolve(block.chainid, batchVerifierName, false)).verifyBatchProof( ctxs, batchProof ); } @@ -162,7 +162,7 @@ library LibProving { function proveBlock( TaikoData.State storage _state, TaikoData.Config memory _config, - IAddressResolver _resolver, + IResolver _resolver, uint64 _blockId, bytes calldata _input ) @@ -187,7 +187,7 @@ library LibProving { function _proveBlock( TaikoData.State storage _state, TaikoData.Config memory _config, - IAddressResolver _resolver, + IResolver _resolver, uint64 _blockId, bytes calldata _input, TaikoData.TierProof memory _batchProof @@ -248,11 +248,11 @@ library LibProving { // Retrieve the tier configurations. If the tier is not supported, the subsequent action // will result in a revert. { - ITierRouter tierRouter = ITierRouter(_resolver.resolve(LibStrings.B_TIER_ROUTER, false)); - ITierProvider tierProvider = ITierProvider(tierRouter.getProvider(local.blockId)); + ITierProvider tierProvider = + ITierProvider(_resolver.resolve(block.chainid, LibStrings.B_TIER_PROVIDER, false)); - local.tier = tierProvider.getTier(local.proof.tier); - local.minTier = tierProvider.getTier(local.meta.minTier); + local.tier = tierProvider.getTier(local.blockId, local.proof.tier); + local.minTier = tierProvider.getTier(local.blockId, local.meta.minTier); local.isTopTier = local.tier.contestBond == 0; } @@ -295,9 +295,8 @@ library LibProving { if (_batchProof.tier == 0) { // In the case of per-transition proof, we verify the proof. - IVerifier(_resolver.resolve(local.tier.verifierName, false)).verifyProof( - LibData.verifierContextV2ToV1(ctx_), ctx_.tran, local.proof - ); + IVerifier(_resolver.resolve(block.chainid, local.tier.verifierName, false)) + .verifyProof(LibData.verifierContextV2ToV1(ctx_), ctx_.tran, local.proof); } } @@ -468,7 +467,7 @@ library LibProving { /// @param _local Current Local struct. function _overrideWithHigherProof( TaikoData.State storage _state, - IAddressResolver _resolver, + IResolver _resolver, TaikoData.BlockV2 storage _blk, TaikoData.TransitionState memory _ts, TaikoData.Transition memory _tran, diff --git a/packages/protocol/contracts/layer1/based/LibUtils.sol b/packages/protocol/contracts/layer1/based/LibUtils.sol index def7f9ca00c..255cc049ab3 100644 --- a/packages/protocol/contracts/layer1/based/LibUtils.sol +++ b/packages/protocol/contracts/layer1/based/LibUtils.sol @@ -1,11 +1,10 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/shared/common/IAddressResolver.sol"; -import "src/shared/common/LibStrings.sol"; -import "src/shared/common/LibMath.sol"; +import "src/shared/common/IResolver.sol"; +import "src/shared/libs/LibStrings.sol"; +import "src/shared/libs/LibMath.sol"; import "../tiers/ITierProvider.sol"; -import "../tiers/ITierRouter.sol"; import "./TaikoData.sol"; /// @title LibUtils diff --git a/packages/protocol/contracts/layer1/based/LibVerifying.sol b/packages/protocol/contracts/layer1/based/LibVerifying.sol index a4a8833f0aa..7af72719ec1 100644 --- a/packages/protocol/contracts/layer1/based/LibVerifying.sol +++ b/packages/protocol/contracts/layer1/based/LibVerifying.sol @@ -24,7 +24,7 @@ library LibVerifying { uint64 syncBlockId; uint24 syncTransitionId; address prover; - ITierRouter tierRouter; + ITierProvider tierProvider; } error L1_BLOCK_MISMATCH(); @@ -38,7 +38,7 @@ library LibVerifying { function verifyBlocks( TaikoData.State storage _state, TaikoData.Config memory _config, - IAddressResolver _resolver, + IResolver _resolver, uint64 _maxBlocksToVerify ) internal @@ -95,14 +95,14 @@ library LibVerifying { break; } - if (local.tierRouter == ITierRouter(address(0))) { - local.tierRouter = - ITierRouter(_resolver.resolve(LibStrings.B_TIER_ROUTER, false)); + if (local.tierProvider == ITierProvider(address(0))) { + local.tierProvider = ITierProvider( + _resolver.resolve(block.chainid, LibStrings.B_TIER_PROVIDER, false) + ); } - uint24 cooldown = ITierProvider(local.tierRouter.getProvider(local.blockId)).getTier( - local.tier - ).cooldownWindow; + uint24 cooldown = + local.tierProvider.getTier(local.blockId, local.tier).cooldownWindow; if (!LibUtils.isPostDeadline(ts.timestamp, local.b.lastUnpausedAt, cooldown)) { // If cooldownWindow is 0, the block can theoretically be proved and verified @@ -162,8 +162,9 @@ library LibVerifying { } // Ask signal service to write cross chain signal - ISignalService(_resolver.resolve(LibStrings.B_SIGNAL_SERVICE, false)) - .syncChainData( + ISignalService( + _resolver.resolve(block.chainid, LibStrings.B_SIGNAL_SERVICE, false) + ).syncChainData( _config.chainId, LibStrings.H_STATE_ROOT, local.syncBlockId, diff --git a/packages/protocol/contracts/layer1/based/TaikoData.sol b/packages/protocol/contracts/layer1/based/TaikoData.sol index 893e6c7cb3c..2f3cb36ad70 100644 --- a/packages/protocol/contracts/layer1/based/TaikoData.sol +++ b/packages/protocol/contracts/layer1/based/TaikoData.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/shared/data/LibSharedData.sol"; +import "src/shared/based/LibSharedData.sol"; /// @title TaikoData /// @notice This library defines various data structures used in the Taiko protocol. diff --git a/packages/protocol/contracts/layer1/based/TaikoL1.sol b/packages/protocol/contracts/layer1/based/TaikoL1.sol index 1ce30755442..2a8b9a7ba82 100644 --- a/packages/protocol/contracts/layer1/based/TaikoL1.sol +++ b/packages/protocol/contracts/layer1/based/TaikoL1.sol @@ -56,19 +56,19 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _rollupAddressManager The address of the {AddressManager} contract. + /// @param _rollupResolver The {IResolver} used by this rollup. /// @param _genesisBlockHash The block hash of the genesis block. /// @param _toPause true to pause the contract by default. function init( address _owner, - address _rollupAddressManager, + address _rollupResolver, bytes32 _genesisBlockHash, bool _toPause ) external initializer { - __Essential_init(_owner, _rollupAddressManager); + __Essential_init(_owner, _rollupResolver); LibUtils.init(state, _genesisBlockHash); if (_toPause) _pause(); } @@ -97,7 +97,7 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { returns (TaikoData.BlockMetadataV2 memory meta_) { TaikoData.Config memory config = getConfig(); - return LibProposing.proposeBlock(state, config, this, _params, _txList); + return LibProposing.proposeBlock(state, config, resolver(), _params, _txList); } /// @inheritdoc ITaikoL1 @@ -113,7 +113,7 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { returns (TaikoData.BlockMetadataV2[] memory metaArr_) { TaikoData.Config memory config = getConfig(); - return LibProposing.proposeBlocks(state, config, this, _paramsArr, _txListArr); + return LibProposing.proposeBlocks(state, config, resolver(), _paramsArr, _txListArr); } /// @inheritdoc ITaikoL1 @@ -128,7 +128,7 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { nonReentrant emitEventForClient { - LibProving.proveBlock(state, getConfig(), this, _blockId, _input); + LibProving.proveBlock(state, getConfig(), resolver(), _blockId, _input); } /// @inheritdoc ITaikoL1 @@ -144,7 +144,7 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { nonReentrant emitEventForClient { - LibProving.proveBlocks(state, getConfig(), this, _blockIds, _inputs, _batchProof); + LibProving.proveBlocks(state, getConfig(), resolver(), _blockIds, _inputs, _batchProof); } /// @inheritdoc ITaikoL1 @@ -155,7 +155,7 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { nonReentrant emitEventForClient { - LibVerifying.verifyBlocks(state, getConfig(), this, _maxBlocksToVerify); + LibVerifying.verifyBlocks(state, getConfig(), resolver(), _maxBlocksToVerify); } /// @inheritdoc ITaikoL1 @@ -166,12 +166,12 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { /// @inheritdoc ITaikoL1 function depositBond(uint256 _amount) external payable whenNotPaused { - LibBonds.depositBond(state, this, _amount); + LibBonds.depositBond(state, resolver(), _amount); } /// @inheritdoc ITaikoL1 function withdrawBond(uint256 _amount) external whenNotPaused { - LibBonds.withdrawBond(state, this, _amount); + LibBonds.withdrawBond(state, resolver(), _amount); } /// @notice Unpauses the contract. @@ -311,7 +311,7 @@ contract TaikoL1 is EssentialContract, ITaikoL1, TaikoEvents { } /// @inheritdoc ITaikoL1 - function getConfig() public pure virtual returns (TaikoData.Config memory) { + function getConfig() public view virtual returns (TaikoData.Config memory) { return TaikoData.Config({ chainId: LibNetwork.TAIKO_MAINNET, blockMaxProposals: 324_000, // = 7200 * 45 diff --git a/packages/protocol/contracts/layer1/devnet/DevnetTierRouter.sol b/packages/protocol/contracts/layer1/devnet/DevnetTierProvider.sol similarity index 60% rename from packages/protocol/contracts/layer1/devnet/DevnetTierRouter.sol rename to packages/protocol/contracts/layer1/devnet/DevnetTierProvider.sol index 134265349a6..82cae3afcb5 100644 --- a/packages/protocol/contracts/layer1/devnet/DevnetTierRouter.sol +++ b/packages/protocol/contracts/layer1/devnet/DevnetTierProvider.sol @@ -2,16 +2,10 @@ pragma solidity ^0.8.24; import "../tiers/TierProviderBase.sol"; -import "../tiers/ITierRouter.sol"; -/// @title DevnetTierRouter +/// @title DevnetTierProvider /// @custom:security-contact security@taiko.xyz -contract DevnetTierRouter is TierProviderBase, ITierRouter { - /// @inheritdoc ITierRouter - function getProvider(uint256) external view returns (address) { - return address(this); - } - +contract DevnetTierProvider is TierProviderBase { /// @inheritdoc ITierProvider function getTierIds() external pure returns (uint16[] memory tiers_) { tiers_ = new uint16[](3); @@ -21,7 +15,7 @@ contract DevnetTierRouter is TierProviderBase, ITierRouter { } /// @inheritdoc ITierProvider - function getMinTier(address, uint256) public pure override returns (uint16) { + function getMinTier(uint64, address, uint256) public pure override returns (uint16) { return LibTiers.TIER_OPTIMISTIC; } } diff --git a/packages/protocol/contracts/layer1/hekla/HeklaTaikoToken.sol b/packages/protocol/contracts/layer1/hekla/HeklaTaikoToken.sol index b7eb6590bb7..02114f3c9a5 100644 --- a/packages/protocol/contracts/layer1/hekla/HeklaTaikoToken.sol +++ b/packages/protocol/contracts/layer1/hekla/HeklaTaikoToken.sol @@ -23,18 +23,16 @@ contract HeklaTaikoToken is EssentialContract, ERC20SnapshotUpgradeable, ERC20Vo /// @param _name The name of the token. /// @param _symbol The symbol of the token. /// @param _recipient The address to receive initial token minting. - /// @param _addressManager The AddressManager address. function init( address _owner, string calldata _name, string calldata _symbol, - address _recipient, - address _addressManager + address _recipient ) public initializer { - __Essential_init(_owner, _addressManager); + __Essential_init(_owner); __ERC20_init(_name, _symbol); __ERC20Snapshot_init(); __ERC20Votes_init(); diff --git a/packages/protocol/contracts/layer1/hekla/HeklaTierRouter.sol b/packages/protocol/contracts/layer1/hekla/HeklaTierProvider.sol similarity index 80% rename from packages/protocol/contracts/layer1/hekla/HeklaTierRouter.sol rename to packages/protocol/contracts/layer1/hekla/HeklaTierProvider.sol index 4d99e08ee4a..00860fd5724 100644 --- a/packages/protocol/contracts/layer1/hekla/HeklaTierRouter.sol +++ b/packages/protocol/contracts/layer1/hekla/HeklaTierProvider.sol @@ -2,13 +2,12 @@ pragma solidity ^0.8.24; import "../tiers/TierProviderBase.sol"; -import "../tiers/ITierRouter.sol"; /// @title HeklaTierRouter /// @dev Any changes to the configuration in this file must be announced and documented on our site. /// Ensure all modifications are reviewed by the devrel team. /// @custom:security-contact security@taiko.xyz -contract HeklaTierRouter is TierProviderBase, ITierRouter { +contract HeklaTierProvider is TierProviderBase { address public immutable DAO_FALLBACK_PROPOSER; constructor(address _daoFallbackProposer) { @@ -16,11 +15,6 @@ contract HeklaTierRouter is TierProviderBase, ITierRouter { DAO_FALLBACK_PROPOSER = _daoFallbackProposer; } - /// @inheritdoc ITierRouter - function getProvider(uint256) external view returns (address) { - return address(this); - } - /// @inheritdoc ITierProvider function getTierIds() external pure returns (uint16[] memory tiers_) { tiers_ = new uint16[](6); @@ -33,7 +27,16 @@ contract HeklaTierRouter is TierProviderBase, ITierRouter { } /// @inheritdoc ITierProvider - function getMinTier(address _proposer, uint256 _rand) public view override returns (uint16) { + function getMinTier( + uint64, + address _proposer, + uint256 _rand + ) + public + view + override + returns (uint16) + { if (_proposer == DAO_FALLBACK_PROPOSER) { if (_rand % 100 == 0) return LibTiers.TIER_ZKVM_RISC0; else if (_rand % 1000 == 1) return LibTiers.TIER_ZKVM_SP1; diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetTaikoL1.sol b/packages/protocol/contracts/layer1/mainnet/MainnetTaikoL1.sol similarity index 85% rename from packages/protocol/contracts/layer1/mainnet/rollup/MainnetTaikoL1.sol rename to packages/protocol/contracts/layer1/mainnet/MainnetTaikoL1.sol index 8c43054d500..364fce2469c 100644 --- a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetTaikoL1.sol +++ b/packages/protocol/contracts/layer1/mainnet/MainnetTaikoL1.sol @@ -2,15 +2,15 @@ pragma solidity ^0.8.24; import "src/layer1/based/TaikoL1.sol"; -import "../addrcache/RollupAddressCache.sol"; -import "../reentrylock/LibFasterReentryLock.sol"; +import "src/shared/libs/LibNetwork.sol"; +import "./libs/LibFasterReentryLock.sol"; /// @title MainnetTaikoL1 /// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko /// mainnet to reduce gas cost. /// @notice See the documentation in {TaikoL1}. /// @custom:security-contact security@taiko.xyz -contract MainnetTaikoL1 is TaikoL1, RollupAddressCache { +contract MainnetTaikoL1 is TaikoL1 { /// @inheritdoc ITaikoL1 function getConfig() public pure override returns (TaikoData.Config memory) { // All hard-coded configurations: @@ -39,10 +39,6 @@ contract MainnetTaikoL1 is TaikoL1, RollupAddressCache { }); } - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - function _storeReentryLock(uint8 _reentry) internal override { LibFasterReentryLock.storeReentryLock(_reentry); } diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetTierRouter.sol b/packages/protocol/contracts/layer1/mainnet/MainnetTierProvider.sol similarity index 65% rename from packages/protocol/contracts/layer1/mainnet/rollup/MainnetTierRouter.sol rename to packages/protocol/contracts/layer1/mainnet/MainnetTierProvider.sol index 0499226f1ce..1ec8b76fd6d 100644 --- a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetTierRouter.sol +++ b/packages/protocol/contracts/layer1/mainnet/MainnetTierProvider.sol @@ -1,25 +1,19 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/layer1/tiers/ITierRouter.sol"; import "src/layer1/tiers/TierProviderBase.sol"; -/// @title MainnetTierRouter +/// @title MainnetTierProvider /// @dev Any changes to the configuration in this file must be announced and documented on our site. /// Ensure all modifications are reviewed by the devrel team. /// @dev Labeled in AddressResolver as "tier_router" /// @custom:security-contact security@taiko.xyz -contract MainnetTierRouter is ITierRouter, TierProviderBase { - address public immutable DAO_FALLBACK_PROPOSER; +contract MainnetTierProvider is TierProviderBase { + address public immutable taikoBeatsProposer; - constructor(address _daoFallbackProposer) { + constructor(address _taikoBeatsProposer) { // 0x68d30f47F19c07bCCEf4Ac7FAE2Dc12FCa3e0dC9 - DAO_FALLBACK_PROPOSER = _daoFallbackProposer; - } - - /// @inheritdoc ITierRouter - function getProvider(uint256) external view returns (address) { - return address(this); + taikoBeatsProposer = _taikoBeatsProposer; } /// @inheritdoc ITierProvider @@ -33,8 +27,17 @@ contract MainnetTierRouter is ITierRouter, TierProviderBase { } /// @inheritdoc ITierProvider - function getMinTier(address _proposer, uint256 _rand) public view override returns (uint16) { - if (_proposer == DAO_FALLBACK_PROPOSER) { + function getMinTier( + uint64, /*_blockId*/ + address _proposer, + uint256 _rand + ) + public + view + override + returns (uint16) + { + if (_proposer == taikoBeatsProposer) { if (_rand % 200 == 0) return LibTiers.TIER_ZKVM_RISC0; else if (_rand % 40 == 1) return LibTiers.TIER_ZKVM_SP1; else return LibTiers.TIER_SGX; diff --git a/packages/protocol/contracts/layer1/mainnet/addrcache/AddressCache.sol b/packages/protocol/contracts/layer1/mainnet/addrcache/AddressCache.sol deleted file mode 100644 index 6dfc98aae8e..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/addrcache/AddressCache.sol +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -/// @title AddressCache -/// @custom:security-contact security@taiko.xyz -abstract contract AddressCache { - /// @notice This function retrieves the address associated with a given chain ID and name. - /// If the address is not found in the cache, it falls back to the provided function. - /// @param _chainId The chain ID for which the address is to be retrieved. - /// @param _name The name associated with the address to be retrieved. - /// @param _fallbackFunc The fallback function to be used if the address is not found in the - /// cache. - /// @return The address associated with the given chain ID and name. - function getAddress( - uint64 _chainId, - bytes32 _name, - function (uint64, bytes32) view returns (address) _fallbackFunc - ) - internal - view - returns (address) - { - (bool found, address addr) = getCachedAddress(_chainId, _name); - return found ? addr : _fallbackFunc(_chainId, _name); - } - - /// @notice This function retrieves the cached address associated with a given chain ID and - /// name. - /// @dev This function is virtual and should be overridden in derived contracts. - /// @param _chainId The chain ID for which the address is to be retrieved. - /// @param _name The name associated with the address to be retrieved. - /// @return found_ A boolean indicating whether the address was found in the cache. - /// @return addr_ The address associated with the given chain ID and name, if found in the - /// cache. - function getCachedAddress( - uint64 _chainId, - bytes32 _name - ) - internal - pure - virtual - returns (bool found_, address addr_); -} diff --git a/packages/protocol/contracts/layer1/mainnet/addrcache/RollupAddressCache.sol b/packages/protocol/contracts/layer1/mainnet/addrcache/RollupAddressCache.sol deleted file mode 100644 index d299485add7..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/addrcache/RollupAddressCache.sol +++ /dev/null @@ -1,62 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/shared/common/LibStrings.sol"; -import "src/shared/common/LibNetwork.sol"; -import "./AddressCache.sol"; - -/// @title RollupAddressCache -/// @custom:security-contact security@taiko.xyz -contract RollupAddressCache is AddressCache { - function getCachedAddress( - uint64 _chainId, - bytes32 _name - ) - internal - pure - override - returns (bool found, address addr) - { - if (_chainId != LibNetwork.ETHEREUM_MAINNET) { - return (false, address(0)); - } - - if (_name == LibStrings.B_BOND_TOKEN) { - return (true, 0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800); - } - if (_name == LibStrings.B_TAIKO_TOKEN) { - return (true, 0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800); - } - if (_name == LibStrings.B_SIGNAL_SERVICE) { - return (true, 0x9e0a24964e5397B566c1ed39258e21aB5E35C77C); - } - if (_name == LibStrings.B_BRIDGE) { - return (true, 0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC); - } - if (_name == LibStrings.B_TAIKO) { - return (true, 0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a); - } - if (_name == LibStrings.B_TIER_ROUTER) { - return (true, 0x1c02D13312B274648639630022C79d9F050f34e3); - } - if (_name == LibStrings.B_TIER_SGX) { - return (true, 0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81); - } - if (_name == LibStrings.B_TIER_GUARDIAN_MINORITY) { - return (true, 0x579A8d63a2Db646284CBFE31FE5082c9989E985c); - } - if (_name == LibStrings.B_TIER_GUARDIAN) { - return (true, 0xE3D777143Ea25A6E031d1e921F396750885f43aC); - } - if (_name == LibStrings.B_AUTOMATA_DCAP_ATTESTATION) { - return (true, 0x8d7C954960a36a7596d7eA4945dDf891967ca8A3); - } - if (_name == LibStrings.B_PRECONF_TASK_MANAGER) { - return (true, address(0)); - } - if (_name == LibStrings.B_CHAIN_WATCHDOG) { - return (true, 0xE3D777143Ea25A6E031d1e921F396750885f43aC); - } - return (false, address(0)); - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/addrcache/SharedAddressCache.sol b/packages/protocol/contracts/layer1/mainnet/addrcache/SharedAddressCache.sol deleted file mode 100644 index b870f54aeeb..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/addrcache/SharedAddressCache.sol +++ /dev/null @@ -1,71 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/shared/common/LibStrings.sol"; -import "src/shared/common/LibNetwork.sol"; -import "./AddressCache.sol"; - -/// @title SharedAddressCache -/// @custom:security-contact security@taiko.xyz -contract SharedAddressCache is AddressCache { - function getCachedAddress( - uint64 _chainId, - bytes32 _name - ) - internal - pure - override - returns (bool found, address addr) - { - if (_chainId == LibNetwork.ETHEREUM_MAINNET) { - if (_name == LibStrings.B_TAIKO_TOKEN) { - return (true, 0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800); - } - if (_name == LibStrings.B_QUOTA_MANAGER) { - return (true, 0x91f67118DD47d502B1f0C354D0611997B022f29E); - } - if (_name == LibStrings.B_BRIDGE) { - return (true, 0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC); - } - if (_name == LibStrings.B_BRIDGED_ERC20) { - return (true, 0x65666141a541423606365123Ed280AB16a09A2e1); - } - if (_name == LibStrings.B_BRIDGED_ERC721) { - return (true, 0xC3310905E2BC9Cfb198695B75EF3e5B69C6A1Bf7); - } - if (_name == LibStrings.B_BRIDGED_ERC1155) { - return (true, 0x3c90963cFBa436400B0F9C46Aa9224cB379c2c40); - } - if (_name == LibStrings.B_ERC20_VAULT) { - return (true, 0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab); - } - if (_name == LibStrings.B_ERC721_VAULT) { - return (true, 0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa); - } - if (_name == LibStrings.B_ERC1155_VAULT) { - return (true, 0xaf145913EA4a56BE22E120ED9C24589659881702); - } - if (_name == LibStrings.B_SIGNAL_SERVICE) { - return (true, 0x9e0a24964e5397B566c1ed39258e21aB5E35C77C); - } - } else if (_chainId == LibNetwork.TAIKO_MAINNET) { - if (_name == LibStrings.B_BRIDGE) { - return (true, 0x1670000000000000000000000000000000000001); - } - if (_name == LibStrings.B_ERC20_VAULT) { - return (true, 0x1670000000000000000000000000000000000002); - } - if (_name == LibStrings.B_ERC721_VAULT) { - return (true, 0x1670000000000000000000000000000000000003); - } - if (_name == LibStrings.B_ERC1155_VAULT) { - return (true, 0x1670000000000000000000000000000000000004); - } - if (_name == LibStrings.B_SIGNAL_SERVICE) { - return (true, 0x1670000000000000000000000000000000000005); - } - } - - return (false, address(0)); - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/reentrylock/LibFasterReentryLock.sol b/packages/protocol/contracts/layer1/mainnet/libs/LibFasterReentryLock.sol similarity index 100% rename from packages/protocol/contracts/layer1/mainnet/reentrylock/LibFasterReentryLock.sol rename to packages/protocol/contracts/layer1/mainnet/libs/LibFasterReentryLock.sol diff --git a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetBridge.sol b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetBridge.sol index bc7877c5660..0363f6cafae 100644 --- a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetBridge.sol +++ b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetBridge.sol @@ -2,8 +2,7 @@ pragma solidity ^0.8.24; import "src/shared/bridge/Bridge.sol"; -import "../addrcache/SharedAddressCache.sol"; -import "../reentrylock/LibFasterReentryLock.sol"; +import "../libs/LibFasterReentryLock.sol"; /// @title MainnetBridge /// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko @@ -11,16 +10,12 @@ import "../reentrylock/LibFasterReentryLock.sol"; /// not well testee nor necessary. /// @notice See the documentation in {Bridge}. /// @custom:security-contact security@taiko.xyz -contract MainnetBridge is Bridge, SharedAddressCache { +contract MainnetBridge is Bridge { /// @dev The slot in transient storage of the call context. This is the keccak256 hash /// of "bridge.ctx_slot" bytes32 private constant _CTX_SLOT = 0xe4ece82196de19aabe639620d7f716c433d1348f96ce727c9989a982dbadc2b9; - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - function _storeReentryLock(uint8 _reentry) internal override { LibFasterReentryLock.storeReentryLock(_reentry); } diff --git a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol index e44b1efb69c..dbcfc3f5e3b 100644 --- a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol +++ b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol @@ -2,8 +2,7 @@ pragma solidity ^0.8.24; import "src/shared/tokenvault/ERC1155Vault.sol"; -import "../addrcache/SharedAddressCache.sol"; -import "../reentrylock/LibFasterReentryLock.sol"; +import "../libs/LibFasterReentryLock.sol"; /// @title MainnetERC1155Vault /// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko @@ -11,11 +10,7 @@ import "../reentrylock/LibFasterReentryLock.sol"; /// not well testee nor necessary. /// @notice See the documentation in {ER1155Vault}. /// @custom:security-contact security@taiko.xyz -contract MainnetERC1155Vault is ERC1155Vault, SharedAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - +contract MainnetERC1155Vault is ERC1155Vault { function _storeReentryLock(uint8 _reentry) internal override { LibFasterReentryLock.storeReentryLock(_reentry); } diff --git a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol index 605b40932b5..7f922a8572e 100644 --- a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol +++ b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol @@ -2,8 +2,7 @@ pragma solidity ^0.8.24; import "src/shared/tokenvault/ERC20Vault.sol"; -import "../addrcache/SharedAddressCache.sol"; -import "../reentrylock/LibFasterReentryLock.sol"; +import "../libs/LibFasterReentryLock.sol"; /// @title MainnetERC20Vault /// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko @@ -11,11 +10,7 @@ import "../reentrylock/LibFasterReentryLock.sol"; /// not well testee nor necessary. /// @notice See the documentation in {ER20Vault}. /// @custom:security-contact security@taiko.xyz -contract MainnetERC20Vault is ERC20Vault, SharedAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - +contract MainnetERC20Vault is ERC20Vault { function _storeReentryLock(uint8 _reentry) internal override { LibFasterReentryLock.storeReentryLock(_reentry); } diff --git a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC721Vault.sol b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC721Vault.sol index f4ab9bec3a3..2f459e46907 100644 --- a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC721Vault.sol +++ b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetERC721Vault.sol @@ -2,8 +2,7 @@ pragma solidity ^0.8.24; import "src/shared/tokenvault/ERC721Vault.sol"; -import "../addrcache/SharedAddressCache.sol"; -import "../reentrylock/LibFasterReentryLock.sol"; +import "../libs/LibFasterReentryLock.sol"; /// @title MainnetERC721Vault /// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko @@ -11,11 +10,7 @@ import "../reentrylock/LibFasterReentryLock.sol"; /// not well testee nor necessary. /// @notice See the documentation in {ER721Vault}. /// @custom:security-contact security@taiko.xyz -contract MainnetERC721Vault is ERC721Vault, SharedAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - +contract MainnetERC721Vault is ERC721Vault { function _storeReentryLock(uint8 _reentry) internal override { LibFasterReentryLock.storeReentryLock(_reentry); } diff --git a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetSharedAddressManager.sol b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetSharedAddressManager.sol deleted file mode 100644 index 9a2c3cfa3f8..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetSharedAddressManager.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/shared/common/AddressManager.sol"; -import "src/shared/common/LibStrings.sol"; -import "../addrcache/SharedAddressCache.sol"; -import "../reentrylock/LibFasterReentryLock.sol"; - -/// @title MainnetSharedAddressManager -/// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko -/// mainnet to reduce gas cost. -/// @notice See the documentation in {IAddressManager}. -/// @custom:security-contact security@taiko.xyz -contract MainnetSharedAddressManager is AddressManager, SharedAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - - function _storeReentryLock(uint8 _reentry) internal override { - LibFasterReentryLock.storeReentryLock(_reentry); - } - - function _loadReentryLock() internal view override returns (uint8) { - return LibFasterReentryLock.loadReentryLock(); - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetSignalService.sol b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetSignalService.sol index b5958753f14..d015f026535 100644 --- a/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetSignalService.sol +++ b/packages/protocol/contracts/layer1/mainnet/multirollup/MainnetSignalService.sol @@ -2,8 +2,7 @@ pragma solidity ^0.8.24; import "src/shared/signal/SignalService.sol"; -import "../addrcache/SharedAddressCache.sol"; -import "../reentrylock/LibFasterReentryLock.sol"; +import "../libs/LibFasterReentryLock.sol"; /// @title MainnetSignalService /// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko @@ -11,11 +10,7 @@ import "../reentrylock/LibFasterReentryLock.sol"; /// not well testee nor necessary. /// @notice See the documentation in {SignalService}. /// @custom:security-contact security@taiko.xyz -contract MainnetSignalService is SignalService, SharedAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - +contract MainnetSignalService is SignalService { function _storeReentryLock(uint8 _reentry) internal override { LibFasterReentryLock.storeReentryLock(_reentry); } diff --git a/packages/protocol/contracts/layer1/mainnet/resolvers/RollupResolver.sol b/packages/protocol/contracts/layer1/mainnet/resolvers/RollupResolver.sol new file mode 100644 index 00000000000..29e5a2694f3 --- /dev/null +++ b/packages/protocol/contracts/layer1/mainnet/resolvers/RollupResolver.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/shared/libs/LibStrings.sol"; +import "src/shared/libs/LibNetwork.sol"; +import "src/shared/common/ResolverBase.sol"; + +/// @title RollupResolver +/// @dev Resolver used by Taiko mainnet protocol on Ethereum. +/// @custom:security-contact security@taiko.xyz +contract RollupResolver is ResolverBase { + function getAddress(uint256 _chainId, bytes32 _name) internal pure override returns (address) { + if (_chainId != LibNetwork.ETHEREUM_MAINNET) { + return address(0); + } + + if (_name == LibStrings.B_BOND_TOKEN) { + return 0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800; + } + if (_name == LibStrings.B_TAIKO_TOKEN) { + return 0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800; + } + if (_name == LibStrings.B_SIGNAL_SERVICE) { + return 0x9e0a24964e5397B566c1ed39258e21aB5E35C77C; + } + if (_name == LibStrings.B_BRIDGE) { + return 0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC; + } + if (_name == LibStrings.B_TAIKO) { + return 0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a; + } + if (_name == LibStrings.B_TIER_PROVIDER) { + // TODO(david): figure out this address later. + return address(0); + } + if (_name == LibStrings.B_TIER_SGX) { + return 0xb0f3186FC1963f774f52ff455DC86aEdD0b31F81; + } + if (_name == LibStrings.B_TIER_GUARDIAN_MINORITY) { + return 0x579A8d63a2Db646284CBFE31FE5082c9989E985c; + } + if (_name == LibStrings.B_TIER_GUARDIAN) { + return 0xE3D777143Ea25A6E031d1e921F396750885f43aC; + } + if (_name == LibStrings.B_AUTOMATA_DCAP_ATTESTATION) { + return 0x8d7C954960a36a7596d7eA4945dDf891967ca8A3; + } + if (_name == LibStrings.B_CHAIN_WATCHDOG) { + return 0xE3D777143Ea25A6E031d1e921F396750885f43aC; + } + return address(0); + } +} diff --git a/packages/protocol/contracts/layer1/mainnet/resolvers/SharedResolver.sol b/packages/protocol/contracts/layer1/mainnet/resolvers/SharedResolver.sol new file mode 100644 index 00000000000..34864eab968 --- /dev/null +++ b/packages/protocol/contracts/layer1/mainnet/resolvers/SharedResolver.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/shared/libs/LibStrings.sol"; +import "src/shared/libs/LibNetwork.sol"; +import "src/shared/common/ResolverBase.sol"; + +/// @title SharedResolver +/// @dev Resolver used by multiple based rollups. +/// @custom:security-contact security@taiko.xyz +contract SharedResolver is ResolverBase { + function getAddress(uint256 _chainId, bytes32 _name) internal pure override returns (address) { + if (_chainId == LibNetwork.ETHEREUM_MAINNET) { + if (_name == LibStrings.B_TAIKO_TOKEN) { + return 0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800; + } + if (_name == LibStrings.B_QUOTA_MANAGER) { + return 0x91f67118DD47d502B1f0C354D0611997B022f29E; + } + if (_name == LibStrings.B_BRIDGE) { + return 0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC; + } + if (_name == LibStrings.B_BRIDGED_ERC20) { + return 0x65666141a541423606365123Ed280AB16a09A2e1; + } + if (_name == LibStrings.B_BRIDGED_ERC721) { + return 0xC3310905E2BC9Cfb198695B75EF3e5B69C6A1Bf7; + } + if (_name == LibStrings.B_BRIDGED_ERC1155) { + return 0x3c90963cFBa436400B0F9C46Aa9224cB379c2c40; + } + if (_name == LibStrings.B_ERC20_VAULT) { + return 0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab; + } + if (_name == LibStrings.B_ERC721_VAULT) { + return 0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa; + } + if (_name == LibStrings.B_ERC1155_VAULT) { + return 0xaf145913EA4a56BE22E120ED9C24589659881702; + } + if (_name == LibStrings.B_SIGNAL_SERVICE) { + return 0x9e0a24964e5397B566c1ed39258e21aB5E35C77C; + } + } else if (_chainId == LibNetwork.TAIKO_MAINNET) { + if (_name == LibStrings.B_BRIDGE) { + return 0x1670000000000000000000000000000000000001; + } + if (_name == LibStrings.B_ERC20_VAULT) { + return 0x1670000000000000000000000000000000000002; + } + if (_name == LibStrings.B_ERC721_VAULT) { + return 0x1670000000000000000000000000000000000003; + } + if (_name == LibStrings.B_ERC1155_VAULT) { + return 0x1670000000000000000000000000000000000004; + } + if (_name == LibStrings.B_SIGNAL_SERVICE) { + return 0x1670000000000000000000000000000000000005; + } + } + return address(0); + } +} diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetGuardianProver.sol b/packages/protocol/contracts/layer1/mainnet/rollup/MainnetGuardianProver.sol deleted file mode 100644 index baf50487d03..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetGuardianProver.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/provers/GuardianProver.sol"; -import "../addrcache/RollupAddressCache.sol"; -import "../reentrylock/LibFasterReentryLock.sol"; -/// @title MainnetGuardianProver -/// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko -/// mainnet to reduce gas cost. -/// @notice See the documentation in {GuardianProver}. -/// @custom:security-contact security@taiko.xyz - -contract MainnetGuardianProver is GuardianProver, RollupAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - - function _storeReentryLock(uint8 _reentry) internal override { - LibFasterReentryLock.storeReentryLock(_reentry); - } - - function _loadReentryLock() internal view override returns (uint8) { - return LibFasterReentryLock.loadReentryLock(); - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetProverSet.sol b/packages/protocol/contracts/layer1/mainnet/rollup/MainnetProverSet.sol deleted file mode 100644 index 27c0de89bf2..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetProverSet.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/provers/ProverSet.sol"; -import "../addrcache/RollupAddressCache.sol"; -import "../reentrylock/LibFasterReentryLock.sol"; - -/// @title MainnetProverSet -/// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko -/// mainnet to reduce gas cost. In theory, the contract can also be deplyed on Taiko L2 but this is -/// not well testee nor necessary. -/// @notice See the documentation in {ProverSet}. -/// @custom:security-contact security@taiko.xyz -contract MainnetProverSet is ProverSet, RollupAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - - function _storeReentryLock(uint8 _reentry) internal override { - LibFasterReentryLock.storeReentryLock(_reentry); - } - - function _loadReentryLock() internal view override returns (uint8) { - return LibFasterReentryLock.loadReentryLock(); - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetRollupAddressManager.sol b/packages/protocol/contracts/layer1/mainnet/rollup/MainnetRollupAddressManager.sol deleted file mode 100644 index 74728ba20a5..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/rollup/MainnetRollupAddressManager.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/shared/common/AddressManager.sol"; -import "src/shared/common/LibStrings.sol"; -import "../addrcache/RollupAddressCache.sol"; -import "../reentrylock/LibFasterReentryLock.sol"; - -/// @title MainnetRollupAddressManager -/// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko -/// mainnet to reduce gas cost. -/// @notice See the documentation in {IAddressManager}. -/// @custom:security-contact security@taiko.xyz -contract MainnetRollupAddressManager is AddressManager, RollupAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - - function _storeReentryLock(uint8 _reentry) internal override { - LibFasterReentryLock.storeReentryLock(_reentry); - } - - function _loadReentryLock() internal view override returns (uint8) { - return LibFasterReentryLock.loadReentryLock(); - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetRisc0Verifier.sol b/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetRisc0Verifier.sol deleted file mode 100644 index 538831547d3..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetRisc0Verifier.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/verifiers/Risc0Verifier.sol"; -import "src/layer1/mainnet/addrcache/RollupAddressCache.sol"; -import "src/layer1/mainnet/reentrylock/LibFasterReentryLock.sol"; - -/// @title MainnetRisc0Verifier -/// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko -/// mainnet to reduce gas cost. -/// @notice See the documentation in {Risc0Verifier}. -/// @custom:security-contact security@taiko.xyz -contract MainnetRisc0Verifier is Risc0Verifier, RollupAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - - function _storeReentryLock(uint8 _reentry) internal override { - LibFasterReentryLock.storeReentryLock(_reentry); - } - - function _loadReentryLock() internal view override returns (uint8) { - return LibFasterReentryLock.loadReentryLock(); - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetSP1Verifier.sol b/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetSP1Verifier.sol deleted file mode 100644 index 2954d8dc3b7..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetSP1Verifier.sol +++ /dev/null @@ -1,29 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/verifiers/SP1Verifier.sol"; -import "src/layer1/mainnet/addrcache/RollupAddressCache.sol"; -import "src/layer1/mainnet/reentrylock/LibFasterReentryLock.sol"; - -/// @title MainnetSP1Verifier -/// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko -/// mainnet to reduce gas cost. -/// @notice See the documentation in {RiscZeroVerifier}. -/// @custom:security-contact security@taiko.xyz -contract MainnetSP1Verifier is SP1Verifier, RollupAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - - function _storeReentryLock(uint8 _reentry) internal override { - LibFasterReentryLock.storeReentryLock(_reentry); - } - - function _loadReentryLock() internal view override returns (uint8) { - return LibFasterReentryLock.loadReentryLock(); - } - - function taikoChainId() internal pure override returns (uint64) { - return LibNetwork.TAIKO_MAINNET; - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetSgxVerifier.sol b/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetSgxVerifier.sol deleted file mode 100644 index 4d57e8a596e..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetSgxVerifier.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/verifiers/SgxVerifier.sol"; -import "src/layer1/mainnet/addrcache/RollupAddressCache.sol"; -import "src/layer1/mainnet/reentrylock/LibFasterReentryLock.sol"; - -/// @title MainnetSgxVerifier -/// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko -/// mainnet to reduce gas cost. -/// @notice See the documentation in {SgxVerifier}. -/// @custom:security-contact security@taiko.xyz -contract MainnetSgxVerifier is SgxVerifier, RollupAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - - function _storeReentryLock(uint8 _reentry) internal override { - LibFasterReentryLock.storeReentryLock(_reentry); - } - - function _loadReentryLock() internal view override returns (uint8) { - return LibFasterReentryLock.loadReentryLock(); - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetTeeAnyVerifier.sol b/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetTeeAnyVerifier.sol deleted file mode 100644 index 48e69932402..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetTeeAnyVerifier.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/verifiers/compose/TeeAnyVerifier.sol"; -import "src/layer1/mainnet/addrcache/RollupAddressCache.sol"; -import "src/layer1/mainnet/reentrylock/LibFasterReentryLock.sol"; - -/// @title MainnetTeeAnyVerifier -/// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko -/// mainnet to reduce gas cost. -/// @custom:security-contact security@taiko.xyz -contract MainnetTeeAnyVerifier is TeeAnyVerifier, RollupAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - - function _storeReentryLock(uint8 _reentry) internal override { - LibFasterReentryLock.storeReentryLock(_reentry); - } - - function _loadReentryLock() internal view override returns (uint8) { - return LibFasterReentryLock.loadReentryLock(); - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetZkAndTeeVerifier.sol b/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetZkAndTeeVerifier.sol deleted file mode 100644 index 609789ba250..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetZkAndTeeVerifier.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/verifiers/compose/ZkAndTeeVerifier.sol"; -import "src/layer1/mainnet/addrcache/RollupAddressCache.sol"; -import "src/layer1/mainnet/reentrylock/LibFasterReentryLock.sol"; - -/// @title MainnetZkAndTeeVerifier -/// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko -/// mainnet to reduce gas cost. -/// @custom:security-contact security@taiko.xyz -contract MainnetZkAndTeeVerifier is ZkAndTeeVerifier, RollupAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - - function _storeReentryLock(uint8 _reentry) internal override { - LibFasterReentryLock.storeReentryLock(_reentry); - } - - function _loadReentryLock() internal view override returns (uint8) { - return LibFasterReentryLock.loadReentryLock(); - } -} diff --git a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetZkAnyVerifier.sol b/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetZkAnyVerifier.sol deleted file mode 100644 index bbb107268d8..00000000000 --- a/packages/protocol/contracts/layer1/mainnet/rollup/verifiers/MainnetZkAnyVerifier.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/verifiers/compose/ZkAnyVerifier.sol"; -import "src/layer1/mainnet/addrcache/RollupAddressCache.sol"; -import "src/layer1/mainnet/reentrylock/LibFasterReentryLock.sol"; - -/// @title MainnetZkAnyVerifier -/// @dev This contract shall be deployed to replace its parent contract on Ethereum for Taiko -/// mainnet to reduce gas cost. -/// @custom:security-contact security@taiko.xyz -contract MainnetZkAnyVerifier is ZkAnyVerifier, RollupAddressCache { - function _getAddress(uint64 _chainId, bytes32 _name) internal view override returns (address) { - return getAddress(_chainId, _name, super._getAddress); - } - - function _storeReentryLock(uint8 _reentry) internal override { - LibFasterReentryLock.storeReentryLock(_reentry); - } - - function _loadReentryLock() internal view override returns (uint8) { - return LibFasterReentryLock.loadReentryLock(); - } -} diff --git a/packages/protocol/contracts/layer1/provers/GuardianProver.sol b/packages/protocol/contracts/layer1/provers/GuardianProver.sol index 542dc25481e..a68a8175e7f 100644 --- a/packages/protocol/contracts/layer1/provers/GuardianProver.sol +++ b/packages/protocol/contracts/layer1/provers/GuardianProver.sol @@ -4,8 +4,8 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import "src/shared/common/EssentialContract.sol"; -import "src/shared/common/LibAddress.sol"; -import "src/shared/common/LibStrings.sol"; +import "src/shared/libs/LibAddress.sol"; +import "src/shared/libs/LibStrings.sol"; import "../verifiers/IVerifier.sol"; import "../based/ITaikoL1.sol"; @@ -94,9 +94,9 @@ contract GuardianProver is IVerifier, EssentialContract { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _rollupAddressManager The address of the {AddressManager} contract. - function init(address _owner, address _rollupAddressManager) external initializer { - __Essential_init(_owner, _rollupAddressManager); + /// @param _rollupResolver The {IResolver} used by this rollup. + function init(address _owner, address _rollupResolver) external initializer { + __Essential_init(_owner, _rollupResolver); } /// @notice Sets the set of guardians. @@ -190,7 +190,6 @@ contract GuardianProver is IVerifier, EssentialContract { ) external whenNotPaused - nonReentrant returns (bool) { return _approve({ diff --git a/packages/protocol/contracts/layer1/provers/ProverSet.sol b/packages/protocol/contracts/layer1/provers/ProverSet.sol index d557aba553c..f42b3d5598b 100644 --- a/packages/protocol/contracts/layer1/provers/ProverSet.sol +++ b/packages/protocol/contracts/layer1/provers/ProverSet.sol @@ -6,8 +6,8 @@ import "@openzeppelin/contracts/interfaces/IERC1271.sol"; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "src/shared/common/EssentialContract.sol"; -import "src/shared/common/LibStrings.sol"; -import "src/shared/common/LibAddress.sol"; +import "src/shared/libs/LibStrings.sol"; +import "src/shared/libs/LibAddress.sol"; import "../based/ITaikoL1.sol"; interface IHasRecipient { @@ -50,13 +50,13 @@ contract ProverSet is EssentialContract, IERC1271 { function init( address _owner, address _admin, - address _rollupAddressManager + address _rollupResolver ) external nonZeroAddr(_admin) initializer { - __Essential_init(_owner, _rollupAddressManager); + __Essential_init(_owner, _rollupResolver); admin = _admin; address _bondToken = bondToken(); @@ -153,7 +153,7 @@ contract ProverSet is EssentialContract, IERC1271 { /// @notice Delegates token voting right to a delegatee. /// @param _delegatee The delegatee to receive the voting right. - function delegate(address _delegatee) external onlyAuthorized nonReentrant { + function delegate(address _delegatee) external onlyAuthorized { address _bondToken = bondToken(); require(_bondToken != address(0), INVALID_BOND_TOKEN()); ERC20VotesUpgradeable(_bondToken).delegate(_delegatee); diff --git a/packages/protocol/contracts/layer1/team/airdrop/ERC20Airdrop.sol b/packages/protocol/contracts/layer1/team/ERC20Airdrop.sol similarity index 100% rename from packages/protocol/contracts/layer1/team/airdrop/ERC20Airdrop.sol rename to packages/protocol/contracts/layer1/team/ERC20Airdrop.sol diff --git a/packages/protocol/contracts/layer1/team/airdrop/MerkleClaimable.sol b/packages/protocol/contracts/layer1/team/MerkleClaimable.sol similarity index 100% rename from packages/protocol/contracts/layer1/team/airdrop/MerkleClaimable.sol rename to packages/protocol/contracts/layer1/team/MerkleClaimable.sol diff --git a/packages/protocol/contracts/layer1/team/tokenunlock/TokenUnlock.sol b/packages/protocol/contracts/layer1/team/TokenUnlock.sol similarity index 94% rename from packages/protocol/contracts/layer1/team/tokenunlock/TokenUnlock.sol rename to packages/protocol/contracts/layer1/team/TokenUnlock.sol index 1a2dad9cf12..90e23071a8e 100644 --- a/packages/protocol/contracts/layer1/team/tokenunlock/TokenUnlock.sol +++ b/packages/protocol/contracts/layer1/team/TokenUnlock.sol @@ -7,9 +7,9 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import "src/shared/common/EssentialContract.sol"; -import "src/shared/common/LibStrings.sol"; -import "src/shared/common/LibMath.sol"; -import "../../provers/ProverSet.sol"; +import "src/shared/libs/LibStrings.sol"; +import "src/shared/libs/LibMath.sol"; +import "../provers/ProverSet.sol"; /// @title TokenUnlock /// @notice Manages the linear unlocking of Taiko tokens over a four-year period. @@ -74,12 +74,12 @@ contract TokenUnlock is EssentialContract { /// @notice Initializes the contract. /// @param _owner The contract owner address. - /// @param _rollupAddressManager The rollup address manager. + /// @param _rollupResolver The {IResolver} used by this rollup /// @param _recipient Who will be the grantee for this contract. /// @param _tgeTimestamp The token generation event timestamp. function init( address _owner, - address _rollupAddressManager, + address _rollupResolver, address _recipient, uint64 _tgeTimestamp ) @@ -90,7 +90,7 @@ contract TokenUnlock is EssentialContract { { if (_owner == _recipient) revert INVALID_PARAM(); - __Essential_init(_owner, _rollupAddressManager); + __Essential_init(_owner, _rollupResolver); recipient = _recipient; tgeTimestamp = _tgeTimestamp; @@ -116,7 +116,8 @@ contract TokenUnlock is EssentialContract { TAIKO_TOKEN_NOT_USED_AS_BOND_TOKEN() ); - bytes memory data = abi.encodeCall(ProverSet.init, (owner(), address(this), addressManager)); + bytes memory data = + abi.encodeCall(ProverSet.init, (owner(), address(this), address(resolver()))); proverSet_ = address(new ERC1967Proxy(resolve(LibStrings.B_PROVER_SET, false), data)); isProverSet[proverSet_] = true; diff --git a/packages/protocol/contracts/layer1/tiers/ITierProvider.sol b/packages/protocol/contracts/layer1/tiers/ITierProvider.sol index 1e74dbcf25d..9c63828ba78 100644 --- a/packages/protocol/contracts/layer1/tiers/ITierProvider.sol +++ b/packages/protocol/contracts/layer1/tiers/ITierProvider.sol @@ -17,9 +17,10 @@ interface ITierProvider { error TIER_NOT_FOUND(); /// @dev Retrieves the configuration for a specified tier. + /// @param blockId The id of the block. /// @param tierId ID of the tier. /// @return Tier struct containing the tier's parameters. - function getTier(uint16 tierId) external view returns (Tier memory); + function getTier(uint64 blockId, uint16 tierId) external view returns (Tier memory); /// @dev Retrieves the IDs of all supported tiers. /// Note that the core protocol requires the number of tiers to be smaller @@ -28,8 +29,16 @@ interface ITierProvider { function getTierIds() external view returns (uint16[] memory); /// @dev Determines the minimal tier for a block based on a random input. + /// @param blockId The id of the block. /// @param proposer The address of the block proposer. /// @param rand A pseudo-random number. /// @return The tier id. - function getMinTier(address proposer, uint256 rand) external view returns (uint16); + function getMinTier( + uint64 blockId, + address proposer, + uint256 rand + ) + external + view + returns (uint16); } diff --git a/packages/protocol/contracts/layer1/tiers/ITierRouter.sol b/packages/protocol/contracts/layer1/tiers/ITierRouter.sol deleted file mode 100644 index 3b8863a021a..00000000000 --- a/packages/protocol/contracts/layer1/tiers/ITierRouter.sol +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -/// @title ITierRouter -/// @notice Defines interface to return an ITierProvider -/// @custom:security-contact security@taiko.xyz -interface ITierRouter { - /// @dev Returns the address of the TierProvider for a given block. - /// @param blockId ID of the block. - /// @return The address of the corresponding TierProvider. - function getProvider(uint256 blockId) external view returns (address); -} diff --git a/packages/protocol/contracts/layer1/tiers/TierProviderBase.sol b/packages/protocol/contracts/layer1/tiers/TierProviderBase.sol index b1eadb72334..398698814f6 100644 --- a/packages/protocol/contracts/layer1/tiers/TierProviderBase.sol +++ b/packages/protocol/contracts/layer1/tiers/TierProviderBase.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/shared/common/LibStrings.sol"; +import "src/shared/libs/LibStrings.sol"; import "./ITierProvider.sol"; import "./LibTiers.sol"; @@ -15,53 +15,61 @@ abstract contract TierProviderBase is ITierProvider { /// @inheritdoc ITierProvider /// @notice Each tier, except the top tier, has a validity bond that is 75 TAIKO higher than the /// previous tier. Additionally, each tier's contest bond is 6.5625 times its validity bond. - function getTier(uint16 _tierId) public pure virtual returns (ITierProvider.Tier memory) { + function getTier( + uint64, /*_blockId*/ + uint16 _tierId + ) + public + pure + virtual + returns (ITierProvider.Tier memory) + { if (_tierId == LibTiers.TIER_OPTIMISTIC) { - return _buildTier(LibStrings.B_TIER_OPTIMISTIC, 1, 1440, 60); + return buildTier(LibStrings.B_TIER_OPTIMISTIC, 1, 1440, 60); } // TEE Tiers if (_tierId == LibTiers.TIER_SGX) { // cooldownWindow is 240 minutes and provingWindow is 60 minutes - return _buildTier(LibStrings.B_TIER_SGX, 2, 240, 60); + return buildTier(LibStrings.B_TIER_SGX, 2, 240, 60); } if (_tierId == LibTiers.TIER_TDX) { // cooldownWindow is 240 minutes and provingWindow is 60 minutes - return _buildTier(LibStrings.B_TIER_TDX, 2, 240, 60); + return buildTier(LibStrings.B_TIER_TDX, 2, 240, 60); } if (_tierId == LibTiers.TIER_TEE_ANY) { // cooldownWindow is 240 minutes and provingWindow is 60 minutes - return _buildTier(LibStrings.B_TIER_TEE_ANY, 2, 240, 60); + return buildTier(LibStrings.B_TIER_TEE_ANY, 2, 240, 60); } // ZKVM Tiers: Allowing 120 minutes for proof aggregation. if (_tierId == LibTiers.TIER_ZKVM_RISC0) { // cooldownWindow is 240 minutes and provingWindow is 120 minutes - return _buildTier(LibStrings.B_TIER_ZKVM_RISC0, 3, 240, 120); + return buildTier(LibStrings.B_TIER_ZKVM_RISC0, 3, 240, 120); } if (_tierId == LibTiers.TIER_ZKVM_SP1) { // cooldownWindow is 240 minutes and provingWindow is 120 minutes - return _buildTier(LibStrings.B_TIER_ZKVM_SP1, 3, 240, 120); + return buildTier(LibStrings.B_TIER_ZKVM_SP1, 3, 240, 120); } if (_tierId == LibTiers.TIER_ZKVM_ANY) { // cooldownWindow is 240 minutes and provingWindow is 90 minutes - return _buildTier(LibStrings.B_TIER_ZKVM_ANY, 3, 240, 120); + return buildTier(LibStrings.B_TIER_ZKVM_ANY, 3, 240, 120); } if (_tierId == LibTiers.TIER_ZKVM_AND_TEE) { // cooldownWindow is 240 minutes and provingWindow is 90 minutes - return _buildTier(LibStrings.B_TIER_ZKVM_AND_TEE, 3, 240, 120); + return buildTier(LibStrings.B_TIER_ZKVM_AND_TEE, 3, 240, 120); } // Guardian Minority Tiers if (_tierId == LibTiers.TIER_GUARDIAN_MINORITY) { // cooldownWindow is 60 minutes and provingWindow is 120 minutes - return _buildTier(LibStrings.B_TIER_GUARDIAN_MINORITY, 4, 240, 120); + return buildTier(LibStrings.B_TIER_GUARDIAN_MINORITY, 4, 240, 120); } // Guardian Major Tiers if (_tierId == LibTiers.TIER_GUARDIAN) { // cooldownWindow is 480 minutes - return _buildTier(LibStrings.B_TIER_GUARDIAN, 0, 480, 0); + return buildTier(LibStrings.B_TIER_GUARDIAN, 0, 480, 0); } revert TIER_NOT_FOUND(); @@ -73,14 +81,15 @@ abstract contract TierProviderBase is ITierProvider { /// @param _cooldownWindow The cooldown window duration in minutes. /// @param _provingWindow The proving window duration in minutes. /// @return A Tier struct with the provided parameters. - function _buildTier( + function buildTier( bytes32 _verifierName, uint8 _validityBondUnits, uint16 _cooldownWindow, uint16 _provingWindow ) - private + internal pure + virtual returns (ITierProvider.Tier memory) { uint96 validityBond = BOND_UNIT * _validityBondUnits; diff --git a/packages/protocol/contracts/layer1/verifiers/Risc0Verifier.sol b/packages/protocol/contracts/layer1/verifiers/Risc0Verifier.sol index 2700c1cefe7..9793ec8a051 100644 --- a/packages/protocol/contracts/layer1/verifiers/Risc0Verifier.sol +++ b/packages/protocol/contracts/layer1/verifiers/Risc0Verifier.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.24; import "@risc0/contracts/IRiscZeroVerifier.sol"; import "src/shared/common/EssentialContract.sol"; -import "src/shared/common/LibStrings.sol"; +import "src/shared/libs/LibStrings.sol"; import "../based/ITaikoL1.sol"; import "./LibPublicInput.sol"; import "./IVerifier.sol"; @@ -33,9 +33,9 @@ contract Risc0Verifier is EssentialContract, IVerifier { /// @notice Initializes the contract with the provided address manager. /// @param _owner The address of the owner. - /// @param _rollupAddressManager The address of the AddressManager. - function init(address _owner, address _rollupAddressManager) external initializer { - __Essential_init(_owner, _rollupAddressManager); + /// @param _rollupResolver The {IResolver} used by this rollup + function init(address _owner, address _rollupResolver) external initializer { + __Essential_init(_owner, _rollupResolver); } /// @notice Sets/unsets an the imageId as trusted entity @@ -54,7 +54,6 @@ contract Risc0Verifier is EssentialContract, IVerifier { TaikoData.TierProof calldata _proof ) external - view { // Do not run proof verification to contest an existing proof if (_ctx.isContesting) return; @@ -76,6 +75,8 @@ contract Risc0Verifier is EssentialContract, IVerifier { abi.encodeCall(IRiscZeroVerifier.verify, (seal, imageId, journalDigest)) ); require(success, RISC_ZERO_INVALID_PROOF()); + + emit ProofVerified(_ctx.metaHash, publicInputHash); } /// @inheritdoc IVerifier diff --git a/packages/protocol/contracts/layer1/verifiers/SP1Verifier.sol b/packages/protocol/contracts/layer1/verifiers/SP1Verifier.sol index cd3e62af336..7cf5fab309f 100644 --- a/packages/protocol/contracts/layer1/verifiers/SP1Verifier.sol +++ b/packages/protocol/contracts/layer1/verifiers/SP1Verifier.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.24; import "@sp1-contracts/src/ISP1Verifier.sol"; import "src/shared/common/EssentialContract.sol"; -import "src/shared/common/LibStrings.sol"; +import "src/shared/libs/LibStrings.sol"; import "../based/ITaikoL1.sol"; import "./LibPublicInput.sol"; import "./IVerifier.sol"; @@ -28,9 +28,9 @@ contract SP1Verifier is EssentialContract, IVerifier { /// @notice Initializes the contract with the provided address manager. /// @param _owner The address of the owner. - /// @param _addressManager The address of the AddressManager. - function init(address _owner, address _addressManager) external initializer { - __Essential_init(_owner, _addressManager); + /// @param _resolver The IResolver address. + function init(address _owner, address _resolver) external initializer { + __Essential_init(_owner, _resolver); } /// @notice Sets/unsets an the program's verification key as trusted entity diff --git a/packages/protocol/contracts/layer1/verifiers/SgxVerifier.sol b/packages/protocol/contracts/layer1/verifiers/SgxVerifier.sol index 1044bec19b4..6244afe747e 100644 --- a/packages/protocol/contracts/layer1/verifiers/SgxVerifier.sol +++ b/packages/protocol/contracts/layer1/verifiers/SgxVerifier.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import "src/shared/common/EssentialContract.sol"; -import "src/shared/common/LibStrings.sol"; +import "src/shared/libs/LibStrings.sol"; import "../automata-attestation/interfaces/IAttestation.sol"; import "../automata-attestation/lib/QuoteV3Auth/V3Struct.sol"; import "../based/ITaikoL1.sol"; @@ -81,9 +81,9 @@ contract SgxVerifier is EssentialContract, IVerifier { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _rollupAddressManager The address of the {AddressManager} contract. - function init(address _owner, address _rollupAddressManager) external initializer { - __Essential_init(_owner, _rollupAddressManager); + /// @param _rollupResolver The {IResolver} used by this rollup. + function init(address _owner, address _rollupResolver) external initializer { + __Essential_init(_owner, _rollupResolver); } /// @notice Adds trusted SGX instances to the registry. @@ -192,7 +192,7 @@ contract SgxVerifier is EssentialContract, IVerifier { publicInputs[1] = bytes32(uint256(uint160(newInstance))); // All other inputs are the block program public inputs (a single 32 byte value) for (uint256 i; i < _ctxs.length; ++i) { - // TODO: For now this assumes the new instance public key to remain the same + // TODO(Yue): For now this assumes the new instance public key to remain the same publicInputs[i + 2] = LibPublicInput.hashPublicInputs( _ctxs[i].tran, address(this), diff --git a/packages/protocol/contracts/layer1/verifiers/SgxVerifierBase.sol b/packages/protocol/contracts/layer1/verifiers/SgxVerifierBase.sol index 451d88604a3..109bbb52e88 100644 --- a/packages/protocol/contracts/layer1/verifiers/SgxVerifierBase.sol +++ b/packages/protocol/contracts/layer1/verifiers/SgxVerifierBase.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; import "src/shared/common/EssentialContract.sol"; -import "src/shared/common/LibStrings.sol"; +import "src/shared/libs/LibStrings.sol"; import "../automata-attestation/interfaces/IAttestation.sol"; import "../automata-attestation/lib/QuoteV3Auth/V3Struct.sol"; diff --git a/packages/protocol/contracts/layer1/verifiers/compose/ComposeVerifier.sol b/packages/protocol/contracts/layer1/verifiers/compose/ComposeVerifier.sol index da4d2ef4bda..ae38356226b 100644 --- a/packages/protocol/contracts/layer1/verifiers/compose/ComposeVerifier.sol +++ b/packages/protocol/contracts/layer1/verifiers/compose/ComposeVerifier.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.24; import "src/shared/common/EssentialContract.sol"; -import "src/shared/common/LibStrings.sol"; +import "src/shared/libs/LibStrings.sol"; import "../IVerifier.sol"; /// @title ComposeVerifier @@ -31,9 +31,9 @@ abstract contract ComposeVerifier is EssentialContract, IVerifier { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _rollupAddressManager The address of the {AddressManager} contract. - function init(address _owner, address _rollupAddressManager) external initializer { - __Essential_init(_owner, _rollupAddressManager); + /// @param _rollupResolver The {IResolver} used by this rollup. + function init(address _owner, address _rollupResolver) external initializer { + __Essential_init(_owner, _rollupResolver); } /// @inheritdoc IVerifier @@ -44,7 +44,6 @@ abstract contract ComposeVerifier is EssentialContract, IVerifier { ) external onlyAuthorizedCaller - nonReentrant { (address[] memory verifiers, uint256 numSubProofs_) = getSubVerifiersAndThreshold(); @@ -78,7 +77,6 @@ abstract contract ComposeVerifier is EssentialContract, IVerifier { ) external onlyAuthorizedCaller - nonReentrant { (address[] memory verifiers, uint256 numSubProofs_) = getSubVerifiersAndThreshold(); diff --git a/packages/protocol/contracts/layer1/verifiers/compose/TeeAnyVerifier.sol b/packages/protocol/contracts/layer1/verifiers/compose/TeeAnyVerifier.sol index 5b22fa94c2e..48321edd3d3 100644 --- a/packages/protocol/contracts/layer1/verifiers/compose/TeeAnyVerifier.sol +++ b/packages/protocol/contracts/layer1/verifiers/compose/TeeAnyVerifier.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/shared/common/LibStrings.sol"; +import "src/shared/libs/LibStrings.sol"; import "./ComposeVerifier.sol"; /// @title TeeAnyVerifier diff --git a/packages/protocol/contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol b/packages/protocol/contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol index 58293f60c06..b9c270e1b4b 100644 --- a/packages/protocol/contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol +++ b/packages/protocol/contracts/layer1/verifiers/compose/ZkAndTeeVerifier.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/shared/common/LibStrings.sol"; +import "src/shared/libs/LibStrings.sol"; import "./ComposeVerifier.sol"; /// @title ZkAndTeeVerifier diff --git a/packages/protocol/contracts/layer1/verifiers/compose/ZkAnyVerifier.sol b/packages/protocol/contracts/layer1/verifiers/compose/ZkAnyVerifier.sol index 2dd0e5f6a04..47a82318379 100644 --- a/packages/protocol/contracts/layer1/verifiers/compose/ZkAnyVerifier.sol +++ b/packages/protocol/contracts/layer1/verifiers/compose/ZkAnyVerifier.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/shared/common/LibStrings.sol"; +import "src/shared/libs/LibStrings.sol"; import "./ComposeVerifier.sol"; /// @title ZkAnyVerifier diff --git a/packages/protocol/contracts/layer2/DelegateOwner.sol b/packages/protocol/contracts/layer2/DelegateOwner.sol index 182e24d533a..8ac297a2490 100644 --- a/packages/protocol/contracts/layer2/DelegateOwner.sol +++ b/packages/protocol/contracts/layer2/DelegateOwner.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.24; import "../shared/common/EssentialContract.sol"; -import "../shared/common/LibStrings.sol"; -import "../shared/common/LibAddress.sol"; -import "../shared/common/LibBytes.sol"; +import "../shared/libs/LibStrings.sol"; +import "../shared/libs/LibAddress.sol"; +import "../shared/libs/LibBytes.sol"; import "../shared/bridge/IBridge.sol"; /// @title DelegateOwner @@ -64,11 +64,11 @@ contract DelegateOwner is EssentialContract, IMessageInvocable { /// @param _remoteOwner The real owner on L1 that can send a cross-chain message to invoke /// `onMessageInvocation`. /// @param _remoteChainId The L1 chain's ID. - /// @param _sharedAddressManager The address of the {AddressManager} contract. + /// @param _sharedResolver The {IResolver} used by multipel rollups. /// @param _admin The admin address. function init( address _remoteOwner, - address _sharedAddressManager, + address _sharedResolver, uint64 _remoteChainId, address _admin ) @@ -76,7 +76,7 @@ contract DelegateOwner is EssentialContract, IMessageInvocable { initializer { // This contract's owner will be itself. - __Essential_init(address(this), _sharedAddressManager); + __Essential_init(address(this), _sharedResolver); if (_remoteOwner == address(0) || _remoteChainId == 0 || _remoteChainId == block.chainid) { revert DO_INVALID_PARAM(); diff --git a/packages/protocol/contracts/layer2/based/LibEIP1559.sol b/packages/protocol/contracts/layer2/based/LibEIP1559.sol index b1c57926ff3..64a815e816b 100644 --- a/packages/protocol/contracts/layer2/based/LibEIP1559.sol +++ b/packages/protocol/contracts/layer2/based/LibEIP1559.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.24; import "@solady/src/utils/FixedPointMathLib.sol"; -import "src/shared/common/LibMath.sol"; +import "src/shared/libs/LibMath.sol"; /// @title LibEIP1559 /// @notice Implements e^(x) based bonding curve for EIP-1559 diff --git a/packages/protocol/contracts/layer2/based/TaikoL2.sol b/packages/protocol/contracts/layer2/based/TaikoL2.sol index 5af1e610325..f257bbe2c88 100644 --- a/packages/protocol/contracts/layer2/based/TaikoL2.sol +++ b/packages/protocol/contracts/layer2/based/TaikoL2.sol @@ -5,9 +5,9 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import "src/shared/common/EssentialContract.sol"; -import "src/shared/common/LibStrings.sol"; -import "src/shared/common/LibAddress.sol"; -import "src/shared/common/LibMath.sol"; +import "src/shared/libs/LibStrings.sol"; +import "src/shared/libs/LibAddress.sol"; +import "src/shared/libs/LibMath.sol"; import "src/shared/signal/ISignalService.sol"; import "./LibEIP1559.sol"; import "./LibL2Config.sol"; @@ -90,19 +90,19 @@ contract TaikoL2 is EssentialContract, IBlockHash, TaikoL2Deprecated { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _rollupAddressManager The address of the {AddressManager} contract. + /// @param _rollupResolver The {IResolver} used by this rollup. /// @param _l1ChainId The ID of the base layer. /// @param _initialGasExcess The initial parentGasExcess. function init( address _owner, - address _rollupAddressManager, + address _rollupResolver, uint64 _l1ChainId, uint64 _initialGasExcess ) external initializer { - __Essential_init(_owner, _rollupAddressManager); + __Essential_init(_owner, _rollupResolver); require(_l1ChainId != 0, L2_INVALID_L1_CHAIN_ID()); require(_l1ChainId != block.chainid, L2_INVALID_L1_CHAIN_ID()); diff --git a/packages/protocol/contracts/layer2/based/TaikoL2Deprecated.sol b/packages/protocol/contracts/layer2/based/TaikoL2Deprecated.sol index 8351843c458..d04237ed6a1 100644 --- a/packages/protocol/contracts/layer2/based/TaikoL2Deprecated.sol +++ b/packages/protocol/contracts/layer2/based/TaikoL2Deprecated.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/shared/data/LibSharedData.sol"; +import "src/shared/based/LibSharedData.sol"; /// @title TaikoL2Deprecated /// @notice This contract includes deprecated functions whose ABI are still used by client for old diff --git a/packages/protocol/contracts/layer2/token/BridgedTaikoToken.sol b/packages/protocol/contracts/layer2/token/BridgedTaikoToken.sol index 0fa1d8a7d23..bf8ba91ffbe 100644 --- a/packages/protocol/contracts/layer2/token/BridgedTaikoToken.sol +++ b/packages/protocol/contracts/layer2/token/BridgedTaikoToken.sol @@ -11,9 +11,9 @@ import "src/shared/token/TaikoTokenBase.sol"; contract BridgedTaikoToken is TaikoTokenBase, IBridgedERC20 { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _sharedAddressManager The address manager address. - function init(address _owner, address _sharedAddressManager) external initializer { - __Essential_init(_owner, _sharedAddressManager); + /// @param _sharedResolver The {IResolver} used by multipel rollups. + function init(address _owner, address _sharedResolver) external initializer { + __Essential_init(_owner, _sharedResolver); __ERC20_init("Taiko Token", "TAIKO"); __ERC20Votes_init(); __ERC20Permit_init("Taiko Token"); diff --git a/packages/protocol/contracts/shared/data/LibSharedData.sol b/packages/protocol/contracts/shared/based/LibSharedData.sol similarity index 100% rename from packages/protocol/contracts/shared/data/LibSharedData.sol rename to packages/protocol/contracts/shared/based/LibSharedData.sol diff --git a/packages/protocol/contracts/shared/bridge/Bridge.sol b/packages/protocol/contracts/shared/bridge/Bridge.sol index eb18c5ef7a6..84c3d3da69d 100644 --- a/packages/protocol/contracts/shared/bridge/Bridge.sol +++ b/packages/protocol/contracts/shared/bridge/Bridge.sol @@ -3,10 +3,10 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol"; import "../common/EssentialContract.sol"; -import "../common/LibStrings.sol"; -import "../common/LibAddress.sol"; -import "../common/LibMath.sol"; -import "../common/LibNetwork.sol"; +import "../libs/LibStrings.sol"; +import "../libs/LibAddress.sol"; +import "../libs/LibMath.sol"; +import "../libs/LibNetwork.sol"; import "../signal/ISignalService.sol"; import "./IBridge.sol"; import "./IQuotaManager.sol"; @@ -103,9 +103,9 @@ contract Bridge is EssentialContract, IBridge { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _sharedAddressManager The address of the {AddressManager} contract. - function init(address _owner, address _sharedAddressManager) external initializer { - __Essential_init(_owner, _sharedAddressManager); + /// @param _sharedResolver The {IResolver} used by multipel rollups. + function init(address _owner, address _sharedResolver) external initializer { + __Essential_init(_owner, _sharedResolver); } /// @notice This function shall be called by previously deployed contracts. @@ -475,7 +475,7 @@ contract Bridge is EssentialContract, IBridge { // bridge_watchdog can pause the bridge, but cannot unpause it. if (toPause && addr == resolve(LibStrings.B_BRIDGE_WATCHDOG, true)) return; - revert RESOLVER_DENIED(); + revert ACCESS_DENIED(); } /// @notice Invokes a call message on the Bridge. diff --git a/packages/protocol/contracts/shared/bridge/QuotaManager.sol b/packages/protocol/contracts/shared/bridge/QuotaManager.sol index 293eeb7ca8d..974f5b34189 100644 --- a/packages/protocol/contracts/shared/bridge/QuotaManager.sol +++ b/packages/protocol/contracts/shared/bridge/QuotaManager.sol @@ -2,8 +2,8 @@ pragma solidity ^0.8.24; import "../common/EssentialContract.sol"; -import "../common/LibStrings.sol"; -import "../common/LibMath.sol"; +import "../libs/LibStrings.sol"; +import "../libs/LibMath.sol"; import "./IQuotaManager.sol"; /// @title QuotaManager @@ -31,17 +31,17 @@ contract QuotaManager is EssentialContract, IQuotaManager { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _sharedAddressManager The address of the {AddressManager} contract. + /// @param _sharedResolver The {IResolver} used by multipel rollups. /// @param _quotaPeriod The time required to restore all quota. function init( address _owner, - address _sharedAddressManager, + address _sharedResolver, uint24 _quotaPeriod ) external initializer { - __Essential_init(_owner, _sharedAddressManager); + __Essential_init(_owner, _sharedResolver); _setQuotaPeriod(_quotaPeriod); } diff --git a/packages/protocol/contracts/shared/common/AddressResolver.sol b/packages/protocol/contracts/shared/common/AddressResolver.sol deleted file mode 100644 index ebfaec3a8be..00000000000 --- a/packages/protocol/contracts/shared/common/AddressResolver.sol +++ /dev/null @@ -1,109 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import "./IAddressManager.sol"; -import "./IAddressResolver.sol"; - -/// @title AddressResolver -/// @notice See the documentation in {IAddressResolver}. -/// @custom:security-contact security@taiko.xyz -abstract contract AddressResolver is IAddressResolver, Initializable { - /// @notice Address of the AddressManager. - address public addressManager; - uint256[49] private __gap; - - error RESOLVER_DENIED(); - error RESOLVER_INVALID_MANAGER(); - error RESOLVER_UNEXPECTED_CHAINID(); - error RESOLVER_ZERO_ADDR(uint64 chainId, bytes32 name); - - /// @dev Modifier that ensures the caller is the resolved address of a given - /// name. - /// @param _name The name to check against. - modifier onlyFromNamed(bytes32 _name) { - require(msg.sender == resolve(_name, true), RESOLVER_DENIED()); - _; - } - - /// @dev Modifier that ensures the caller is the resolved address of a given - /// name, if the name is set. - /// @param _name The name to check against. - modifier onlyFromOptionalNamed(bytes32 _name) { - address addr = resolve(_name, true); - require(addr == address(0) || msg.sender == addr, RESOLVER_DENIED()); - _; - } - - /// @dev Modifier that ensures the caller is a resolved address to either _name1 or _name2 - /// name. - /// @param _name1 The first name to check against. - /// @param _name2 The second name to check against. - modifier onlyFromNamedEither(bytes32 _name1, bytes32 _name2) { - require( - msg.sender == resolve(_name1, true) || msg.sender == resolve(_name2, true), - RESOLVER_DENIED() - ); - _; - } - - /// @custom:oz-upgrades-unsafe-allow constructor - constructor() { - _disableInitializers(); - } - - /// @inheritdoc IAddressResolver - function resolve(bytes32 _name, bool _allowZeroAddress) public view virtual returns (address) { - return _resolve(uint64(block.chainid), _name, _allowZeroAddress); - } - - /// @inheritdoc IAddressResolver - function resolve( - uint64 _chainId, - bytes32 _name, - bool _allowZeroAddress - ) - public - view - virtual - returns (address) - { - return _resolve(_chainId, _name, _allowZeroAddress); - } - - /// @dev Initialization method for setting up AddressManager reference. - /// @param _addressManager Address of the AddressManager. - function __AddressResolver_init(address _addressManager) internal virtual onlyInitializing { - require(block.chainid <= type(uint64).max, RESOLVER_UNEXPECTED_CHAINID()); - - addressManager = _addressManager; - } - - /// @dev Helper method to resolve name-to-address. - /// @param _chainId The chainId of interest. - /// @param _name Name whose address is to be resolved. - /// @param _allowZeroAddress If set to true, does not throw if the resolved - /// address is `address(0)`. - /// @return addr_ Address associated with the given name on the specified - /// chain. - function _resolve( - uint64 _chainId, - bytes32 _name, - bool _allowZeroAddress - ) - internal - view - returns (address addr_) - { - addr_ = _getAddress(_chainId, _name); - - require(_allowZeroAddress || addr_ != address(0), RESOLVER_ZERO_ADDR(_chainId, _name)); - } - - function _getAddress(uint64 _chainId, bytes32 _name) internal view virtual returns (address) { - address _addressManager = addressManager; - require(_addressManager != address(0), RESOLVER_INVALID_MANAGER()); - - return IAddressManager(_addressManager).getAddress(_chainId, _name); - } -} diff --git a/packages/protocol/contracts/shared/common/AddressManager.sol b/packages/protocol/contracts/shared/common/DefaultResolver.sol similarity index 58% rename from packages/protocol/contracts/shared/common/AddressManager.sol rename to packages/protocol/contracts/shared/common/DefaultResolver.sol index ac0ab0ae7ea..93889538d95 100644 --- a/packages/protocol/contracts/shared/common/AddressManager.sol +++ b/packages/protocol/contracts/shared/common/DefaultResolver.sol @@ -2,44 +2,38 @@ pragma solidity ^0.8.24; import "./EssentialContract.sol"; +import "./ResolverBase.sol"; -/// @title AddressManager -/// @notice See the documentation in {IAddressManager}. +/// @title DefaultResolver +/// @notice Storage-based address resolver. /// @custom:security-contact security@taiko.xyz -contract AddressManager is EssentialContract, IAddressManager { +contract DefaultResolver is EssentialContract, ResolverBase { /// @dev Mapping of chainId to mapping of name to address. mapping(uint256 chainId => mapping(bytes32 name => address addr)) private __addresses; uint256[49] private __gap; - /// @notice Emitted when an address is set. + /// @notice Emitted when an address is registered. /// @param chainId The chainId for the address mapping. /// @param name The name for the address mapping. /// @param newAddress The new address. /// @param oldAddress The old address. - event AddressSet( - uint64 indexed chainId, bytes32 indexed name, address newAddress, address oldAddress + event AddressRegistered( + uint256 indexed chainId, bytes32 indexed name, address newAddress, address oldAddress ); - error AM_ADDRESS_ALREADY_SET(); - /// @notice Initializes the contract. /// @param _owner The owner of this contract. function init(address _owner) external initializer { __Essential_init(_owner, address(this)); } - /// @notice This function shall be called by previously deployed contracts. - function init2() external onlyOwner reinitializer(2) { - addressManager = address(this); - } - - /// @notice Sets the address for a specific chainId-name pair. + /// @notice Registers an address for a specific chainId-name pair. /// @param _chainId The chainId to which the address will be mapped. /// @param _name The name to which the address will be mapped. /// @param _newAddress The Ethereum address to be mapped. - function setAddress( - uint64 _chainId, + function registerAddress( + uint256 _chainId, bytes32 _name, address _newAddress ) @@ -48,13 +42,11 @@ contract AddressManager is EssentialContract, IAddressManager { onlyOwner { address oldAddress = __addresses[_chainId][_name]; - require(_newAddress != oldAddress, AM_ADDRESS_ALREADY_SET()); __addresses[_chainId][_name] = _newAddress; - emit AddressSet(_chainId, _name, _newAddress, oldAddress); + emit AddressRegistered(_chainId, _name, _newAddress, oldAddress); } - /// @inheritdoc IAddressManager - function getAddress(uint64 _chainId, bytes32 _name) external view override returns (address) { + function getAddress(uint256 _chainId, bytes32 _name) internal view override returns (address) { return __addresses[_chainId][_name]; } diff --git a/packages/protocol/contracts/shared/common/EssentialContract.sol b/packages/protocol/contracts/shared/common/EssentialContract.sol index 70320ea9623..960740a7556 100644 --- a/packages/protocol/contracts/shared/common/EssentialContract.sol +++ b/packages/protocol/contracts/shared/common/EssentialContract.sol @@ -3,14 +3,17 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; -import "./AddressResolver.sol"; +import "./IResolver.sol"; /// @title EssentialContract /// @custom:security-contact security@taiko.xyz -abstract contract EssentialContract is UUPSUpgradeable, Ownable2StepUpgradeable, AddressResolver { +abstract contract EssentialContract is UUPSUpgradeable, Ownable2StepUpgradeable { uint8 internal constant _FALSE = 1; uint8 internal constant _TRUE = 2; + address private __resolver; + uint256[49] private __gapFromOldAddressResolver; + /// @dev Slot 1. uint8 internal __reentry; uint8 internal __paused; @@ -26,16 +29,20 @@ abstract contract EssentialContract is UUPSUpgradeable, Ownable2StepUpgradeable, /// @param account The account that unpaused the contract. event Unpaused(address account); + event ResolverUpdated(address oldResolver, address newResolver); + error INVALID_PAUSE_STATUS(); error FUNC_NOT_IMPLEMENTED(); error REENTRANT_CALL(); + error ACCESS_DENIED(); + error RESOLVER_NOT_FOUND(); error ZERO_ADDRESS(); error ZERO_VALUE(); /// @dev Modifier that ensures the caller is the owner or resolved address of a given name. /// @param _name The name to check against. modifier onlyFromOwnerOrNamed(bytes32 _name) { - require(msg.sender == owner() || msg.sender == resolve(_name, true), RESOLVER_DENIED()); + require(msg.sender == owner() || msg.sender == resolve(_name, true), ACCESS_DENIED()); _; } @@ -76,11 +83,44 @@ abstract contract EssentialContract is UUPSUpgradeable, Ownable2StepUpgradeable, _; } - /// @custom:oz-upgrades-unsafe-allow constructor + /// @dev Modifier that ensures the caller is the resolved address of a given + /// name. + /// @param _name The name to check against. + modifier onlyFromNamed(bytes32 _name) { + require(msg.sender == resolve(_name, true), ACCESS_DENIED()); + _; + } + + /// @dev Modifier that ensures the caller is the resolved address of a given + /// name, if the name is set. + /// @param _name The name to check against. + modifier onlyFromOptionalNamed(bytes32 _name) { + address addr = resolve(_name, true); + require(addr == address(0) || msg.sender == addr, ACCESS_DENIED()); + _; + } + + /// @dev Modifier that ensures the caller is a resolved address to either _name1 or _name2 + /// name. + /// @param _name1 The first name to check against. + /// @param _name2 The second name to check against. + modifier onlyFromNamedEither(bytes32 _name1, bytes32 _name2) { + require( + msg.sender == resolve(_name1, true) || msg.sender == resolve(_name2, true), + ACCESS_DENIED() + ); + _; + } + constructor() { _disableInitializers(); } + function setResolver(address _resolver) external onlyOwner { + emit ResolverUpdated(__resolver, _resolver); + __resolver = _resolver; + } + /// @notice Pauses the contract. function pause() public virtual { _pause(); @@ -115,18 +155,33 @@ abstract contract EssentialContract is UUPSUpgradeable, Ownable2StepUpgradeable, return _loadReentryLock() == _TRUE; } - /// @notice Initializes the contract. - /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _addressManager The address of the {AddressManager} contract. - function __Essential_init( - address _owner, - address _addressManager + function resolve( + uint64 _chainId, + bytes32 _name, + bool _allowZeroAddress ) - internal - nonZeroAddr(_addressManager) + public + view + returns (address) { + return resolver().resolve(_chainId, _name, _allowZeroAddress); + } + + function resolve(bytes32 _name, bool _allowZeroAddress) public view returns (address) { + return resolver().resolve(block.chainid, _name, _allowZeroAddress); + } + + function resolver() public view virtual returns (IResolver) { + require(__resolver != address(0), RESOLVER_NOT_FOUND()); + return IResolver(__resolver); + } + + /// @notice Initializes the contract. + /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. + /// @param _resolver The address of the {DefaultResolver} contract. + function __Essential_init(address _owner, address _resolver) internal nonZeroAddr(_resolver) { __Essential_init(_owner); - __AddressResolver_init(_addressManager); + __resolver = _resolver; } function __Essential_init(address _owner) internal virtual onlyInitializing { diff --git a/packages/protocol/contracts/shared/common/IAddressManager.sol b/packages/protocol/contracts/shared/common/IAddressManager.sol deleted file mode 100644 index 46ee1478156..00000000000 --- a/packages/protocol/contracts/shared/common/IAddressManager.sol +++ /dev/null @@ -1,15 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -/// @title IAddressManager -/// @notice Manages a mapping of (chainId, name) pairs to Ethereum addresses. -/// @custom:security-contact security@taiko.xyz -interface IAddressManager { - /// @notice Gets the address mapped to a specific chainId-name pair. - /// @dev Note that in production, this method shall be a pure function - /// without any storage access. - /// @param _chainId The chainId for which the address needs to be fetched. - /// @param _name The name for which the address needs to be fetched. - /// @return Address associated with the chainId-name pair. - function getAddress(uint64 _chainId, bytes32 _name) external view returns (address); -} diff --git a/packages/protocol/contracts/shared/common/IAddressResolver.sol b/packages/protocol/contracts/shared/common/IAddressResolver.sol deleted file mode 100644 index efeae4a73d6..00000000000 --- a/packages/protocol/contracts/shared/common/IAddressResolver.sol +++ /dev/null @@ -1,36 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -/// @title IAddressResolver -/// @notice This contract acts as a bridge for name-to-address resolution. -/// It delegates the resolution to the AddressManager. By separating the logic, -/// we can maintain flexibility in address management without affecting the -/// resolving process. -/// @dev Note that the address manager should be changed using upgradability, there -/// is no setAddressManager() function to guarantee atomicity across all -/// contracts that are resolvers. -/// @custom:security-contact security@taiko.xyz -interface IAddressResolver { - /// @notice Resolves a name to its address deployed on this chain. - /// @param _name Name whose address is to be resolved. - /// @param _allowZeroAddress If set to true, does not throw if the resolved - /// address is `address(0)`. - /// @return Address associated with the given name. - function resolve(bytes32 _name, bool _allowZeroAddress) external view returns (address); - - /// @notice Resolves a name to its address deployed on a specified chain. - /// @param _chainId The chainId of interest. - /// @param _name Name whose address is to be resolved. - /// @param _allowZeroAddress If set to true, does not throw if the resolved - /// address is `address(0)`. - /// @return Address associated with the given name on the specified - /// chain. - function resolve( - uint64 _chainId, - bytes32 _name, - bool _allowZeroAddress - ) - external - view - returns (address); -} diff --git a/packages/protocol/contracts/shared/common/IResolver.sol b/packages/protocol/contracts/shared/common/IResolver.sol new file mode 100644 index 00000000000..56691e31e05 --- /dev/null +++ b/packages/protocol/contracts/shared/common/IResolver.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +/// @title IResolver +/// @notice This contract acts as a bridge for name-to-address resolution. +/// @custom:security-contact security@taiko.xyz +interface IResolver { + error RESOLVED_TO_ZERO_ADDRESS(); + + /// @notice Resolves a name to its address deployed on a specified chain. + /// @param _chainId The chainId of interest. + /// @param _name Name whose address is to be resolved. + /// @param _allowZeroAddress If set to true, does not throw if the resolved + /// address is `address(0)`. + /// @return Address associated with the given name on the specified + /// chain. + function resolve( + uint256 _chainId, + bytes32 _name, + bool _allowZeroAddress + ) + external + view + returns (address); +} diff --git a/packages/protocol/contracts/shared/common/ResolverBase.sol b/packages/protocol/contracts/shared/common/ResolverBase.sol new file mode 100644 index 00000000000..495c53c57c8 --- /dev/null +++ b/packages/protocol/contracts/shared/common/ResolverBase.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "./IResolver.sol"; + +/// @title ResolverBase +/// @custom:security-contact security@taiko.xyz +abstract contract ResolverBase is IResolver { + function resolve( + uint256 _chainId, + bytes32 _name, + bool _allowZeroAddress + ) + external + view + returns (address addr_) + { + addr_ = getAddress(_chainId, _name); + require(addr_ != address(0) || _allowZeroAddress, RESOLVED_TO_ZERO_ADDRESS()); + } + + function getAddress(uint256 _chainId, bytes32 _name) internal view virtual returns (address); +} diff --git a/packages/protocol/contracts/shared/common/LibAddress.sol b/packages/protocol/contracts/shared/libs/LibAddress.sol similarity index 100% rename from packages/protocol/contracts/shared/common/LibAddress.sol rename to packages/protocol/contracts/shared/libs/LibAddress.sol diff --git a/packages/protocol/contracts/shared/common/LibBytes.sol b/packages/protocol/contracts/shared/libs/LibBytes.sol similarity index 100% rename from packages/protocol/contracts/shared/common/LibBytes.sol rename to packages/protocol/contracts/shared/libs/LibBytes.sol diff --git a/packages/protocol/contracts/shared/common/LibMath.sol b/packages/protocol/contracts/shared/libs/LibMath.sol similarity index 100% rename from packages/protocol/contracts/shared/common/LibMath.sol rename to packages/protocol/contracts/shared/libs/LibMath.sol diff --git a/packages/protocol/contracts/shared/common/LibNetwork.sol b/packages/protocol/contracts/shared/libs/LibNetwork.sol similarity index 100% rename from packages/protocol/contracts/shared/common/LibNetwork.sol rename to packages/protocol/contracts/shared/libs/LibNetwork.sol diff --git a/packages/protocol/contracts/shared/common/LibStrings.sol b/packages/protocol/contracts/shared/libs/LibStrings.sol similarity index 97% rename from packages/protocol/contracts/shared/common/LibStrings.sol rename to packages/protocol/contracts/shared/libs/LibStrings.sol index 8f18a6364c9..bb2973ed2f7 100644 --- a/packages/protocol/contracts/shared/common/LibStrings.sol +++ b/packages/protocol/contracts/shared/libs/LibStrings.sol @@ -27,7 +27,7 @@ library LibStrings { bytes32 internal constant B_TIER_GUARDIAN = bytes32("tier_guardian"); bytes32 internal constant B_TIER_GUARDIAN_MINORITY = bytes32("tier_guardian_minority"); bytes32 internal constant B_TIER_OPTIMISTIC = bytes32(""); - bytes32 internal constant B_TIER_ROUTER = bytes32("tier_router"); + bytes32 internal constant B_TIER_PROVIDER = bytes32("tier_provider"); bytes32 internal constant B_TIER_SGX = bytes32("tier_sgx"); bytes32 internal constant B_TIER_TDX = bytes32("tier_tdx"); bytes32 internal constant B_TIER_TEE_ANY = bytes32("tier_tee_any"); diff --git a/packages/protocol/contracts/shared/common/LibTrieProof.sol b/packages/protocol/contracts/shared/libs/LibTrieProof.sol similarity index 100% rename from packages/protocol/contracts/shared/common/LibTrieProof.sol rename to packages/protocol/contracts/shared/libs/LibTrieProof.sol diff --git a/packages/protocol/contracts/shared/signal/SignalService.sol b/packages/protocol/contracts/shared/signal/SignalService.sol index f7432392bb7..fbbf327072d 100644 --- a/packages/protocol/contracts/shared/signal/SignalService.sol +++ b/packages/protocol/contracts/shared/signal/SignalService.sol @@ -2,8 +2,8 @@ pragma solidity ^0.8.24; import "../common/EssentialContract.sol"; -import "../common/LibStrings.sol"; -import "../common/LibTrieProof.sol"; +import "../libs/LibStrings.sol"; +import "../libs/LibTrieProof.sol"; import "./ISignalService.sol"; /// @title SignalService @@ -41,9 +41,9 @@ contract SignalService is EssentialContract, ISignalService { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _sharedAddressManager The address of the {AddressManager} contract. - function init(address _owner, address _sharedAddressManager) external initializer { - __Essential_init(_owner, _sharedAddressManager); + /// @param _sharedResolver The {IResolver} used by multipel rollups. + function init(address _owner, address _sharedResolver) external initializer { + __Essential_init(_owner, _sharedResolver); } /// @dev Authorize or deauthorize an address for calling syncChainData. diff --git a/packages/protocol/contracts/shared/token/TaikoTokenBase.sol b/packages/protocol/contracts/shared/token/TaikoTokenBase.sol index b0f373fac6c..a50e9ece051 100644 --- a/packages/protocol/contracts/shared/token/TaikoTokenBase.sol +++ b/packages/protocol/contracts/shared/token/TaikoTokenBase.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol"; import "../common/EssentialContract.sol"; -import "../common/LibStrings.sol"; +import "../libs/LibStrings.sol"; /// @notice TaikoToken was `EssentialContract, ERC20SnapshotUpgradeable, ERC20VotesUpgradeable`. /// We use this contract to take 50 more slots to remove `ERC20SnapshotUpgradeable` from the parent diff --git a/packages/protocol/contracts/shared/tokenvault/BaseVault.sol b/packages/protocol/contracts/shared/tokenvault/BaseVault.sol index de9db5c8314..1015b0e51d7 100644 --- a/packages/protocol/contracts/shared/tokenvault/BaseVault.sol +++ b/packages/protocol/contracts/shared/tokenvault/BaseVault.sol @@ -5,8 +5,8 @@ import "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeab import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import "../bridge/IBridge.sol"; import "../common/EssentialContract.sol"; -import "../common/LibStrings.sol"; -import "../common/LibBytes.sol"; +import "../libs/LibStrings.sol"; +import "../libs/LibBytes.sol"; /// @title INameSymbol /// @notice Interface for contracts that provide name() and symbol() diff --git a/packages/protocol/contracts/shared/tokenvault/BridgedERC1155.sol b/packages/protocol/contracts/shared/tokenvault/BridgedERC1155.sol index 2edb63ce287..3c4a4a5a5ef 100644 --- a/packages/protocol/contracts/shared/tokenvault/BridgedERC1155.sol +++ b/packages/protocol/contracts/shared/tokenvault/BridgedERC1155.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol"; import "../common/EssentialContract.sol"; -import "../common/LibStrings.sol"; +import "../libs/LibStrings.sol"; import "./IBridgedERC1155.sol"; import "./LibBridgedToken.sol"; @@ -35,7 +35,7 @@ contract BridgedERC1155 is /// @inheritdoc IBridgedERC1155Initializable function init( address _owner, - address _sharedAddressManager, + address _sharedResolver, address _srcToken, uint256 _srcChainId, string calldata _symbol, @@ -48,7 +48,7 @@ contract BridgedERC1155 is // The symbol and the name can be empty for ERC1155 tokens so we use some placeholder data // for them instead. LibBridgedToken.validateInputs(_srcToken, _srcChainId); - __Essential_init(_owner, _sharedAddressManager); + __Essential_init(_owner, _sharedResolver); // The token URI here is not important as the client will have to read the URI from the // canonical contract to fetch meta data. diff --git a/packages/protocol/contracts/shared/tokenvault/BridgedERC20.sol b/packages/protocol/contracts/shared/tokenvault/BridgedERC20.sol index f8a564680dc..9e865003f82 100644 --- a/packages/protocol/contracts/shared/tokenvault/BridgedERC20.sol +++ b/packages/protocol/contracts/shared/tokenvault/BridgedERC20.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; import "@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol"; import "../common/EssentialContract.sol"; -import "../common/LibStrings.sol"; +import "../libs/LibStrings.sol"; import "./IBridgedERC20.sol"; import "./LibBridgedToken.sol"; @@ -60,7 +60,7 @@ contract BridgedERC20 is /// @inheritdoc IBridgedERC20Initializable function init( address _owner, - address _sharedAddressManager, + address _sharedResolver, address _srcToken, uint256 _srcChainId, uint8 _decimals, @@ -73,7 +73,7 @@ contract BridgedERC20 is { // Check if provided parameters are valid LibBridgedToken.validateInputs(_srcToken, _srcChainId); - __Essential_init(_owner, _sharedAddressManager); + __Essential_init(_owner, _sharedResolver); __ERC20_init(_name, _symbol); // Set contract properties diff --git a/packages/protocol/contracts/shared/tokenvault/BridgedERC20V2.sol b/packages/protocol/contracts/shared/tokenvault/BridgedERC20V2.sol index 85cdfafefc6..be71e0042f6 100644 --- a/packages/protocol/contracts/shared/tokenvault/BridgedERC20V2.sol +++ b/packages/protocol/contracts/shared/tokenvault/BridgedERC20V2.sol @@ -34,7 +34,7 @@ contract BridgedERC20V2 is BridgedERC20, IERC20PermitUpgradeable, EIP712Upgradea /// `reinitializer(2)` instead of `initializer`. function init( address _owner, - address _sharedAddressManager, + address _sharedResolver, address _srcToken, uint256 _srcChainId, uint8 _decimals, @@ -48,7 +48,7 @@ contract BridgedERC20V2 is BridgedERC20, IERC20PermitUpgradeable, EIP712Upgradea { // Check if provided parameters are valid LibBridgedToken.validateInputs(_srcToken, _srcChainId); - __Essential_init(_owner, _sharedAddressManager); + __Essential_init(_owner, _sharedResolver); __ERC20_init(_name, _symbol); // Set contract properties srcToken = _srcToken; diff --git a/packages/protocol/contracts/shared/tokenvault/BridgedERC721.sol b/packages/protocol/contracts/shared/tokenvault/BridgedERC721.sol index 979aa00edb2..ae249942505 100644 --- a/packages/protocol/contracts/shared/tokenvault/BridgedERC721.sol +++ b/packages/protocol/contracts/shared/tokenvault/BridgedERC721.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol"; import "../common/EssentialContract.sol"; -import "../common/LibStrings.sol"; +import "../libs/LibStrings.sol"; import "./IBridgedERC721.sol"; import "./LibBridgedToken.sol"; @@ -30,7 +30,7 @@ contract BridgedERC721 is /// @inheritdoc IBridgedERC721Initializable function init( address _owner, - address _sharedAddressManager, + address _sharedResolver, address _srcToken, uint256 _srcChainId, string calldata _symbol, @@ -41,7 +41,7 @@ contract BridgedERC721 is { // Check if provided parameters are valid LibBridgedToken.validateInputs(_srcToken, _srcChainId); - __Essential_init(_owner, _sharedAddressManager); + __Essential_init(_owner, _sharedResolver); __ERC721_init(_name, _symbol); srcToken = _srcToken; diff --git a/packages/protocol/contracts/shared/tokenvault/ERC1155Vault.sol b/packages/protocol/contracts/shared/tokenvault/ERC1155Vault.sol index d9de36a88bf..aa6ddce1a6d 100644 --- a/packages/protocol/contracts/shared/tokenvault/ERC1155Vault.sol +++ b/packages/protocol/contracts/shared/tokenvault/ERC1155Vault.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; import "@openzeppelin/contracts-upgradeable/token/ERC1155/utils/ERC1155ReceiverUpgradeable.sol"; -import "../common/LibAddress.sol"; -import "../common/LibStrings.sol"; +import "../libs/LibAddress.sol"; +import "../libs/LibStrings.sol"; import "./IBridgedERC1155.sol"; import "./BaseNFTVault.sol"; @@ -20,9 +20,9 @@ contract ERC1155Vault is BaseNFTVault, ERC1155ReceiverUpgradeable { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _sharedAddressManager The address of the {AddressManager} contract. - function init(address _owner, address _sharedAddressManager) external initializer { - __Essential_init(_owner, _sharedAddressManager); + /// @param _sharedResolver The {IResolver} used by multipel rollups. + function init(address _owner, address _sharedResolver) external initializer { + __Essential_init(_owner, _sharedResolver); __ERC1155Receiver_init(); } /// @notice Transfers ERC1155 tokens to this vault and sends a message to @@ -287,7 +287,14 @@ contract ERC1155Vault is BaseNFTVault, ERC1155ReceiverUpgradeable { function _deployBridgedToken(CanonicalNFT memory _ctoken) private returns (address btoken_) { bytes memory data = abi.encodeCall( IBridgedERC1155Initializable.init, - (owner(), addressManager, _ctoken.addr, _ctoken.chainId, _ctoken.symbol, _ctoken.name) + ( + owner(), + address(resolver()), + _ctoken.addr, + _ctoken.chainId, + _ctoken.symbol, + _ctoken.name + ) ); btoken_ = address(new ERC1967Proxy(resolve(LibStrings.B_BRIDGED_ERC1155, false), data)); diff --git a/packages/protocol/contracts/shared/tokenvault/ERC20Vault.sol b/packages/protocol/contracts/shared/tokenvault/ERC20Vault.sol index b7b0b0296b2..87779361309 100644 --- a/packages/protocol/contracts/shared/tokenvault/ERC20Vault.sol +++ b/packages/protocol/contracts/shared/tokenvault/ERC20Vault.sol @@ -6,8 +6,8 @@ import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; import "@openzeppelin/contracts/utils/Address.sol"; import "../bridge/IQuotaManager.sol"; -import "../common/LibStrings.sol"; -import "../common/LibAddress.sol"; +import "../libs/LibStrings.sol"; +import "../libs/LibAddress.sol"; import "./IBridgedERC20.sol"; import "./BaseVault.sol"; @@ -160,9 +160,9 @@ contract ERC20Vault is BaseVault { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _sharedAddressManager The address of the {AddressManager} contract. - function init(address _owner, address _sharedAddressManager) external initializer { - __Essential_init(_owner, _sharedAddressManager); + /// @param _sharedResolver The {IResolver} used by multipel rollups. + function init(address _owner, address _sharedResolver) external initializer { + __Essential_init(_owner, _sharedResolver); } /// @notice Change bridged token. @@ -436,7 +436,7 @@ contract ERC20Vault is BaseVault { IBridgedERC20Initializable.init, ( owner(), - addressManager, + address(resolver()), ctoken.addr, ctoken.chainId, ctoken.decimals, diff --git a/packages/protocol/contracts/shared/tokenvault/ERC721Vault.sol b/packages/protocol/contracts/shared/tokenvault/ERC721Vault.sol index 2784e80d64a..7c7677b6988 100644 --- a/packages/protocol/contracts/shared/tokenvault/ERC721Vault.sol +++ b/packages/protocol/contracts/shared/tokenvault/ERC721Vault.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../common/LibAddress.sol"; -import "../common/LibStrings.sol"; +import "../libs/LibAddress.sol"; +import "../libs/LibStrings.sol"; import "./IBridgedERC721.sol"; import "./BaseNFTVault.sol"; @@ -20,9 +20,9 @@ contract ERC721Vault is BaseNFTVault, IERC721Receiver { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _sharedAddressManager The address of the {AddressManager} contract. - function init(address _owner, address _sharedAddressManager) external initializer { - __Essential_init(_owner, _sharedAddressManager); + /// @param _sharedResolver The {IResolver} used by multipel rollups. + function init(address _owner, address _sharedResolver) external initializer { + __Essential_init(_owner, _sharedResolver); } /// @notice Transfers ERC721 tokens to this vault and sends a message to the @@ -243,7 +243,14 @@ contract ERC721Vault is BaseNFTVault, IERC721Receiver { function _deployBridgedToken(CanonicalNFT memory _ctoken) private returns (address btoken_) { bytes memory data = abi.encodeCall( IBridgedERC721Initializable.init, - (owner(), addressManager, _ctoken.addr, _ctoken.chainId, _ctoken.symbol, _ctoken.name) + ( + owner(), + address(resolver()), + _ctoken.addr, + _ctoken.chainId, + _ctoken.symbol, + _ctoken.name + ) ); btoken_ = address(new ERC1967Proxy(resolve(LibStrings.B_BRIDGED_ERC721, false), data)); diff --git a/packages/protocol/contracts/shared/tokenvault/IBridgedERC1155.sol b/packages/protocol/contracts/shared/tokenvault/IBridgedERC1155.sol index 4c3e721782f..ef83788d299 100644 --- a/packages/protocol/contracts/shared/tokenvault/IBridgedERC1155.sol +++ b/packages/protocol/contracts/shared/tokenvault/IBridgedERC1155.sol @@ -32,14 +32,14 @@ interface IBridgedERC1155 { interface IBridgedERC1155Initializable { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _sharedAddressManager The address of the {AddressManager} contract. + /// @param _sharedResolver The {IResolver} used by multipel rollups. /// @param _srcToken Address of the source token. /// @param _srcChainId Source chain ID. /// @param _symbol Symbol of the bridged token. /// @param _name Name of the bridged token. function init( address _owner, - address _sharedAddressManager, + address _sharedResolver, address _srcToken, uint256 _srcChainId, string calldata _symbol, diff --git a/packages/protocol/contracts/shared/tokenvault/IBridgedERC20.sol b/packages/protocol/contracts/shared/tokenvault/IBridgedERC20.sol index b8b672b4791..1248d7ed0e8 100644 --- a/packages/protocol/contracts/shared/tokenvault/IBridgedERC20.sol +++ b/packages/protocol/contracts/shared/tokenvault/IBridgedERC20.sol @@ -52,7 +52,7 @@ interface IBridgedERC20Migratable { interface IBridgedERC20Initializable { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _sharedAddressManager The address of the {AddressManager} contract. + /// @param _sharedResolver The {IResolver} used by multipel rollups. /// @param _srcToken The source token address. /// @param _srcChainId The source chain ID. /// @param _decimals The number of decimal places of the source token. @@ -60,7 +60,7 @@ interface IBridgedERC20Initializable { /// @param _name The name of the token. function init( address _owner, - address _sharedAddressManager, + address _sharedResolver, address _srcToken, uint256 _srcChainId, uint8 _decimals, diff --git a/packages/protocol/contracts/shared/tokenvault/IBridgedERC721.sol b/packages/protocol/contracts/shared/tokenvault/IBridgedERC721.sol index 8f89632084c..2d6fc6961d3 100644 --- a/packages/protocol/contracts/shared/tokenvault/IBridgedERC721.sol +++ b/packages/protocol/contracts/shared/tokenvault/IBridgedERC721.sol @@ -25,14 +25,14 @@ interface IBridgedERC721 { interface IBridgedERC721Initializable { /// @notice Initializes the contract. /// @param _owner The owner of this contract. msg.sender will be used if this value is zero. - /// @param _sharedAddressManager The address of the {AddressManager} contract. + /// @param _sharedResolver The {IResolver} used by multipel rollups. /// @param _srcToken Address of the source token. /// @param _srcChainId Source chain ID. /// @param _symbol Symbol of the bridged token. /// @param _name Name of the bridged token. function init( address _owner, - address _sharedAddressManager, + address _sharedResolver, address _srcToken, uint256 _srcChainId, string calldata _symbol, diff --git a/packages/protocol/foundry.toml b/packages/protocol/foundry.toml index f66986cfb74..64bd1ffdc22 100644 --- a/packages/protocol/foundry.toml +++ b/packages/protocol/foundry.toml @@ -68,9 +68,16 @@ script = "script/layer2" out = "out/layer2" evm_version = "shanghai" +[profile.shared] +src = "contracts/shared" +test = "test/shared" +script = "script/shared" +out = "out/shared" +evm_version = "shanghai" + [profile.genesis] src = "contracts/layer2" test = "test/genesis" script = "script/layer2" -out = "out/layer2" +out = "out/genesis" evm_version = "shanghai" \ No newline at end of file diff --git a/packages/protocol/package.json b/packages/protocol/package.json index f8a526c81c2..867896a2d71 100644 --- a/packages/protocol/package.json +++ b/packages/protocol/package.json @@ -8,10 +8,12 @@ "compile:l1": "FOUNDRY_PROFILE=layer1 forge build --build-info --extra-output storage-layout", "compile:l2": "FOUNDRY_PROFILE=layer2 forge build --build-info --extra-output storage-layout", "compile:genesis": "FOUNDRY_PROFILE=genesis forge build --build-info --extra-output storage-layout", + "compile:shared": "FOUNDRY_PROFILE=shared forge build --build-info --extra-output storage-layout", "compile": "pnpm compile:l1 && pnpm compile:l2", - "test:l1": "FOUNDRY_PROFILE=layer1 forge test -vvv --extra-output storage-layout", - "test:l2": "FOUNDRY_PROFILE=layer2 forge test -vvv --extra-output storage-layout", - "test": "pnpm test:l1 && pnpm test:l2", + "test:l1": "FOUNDRY_PROFILE=layer1 forge test --extra-output storage-layout --match-path 'test/layer1/**/*.t.sol'", + "test:l2": "FOUNDRY_PROFILE=layer2 forge test --extra-output storage-layout --match-path 'test/layer2/**/*.t.sol'", + "test:shared": "FOUNDRY_PROFILE=shared forge test --extra-output storage-layout --match-path 'test/shared/**/*.t.sol'", + "test": "pnpm test:l1 && pnpm test:l2 && pnpm test:shared", "layout:l1": "./script/gen-layouts.sh layer1", "layout:l2": "./script/gen-layouts.sh layer2", "layout": "pnpm layout:l1 && pnpm layout:l2", diff --git a/packages/protocol/script/BaseScript.sol b/packages/protocol/script/BaseScript.sol new file mode 100644 index 00000000000..dae3e2dba4d --- /dev/null +++ b/packages/protocol/script/BaseScript.sol @@ -0,0 +1,87 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "forge-std/src/console2.sol"; +import "forge-std/src/Script.sol"; + +import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import "@openzeppelin/contracts/utils/Strings.sol"; +import "@optimism/packages/contracts-bedrock/src/EAS/Common.sol"; + +import "src/shared/common/DefaultResolver.sol"; + +abstract contract BaseScript is Script { + address public resolver = vm.envOr("RESOLVER", address(0)); + uint256 public deployerPrivateKey = vm.envOr("PRIVATE_KEY", uint256(0)); + + modifier broadcast() { + require(deployerPrivateKey != 0, "invalid private key"); + vm.startBroadcast(deployerPrivateKey); + _; + vm.stopBroadcast(); + } + + function checkResolverOwnership() internal view { + require(resolver != address(0), "invalid resolver address"); + require( + DefaultResolver(resolver).owner() == msg.sender, "resolver not owned by this contract" + ); + } + + function deploy(address _impl, address _admin, bytes memory _data) internal returns (address) { + return address(new TransparentUpgradeableProxy(_impl, _admin, _data)); + } + + function deploy( + bytes32 name, + address impl, + bytes memory data + ) + internal + returns (address proxy) + { + proxy = address(new ERC1967Proxy(impl, data)); + string memory _name = Strings.toString(uint256(name)); + vm.writeJson( + vm.serializeAddress("deployment", _name, proxy), + string.concat(vm.projectRoot(), "/deployments/deploy_l1.json") + ); + + console2.log(">", string.concat("'", bytes32ToString(name), "'")); + console2.log(" proxy :", proxy); + console2.log(" impl :", impl); + console2.log(" owner :", OwnableUpgradeable(proxy).owner()); + console2.log(" chain id:", block.chainid); + if (name != "" && resolver != address(0)) { + console2.log(" registered at:", resolver); + DefaultResolver(resolver).registerAddress(block.chainid, name, proxy); + } + } + + function deploy( + bytes32 name, + address impl, + bytes memory data, + DefaultResolver _resolver + ) + internal + returns (address proxy) + { + proxy = address(new ERC1967Proxy(impl, data)); + string memory _name = Strings.toString(uint256(name)); + vm.writeJson( + vm.serializeAddress("deployment", _name, proxy), + string.concat(vm.projectRoot(), "/deployments/deploy_l1.json") + ); + + console2.log(">", string.concat("'", bytes32ToString(name), "'")); + console2.log(" proxy :", proxy); + console2.log(" impl :", impl); + console2.log(" owner :", OwnableUpgradeable(proxy).owner()); + console2.log(" chain id:", block.chainid); + console2.log(" registered at:", address(_resolver)); + _resolver.registerAddress(block.chainid, name, proxy); + } +} diff --git a/packages/protocol/script/gen-layouts.sh b/packages/protocol/script/gen-layouts.sh index 25d53ffe77d..0290d05c852 100755 --- a/packages/protocol/script/gen-layouts.sh +++ b/packages/protocol/script/gen-layouts.sh @@ -13,8 +13,7 @@ contracts_shared=( "contracts/shared/tokenvault/BridgedERC1155.sol:BridgedERC1155" "contracts/shared/bridge/Bridge.sol:Bridge" "contracts/shared/bridge/QuotaManager.sol:QuotaManager" -"contracts/shared/common/AddressManager.sol:AddressManager" -"contracts/shared/common/AddressResolver.sol:AddressResolver" +"contracts/shared/common/DefaultResolver.sol:DefaultResolver" "contracts/shared/common/EssentialContract.sol:EssentialContract" "contracts/shared/signal/SignalService.sol:SignalService" ) @@ -32,28 +31,14 @@ contracts_layer1=( "contracts/layer1/automata-attestation/AutomataDcapV3Attestation.sol:AutomataDcapV3Attestation" "contracts/layer1/based/TaikoL1.sol:TaikoL1" "contracts/layer1/hekla/HeklaTaikoL1.sol:HeklaTaikoL1" -"contracts/layer1/hekla/HeklaTierRouter.sol:HeklaTierRouter" "contracts/layer1/mainnet/multirollup/MainnetBridge.sol:MainnetBridge" "contracts/layer1/mainnet/multirollup/MainnetSignalService.sol:MainnetSignalService" "contracts/layer1/mainnet/multirollup/MainnetERC20Vault.sol:MainnetERC20Vault" "contracts/layer1/mainnet/multirollup/MainnetERC1155Vault.sol:MainnetERC1155Vault" "contracts/layer1/mainnet/multirollup/MainnetERC721Vault.sol:MainnetERC721Vault" -"contracts/layer1/mainnet/multirollup/MainnetSharedAddressManager.sol:MainnetSharedAddressManager" -"contracts/layer1/mainnet/addrcache/RollupAddressCache.sol:RollupAddressCache" -"contracts/layer1/mainnet/addrcache/SharedAddressCache.sol:SharedAddressCache" -"contracts/layer1/mainnet/addrcache/AddressCache.sol:AddressCache" -"contracts/layer1/mainnet/rollup/verifiers/MainnetSgxVerifier.sol:MainnetSgxVerifier" -"contracts/layer1/mainnet/rollup/verifiers/MainnetSP1Verifier.sol:MainnetSP1Verifier" -"contracts/layer1/mainnet/rollup/verifiers/MainnetZkAnyVerifier.sol:MainnetZkAnyVerifier" -"contracts/layer1/mainnet/rollup/verifiers/MainnetRisc0Verifier.sol:MainnetRisc0Verifier" -"contracts/layer1/mainnet/rollup/verifiers/MainnetZkAndTeeVerifier.sol:MainnetZkAndTeeVerifier" -"contracts/layer1/mainnet/rollup/verifiers/MainnetTeeAnyVerifier.sol:MainnetTeeAnyVerifier" -"contracts/layer1/mainnet/rollup/MainnetGuardianProver.sol:MainnetGuardianProver" -"contracts/layer1/mainnet/rollup/MainnetTaikoL1.sol:MainnetTaikoL1" -"contracts/layer1/mainnet/rollup/MainnetRollupAddressManager.sol:MainnetRollupAddressManager" -"contracts/layer1/mainnet/rollup/MainnetTierRouter.sol:MainnetTierRouter" -"contracts/layer1/mainnet/rollup/MainnetProverSet.sol:MainnetProverSet" -"contracts/layer1/team/tokenunlock/TokenUnlock.sol:TokenUnlock" +"contracts/layer1/mainnet/MainnetTaikoL1.sol:MainnetTaikoL1" +"contracts/layer1/mainnet/MainnetTierProvider.sol:MainnetTierProvider" +"contracts/layer1/team/TokenUnlock.sol:TokenUnlock" "contracts/layer1/provers/ProverSet.sol:ProverSet" "contracts/layer1/provers/GuardianProver.sol:GuardianProver" ) diff --git a/packages/protocol/script/layer1/DeployERC20Airdrop.s.sol b/packages/protocol/script/layer1/DeployERC20Airdrop.s.sol deleted file mode 100644 index c726ca9b0dd..00000000000 --- a/packages/protocol/script/layer1/DeployERC20Airdrop.s.sol +++ /dev/null @@ -1,54 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "test/shared/DeployCapability.sol"; -import "src/layer1/team/airdrop/ERC20Airdrop.sol"; - -// @KorbinianK , @2manslkh -// As written also in the tests the workflow shall be the following (checklist): -// 1. Is Vault - which will store the tokens - deployed ? -// 2. Is (bridged) TKO token existing ? -// 3. Is ERC20Airdrop contract is 'approved operator' on the TKO token ? -// 4. Proof (merkle root) and minting window related variables (start, end) set ? -// If YES the answer to all above, we can go live with airdrop, which is like: -// 1. User go to website. -> For sake of simplicity he is eligible -// 2. User wants to mint, but first site established the delegateHash (user sets a delegatee) which -// the user signs -// 3. Backend retrieves the proof and together with signature in the input params, user fires away -// the claimAndDelegate() transaction. -contract DeployERC20Airdrop is DeployCapability { - uint256 public deployerPrivKey = vm.envUint("PRIVATE_KEY"); // Owner of the ERC20 airdrop - // contract - address public bridgedTko = vm.envAddress("BRIDGED_TKO_ADDRESS"); - address public vaultAddress = vm.envAddress("VAULT_ADDRESS"); - - function setUp() external { } - - function run() external { - require(deployerPrivKey != 0, "invalid deployer priv key"); - require(vaultAddress != address(0), "invalid vault address"); - require(bridgedTko != address(0), "invalid bridged tko address"); - - vm.startBroadcast(deployerPrivKey); - - ERC20Airdrop( - deployProxy({ - name: "ERC20Airdrop", - impl: address(new ERC20Airdrop()), - data: abi.encodeCall( - ERC20Airdrop.init, (address(0), 0, 0, bytes32(0), bridgedTko, vaultAddress) - ) - }) - ); - - /// @dev Once the Vault is done, we need to have a contract in that vault through which we - /// authorize the airdrop contract to be a spender of the vault. - // example: - // - // SOME_VAULT_CONTRACT(vaultAddress).approveAirdropContractAsSpender( - // bridgedTko, address(ERC20Airdrop), 50_000_000_000e18 - // ); - - vm.stopBroadcast(); - } -} diff --git a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol b/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol deleted file mode 100644 index 94d2c612f35..00000000000 --- a/packages/protocol/script/layer1/DeployHeklaL2Contracts.s.sol +++ /dev/null @@ -1,35 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "test/shared/DeployCapability.sol"; -import "src/shared/bridge/Bridge.sol"; -import "src/shared/common/AddressManager.sol"; -import "../../contracts/layer2/hekla/HeklaTaikoL2.sol"; -import "../../contracts/shared/tokenvault/BridgedERC20V2.sol"; - -contract DeployHeklaL2Contracts is DeployCapability { - uint256 public privateKey = vm.envUint("PRIVATE_KEY"); - - modifier broadcast() { - require(privateKey != 0, "invalid private key"); - vm.startBroadcast(privateKey); - _; - vm.stopBroadcast(); - } - - function run() external broadcast { - // TaikoL2 - address heklaTaikoL2 = address(new HeklaTaikoL2()); - // Bridge - address bridge = address(new Bridge()); - // Address manager - address addressManager = address(new AddressManager()); - // Bridged ERC20 V2 - address bridgedERC20V2 = address(new BridgedERC20V2()); - - console2.log("> hekla_taiko_l2@", heklaTaikoL2); - console2.log("> bridge@", bridge); - console2.log("> address_manager@", addressManager); - console2.log("> bridged_erc20_v2@", bridgedERC20V2); - } -} diff --git a/packages/protocol/script/layer1/DeployLabsProverPool.s.sol b/packages/protocol/script/layer1/DeployLabsProverPool.s.sol deleted file mode 100644 index a109d51c68d..00000000000 --- a/packages/protocol/script/layer1/DeployLabsProverPool.s.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "test/shared/DeployCapability.sol"; -import "src/layer1/provers/ProverSet.sol"; - -contract DeployLabsProverPool is DeployCapability { - address public addressManager = 0x579f40D0BE111b823962043702cabe6Aaa290780; - address public owner = 0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F; - - modifier broadcast() { - vm.startBroadcast(); - _; - vm.stopBroadcast(); - } - - function run() external broadcast { - deployProxy({ - name: "labprover.taiko.eth", - impl: 0x34f2B21107AfE3584949c184A1E6236FFDAC4f6F, - data: abi.encodeCall(ProverSet.init, (owner, owner, addressManager)) - }); - } -} diff --git a/packages/protocol/script/layer1/DeployProtocolOnL1.s.sol b/packages/protocol/script/layer1/DeployProtocolOnL1.s.sol deleted file mode 100644 index 3ed3290160e..00000000000 --- a/packages/protocol/script/layer1/DeployProtocolOnL1.s.sol +++ /dev/null @@ -1,457 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "@openzeppelin/contracts/utils/Strings.sol"; -import "@risc0/contracts/groth16/RiscZeroGroth16Verifier.sol"; -import { SP1Verifier as SuccinctVerifier } from "@sp1-contracts/src/v3.0.0/SP1VerifierPlonk.sol"; - -// Actually this one is deployed already on mainnet, but we are now deploying our own (non via-ir) -// version. For mainnet, it is easier to go with one of: -// - https://github.com/daimo-eth/p256-verifier -// - https://github.com/rdubois-crypto/FreshCryptoLib -import "@p256-verifier/contracts/P256Verifier.sol"; - -import "src/shared/common/LibStrings.sol"; -import "src/shared/tokenvault/BridgedERC1155.sol"; -import "src/shared/tokenvault/BridgedERC20.sol"; -import "src/shared/tokenvault/BridgedERC721.sol"; -import "src/layer1/automata-attestation/AutomataDcapV3Attestation.sol"; -import "src/layer1/automata-attestation/lib/PEMCertChainLib.sol"; -import "src/layer1/automata-attestation/utils/SigVerifyLib.sol"; -import "src/layer1/devnet/DevnetTaikoL1.sol"; -import "src/layer1/devnet/DevnetTierRouter.sol"; -import "src/layer1/mainnet/rollup/MainnetGuardianProver.sol"; -import "src/layer1/mainnet/rollup/MainnetTaikoL1.sol"; -import "src/layer1/mainnet/rollup/MainnetTierRouter.sol"; -import "src/layer1/mainnet/rollup/verifiers/MainnetSgxVerifier.sol"; -import "src/layer1/mainnet/multirollup/MainnetBridge.sol"; -import "src/layer1/mainnet/multirollup/MainnetERC1155Vault.sol"; -import "src/layer1/mainnet/multirollup/MainnetERC20Vault.sol"; -import "src/layer1/mainnet/multirollup/MainnetERC721Vault.sol"; -import "src/layer1/mainnet/multirollup/MainnetSignalService.sol"; -import "src/layer1/provers/GuardianProver.sol"; -import "src/layer1/provers/ProverSet.sol"; -import "src/layer1/token/TaikoToken.sol"; -import "src/layer1/verifiers/Risc0Verifier.sol"; -import "src/layer1/verifiers/SP1Verifier.sol"; -import "test/layer1/based/TestTierRouter.sol"; -import "test/shared/token/FreeMintERC20.sol"; -import "test/shared/token/MayFailFreeMintERC20.sol"; -import "test/shared/DeployCapability.sol"; - -/// @title DeployProtocolOnL1 -/// @notice This script deploys the core Taiko protocol smart contract on L1, -/// initializing the rollup. -contract DeployProtocolOnL1 is DeployCapability { - uint256 public NUM_MIN_MAJORITY_GUARDIANS = vm.envUint("NUM_MIN_MAJORITY_GUARDIANS"); - uint256 public NUM_MIN_MINORITY_GUARDIANS = vm.envUint("NUM_MIN_MINORITY_GUARDIANS"); - address public DAO_FALLBACK_PROPOSER = 0xD3f681bD6B49887A48cC9C9953720903967E9DC0; - - address public constant MAINNET_CONTRACT_OWNER = 0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F; // admin.taiko.eth - - modifier broadcast() { - uint256 privateKey = vm.envUint("PRIVATE_KEY"); - require(privateKey != 0, "invalid priv key"); - vm.startBroadcast(); - _; - vm.stopBroadcast(); - } - - function run() external broadcast { - addressNotNull(vm.envAddress("TAIKO_L2_ADDRESS"), "TAIKO_L2_ADDRESS"); - addressNotNull(vm.envAddress("L2_SIGNAL_SERVICE"), "L2_SIGNAL_SERVICE"); - addressNotNull(vm.envAddress("CONTRACT_OWNER"), "CONTRACT_OWNER"); - - require(vm.envBytes32("L2_GENESIS_HASH") != 0, "L2_GENESIS_HASH"); - address contractOwner = vm.envAddress("CONTRACT_OWNER"); - - // --------------------------------------------------------------- - // Deploy shared contracts - (address sharedAddressManager) = deploySharedContracts(contractOwner); - console2.log("sharedAddressManager: ", sharedAddressManager); - // --------------------------------------------------------------- - // Deploy rollup contracts - address rollupAddressManager = deployRollupContracts(sharedAddressManager, contractOwner); - - // --------------------------------------------------------------- - // Signal service need to authorize the new rollup - address signalServiceAddr = AddressManager(sharedAddressManager).getAddress( - uint64(block.chainid), LibStrings.B_SIGNAL_SERVICE - ); - addressNotNull(signalServiceAddr, "signalServiceAddr"); - SignalService signalService = SignalService(signalServiceAddr); - - address taikoL1Addr = AddressManager(rollupAddressManager).getAddress( - uint64(block.chainid), LibStrings.B_TAIKO - ); - addressNotNull(taikoL1Addr, "taikoL1Addr"); - TaikoL1 taikoL1 = TaikoL1(payable(taikoL1Addr)); - - if (vm.envAddress("SHARED_ADDRESS_MANAGER") == address(0)) { - SignalService(signalServiceAddr).authorize(taikoL1Addr, true); - } - - uint64 l2ChainId = taikoL1.getConfig().chainId; - require(l2ChainId != block.chainid, "same chainid"); - - console2.log("------------------------------------------"); - console2.log("msg.sender: ", msg.sender); - console2.log("address(this): ", address(this)); - console2.log("signalService.owner(): ", signalService.owner()); - console2.log("------------------------------------------"); - - if (signalService.owner() == msg.sender) { - signalService.transferOwnership(contractOwner); - } else { - console2.log("------------------------------------------"); - console2.log("Warning - you need to transact manually:"); - console2.log("signalService.authorize(taikoL1Addr, bytes32(block.chainid))"); - console2.log("- signalService : ", signalServiceAddr); - console2.log("- taikoL1Addr : ", taikoL1Addr); - console2.log("- chainId : ", block.chainid); - } - - // --------------------------------------------------------------- - // Register L2 addresses - register(rollupAddressManager, "taiko", vm.envAddress("TAIKO_L2_ADDRESS"), l2ChainId); - register( - rollupAddressManager, "signal_service", vm.envAddress("L2_SIGNAL_SERVICE"), l2ChainId - ); - - // --------------------------------------------------------------- - // Deploy other contracts - if (block.chainid != 1) { - deployAuxContracts(); - } - - if (AddressManager(sharedAddressManager).owner() == msg.sender) { - AddressManager(sharedAddressManager).transferOwnership(contractOwner); - console2.log("** sharedAddressManager ownership transferred to:", contractOwner); - } - - AddressManager(rollupAddressManager).transferOwnership(contractOwner); - console2.log("** rollupAddressManager ownership transferred to:", contractOwner); - } - - function deploySharedContracts(address owner) internal returns (address sharedAddressManager) { - addressNotNull(owner, "owner"); - - sharedAddressManager = vm.envAddress("SHARED_ADDRESS_MANAGER"); - if (sharedAddressManager == address(0)) { - sharedAddressManager = deployProxy({ - name: "shared_address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }); - } - - address taikoToken = vm.envAddress("TAIKO_TOKEN"); - if (taikoToken == address(0)) { - taikoToken = deployProxy({ - name: "taiko_token", - impl: address(new TaikoToken()), - data: abi.encodeCall( - TaikoToken.init, (owner, vm.envAddress("TAIKO_TOKEN_PREMINT_RECIPIENT")) - ), - registerTo: sharedAddressManager - }); - } else { - register(sharedAddressManager, "taiko_token", taikoToken); - } - register(sharedAddressManager, "bond_token", taikoToken); - - // Deploy Bridging contracts - deployProxy({ - name: "mainnet_signal_service", - impl: address(new MainnetSignalService()), - data: abi.encodeCall(SignalService.init, (address(0), sharedAddressManager)) - }); - deployProxy({ - name: "signal_service", - impl: address(new SignalService()), - data: abi.encodeCall(SignalService.init, (address(0), sharedAddressManager)), - registerTo: sharedAddressManager - }); - - deployProxy({ - name: "mainnet_bridge", - impl: address(new MainnetBridge()), - data: abi.encodeCall(Bridge.init, (address(0), sharedAddressManager)) - }); - address brdige = deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), sharedAddressManager)), - registerTo: sharedAddressManager - }); - - if (vm.envBool("PAUSE_BRIDGE")) { - Bridge(payable(brdige)).pause(); - } - - Bridge(payable(brdige)).transferOwnership(owner); - - console2.log("------------------------------------------"); - console2.log( - "Warning - you need to register *all* counterparty bridges to enable multi-hop bridging:" - ); - console2.log( - "sharedAddressManager.setAddress(remoteChainId, \"bridge\", address(remoteBridge))" - ); - console2.log("- sharedAddressManager : ", sharedAddressManager); - - // Deploy Vaults - deployProxy({ - name: "mainnet_erc20_vault", - impl: address(new MainnetERC20Vault()), - data: abi.encodeCall(ERC20Vault.init, (owner, sharedAddressManager)) - }); - deployProxy({ - name: "erc20_vault", - impl: address(new ERC20Vault()), - data: abi.encodeCall(ERC20Vault.init, (owner, sharedAddressManager)), - registerTo: sharedAddressManager - }); - - deployProxy({ - name: "mainnet_erc721_vault", - impl: address(new MainnetERC721Vault()), - data: abi.encodeCall(ERC721Vault.init, (owner, sharedAddressManager)) - }); - deployProxy({ - name: "erc721_vault", - impl: address(new ERC721Vault()), - data: abi.encodeCall(ERC721Vault.init, (owner, sharedAddressManager)), - registerTo: sharedAddressManager - }); - - deployProxy({ - name: "mainnet_erc1155_vault", - impl: address(new MainnetERC1155Vault()), - data: abi.encodeCall(ERC1155Vault.init, (owner, sharedAddressManager)) - }); - deployProxy({ - name: "erc1155_vault", - impl: address(new ERC1155Vault()), - data: abi.encodeCall(ERC1155Vault.init, (owner, sharedAddressManager)), - registerTo: sharedAddressManager - }); - - console2.log("------------------------------------------"); - console2.log( - "Warning - you need to register *all* counterparty vaults to enable multi-hop bridging:" - ); - console2.log( - "sharedAddressManager.setAddress(remoteChainId, \"erc20_vault\", address(remoteERC20Vault))" - ); - console2.log( - "sharedAddressManager.setAddress(remoteChainId, \"erc721_vault\", address(remoteERC721Vault))" - ); - console2.log( - "sharedAddressManager.setAddress(remoteChainId, \"erc1155_vault\", address(remoteERC1155Vault))" - ); - console2.log("- sharedAddressManager : ", sharedAddressManager); - - // Deploy Bridged token implementations - register(sharedAddressManager, "bridged_erc20", address(new BridgedERC20())); - register(sharedAddressManager, "bridged_erc721", address(new BridgedERC721())); - register(sharedAddressManager, "bridged_erc1155", address(new BridgedERC1155())); - } - - function deployRollupContracts( - address _sharedAddressManager, - address owner - ) - internal - returns (address rollupAddressManager) - { - addressNotNull(_sharedAddressManager, "sharedAddressManager"); - addressNotNull(owner, "owner"); - - rollupAddressManager = deployProxy({ - name: "rollup_address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }); - - // --------------------------------------------------------------- - // Register shared contracts in the new rollup - copyRegister(rollupAddressManager, _sharedAddressManager, "taiko_token"); - copyRegister(rollupAddressManager, _sharedAddressManager, "bond_token"); - copyRegister(rollupAddressManager, _sharedAddressManager, "signal_service"); - copyRegister(rollupAddressManager, _sharedAddressManager, "bridge"); - - deployProxy({ - name: "mainnet_taiko", - impl: address(new MainnetTaikoL1()), - data: abi.encodeCall( - TaikoL1.init, - ( - owner, - rollupAddressManager, - vm.envBytes32("L2_GENESIS_HASH"), - vm.envBool("PAUSE_TAIKO_L1") - ) - ) - }); - - TaikoL1 taikoL1; - if (keccak256(abi.encode(vm.envString("TIER_ROUTER"))) == keccak256(abi.encode("devnet"))) { - taikoL1 = TaikoL1(address(new DevnetTaikoL1())); - } else { - taikoL1 = TaikoL1(address(new TaikoL1())); - } - - deployProxy({ - name: "taiko", - impl: address(taikoL1), - data: abi.encodeCall( - TaikoL1.init, - ( - owner, - rollupAddressManager, - vm.envBytes32("L2_GENESIS_HASH"), - vm.envBool("PAUSE_TAIKO_L1") - ) - ), - registerTo: rollupAddressManager - }); - - deployProxy({ - name: "mainnet_tier_sgx", - impl: address(new MainnetSgxVerifier()), - data: abi.encodeCall(SgxVerifier.init, (owner, rollupAddressManager)) - }); - - deployProxy({ - name: "tier_sgx", - impl: address(new SgxVerifier()), - data: abi.encodeCall(SgxVerifier.init, (owner, rollupAddressManager)), - registerTo: rollupAddressManager - }); - - deployProxy({ - name: "mainnet_guardian_prover_minority", - impl: address(new MainnetGuardianProver()), - data: abi.encodeCall(GuardianProver.init, (address(0), rollupAddressManager)) - }); - - address guardianProverImpl = address(new GuardianProver()); - - address guardianProverMinority = deployProxy({ - name: "guardian_prover_minority", - impl: guardianProverImpl, - data: abi.encodeCall(GuardianProver.init, (address(0), rollupAddressManager)) - }); - - GuardianProver(guardianProverMinority).enableBondAllowance(true); - - address guardianProver = deployProxy({ - name: "guardian_prover", - impl: guardianProverImpl, - data: abi.encodeCall(GuardianProver.init, (address(0), rollupAddressManager)) - }); - - register(rollupAddressManager, "tier_guardian_minority", guardianProverMinority); - register(rollupAddressManager, "tier_guardian", guardianProver); - register( - rollupAddressManager, - "tier_router", - address(deployTierRouter(vm.envString("TIER_ROUTER"))) - ); - - address[] memory guardians = vm.envAddress("GUARDIAN_PROVERS", ","); - - GuardianProver(guardianProverMinority).setGuardians( - guardians, uint8(NUM_MIN_MINORITY_GUARDIANS), true - ); - GuardianProver(guardianProverMinority).transferOwnership(owner); - - GuardianProver(guardianProver).setGuardians( - guardians, uint8(NUM_MIN_MAJORITY_GUARDIANS), true - ); - GuardianProver(guardianProver).transferOwnership(owner); - - // No need to proxy these, because they are 3rd party. If we want to modify, we simply - // change the registerAddress("automata_dcap_attestation", address(attestation)); - P256Verifier p256Verifier = new P256Verifier(); - SigVerifyLib sigVerifyLib = new SigVerifyLib(address(p256Verifier)); - PEMCertChainLib pemCertChainLib = new PEMCertChainLib(); - address automateDcapV3AttestationImpl = address(new AutomataDcapV3Attestation()); - - address automataProxy = deployProxy({ - name: "automata_dcap_attestation", - impl: automateDcapV3AttestationImpl, - data: abi.encodeCall( - AutomataDcapV3Attestation.init, (owner, address(sigVerifyLib), address(pemCertChainLib)) - ), - registerTo: rollupAddressManager - }); - - // Log addresses for the user to register sgx instance - console2.log("SigVerifyLib", address(sigVerifyLib)); - console2.log("PemCertChainLib", address(pemCertChainLib)); - console2.log("AutomataDcapVaAttestation", automataProxy); - - deployProxy({ - name: "prover_set", - impl: address(new ProverSet()), - data: abi.encodeCall( - ProverSet.init, (owner, vm.envAddress("PROVER_SET_ADMIN"), rollupAddressManager) - ) - }); - - deployZKVerifiers(owner, rollupAddressManager); - } - - // deploy both sp1 & risc0 verifiers. - // using function to avoid stack too deep error - function deployZKVerifiers(address owner, address rollupAddressManager) private { - // Deploy r0 groth16 verifier - RiscZeroGroth16Verifier verifier = - new RiscZeroGroth16Verifier(ControlID.CONTROL_ROOT, ControlID.BN254_CONTROL_ID); - register(rollupAddressManager, "risc0_groth16_verifier", address(verifier)); - - deployProxy({ - name: "tier_zkvm_risc0", - impl: address(new Risc0Verifier()), - data: abi.encodeCall(Risc0Verifier.init, (owner, rollupAddressManager)), - registerTo: rollupAddressManager - }); - - // Deploy sp1 plonk verifier - SuccinctVerifier succinctVerifier = new SuccinctVerifier(); - register(rollupAddressManager, "sp1_remote_verifier", address(succinctVerifier)); - - deployProxy({ - name: "tier_zkvm_sp1", - impl: address(new SP1Verifier()), - data: abi.encodeCall(SP1Verifier.init, (owner, rollupAddressManager)), - registerTo: rollupAddressManager - }); - } - - function deployTierRouter(string memory tierRouterName) private returns (address) { - if (keccak256(abi.encode(tierRouterName)) == keccak256(abi.encode("devnet"))) { - return address(new DevnetTierRouter()); - } else if (keccak256(abi.encode(tierRouterName)) == keccak256(abi.encode("testnet"))) { - return address(new TestTierRouter()); - } else if (keccak256(abi.encode(tierRouterName)) == keccak256(abi.encode("mainnet"))) { - return address(new MainnetTierRouter(DAO_FALLBACK_PROPOSER)); - } else { - revert("invalid tier provider"); - } - } - - function deployAuxContracts() private { - address horseToken = address(new FreeMintERC20("Horse Token", "HORSE")); - console2.log("HorseToken", horseToken); - - address bullToken = address(new MayFailFreeMintERC20("Bull Token", "BULL")); - console2.log("BullToken", bullToken); - } - - function addressNotNull(address addr, string memory err) private pure { - require(addr != address(0), err); - } -} diff --git a/packages/protocol/script/layer1/DeployProverSet.s.sol b/packages/protocol/script/layer1/DeployProverSet.s.sol deleted file mode 100644 index 924b1d5e590..00000000000 --- a/packages/protocol/script/layer1/DeployProverSet.s.sol +++ /dev/null @@ -1,39 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/provers/ProverSet.sol"; -import "test/shared/DeployCapability.sol"; - -contract DeployProverSet is DeployCapability { - modifier broadcast() { - vm.startBroadcast(); - _; - vm.stopBroadcast(); - } - - function run() external broadcast { - address owner = vm.envOr("PROVER_SET_OWNER", msg.sender); - address admin = vm.envOr("PROVER_SET_ADMIN", msg.sender); - address addressManager = vm.envAddress("ROLLUP_ADDRESS_MANAGER"); - - addressNotNull(owner, "invalid owner address"); - addressNotNull(admin, "invalid admin address"); - addressNotNull(addressManager, "invalid rollup address manager address"); - - address proverSet = address(new ProverSet()); - - address proxy = deployProxy({ - name: "prover_set", - impl: proverSet, - data: abi.encodeCall(ProverSet.init, (owner, admin, addressManager)) - }); - - console2.log(); - console2.log("Deployed ProverSet impl at address: %s", proverSet); - console2.log("Deployed ProverSet proxy at address: %s", proxy); - } - - function addressNotNull(address addr, string memory err) private pure { - require(addr != address(0), err); - } -} diff --git a/packages/protocol/script/layer1/DeployQuotaManager.s.sol b/packages/protocol/script/layer1/DeployQuotaManager.s.sol deleted file mode 100644 index 77d7d1fefcc..00000000000 --- a/packages/protocol/script/layer1/DeployQuotaManager.s.sol +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "test/shared/DeployCapability.sol"; -import "src/shared/bridge/QuotaManager.sol"; - -contract DeployQuotaManager is DeployCapability { - uint256 public privateKey = vm.envUint("PRIVATE_KEY"); - // MAINNET_L1_SHARED_ADDRESS_MANAGER: 0xEf9EaA1dd30a9AA1df01c36411b5F082aA65fBaa - address public addressManager = vm.envAddress("L1_SHARED_ADDRESS_MANAGER"); - // MAINNET_OWNER: admin.taiko.eth (0x9CBeE534B5D8a6280e01a14844Ee8aF350399C7F) - address public owner = vm.envAddress("OWNER"); - - modifier broadcast() { - require(privateKey != 0, "invalid private key"); - vm.startBroadcast(); - _; - vm.stopBroadcast(); - } - - function run() external broadcast { - // Deploy the QuotaManager contract on Ethereum - QuotaManager qm = QuotaManager( - deployProxy({ - name: "quota_manager", - impl: address(new QuotaManager()), - data: abi.encodeCall(QuotaManager.init, (owner, addressManager, 15 minutes)) - }) - ); - - // Config L2-to-L1 quota - uint104 value = 200_000; // USD - uint104 priceETH = 3100; // USD - uint104 priceTKO = 5; // USD - - // ETH - qm.updateQuota(address(0), value * 1 ether / priceETH); - // WETH - qm.updateQuota(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, value * 1 ether / priceETH); - // TKO - qm.updateQuota(0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800, value * 1e18 / priceTKO); - // USDT - qm.updateQuota(0xdAC17F958D2ee523a2206206994597C13D831ec7, value * 1e6); - // USDC - qm.updateQuota(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, value * 1e6); - } -} diff --git a/packages/protocol/script/layer1/DeployRisc0Verifier.s.sol b/packages/protocol/script/layer1/DeployRisc0Verifier.s.sol deleted file mode 100644 index 353a5557f33..00000000000 --- a/packages/protocol/script/layer1/DeployRisc0Verifier.s.sol +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.24; - -import "@risc0/contracts/groth16/RiscZeroGroth16Verifier.sol"; -import "test/shared/DeployCapability.sol"; -import "src/layer1/verifiers/Risc0Verifier.sol"; - -contract DeployRisc0Verifier is DeployCapability { - uint256 public deployerPrivKey = vm.envUint("PRIVATE_KEY"); - address public rollupAddressManager = vm.envAddress("ROLLUP_ADDRESS_MANAGER"); - - function run() external { - require(deployerPrivKey != 0, "invalid deployer priv key"); - require(rollupAddressManager != address(0), "invalid rollup address manager address"); - - vm.startBroadcast(deployerPrivKey); - RiscZeroGroth16Verifier verifier = - new RiscZeroGroth16Verifier(ControlID.CONTROL_ROOT, ControlID.BN254_CONTROL_ID); - register(rollupAddressManager, "risc0_groth16_verifier", address(verifier)); - deployProxy({ - name: "tier_zkvm_risc0", - impl: address(new Risc0Verifier()), - data: abi.encodeCall(Risc0Verifier.init, (address(0), rollupAddressManager)), - registerTo: rollupAddressManager - }); - vm.stopBroadcast(); - } -} diff --git a/packages/protocol/script/layer1/DeploySP1Verifier.s.sol b/packages/protocol/script/layer1/DeploySP1Verifier.s.sol deleted file mode 100644 index 9f6f5f898ae..00000000000 --- a/packages/protocol/script/layer1/DeploySP1Verifier.s.sol +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import { SP1Verifier as SuccinctVerifier } from "@sp1-contracts/src/v3.0.0/SP1VerifierPlonk.sol"; -import "test/shared/DeployCapability.sol"; -import "src/layer1/verifiers/SP1Verifier.sol"; - -contract DeploySP1Verifier is DeployCapability { - uint256 public deployerPrivKey = vm.envUint("PRIVATE_KEY"); - address public rollupAddressManager = vm.envAddress("ROLLUP_ADDRESS_MANAGER"); - - function run() external { - require(deployerPrivKey != 0, "invalid deployer priv key"); - require(rollupAddressManager != address(0), "invalid rollup address manager address"); - - vm.startBroadcast(deployerPrivKey); - - // Deploy sp1 plonk verifier - SuccinctVerifier succinctVerifier = new SuccinctVerifier(); - register(rollupAddressManager, "sp1_remote_verifier", address(succinctVerifier)); - - deployProxy({ - name: "tier_zkvm_sp1", - impl: address(new SP1Verifier()), - data: abi.encodeCall(SP1Verifier.init, (address(0), rollupAddressManager)), - registerTo: rollupAddressManager - }); - - vm.stopBroadcast(); - } -} diff --git a/packages/protocol/script/layer1/DeployTaikoToken.s.sol b/packages/protocol/script/layer1/DeployTaikoToken.s.sol deleted file mode 100644 index 9684aea4870..00000000000 --- a/packages/protocol/script/layer1/DeployTaikoToken.s.sol +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "test/shared/DeployCapability.sol"; -import "src/layer1/token/TaikoToken.sol"; - -contract DeployTaikoToken is DeployCapability { - uint256 public privateKey = vm.envUint("PRIVATE_KEY"); - // MAINNET_SECURITY_COUNCIL: council.taiko.eth (0x7C50d60743D3FCe5a39FdbF687AFbAe5acFF49Fd) - address public securityCouncil = vm.envAddress("SECURITY_COUNCIL"); - address public premintRecipient = vm.envAddress("TAIKO_TOKEN_PREMINT_RECIPIENT"); - - modifier broadcast() { - require(privateKey != 0, "invalid private key"); - vm.startBroadcast(); - _; - vm.stopBroadcast(); - } - - function run() external broadcast { - // Deploy the TaikoToken contract, use securityCouncil address as the owner. - deployProxy({ - name: "taiko_token", - impl: address(new TaikoToken()), - data: abi.encodeCall(TaikoToken.init, (securityCouncil, premintRecipient)) - }); - } -} diff --git a/packages/protocol/script/layer1/UpdateMainnetOntakeL1.s.sol b/packages/protocol/script/layer1/UpdateMainnetOntakeL1.s.sol deleted file mode 100644 index 97d945f3a72..00000000000 --- a/packages/protocol/script/layer1/UpdateMainnetOntakeL1.s.sol +++ /dev/null @@ -1,42 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "test/shared/DeployCapability.sol"; -import "src/layer1/mainnet/multirollup/MainnetSharedAddressManager.sol"; -import "src/layer1/mainnet/multirollup/MainnetSignalService.sol"; -import "src/layer1/mainnet/multirollup/MainnetBridge.sol"; -import "src/layer1/mainnet/rollup/MainnetRollupAddressManager.sol"; -import "src/layer1/mainnet/rollup/MainnetTaikoL1.sol"; -import "src/layer1/mainnet/rollup/verifiers/MainnetSgxVerifier.sol"; -import "src/layer1/provers/GuardianProver.sol"; -import "src/layer1/mainnet/rollup/MainnetProverSet.sol"; - -contract UpgradeMainnetOntakeL1 is DeployCapability { - uint256 public privateKey = vm.envUint("PRIVATE_KEY"); - - modifier broadcast() { - require(privateKey != 0, "invalid private key"); - vm.startBroadcast(privateKey); - _; - vm.stopBroadcast(); - } - - function run() external broadcast { - // MainnetSharedAddressManager - console2.log(address(new MainnetSharedAddressManager())); - // MainnetSignalService - console2.log(address(new MainnetSignalService())); - // MainnetBridge - console2.log(address(new MainnetBridge())); - // MainnetRollupAddressManager - console2.log(address(new MainnetRollupAddressManager())); - // MainnetTaikoL1 - console2.log(address(new MainnetTaikoL1())); - // MainnetSgxVerifier - console2.log(address(new MainnetSgxVerifier())); - // GuardianProver - console2.log(address(new GuardianProver())); - // MainnetProverSet - console2.log(address(new MainnetProverSet())); - } -} diff --git a/packages/protocol/script/layer1/UpdateRisc0Verifier.s.sol b/packages/protocol/script/layer1/UpdateRisc0Verifier.s.sol deleted file mode 100644 index f63398eb35a..00000000000 --- a/packages/protocol/script/layer1/UpdateRisc0Verifier.s.sol +++ /dev/null @@ -1,21 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.24; - -import "@risc0/contracts/groth16/RiscZeroGroth16Verifier.sol"; -import "test/shared/DeployCapability.sol"; - -contract UpdateRisc0Verifier is DeployCapability { - uint256 public deployerPrivKey = vm.envUint("PRIVATE_KEY"); - address public rollupAddressManager = vm.envAddress("ROLLUP_ADDRESS_MANAGER"); - - function run() external { - require(deployerPrivKey != 0, "invalid deployer priv key"); - require(rollupAddressManager != address(0), "invalid rollup address manager address"); - - vm.startBroadcast(deployerPrivKey); - RiscZeroGroth16Verifier verifier = - new RiscZeroGroth16Verifier(ControlID.CONTROL_ROOT, ControlID.BN254_CONTROL_ID); - register(rollupAddressManager, "risc0_groth16_verifier", address(verifier)); - vm.stopBroadcast(); - } -} diff --git a/packages/protocol/script/layer1/UpdateSP1Verifier.s.sol b/packages/protocol/script/layer1/UpdateSP1Verifier.s.sol deleted file mode 100644 index a9d74e0004c..00000000000 --- a/packages/protocol/script/layer1/UpdateSP1Verifier.s.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "@sp1-contracts/src/v3.0.0/SP1VerifierPlonk.sol"; -import "test/shared/DeployCapability.sol"; - -contract UpdateSP1Verifier is DeployCapability { - uint256 public deployerPrivKey = vm.envUint("PRIVATE_KEY"); - address public rollupAddressManager = vm.envAddress("ROLLUP_ADDRESS_MANAGER"); - - function run() external { - require(deployerPrivKey != 0, "invalid deployer priv key"); - require(rollupAddressManager != address(0), "invalid rollup address manager address"); - - vm.startBroadcast(deployerPrivKey); - - // Deploy sp1 plonk verifier - SP1Verifier sp1Verifier = new SP1Verifier(); - register(rollupAddressManager, "sp1_remote_verifier", address(sp1Verifier)); - - vm.stopBroadcast(); - } -} diff --git a/packages/protocol/script/layer1/deploy_protocol_on_l1.sh b/packages/protocol/script/layer1/based/deploy_protocol_on_l1.sh similarity index 100% rename from packages/protocol/script/layer1/deploy_protocol_on_l1.sh rename to packages/protocol/script/layer1/based/deploy_protocol_on_l1.sh diff --git a/packages/protocol/script/layer1/UpgradeHeklaOntakeL1.s.sol b/packages/protocol/script/layer1/hekla/UpgradeHeklaOntakeL1.s.sol similarity index 75% rename from packages/protocol/script/layer1/UpgradeHeklaOntakeL1.s.sol rename to packages/protocol/script/layer1/hekla/UpgradeHeklaOntakeL1.s.sol index 4dc0498eeda..96809fe8195 100644 --- a/packages/protocol/script/layer1/UpgradeHeklaOntakeL1.s.sol +++ b/packages/protocol/script/layer1/hekla/UpgradeHeklaOntakeL1.s.sol @@ -2,23 +2,13 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; -import "test/shared/DeployCapability.sol"; import "src/layer1/hekla/HeklaTaikoL1.sol"; import "src/shared/bridge/Bridge.sol"; -import "src/shared/common/AddressManager.sol"; import "src/layer1/provers/ProverSet.sol"; import "src/layer1/provers/GuardianProver.sol"; +import "script/BaseScript.sol"; -contract UpgradeHeklaOntakeL1 is DeployCapability { - uint256 public privateKey = vm.envUint("PRIVATE_KEY"); - - modifier broadcast() { - require(privateKey != 0, "invalid private key"); - vm.startBroadcast(privateKey); - _; - vm.stopBroadcast(); - } - +contract UpgradeHeklaOntakeL1 is BaseScript { function run() external broadcast { // TaikoL1 UUPSUpgradeable(0x79C9109b764609df928d16fC4a91e9081F7e87DB).upgradeTo( @@ -28,11 +18,11 @@ contract UpgradeHeklaOntakeL1 is DeployCapability { UUPSUpgradeable(0xA098b76a3Dd499D3F6D58D8AcCaFC8efBFd06807).upgradeTo(address(new Bridge())); // Rollup address manager UUPSUpgradeable(0x1F027871F286Cf4B7F898B21298E7B3e090a8403).upgradeTo( - address(new AddressManager()) + address(new DefaultResolver()) ); // Shared address manager UUPSUpgradeable(0x7D3338FD5e654CAC5B10028088624CA1D64e74f7).upgradeTo( - address(new AddressManager()) + address(new DefaultResolver()) ); // Prover set UUPSUpgradeable(0xD3f681bD6B49887A48cC9C9953720903967E9DC0).upgradeTo( diff --git a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol b/packages/protocol/script/layer1/hekla/UpgradeHeklaOntakeL2.s.sol similarity index 81% rename from packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol rename to packages/protocol/script/layer1/hekla/UpgradeHeklaOntakeL2.s.sol index c6b7cfd815f..ccdd7053247 100644 --- a/packages/protocol/script/layer1/UpgradeHeklaOntakeL2.s.sol +++ b/packages/protocol/script/layer1/hekla/UpgradeHeklaOntakeL2.s.sol @@ -2,30 +2,21 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; -import "test/shared/DeployCapability.sol"; import "src/layer2/hekla/HeklaTaikoL2.sol"; import "src/shared/bridge/Bridge.sol"; -import "src/shared/common/AddressManager.sol"; import "test/shared/thirdparty/Multicall3.sol"; import "src/layer2/DelegateOwner.sol"; +import "script/BaseScript.sol"; -contract UpgradeHeklaOntakeL2 is DeployCapability { +contract UpgradeHeklaOntakeL2 is BaseScript { address public delegateOwner = 0x95F6077C7786a58FA070D98043b16DF2B1593D2b; address public multicall3 = 0xcA11bde05977b3631167028862bE2a173976CA11; - uint256 public privateKey = vm.envUint("PRIVATE_KEY"); address public newHeklaTaikoL2 = vm.envAddress("NEW_HEKLA_TAIKO_L2"); address public newBridge = vm.envAddress("NEW_BRIDGE"); - address public newAddressManager = vm.envAddress("NEW_ADDRESS_MANAGER"); + address public newDefaultResolver = vm.envAddress("NEW_ADDRESS_MANAGER"); address public newBridgedERC20 = vm.envAddress("NEW_BRIDGED_ERC20"); - modifier broadcast() { - require(privateKey != 0, "invalid private key"); - vm.startBroadcast(privateKey); - _; - vm.stopBroadcast(); - } - function run() external broadcast { Multicall3.Call3[] memory calls = new Multicall3.Call3[](5); // TaikoL2 @@ -39,16 +30,16 @@ contract UpgradeHeklaOntakeL2 is DeployCapability { // Rollup address manager calls[2].target = 0x1670090000000000000000000000000000010002; calls[2].allowFailure = false; - calls[2].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (newAddressManager)); + calls[2].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (newDefaultResolver)); // Shared address manager calls[3].target = 0x1670090000000000000000000000000000000006; calls[3].allowFailure = false; - calls[3].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (newAddressManager)); + calls[3].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (newDefaultResolver)); // Register Bridged ERC20 calls[4].target = 0x1670090000000000000000000000000000000006; calls[4].allowFailure = false; calls[4].callData = abi.encodeCall( - AddressManager.setAddress, (167_009, bytes32(bytes("bridged_erc20")), newBridgedERC20) + DefaultResolver.registerAddress, (167_009, bytes32("bridged_erc20"), newBridgedERC20) ); DelegateOwner.Call memory dcall = DelegateOwner.Call({ diff --git a/packages/protocol/script/layer1/mainnet/DeployProverSet.s.sol b/packages/protocol/script/layer1/mainnet/DeployProverSet.s.sol new file mode 100644 index 00000000000..4744ae5c89f --- /dev/null +++ b/packages/protocol/script/layer1/mainnet/DeployProverSet.s.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/layer1/provers/ProverSet.sol"; +import "script/BaseScript.sol"; + +contract DeployProverSet is BaseScript { + function run() external broadcast { + address owner = vm.envOr("OWNER", msg.sender); + address admin = vm.envOr("ADMIN", msg.sender); + address impl = vm.envOr("PROVER_SET_IMPL", address(new ProverSet())); + + require(owner != address(0), "OWNER not set"); + require(admin != address(0), "ADMIN not set"); + + deploy({ + name: "", + impl: impl, + data: abi.encodeCall(ProverSet.init, (owner, admin, resolver)) + }); + } +} diff --git a/packages/protocol/script/layer1/mainnet/DeployQuotaManager.s.sol b/packages/protocol/script/layer1/mainnet/DeployQuotaManager.s.sol new file mode 100644 index 00000000000..551390d5773 --- /dev/null +++ b/packages/protocol/script/layer1/mainnet/DeployQuotaManager.s.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/shared/bridge/QuotaManager.sol"; +import "script/BaseScript.sol"; + +contract DeployQuotaManager is BaseScript { + address owner = vm.envOr("OWNER", msg.sender); + address quotaManagerAddress = vm.envOr("QUOTA_MANAGER", address(0)); + + function run() external broadcast { + QuotaManager qm; + if (quotaManagerAddress != address(0)) { + qm = QuotaManager(quotaManagerAddress); + require(qm.owner() == msg.sender, "quota manager not owned by this contract"); + } else { + checkResolverOwnership(); + qm = QuotaManager( + deploy({ + name: "quota_manager", + impl: address(new QuotaManager()), + data: abi.encodeCall(QuotaManager.init, (owner, resolver, 15 minutes)) + }) + ); + } + + // Config L2-to-L1 quota + uint104 value = 200_000; // USD + uint104 priceETH = 3100; // USD + uint104 priceTKO = 5; // USD + + // ETH + qm.updateQuota(address(0), value * 1 ether / priceETH); + // WETH + qm.updateQuota(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, value * 1 ether / priceETH); + // TKO + qm.updateQuota(0x10dea67478c5F8C5E2D90e5E9B26dBe60c54d800, value * 1e18 / priceTKO); + // USDT + qm.updateQuota(0xdAC17F958D2ee523a2206206994597C13D831ec7, value * 1e6); + // USDC + qm.updateQuota(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, value * 1e6); + } +} diff --git a/packages/protocol/script/layer1/mainnet/DeployRisc0Verifier.s.sol b/packages/protocol/script/layer1/mainnet/DeployRisc0Verifier.s.sol new file mode 100644 index 00000000000..d9e78fe1056 --- /dev/null +++ b/packages/protocol/script/layer1/mainnet/DeployRisc0Verifier.s.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.24; + +import "@risc0/contracts/groth16/RiscZeroGroth16Verifier.sol"; +import "src/layer1/verifiers/Risc0Verifier.sol"; +import "script/BaseScript.sol"; + +contract DeployRisc0Verifier is BaseScript { + function run() external broadcast { + checkResolverOwnership(); + + RiscZeroGroth16Verifier verifier = + new RiscZeroGroth16Verifier(ControlID.CONTROL_ROOT, ControlID.BN254_CONTROL_ID); + + DefaultResolver(resolver).registerAddress( + block.chainid, "risc0_groth16_verifier", address(verifier) + ); + + deploy({ + name: "tier_zkvm_risc0", + impl: address(new Risc0Verifier()), + data: abi.encodeCall(Risc0Verifier.init, (address(0), resolver)) + }); + } +} diff --git a/packages/protocol/script/layer1/mainnet/DeploySP1Verifier.s.sol b/packages/protocol/script/layer1/mainnet/DeploySP1Verifier.s.sol new file mode 100644 index 00000000000..53c5e326c4b --- /dev/null +++ b/packages/protocol/script/layer1/mainnet/DeploySP1Verifier.s.sol @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import { SP1Verifier as SP1RemoteVerifier } from "@sp1-contracts/src/v3.0.0/SP1VerifierPlonk.sol"; +import "src/layer1/verifiers/SP1Verifier.sol"; +import "script/BaseScript.sol"; + +contract DeploySP1Verifier is BaseScript { + function run() external broadcast { + checkResolverOwnership(); + // Deploy sp1 plonk verifier + DefaultResolver(resolver).registerAddress( + block.chainid, "sp1_remote_verifier", address(new SP1RemoteVerifier()) + ); + + deploy({ + name: "tier_zkvm_sp1", + impl: address(new SP1Verifier()), + data: abi.encodeCall(SP1Verifier.init, (address(0), resolver)) + }); + } +} diff --git a/packages/protocol/script/layer1/SendMessageToDelegateOwner.s.sol b/packages/protocol/script/layer1/mainnet/SendMessageToDelegateOwner.s.sol similarity index 86% rename from packages/protocol/script/layer1/SendMessageToDelegateOwner.s.sol rename to packages/protocol/script/layer1/mainnet/SendMessageToDelegateOwner.s.sol index acb6ec105f8..a59729ac901 100644 --- a/packages/protocol/script/layer1/SendMessageToDelegateOwner.s.sol +++ b/packages/protocol/script/layer1/mainnet/SendMessageToDelegateOwner.s.sol @@ -1,29 +1,23 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "forge-std/src/Script.sol"; import "src/shared/bridge/IBridge.sol"; import "src/layer2/DelegateOwner.sol"; import "test/shared/thirdparty/Multicall3.sol"; +import "script/BaseScript.sol"; -contract SendMessageToDelegateOwner is Script { +contract SendMessageToDelegateOwner is BaseScript { address public delegateOwner = 0x5995941Df88F30Ac140515AA39832db963E2f863; address public delegateOwnerImpl = 0x1f0511cDae2fbfD93563469dA02b82dEd320C8Bd; address public multicall3 = 0xcA11bde05977b3631167028862bE2a173976CA11; address public l1Bridge = 0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC; - address public testAccount1 = 0x3c181965C5cFAE61a9010A283e5e0C1445649810; - - modifier broadcast() { - vm.startBroadcast(); - _; - vm.stopBroadcast(); - } + address public testAddress1 = vm.envAddress("TEST_ADDRSS_1"); function run() external broadcast { Multicall3.Call3[] memory calls = new Multicall3.Call3[](2); calls[0].target = delegateOwner; calls[0].allowFailure = false; - calls[0].callData = abi.encodeCall(DelegateOwner.setAdmin, (testAccount1)); + calls[0].callData = abi.encodeCall(DelegateOwner.setAdmin, (testAddress1)); calls[1].target = delegateOwner; calls[1].allowFailure = false; diff --git a/packages/protocol/script/layer1/preconf/BaseScript.sol b/packages/protocol/script/layer1/preconf/BaseScript.sol deleted file mode 100644 index e0a8926d9ae..00000000000 --- a/packages/protocol/script/layer1/preconf/BaseScript.sol +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "forge-std/src/Script.sol"; -import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; - -contract BaseScript is Script { - modifier broadcast() { - uint256 privateKey = vm.envUint("PRIVATE_KEY"); - require(privateKey != 0, "BaseScript: invalid private key"); - - vm.startBroadcast(); - _; - vm.stopBroadcast(); - } - - function deployProxy( - address _impl, - address _admin, - bytes memory _data - ) - internal - returns (address) - { - TransparentUpgradeableProxy proxy = new TransparentUpgradeableProxy(_impl, _admin, _data); - return address(proxy); - } -} diff --git a/packages/protocol/script/layer1/preconf/deployment/DeployAVS.s.sol b/packages/protocol/script/layer1/preconf/deployment/DeployAVS.s.sol index 702f4df46a4..9e761b310e4 100644 --- a/packages/protocol/script/layer1/preconf/deployment/DeployAVS.s.sol +++ b/packages/protocol/script/layer1/preconf/deployment/DeployAVS.s.sol @@ -13,7 +13,7 @@ import "src/layer1/preconf/avs-mvp/iface/IAVSDirectory.sol"; import "src/layer1/preconf/avs-mvp/iface/ISlasher.sol"; import "src/layer1/preconf/impl/PreconfTaskManager.sol"; -import "../BaseScript.sol"; +import "script/BaseScript.sol"; import "../misc/EmptyContract.sol"; contract DeployAVS is BaseScript { @@ -28,13 +28,13 @@ contract DeployAVS is BaseScript { address public beaconBlockRootContract = vm.envAddress("BEACON_BLOCK_ROOT_CONTRACT"); function run() external broadcast { - EmptyContract emptyContract = new EmptyContract(); + address emptyContract = address(new EmptyContract()); ProxyAdmin proxyAdmin = new ProxyAdmin(); // Deploy proxies with empty implementations - address preconfRegistry = deployProxy(address(emptyContract), address(proxyAdmin), ""); - address preconfServiceManager = deployProxy(address(emptyContract), address(proxyAdmin), ""); - address preconfTaskManager = deployProxy(address(emptyContract), address(proxyAdmin), ""); + address preconfRegistry = deploy(emptyContract, address(proxyAdmin), ""); + address preconfServiceManager = deploy(emptyContract, address(proxyAdmin), ""); + address preconfTaskManager = deploy(emptyContract, address(proxyAdmin), ""); // Deploy implementations PreconfRegistry preconfRegistryImpl = diff --git a/packages/protocol/script/layer1/preconf/deployment/DeployEigenlayerMVP.s.sol b/packages/protocol/script/layer1/preconf/deployment/DeployEigenlayerMVP.s.sol index cec20b27f87..e944d5d8cbf 100644 --- a/packages/protocol/script/layer1/preconf/deployment/DeployEigenlayerMVP.s.sol +++ b/packages/protocol/script/layer1/preconf/deployment/DeployEigenlayerMVP.s.sol @@ -10,7 +10,7 @@ import "src/layer1/preconf/avs-mvp/impl/StrategyManager.sol"; import "src/layer1/preconf/avs-mvp/impl/Slasher.sol"; import "src/layer1/preconf/avs-mvp/impl/AVSDirectory.sol"; -import "../BaseScript.sol"; +import "script/BaseScript.sol"; import "../misc/EmptyContract.sol"; contract DeployEigenlayerMVP is BaseScript { @@ -19,10 +19,10 @@ contract DeployEigenlayerMVP is BaseScript { ProxyAdmin proxyAdmin = new ProxyAdmin(); // Deploy proxies with empty implementations - address avsDirectory = deployProxy(address(emptyContract), address(proxyAdmin), ""); - address delegationManager = deployProxy(address(emptyContract), address(proxyAdmin), ""); - address strategyManager = deployProxy(address(emptyContract), address(proxyAdmin), ""); - address slasher = deployProxy(address(emptyContract), address(proxyAdmin), ""); + address avsDirectory = deploy(address(emptyContract), address(proxyAdmin), ""); + address delegationManager = deploy(address(emptyContract), address(proxyAdmin), ""); + address strategyManager = deploy(address(emptyContract), address(proxyAdmin), ""); + address slasher = deploy(address(emptyContract), address(proxyAdmin), ""); // Deploy implementations AVSDirectory avsDirectoryImpl = new AVSDirectory(); diff --git a/packages/protocol/script/layer1/preconf/deployment/mock/DeployMockAVS.s.sol b/packages/protocol/script/layer1/preconf/deployment/mock/DeployMockAVS.s.sol index a0dbcb9d095..8c77dee75cc 100644 --- a/packages/protocol/script/layer1/preconf/deployment/mock/DeployMockAVS.s.sol +++ b/packages/protocol/script/layer1/preconf/deployment/mock/DeployMockAVS.s.sol @@ -15,8 +15,8 @@ import "src/layer1/preconf/avs-mvp/iface/IAVSDirectory.sol"; import "src/layer1/preconf/avs-mvp/iface/ISlasher.sol"; import "src/layer1/preconf/avs-mvp/PreconfServiceManager.sol"; -import "../../BaseScript.sol"; -import "../../misc/EmptyContract.sol"; +import "script/BaseScript.sol"; +import "script/layer1/preconf/misc/EmptyContract.sol"; contract DeployMockAVS is BaseScript { // Required by service manager @@ -34,9 +34,9 @@ contract DeployMockAVS is BaseScript { ProxyAdmin proxyAdmin = new ProxyAdmin(); // Deploy proxies with empty implementations - address preconfRegistry = deployProxy(address(emptyContract), address(proxyAdmin), ""); - address preconfServiceManager = deployProxy(address(emptyContract), address(proxyAdmin), ""); - address preconfTaskManager = deployProxy(address(emptyContract), address(proxyAdmin), ""); + address preconfRegistry = deploy(address(emptyContract), address(proxyAdmin), ""); + address preconfServiceManager = deploy(address(emptyContract), address(proxyAdmin), ""); + address preconfTaskManager = deploy(address(emptyContract), address(proxyAdmin), ""); // Deploy implementations MockPreconfRegistry preconfRegistryImpl = diff --git a/packages/protocol/script/layer1/preconf/deployment/mock/DeployMockTaikoToken.s.sol b/packages/protocol/script/layer1/preconf/deployment/mock/DeployMockTaikoToken.s.sol index a9a8428beea..50b475870e6 100644 --- a/packages/protocol/script/layer1/preconf/deployment/mock/DeployMockTaikoToken.s.sol +++ b/packages/protocol/script/layer1/preconf/deployment/mock/DeployMockTaikoToken.s.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.24; import "forge-std/src/Script.sol"; import "src/layer1/preconf/mock/MockTaikoToken.sol"; -import "../../BaseScript.sol"; +import "script/BaseScript.sol"; contract DeployMockTaikoToken is BaseScript { function run() external broadcast { diff --git a/packages/protocol/script/layer1/AddSGXVerifierInstances.s.sol b/packages/protocol/script/layer1/provers/AddSGXVerifierInstances.s.sol similarity index 51% rename from packages/protocol/script/layer1/AddSGXVerifierInstances.s.sol rename to packages/protocol/script/layer1/provers/AddSGXVerifierInstances.s.sol index 13179a4cbd8..d59d826af74 100644 --- a/packages/protocol/script/layer1/AddSGXVerifierInstances.s.sol +++ b/packages/protocol/script/layer1/provers/AddSGXVerifierInstances.s.sol @@ -1,27 +1,20 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "test/shared/DeployCapability.sol"; import "src/layer1/verifiers/SgxVerifier.sol"; +import "script/BaseScript.sol"; -contract AddSGXVerifierInstances is DeployCapability { - uint256 public privateKey = vm.envUint("PRIVATE_KEY"); +contract AddSGXVerifierInstances is BaseScript { address public sgxVerifier = vm.envAddress("SGX_VERIFIER"); address[] public instances = vm.envAddress("INSTANCES", ","); - function run() external { + function run() external broadcast { require(instances.length != 0, "invalid instances"); - vm.startBroadcast(privateKey); - SgxVerifier(sgxVerifier).addInstances(instances); for (uint256 i; i < instances.length; ++i) { - console2.log("New instance added:"); - console2.log("index: ", i); - console2.log("instance: ", instances[0]); + console2.log("instance", i, "added ", instances[0]); } - - vm.stopBroadcast(); } } diff --git a/packages/protocol/script/layer1/SetDcapParams.s.sol b/packages/protocol/script/layer1/provers/SetDcapParams.s.sol similarity index 85% rename from packages/protocol/script/layer1/SetDcapParams.s.sol rename to packages/protocol/script/layer1/provers/SetDcapParams.s.sol index 9a38c703ce0..ec280373758 100644 --- a/packages/protocol/script/layer1/SetDcapParams.s.sol +++ b/packages/protocol/script/layer1/provers/SetDcapParams.s.sol @@ -1,13 +1,10 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "forge-std/src/Script.sol"; -import "forge-std/src/console2.sol"; +import "test/layer1/automata-attestation/AttestationBase.sol"; +import "script/BaseScript.sol"; -import "test/layer1/automata-attestation/common/AttestationBase.t.sol"; - -contract SetDcapParams is Script, AttestationBase { - uint256 public ownerPrivateKey = vm.envUint("PRIVATE_KEY"); // Owner of the attestation contract +contract SetDcapParams is BaseScript, AttestationBase { address public dcapAttestationAddress = vm.envAddress("ATTESTATION_ADDRESS"); address public sgxVerifier = vm.envAddress("SGX_VERIFIER_ADDRESS"); address public pemCertChainLibAddr = vm.envAddress("PEM_CERTCHAIN_ADDRESS"); @@ -16,11 +13,11 @@ contract SetDcapParams is Script, AttestationBase { uint256[] internal defaultTaskFlags = [1, 1, 1, 1, 1, 1]; uint256[] public taskFlags = vm.envOr("TASK_ENABLE", ",", defaultTaskFlags); - function run() external { - require(ownerPrivateKey != 0, "PRIVATE_KEY not set"); + function run() external broadcast { require(dcapAttestationAddress != address(0), "ATTESTATION_ADDRESS not set"); + require(sgxVerifier != address(0), "SGX_VERIFIER_ADDRESS not set"); + require(pemCertChainLibAddr != address(0), "PEM_CERTCHAIN_ADDRESS not set"); - vm.startBroadcast(ownerPrivateKey); if (taskFlags[0] != 0) { bool enable = (taskFlags[0] == 1); _setMrEnclave(enable); @@ -41,8 +38,6 @@ contract SetDcapParams is Script, AttestationBase { if (taskFlags[5] != 0) { _registerSgxInstanceWithQuoteBytes(); } - - vm.stopBroadcast(); } function _setMrEnclave(bool enable) internal { diff --git a/packages/protocol/script/layer1/config_dcap_sgx_verifier.sh b/packages/protocol/script/layer1/provers/config_dcap_sgx_verifier.sh similarity index 100% rename from packages/protocol/script/layer1/config_dcap_sgx_verifier.sh rename to packages/protocol/script/layer1/provers/config_dcap_sgx_verifier.sh diff --git a/packages/protocol/script/layer1/tokenunlock/Deploy.data.json b/packages/protocol/script/layer1/team/tokenunlock/Deploy.data.json similarity index 100% rename from packages/protocol/script/layer1/tokenunlock/Deploy.data.json rename to packages/protocol/script/layer1/team/tokenunlock/Deploy.data.json diff --git a/packages/protocol/script/layer1/tokenunlock/Deploy.s.sol b/packages/protocol/script/layer1/team/tokenunlock/Deploy.s.sol similarity index 76% rename from packages/protocol/script/layer1/tokenunlock/Deploy.s.sol rename to packages/protocol/script/layer1/team/tokenunlock/Deploy.s.sol index c94fc0fe490..0693b7f1554 100644 --- a/packages/protocol/script/layer1/tokenunlock/Deploy.s.sol +++ b/packages/protocol/script/layer1/team/tokenunlock/Deploy.s.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/layer1/team/tokenunlock/TokenUnlock.sol"; -import "test/shared/DeployCapability.sol"; +import "src/layer1/team/TokenUnlock.sol"; +import "script/BaseScript.sol"; -contract DeployTokenUnlock is DeployCapability { +contract DeployTokenUnlock is BaseScript { using stdJson for string; // On L2 it shall be: 0xCa5b76Cc7A38b86Db11E5aE5B1fc9740c3bA3DE8 @@ -18,10 +18,8 @@ contract DeployTokenUnlock is DeployCapability { // https://taikoscan.io/tx/0x3100bc89ba700400f81d7823898f0f43a0dd5ce5507b13c4ad9e625dc0497909 address public TOKEN_UNLOCK_IMPL = 0x035AFfC82612de31E9Db2259B9482D0Dd53B7819; - function setUp() public { } - - function run() external { - require(TOKEN_UNLOCK_IMPL != address(0), "zero TOKEN_UNLOCK_IMPL"); + function run() external broadcast { + require(TOKEN_UNLOCK_IMPL != address(0), "TOKEN_UNLOCK_IMPL not set"); string memory path = "/script/tokenunlock/Deploy.data.json"; address[] memory recipients = abi.decode( @@ -29,15 +27,13 @@ contract DeployTokenUnlock is DeployCapability { ); for (uint256 i; i < recipients.length; i++) { - vm.startBroadcast(); - address proxy = deployProxy({ - name: "TokenUnlock", + address proxy = deploy({ + name: "", impl: TOKEN_UNLOCK_IMPL, data: abi.encodeCall( TokenUnlock.init, (OWNER, ROLLUP_ADDRESS_MANAGER, recipients[i], TGE) ) }); - vm.stopBroadcast(); console2.log("grantee:", recipients[i]); console2.log("proxy. :", proxy); } diff --git a/packages/protocol/script/layer1/tokenunlock/Vest.data.json b/packages/protocol/script/layer1/team/tokenunlock/Vest.data.json similarity index 100% rename from packages/protocol/script/layer1/tokenunlock/Vest.data.json rename to packages/protocol/script/layer1/team/tokenunlock/Vest.data.json diff --git a/packages/protocol/script/layer1/tokenunlock/Vest.s.sol b/packages/protocol/script/layer1/team/tokenunlock/Vest.s.sol similarity index 97% rename from packages/protocol/script/layer1/tokenunlock/Vest.s.sol rename to packages/protocol/script/layer1/team/tokenunlock/Vest.s.sol index 1f421602d33..26bee00a615 100644 --- a/packages/protocol/script/layer1/tokenunlock/Vest.s.sol +++ b/packages/protocol/script/layer1/team/tokenunlock/Vest.s.sol @@ -5,7 +5,7 @@ import "forge-std/src/Script.sol"; import "forge-std/src/console2.sol"; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; -import "src/layer1/team/tokenunlock/TokenUnlock.sol"; +import "src/layer1/team/TokenUnlock.sol"; contract VestTokenUnlock is Script { using stdJson for string; diff --git a/packages/protocol/script/layer1/tokenunlock/exercise1.data.json b/packages/protocol/script/layer1/team/tokenunlock/exercise1.data.json similarity index 100% rename from packages/protocol/script/layer1/tokenunlock/exercise1.data.json rename to packages/protocol/script/layer1/team/tokenunlock/exercise1.data.json diff --git a/packages/protocol/script/layer2/DeployDelegateOwner.s.sol b/packages/protocol/script/layer2/DeployDelegateOwner.s.sol index 935686fb00c..b0520bed751 100644 --- a/packages/protocol/script/layer2/DeployDelegateOwner.s.sol +++ b/packages/protocol/script/layer2/DeployDelegateOwner.s.sol @@ -1,25 +1,19 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "test/shared/DeployCapability.sol"; import "src/layer2/DelegateOwner.sol"; - +import "script/BaseScript.sol"; // forge script --rpc-url https://rpc.mainnet.taiko.xyz script/DeployDelegateOwner.s.sol -contract DeployDelegateOwner is DeployCapability { + +contract DeployDelegateOwner is BaseScript { address public l2Sam = 0x1670000000000000000000000000000000000006; address public testAccount2 = 0x3c181965C5cFAE61a9010A283e5e0C1445649810; address public l1Owner = testAccount2; address public l2Admin = testAccount2; - modifier broadcast() { - vm.startBroadcast(); - _; - vm.stopBroadcast(); - } - function run() external broadcast { - deployProxy({ + deploy({ name: "delegate_owner", impl: address(new DelegateOwner()), data: abi.encodeCall(DelegateOwner.init, (l1Owner, l2Sam, 1, l2Admin)) diff --git a/packages/protocol/script/layer2/PostGenesisConfig.s.sol b/packages/protocol/script/layer2/PostGenesisConfig.s.sol index 28254de3ef7..1da4f71bec9 100644 --- a/packages/protocol/script/layer2/PostGenesisConfig.s.sol +++ b/packages/protocol/script/layer2/PostGenesisConfig.s.sol @@ -6,7 +6,7 @@ import "forge-std/src/console2.sol"; import "src/shared/tokenvault/ERC20Vault.sol"; import "src/shared/bridge/Bridge.sol"; -import "src/shared/common/AddressManager.sol"; +import "script/BaseScript.sol"; interface USDCProxy { function configureMinter(address minter, uint256 minterAllowedAmount) external; @@ -14,7 +14,7 @@ interface USDCProxy { // Run with: // forge script --rpc-url https://rpc.mainnet.taiko.xyz script/PostGenesisConfig.s.sol -contract PostGenesisConfig is Script { +contract PostGenesisConfig is BaseScript { // All following addresses are L2 addresses address public bridgedTKO = 0xA9d23408b9bA935c230493c40C73824Df71A0975; address public bridgedUSDC = 0x07d83526730c7438048D55A4fc0b850e2aaB6f0b; @@ -28,7 +28,7 @@ contract PostGenesisConfig is Script { { call = abi.encodeCall( - AddressManager.setAddress, + DefaultResolver.registerAddress, (1, LibStrings.B_SIGNAL_SERVICE, 0x9e0a24964e5397B566c1ed39258e21aB5E35C77C) ); console2.log("--- sam set signal service chain_id=1"); @@ -36,7 +36,7 @@ contract PostGenesisConfig is Script { console.logBytes(call); call = abi.encodeCall( - AddressManager.setAddress, + DefaultResolver.registerAddress, (1, LibStrings.B_BRIDGE, 0xd60247c6848B7Ca29eDdF63AA924E53dB6Ddd8EC) ); console2.log("--- sam set bridge chain_id=1"); @@ -44,7 +44,7 @@ contract PostGenesisConfig is Script { console.logBytes(call); call = abi.encodeCall( - AddressManager.setAddress, + DefaultResolver.registerAddress, (1, LibStrings.B_ERC20_VAULT, 0x996282cA11E5DEb6B5D122CC3B9A1FcAAD4415Ab) ); console2.log("--- sam set erc20 vault chain_id=1"); @@ -52,7 +52,7 @@ contract PostGenesisConfig is Script { console.logBytes(call); call = abi.encodeCall( - AddressManager.setAddress, + DefaultResolver.registerAddress, (1, LibStrings.B_ERC721_VAULT, 0x0b470dd3A0e1C41228856Fb319649E7c08f419Aa) ); console2.log("--- sam set erc721 vault chain_id=1"); @@ -60,7 +60,7 @@ contract PostGenesisConfig is Script { console.logBytes(call); call = abi.encodeCall( - AddressManager.setAddress, + DefaultResolver.registerAddress, (1, LibStrings.B_ERC1155_VAULT, 0xaf145913EA4a56BE22E120ED9C24589659881702) ); console2.log("--- sam set erc1155 vault chain_id=1"); diff --git a/packages/protocol/script/layer2/PostGenesisQuery.s.sol b/packages/protocol/script/layer2/PostGenesisQuery.s.sol index 906e0961dff..450b431dad8 100644 --- a/packages/protocol/script/layer2/PostGenesisQuery.s.sol +++ b/packages/protocol/script/layer2/PostGenesisQuery.s.sol @@ -1,45 +1,68 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "test/shared/DeployCapability.sol"; -import "src/shared/common/AddressManager.sol"; -import "src/shared/bridge/Bridge.sol"; +import "script/BaseScript.sol"; // Run with: // forge script --rpc-url https://rpc.mainnet.taiko.xyz script/PostGenesisQuery.s.sol -contract PostGenesisQuery is DeployCapability { - uint64 taiko_id = 167_000; +contract PostGenesisQuery is BaseScript { + uint256 public constant ethereumChainId = 1; + uint256 public constant taikoChainId = 167_000; function run() external view { display_general_info(); - console2.log("sam"); - AddressManager am = AddressManager(0x1670000000000000000000000000000000000006); - console2.log("- taiko_token:", am.getAddress(taiko_id, "taiko_token")); - console2.log("- signal_service:", am.getAddress(taiko_id, "signal_service")); - console2.log("- bridge:", am.getAddress(taiko_id, "bridge")); - console2.log("- erc20_vault:", am.getAddress(taiko_id, "erc20_vault")); - console2.log("- erc721_vault:", am.getAddress(taiko_id, "erc721_vault")); - console2.log("- erc1155_vault:", am.getAddress(taiko_id, "erc1155_vault")); + console2.log("sharedResolver"); + DefaultResolver sharedResolver = DefaultResolver(0x1670000000000000000000000000000000000006); + console2.log("- taiko_token:", sharedResolver.resolve(taikoChainId, "taiko_token", true)); + console2.log( + "- signal_service:", sharedResolver.resolve(taikoChainId, "signal_service", true) + ); + console2.log("- bridge:", sharedResolver.resolve(taikoChainId, "bridge", true)); + console2.log("- erc20_vault:", sharedResolver.resolve(taikoChainId, "erc20_vault", true)); + console2.log("- erc721_vault:", sharedResolver.resolve(taikoChainId, "erc721_vault", true)); + console2.log( + "- erc1155_vault:", sharedResolver.resolve(taikoChainId, "erc1155_vault", true) + ); - console2.log("- signal_service@1:", am.getAddress(1, "signal_service")); - console2.log("- bridge@1:", am.getAddress(1, "bridge")); - console2.log("- erc20_vault@1:", am.getAddress(1, "erc20_vault")); - console2.log("- erc721_vault@1:", am.getAddress(1, "erc721_vault")); - console2.log("- erc1155_vault@1:", am.getAddress(1, "erc1155_vault")); + console2.log( + "- signal_service@1:", sharedResolver.resolve(ethereumChainId, "signal_service", true) + ); + console2.log("- bridge@1:", sharedResolver.resolve(ethereumChainId, "bridge", true)); + console2.log( + "- erc20_vault@1:", sharedResolver.resolve(ethereumChainId, "erc20_vault", true) + ); + console2.log( + "- erc721_vault@1:", sharedResolver.resolve(ethereumChainId, "erc721_vault", true) + ); + console2.log( + "- erc1155_vault@1:", sharedResolver.resolve(ethereumChainId, "erc1155_vault", true) + ); - console2.log("- bridged_erc20:", am.getAddress(taiko_id, "bridged_erc20")); - console2.log("- bridged_erc721:", am.getAddress(taiko_id, "bridged_erc721")); - console2.log("- bridged_erc1155:", am.getAddress(taiko_id, "bridged_erc1155")); - console2.log("- quota_manager:", am.getAddress(taiko_id, "quota_manager")); - console2.log("- bridge_watchdog:", am.getAddress(taiko_id, "bridge_watchdog")); + console2.log( + "- bridged_erc20:", sharedResolver.resolve(taikoChainId, "bridged_erc20", true) + ); + console2.log( + "- bridged_erc721:", sharedResolver.resolve(taikoChainId, "bridged_erc721", true) + ); + console2.log( + "- bridged_erc1155:", sharedResolver.resolve(taikoChainId, "bridged_erc1155", true) + ); + console2.log( + "- quota_manager:", sharedResolver.resolve(taikoChainId, "quota_manager", true) + ); + console2.log( + "- bridge_watchdog:", sharedResolver.resolve(taikoChainId, "bridge_watchdog", true) + ); - console2.log("ram"); - am = AddressManager(0x1670000000000000000000000000000000010002); - console2.log("- taiko_token:", am.getAddress(taiko_id, "taiko_token")); - console2.log("- signal_service:", am.getAddress(taiko_id, "signal_service")); - console2.log("- bridge:", am.getAddress(taiko_id, "bridge")); - console2.log("- taiko:", am.getAddress(taiko_id, "taiko")); + console2.log("sharedResolver"); + sharedResolver = DefaultResolver(0x1670000000000000000000000000000000010002); + console2.log("- taiko_token:", sharedResolver.resolve(taikoChainId, "taiko_token", true)); + console2.log( + "- signal_service:", sharedResolver.resolve(taikoChainId, "signal_service", true) + ); + console2.log("- bridge:", sharedResolver.resolve(taikoChainId, "bridge", true)); + console2.log("- taiko:", sharedResolver.resolve(taikoChainId, "taiko", true)); } function display_general_info() internal view { diff --git a/packages/protocol/script/layer2/UpdateMainnetOntakeL2.s.sol b/packages/protocol/script/layer2/UpdateMainnetOntakeL2.s.sol deleted file mode 100644 index d578b827771..00000000000 --- a/packages/protocol/script/layer2/UpdateMainnetOntakeL2.s.sol +++ /dev/null @@ -1,21 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "test/shared/DeployCapability.sol"; -import "src/layer2/mainnet/MainnetTaikoL2.sol"; - -contract UpgradeMainnetOntakeL2 is DeployCapability { - uint256 public privateKey = vm.envUint("PRIVATE_KEY"); - - modifier broadcast() { - require(privateKey != 0, "invalid private key"); - vm.startBroadcast(privateKey); - _; - vm.stopBroadcast(); - } - - function run() external broadcast { - // MainnetTaikoL2 - console2.log(address(new MainnetTaikoL2())); - } -} diff --git a/packages/protocol/script/shared/AuthorizeTaikoForMultihop.s.sol b/packages/protocol/script/shared/AuthorizeTaikoForMultihop.s.sol deleted file mode 100644 index ffb76b79516..00000000000 --- a/packages/protocol/script/shared/AuthorizeTaikoForMultihop.s.sol +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "test/shared/DeployCapability.sol"; -import "src/shared/signal/SignalService.sol"; - -contract AuthorizeTaikoForMultihop is DeployCapability { - uint256 public privateKey = vm.envUint("PRIVATE_KEY"); - address public sharedSignalService = vm.envAddress("SHARED_SIGNAL_SERVICE"); - // TaikoL1 and TaikoL2 contracts - address[] public taikoContracts = vm.envAddress("TAIKO_CONTRACTS", ","); - - function run() external { - require(taikoContracts.length != 0, "invalid taiko contracts"); - - vm.startBroadcast(privateKey); - for (uint256 i; i < taikoContracts.length; ++i) { - SignalService(sharedSignalService).authorize(taikoContracts[i], true); - } - - vm.stopBroadcast(); - } -} diff --git a/packages/protocol/script/shared/SetAddress.s.sol b/packages/protocol/script/shared/SetAddress.s.sol deleted file mode 100644 index 701fc32d9aa..00000000000 --- a/packages/protocol/script/shared/SetAddress.s.sol +++ /dev/null @@ -1,37 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "forge-std/src/Script.sol"; -import "forge-std/src/console2.sol"; - -import "src/shared/common/AddressManager.sol"; - -contract SetAddress is Script { - uint256 public adminPrivateKey = vm.envUint("PRIVATE_KEY"); - - address public proxyAddress = vm.envAddress("PROXY_ADDRESS"); - - uint64 public domain = uint64(vm.envUint("DOMAIN")); - - bytes32 public name = vm.envBytes32("NAME"); - - address public addr = vm.envAddress("ADDRESS"); - - AddressManager proxy; - - function run() external { - require(adminPrivateKey != 0, "PRIVATE_KEY not set"); - require(proxyAddress != address(0), "PROXY_ADDRESS not set"); - require(domain != 0, "DOMAIN NOT SET"); - require(name != bytes32(0), "NAME NOT SET"); - require(addr != address(0), "ADDR NOT SET"); - - vm.startBroadcast(adminPrivateKey); - - proxy = AddressManager(payable(proxyAddress)); - - proxy.setAddress(domain, name, addr); - - vm.stopBroadcast(); - } -} diff --git a/packages/protocol/script/shared/SetRemoteBridgeSuites.s.sol b/packages/protocol/script/shared/SetRemoteBridgeSuites.s.sol deleted file mode 100644 index 91734516a9d..00000000000 --- a/packages/protocol/script/shared/SetRemoteBridgeSuites.s.sol +++ /dev/null @@ -1,51 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "test/shared/DeployCapability.sol"; - -contract SetRemoteBridgeSuites is DeployCapability { - uint256 public privateKey = vm.envUint("PRIVATE_KEY"); - uint256 public securityCouncilPrivateKey = vm.envUint("SECURITY_COUNCIL_PRIVATE_KEY"); - address public addressManagerAddress = vm.envAddress("ADDRESS_MANAGER_ADDRESS"); - uint256[] public remoteChainIDs = vm.envUint("REMOTE_CHAIN_IDS", ","); - address[] public remoteSignalServices = vm.envAddress("REMOTE_SIGNAL_SERVICES", ","); - address[] public remoteBridges = vm.envAddress("REMOTE_BRIDGES", ","); - address[] public remoteERC20Vaults = vm.envAddress("REMOTE_ERC20_VAULTS", ","); - address[] public remoteERC721Vaults = vm.envAddress("REMOTE_ERC721_VAULTS", ","); - address[] public remoteERC1155Vaults = vm.envAddress("REMOTE_ERC1155_VAULTS", ","); - - function run() external { - require( - remoteChainIDs.length == remoteBridges.length, "invalid remote bridge addresses length" - ); - require( - remoteChainIDs.length == remoteSignalServices.length, - "invalid remote SignalService addresses length" - ); - require( - remoteChainIDs.length == remoteERC20Vaults.length, - "invalid remote ERC20Vault addresses length" - ); - require( - remoteChainIDs.length == remoteERC721Vaults.length, - "invalid remote ERC721Vault addresses length" - ); - require( - remoteChainIDs.length == remoteERC1155Vaults.length, - "invalid remote ERC1155Vault addresses length" - ); - - vm.startBroadcast(privateKey); - - for (uint256 i; i < remoteChainIDs.length; ++i) { - uint64 chainid = uint64(remoteChainIDs[i]); - register(addressManagerAddress, "signal_service", remoteSignalServices[i], chainid); - register(addressManagerAddress, "bridge", remoteBridges[i], chainid); - register(addressManagerAddress, "erc20_vault", remoteERC20Vaults[i], chainid); - register(addressManagerAddress, "erc721_vault", remoteERC721Vaults[i], chainid); - register(addressManagerAddress, "erc1155_vault", remoteERC1155Vaults[i], chainid); - } - - vm.stopBroadcast(); - } -} diff --git a/packages/protocol/test/genesis/GenerateGenesis.g.sol b/packages/protocol/test/genesis/GenerateGenesis.g.bkup similarity index 81% rename from packages/protocol/test/genesis/GenerateGenesis.g.sol rename to packages/protocol/test/genesis/GenerateGenesis.g.bkup index 78da0cd79fc..8209449c911 100644 --- a/packages/protocol/test/genesis/GenerateGenesis.g.sol +++ b/packages/protocol/test/genesis/GenerateGenesis.g.bkup @@ -4,7 +4,7 @@ pragma solidity ^0.8.24; import "forge-std/src/console2.sol"; import "forge-std/src/StdJson.sol"; import "forge-std/src/Test.sol"; -import "src/shared/common/AddressManager.sol"; +import "src/shared/common/DefaultResolver.sol"; import "src/shared/bridge/Bridge.sol"; import "src/shared/tokenvault/ERC1155Vault.sol"; import "src/shared/tokenvault/ERC20Vault.sol"; @@ -13,7 +13,7 @@ import "src/shared/signal/SignalService.sol"; import "src/layer2/based/TaikoL2.sol"; import "../shared/token/RegularERC20.sol"; -contract TestGenerateGenesis is Test, AddressResolver { +contract TestGenerateGenesis is Test { using stdJson for string; string private configJSON = @@ -32,7 +32,7 @@ contract TestGenerateGenesis is Test, AddressResolver { checkDeployedCode("ERC1155Vault"); checkDeployedCode("Bridge"); checkDeployedCode("SignalService"); - checkDeployedCode("SharedAddressManager"); + checkDeployedCode("SharedDefaultResolver"); checkDeployedCode("BridgedERC20Impl"); checkDeployedCode("BridgedERC721Impl"); checkDeployedCode("BridgedERC1155Impl"); @@ -43,7 +43,7 @@ contract TestGenerateGenesis is Test, AddressResolver { checkProxyImplementation("ERC1155Vault"); checkProxyImplementation("Bridge"); checkProxyImplementation("SignalService"); - checkProxyImplementation("SharedAddressManager"); + checkProxyImplementation("SharedDefaultResolver"); // // check proxies checkDeployedCode("ERC20Vault"); @@ -51,26 +51,26 @@ contract TestGenerateGenesis is Test, AddressResolver { checkDeployedCode("ERC1155Vault"); checkDeployedCode("Bridge"); checkDeployedCode("SignalService"); - checkDeployedCode("SharedAddressManager"); + checkDeployedCode("SharedDefaultResolver"); } function testRollupContractsDeployment() public { // check bytecode checkDeployedCode("TaikoL2"); - checkDeployedCode("RollupAddressManager"); + checkDeployedCode("RollupDefaultResolver"); // check proxy implementations checkProxyImplementation("TaikoL2", contractOwner); - checkProxyImplementation("RollupAddressManager"); + checkProxyImplementation("RollupDefaultResolver"); // check proxies checkDeployedCode("TaikoL2"); - checkDeployedCode("RollupAddressManager"); + checkDeployedCode("RollupDefaultResolver"); } - function testSharedAddressManager() public { - AddressManager addressManagerProxy = - AddressManager(getPredeployedContractAddress("SharedAddressManager")); + function testSharedDefaultResolver() public { + DefaultResolver addressManagerProxy = + DefaultResolver(getPredeployedContractAddress("SharedDefaultResolver")); assertEq(contractOwner, addressManagerProxy.owner()); @@ -82,14 +82,14 @@ contract TestGenerateGenesis is Test, AddressResolver { vm.startPrank(addressManagerProxy.owner()); - addressManagerProxy.upgradeTo(address(new AddressManager())); + addressManagerProxy.upgradeTo(address(new DefaultResolver())); vm.stopPrank(); } - function testRollupAddressManager() public { - AddressManager addressManagerProxy = - AddressManager(getPredeployedContractAddress("RollupAddressManager")); + function testRollupDefaultResolver() public { + DefaultResolver addressManagerProxy = + DefaultResolver(getPredeployedContractAddress("RollupDefaultResolver")); assertEq(contractOwner, addressManagerProxy.owner()); @@ -98,7 +98,7 @@ contract TestGenerateGenesis is Test, AddressResolver { vm.startPrank(addressManagerProxy.owner()); - addressManagerProxy.upgradeTo(address(new AddressManager())); + addressManagerProxy.upgradeTo(address(new DefaultResolver())); vm.stopPrank(); } @@ -120,11 +120,11 @@ contract TestGenerateGenesis is Test, AddressResolver { address bridgeAddress = getPredeployedContractAddress("Bridge"); Bridge bridgeProxy = Bridge(payable(bridgeAddress)); - AddressManager addressManager = - AddressManager(getPredeployedContractAddress("SharedAddressManager")); + DefaultResolver addressManager = + DefaultResolver(getPredeployedContractAddress("SharedDefaultResolver")); vm.startPrank(addressManager.owner()); - addressManager.setAddress(1, "bridge", bridgeAddress); + addressManager.registerAddress(1, "bridge", bridgeAddress); vm.stopPrank(); assertEq(contractOwner, bridgeProxy.owner()); @@ -184,14 +184,14 @@ contract TestGenerateGenesis is Test, AddressResolver { address bridgeAddress = getPredeployedContractAddress("Bridge"); ERC20Vault erc20VaultProxy = ERC20Vault(erc20VaultAddress); - AddressManager addressManager = - AddressManager(getPredeployedContractAddress("SharedAddressManager")); + DefaultResolver addressManager = + DefaultResolver(getPredeployedContractAddress("SharedDefaultResolver")); assertEq(contractOwner, erc20VaultProxy.owner()); vm.startPrank(addressManager.owner()); - addressManager.setAddress(1, "bridge", bridgeAddress); - addressManager.setAddress(1, "erc20_vault", erc20VaultAddress); + addressManager.registerAddress(1, "bridge", bridgeAddress); + addressManager.registerAddress(1, "erc20_vault", erc20VaultAddress); vm.stopPrank(); vm.startPrank(erc20VaultProxy.owner()); @@ -206,14 +206,14 @@ contract TestGenerateGenesis is Test, AddressResolver { address bridgeAddress = getPredeployedContractAddress("Bridge"); EssentialContract erc721VaultProxy = EssentialContract(erc721VaultAddress); - AddressManager addressManager = - AddressManager(getPredeployedContractAddress("SharedAddressManager")); + DefaultResolver addressManager = + DefaultResolver(getPredeployedContractAddress("SharedDefaultResolver")); assertEq(contractOwner, erc721VaultProxy.owner()); vm.startPrank(addressManager.owner()); - addressManager.setAddress(1, "bridge", bridgeAddress); - addressManager.setAddress(1, "erc721_vault", erc721VaultAddress); + addressManager.registerAddress(1, "bridge", bridgeAddress); + addressManager.registerAddress(1, "erc721_vault", erc721VaultAddress); vm.stopPrank(); vm.startPrank(erc721VaultProxy.owner()); @@ -228,14 +228,14 @@ contract TestGenerateGenesis is Test, AddressResolver { address bridgeProxyAddress = getPredeployedContractAddress("Bridge"); EssentialContract erc1155VaultProxy = EssentialContract(erc1155VaultProxyAddress); - AddressManager addressManager = - AddressManager(getPredeployedContractAddress("SharedAddressManager")); + DefaultResolver addressManager = + DefaultResolver(getPredeployedContractAddress("SharedDefaultResolver")); assertEq(contractOwner, erc1155VaultProxy.owner()); vm.startPrank(addressManager.owner()); - addressManager.setAddress(1, "bridge", bridgeProxyAddress); - addressManager.setAddress(1, "erc1155_vault", erc1155VaultProxyAddress); + addressManager.registerAddress(1, "bridge", bridgeProxyAddress); + addressManager.registerAddress(1, "erc1155_vault", erc1155VaultProxyAddress); vm.stopPrank(); // address erc1155VaultAddress = getPredeployedContractAddress("ERC1155VaultImpl"); @@ -305,7 +305,7 @@ contract TestGenerateGenesis is Test, AddressResolver { } function checkSavedAddress( - AddressManager addressManager, + DefaultResolver resolver, string memory contractName, bytes32 name ) @@ -313,7 +313,7 @@ contract TestGenerateGenesis is Test, AddressResolver { { assertEq( getPredeployedContractAddress(contractName), - addressManager.getAddress(uint64(block.chainid), name) + resolver.resolve(ethereumChainId, name, false) ); } } diff --git a/packages/protocol/test/genesis/data/genesis_config.js b/packages/protocol/test/genesis/data/genesis_config.js index df60b5b536f..34cdffab84a 100644 --- a/packages/protocol/test/genesis/data/genesis_config.js +++ b/packages/protocol/test/genesis/data/genesis_config.js @@ -4,7 +4,6 @@ const ADDRESS_LENGTH = 40; module.exports = { // Owner address of the pre-deployed L2 contracts. contractOwner: "0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39", - l1ChainId: 1, // Chain ID of the Taiko L2 network. chainId: 167, // Account address and pre-mint ETH amount as key-value pairs. @@ -25,14 +24,14 @@ module.exports = { ERC721VaultImpl: getConstantAddress(`0${this.chainId}`, 3), ERC1155VaultImpl: getConstantAddress(`0${this.chainId}`, 4), SignalServiceImpl: getConstantAddress(`0${this.chainId}`, 5), - SharedAddressManagerImpl: getConstantAddress(`0${this.chainId}`, 6), + SharedDefaultResolverImpl: getConstantAddress(`0${this.chainId}`, 6), BridgedERC20Impl: getConstantAddress(`0${this.chainId}`, 10096), BridgedERC721Impl: getConstantAddress(`0${this.chainId}`, 10097), BridgedERC1155Impl: getConstantAddress(`0${this.chainId}`, 10098), RegularERC20: getConstantAddress(`0${this.chainId}`, 10099), // Rollup Contracts TaikoL2Impl: getConstantAddress(`0${this.chainId}`, 10001), - RollupAddressManagerImpl: getConstantAddress(`0${this.chainId}`, 10002), + RollupDefaultResolverImpl: getConstantAddress(`0${this.chainId}`, 10002), // ============ Proxies ============ // Shared Contracts Bridge: getConstantAddress(this.chainId, 1), @@ -40,10 +39,10 @@ module.exports = { ERC721Vault: getConstantAddress(this.chainId, 3), ERC1155Vault: getConstantAddress(this.chainId, 4), SignalService: getConstantAddress(this.chainId, 5), - SharedAddressManager: getConstantAddress(this.chainId, 6), + SharedDefaultResolver: getConstantAddress(this.chainId, 6), // Rollup Contracts TaikoL2: getConstantAddress(this.chainId, 10001), - RollupAddressManager: getConstantAddress(this.chainId, 10002), + RollupDefaultResolver: getConstantAddress(this.chainId, 10002), }; }, // L2 EIP-1559 baseFee calculation related fields. diff --git a/packages/protocol/test/genesis/data/genesis_config.json b/packages/protocol/test/genesis/data/genesis_config.json index 8d771d79b1b..11e6d1aafb6 100644 --- a/packages/protocol/test/genesis/data/genesis_config.json +++ b/packages/protocol/test/genesis/data/genesis_config.json @@ -1 +1,35 @@ -{"contractOwner":"0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39","l1ChainId":31337,"chainId":167,"seedAccounts":[{"0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39":1000},{"0x79fcdef22feed20eddacbb2587640e45491b757f":1000}],"ownerSecurityCouncil":"0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39","ownerTimelockController":"0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39","contractAddresses":{"BridgeImpl":"0x0167000000000000000000000000000000000001","ERC20VaultImpl":"0x0167000000000000000000000000000000000002","ERC721VaultImpl":"0x0167000000000000000000000000000000000003","ERC1155VaultImpl":"0x0167000000000000000000000000000000000004","SignalServiceImpl":"0x0167000000000000000000000000000000000005","SharedAddressManagerImpl":"0x0167000000000000000000000000000000000006","BridgedERC20Impl":"0x0167000000000000000000000000000000010096","BridgedERC721Impl":"0x0167000000000000000000000000000000010097","BridgedERC1155Impl":"0x0167000000000000000000000000000000010098","RegularERC20":"0x0167000000000000000000000000000000010099","TaikoL2Impl":"0x0167000000000000000000000000000000010001","RollupAddressManagerImpl":"0x0167000000000000000000000000000000010002","Bridge":"0x1670000000000000000000000000000000000001","ERC20Vault":"0x1670000000000000000000000000000000000002","ERC721Vault":"0x1670000000000000000000000000000000000003","ERC1155Vault":"0x1670000000000000000000000000000000000004","SignalService":"0x1670000000000000000000000000000000000005","SharedAddressManager":"0x1670000000000000000000000000000000000006","TaikoL2":"0x1670000000000000000000000000000000010001","RollupAddressManager":"0x1670000000000000000000000000000000010002"},"param1559":{"gasExcess":1},"predeployERC20":true} \ No newline at end of file +{ + "contractOwner": "0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39", + "l1ChainId": 31337, + "chainId": 167, + "seedAccounts": [ + { "0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39": 1000 }, + { "0x79fcdef22feed20eddacbb2587640e45491b757f": 1000 } + ], + "ownerSecurityCouncil": "0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39", + "ownerTimelockController": "0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39", + "contractAddresses": { + "BridgeImpl": "0x0167000000000000000000000000000000000001", + "ERC20VaultImpl": "0x0167000000000000000000000000000000000002", + "ERC721VaultImpl": "0x0167000000000000000000000000000000000003", + "ERC1155VaultImpl": "0x0167000000000000000000000000000000000004", + "SignalServiceImpl": "0x0167000000000000000000000000000000000005", + "SharedDefaultResolverImpl": "0x0167000000000000000000000000000000000006", + "BridgedERC20Impl": "0x0167000000000000000000000000000000010096", + "BridgedERC721Impl": "0x0167000000000000000000000000000000010097", + "BridgedERC1155Impl": "0x0167000000000000000000000000000000010098", + "RegularERC20": "0x0167000000000000000000000000000000010099", + "TaikoL2Impl": "0x0167000000000000000000000000000000010001", + "RollupDefaultResolverImpl": "0x0167000000000000000000000000000000010002", + "Bridge": "0x1670000000000000000000000000000000000001", + "ERC20Vault": "0x1670000000000000000000000000000000000002", + "ERC721Vault": "0x1670000000000000000000000000000000000003", + "ERC1155Vault": "0x1670000000000000000000000000000000000004", + "SignalService": "0x1670000000000000000000000000000000000005", + "SharedDefaultResolver": "0x1670000000000000000000000000000000000006", + "TaikoL2": "0x1670000000000000000000000000000000010001", + "RollupDefaultResolver": "0x1670000000000000000000000000000000010002" + }, + "param1559": { "gasExcess": 1 }, + "predeployERC20": true +} diff --git a/packages/protocol/test/genesis/generate/taikoL2.ts b/packages/protocol/test/genesis/generate/taikoL2.ts index 48e7979c010..d0debd0ccf7 100644 --- a/packages/protocol/test/genesis/generate/taikoL2.ts +++ b/packages/protocol/test/genesis/generate/taikoL2.ts @@ -72,8 +72,8 @@ export async function deployTaikoL2( if (!contractConfig.isProxy) storageLayoutName = `${contractName.replace("Impl", "")}`; - storageLayoutName = contractName.includes("AddressManager") - ? "AddressManager" + storageLayoutName = contractName.includes("DefaultResolver") + ? "DefaultResolver" : storageLayoutName; storageLayouts[contractName] = @@ -134,10 +134,10 @@ async function generateContractConfigs( SignalServiceImpl: require( path.join(ARTIFACTS_PATH, "./SignalService.sol/SignalService.json"), ), - SharedAddressManagerImpl: require( + SharedDefaultResolverImpl: require( path.join( ARTIFACTS_PATH, - "./AddressManager.sol/AddressManager.json", + "./DefaultResolver.sol/DefaultResolver.json", ), ), BridgedERC20Impl: require( @@ -156,10 +156,10 @@ async function generateContractConfigs( TaikoL2Impl: require( path.join(ARTIFACTS_PATH, "./TaikoL2.sol/TaikoL2.json"), ), - RollupAddressManagerImpl: require( + RollupDefaultResolverImpl: require( path.join( ARTIFACTS_PATH, - "./AddressManager.sol/AddressManager.json", + "./DefaultResolver.sol/DefaultResolver.json", ), ), // Libraries @@ -178,10 +178,10 @@ async function generateContractConfigs( contractArtifacts.ERC721Vault = proxy; contractArtifacts.ERC1155Vault = proxy; contractArtifacts.SignalService = proxy; - contractArtifacts.SharedAddressManager = proxy; + contractArtifacts.SharedDefaultResolver = proxy; // Rollup Contracts contractArtifacts.TaikoL2 = proxy; - contractArtifacts.RollupAddressManager = proxy; + contractArtifacts.RollupDefaultResolver = proxy; const addressMap: any = {}; @@ -211,13 +211,13 @@ async function generateContractConfigs( return { // Shared Contracts - SharedAddressManagerImpl: { - address: addressMap.SharedAddressManagerImpl, + SharedDefaultResolverImpl: { + address: addressMap.SharedDefaultResolverImpl, deployedBytecode: replaceUUPSImmutableValues( - contractArtifacts.SharedAddressManagerImpl, + contractArtifacts.SharedDefaultResolverImpl, uupsImmutableReferencesMap, ethers.utils.hexZeroPad( - addressMap.SharedAddressManagerImpl, + addressMap.SharedDefaultResolverImpl, 32, ), ).deployedBytecode.object, @@ -225,10 +225,10 @@ async function generateContractConfigs( _owner: contractOwner, }, }, - SharedAddressManager: { - address: addressMap.SharedAddressManager, + SharedDefaultResolver: { + address: addressMap.SharedDefaultResolver, deployedBytecode: - contractArtifacts.SharedAddressManager.deployedBytecode.object, + contractArtifacts.SharedDefaultResolver.deployedBytecode.object, variables: { // EssentialContract __reentry: 1, // _FALSE @@ -238,7 +238,7 @@ async function generateContractConfigs( _initializing: false, // EssentialContract => Ownable2StepUpgradeable _owner: contractOwner, - // AddressManager + // DefaultResolver __addresses: { [chainId]: { [ethers.utils.hexlify( @@ -269,7 +269,7 @@ async function generateContractConfigs( }, }, slots: { - [IMPLEMENTATION_SLOT]: addressMap.SharedAddressManagerImpl, + [IMPLEMENTATION_SLOT]: addressMap.SharedDefaultResolverImpl, }, isProxy: true, }, @@ -300,7 +300,7 @@ async function generateContractConfigs( // EssentialContract => Ownable2StepUpgradeable _owner: contractOwner, // EssentialContract => AddressResolver - addressManager: addressMap.SharedAddressManager, + addressManager: addressMap.SharedDefaultResolver, }, slots: { [IMPLEMENTATION_SLOT]: addressMap.BridgeImpl, @@ -335,7 +335,7 @@ async function generateContractConfigs( // EssentialContract => Ownable2StepUpgradeable _owner: contractOwner, // EssentialContract => AddressResolver - addressManager: addressMap.SharedAddressManager, + addressManager: addressMap.SharedDefaultResolver, }, slots: { [IMPLEMENTATION_SLOT]: addressMap.ERC20VaultImpl, @@ -370,7 +370,7 @@ async function generateContractConfigs( // EssentialContract => Ownable2StepUpgradeable _owner: contractOwner, // EssentialContract => AddressResolver - addressManager: addressMap.SharedAddressManager, + addressManager: addressMap.SharedDefaultResolver, }, slots: { [IMPLEMENTATION_SLOT]: addressMap.ERC721VaultImpl, @@ -405,7 +405,7 @@ async function generateContractConfigs( // EssentialContract => Ownable2StepUpgradeable _owner: contractOwner, // EssentialContract => AddressResolver - addressManager: addressMap.SharedAddressManager, + addressManager: addressMap.SharedDefaultResolver, }, slots: { [IMPLEMENTATION_SLOT]: addressMap.ERC1155VaultImpl, @@ -473,7 +473,7 @@ async function generateContractConfigs( // EssentialContract => Ownable2StepUpgradeable _owner: contractOwner, // EssentialContract => AddressResolver - addressManager: addressMap.SharedAddressManager, + addressManager: addressMap.SharedDefaultResolver, isAuthorized: { [addressMap.TaikoL2]: true, }, @@ -511,7 +511,7 @@ async function generateContractConfigs( // EssentialContract => Ownable2StepUpgradeable _owner: contractOwner, // EssentialContract => AddressResolver - addressManager: addressMap.RollupAddressManager, + addressManager: addressMap.RollupDefaultResolver, // TaikoL2 => CrossChainOwned l1ChainId, // TaikoL2 @@ -535,13 +535,13 @@ async function generateContractConfigs( }, isProxy: true, }, - RollupAddressManagerImpl: { - address: addressMap.RollupAddressManagerImpl, + RollupDefaultResolverImpl: { + address: addressMap.RollupDefaultResolverImpl, deployedBytecode: replaceUUPSImmutableValues( - contractArtifacts.RollupAddressManagerImpl, + contractArtifacts.RollupDefaultResolverImpl, uupsImmutableReferencesMap, ethers.utils.hexZeroPad( - addressMap.RollupAddressManagerImpl, + addressMap.RollupDefaultResolverImpl, 32, ), ).deployedBytecode.object, @@ -549,10 +549,10 @@ async function generateContractConfigs( _owner: contractOwner, }, }, - RollupAddressManager: { - address: addressMap.RollupAddressManager, + RollupDefaultResolver: { + address: addressMap.RollupDefaultResolver, deployedBytecode: - contractArtifacts.RollupAddressManager.deployedBytecode.object, + contractArtifacts.RollupDefaultResolver.deployedBytecode.object, variables: { // EssentialContract __reentry: 1, // _FALSE @@ -562,7 +562,7 @@ async function generateContractConfigs( _initializing: false, // EssentialContract => Ownable2StepUpgradeable _owner: contractOwner, - // AddressManager + // DefaultResolver __addresses: { [chainId]: { [ethers.utils.hexlify( @@ -578,7 +578,7 @@ async function generateContractConfigs( }, }, slots: { - [IMPLEMENTATION_SLOT]: addressMap.RollupAddressManagerImpl, + [IMPLEMENTATION_SLOT]: addressMap.RollupDefaultResolverImpl, }, isProxy: true, }, diff --git a/packages/protocol/test/genesis/mainnet.js b/packages/protocol/test/genesis/mainnet.js index 8c713db6f15..d011956ce93 100644 --- a/packages/protocol/test/genesis/mainnet.js +++ b/packages/protocol/test/genesis/mainnet.js @@ -22,13 +22,13 @@ module.exports = { ERC721VaultImpl: getConstantAddress(`0${this.chainId}`, 3), ERC1155VaultImpl: getConstantAddress(`0${this.chainId}`, 4), SignalServiceImpl: getConstantAddress(`0${this.chainId}`, 5), - SharedAddressManagerImpl: getConstantAddress(`0${this.chainId}`, 6), + SharedDefaultResolverImpl: getConstantAddress(`0${this.chainId}`, 6), BridgedERC20Impl: getConstantAddress(`0${this.chainId}`, 10096), BridgedERC721Impl: getConstantAddress(`0${this.chainId}`, 10097), BridgedERC1155Impl: getConstantAddress(`0${this.chainId}`, 10098), // Rollup Contracts TaikoL2Impl: getConstantAddress(`0${this.chainId}`, 10001), - RollupAddressManagerImpl: getConstantAddress(`0${this.chainId}`, 10002), + RollupDefaultResolverImpl: getConstantAddress(`0${this.chainId}`, 10002), // ============ Proxies ============ // Shared Contracts Bridge: getConstantAddress(this.chainId, 1), @@ -36,10 +36,10 @@ module.exports = { ERC721Vault: getConstantAddress(this.chainId, 3), ERC1155Vault: getConstantAddress(this.chainId, 4), SignalService: getConstantAddress(this.chainId, 5), - SharedAddressManager: getConstantAddress(this.chainId, 6), + SharedDefaultResolver: getConstantAddress(this.chainId, 6), // Rollup Contracts TaikoL2: getConstantAddress(this.chainId, 10001), - RollupAddressManager: getConstantAddress(this.chainId, 10002), + RollupDefaultResolver: getConstantAddress(this.chainId, 10002), }; }, param1559: { diff --git a/packages/protocol/test/genesis/test_config.js b/packages/protocol/test/genesis/test_config.js index 8b67ec687bf..1f60d2332f9 100644 --- a/packages/protocol/test/genesis/test_config.js +++ b/packages/protocol/test/genesis/test_config.js @@ -88,14 +88,14 @@ module.exports = { ERC721VaultImpl: getConstantAddress(`0${this.chainId}`, 3), ERC1155VaultImpl: getConstantAddress(`0${this.chainId}`, 4), SignalServiceImpl: getConstantAddress(`0${this.chainId}`, 5), - SharedAddressManagerImpl: getConstantAddress(`0${this.chainId}`, 6), + SharedDefaultResolverImpl: getConstantAddress(`0${this.chainId}`, 6), BridgedERC20Impl: getConstantAddress(`0${this.chainId}`, 10096), BridgedERC721Impl: getConstantAddress(`0${this.chainId}`, 10097), BridgedERC1155Impl: getConstantAddress(`0${this.chainId}`, 10098), RegularERC20: getConstantAddress(`0${this.chainId}`, 10099), // Rollup Contracts TaikoL2Impl: getConstantAddress(`0${this.chainId}`, 10001), - RollupAddressManagerImpl: getConstantAddress(`0${this.chainId}`, 10002), + RollupDefaultResolverImpl: getConstantAddress(`0${this.chainId}`, 10002), // ============ Proxies ============ // Shared Contracts Bridge: getConstantAddress(this.chainId, 1), @@ -103,10 +103,10 @@ module.exports = { ERC721Vault: getConstantAddress(this.chainId, 3), ERC1155Vault: getConstantAddress(this.chainId, 4), SignalService: getConstantAddress(this.chainId, 5), - SharedAddressManager: getConstantAddress(this.chainId, 6), + SharedDefaultResolver: getConstantAddress(this.chainId, 6), // Rollup Contracts TaikoL2: getConstantAddress(this.chainId, 10001), - RollupAddressManager: getConstantAddress(this.chainId, 10002), + RollupDefaultResolver: getConstantAddress(this.chainId, 10002), }; }, param1559: { diff --git a/packages/protocol/test/layer1/Layer1Test.sol b/packages/protocol/test/layer1/Layer1Test.sol new file mode 100644 index 00000000000..5b48ba6b08f --- /dev/null +++ b/packages/protocol/test/layer1/Layer1Test.sol @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/layer1/based/TaikoL1.sol"; +import "src/layer1/token/TaikoToken.sol"; +import "src/layer1/verifiers/SgxVerifier.sol"; +import "src/layer1/verifiers/SP1Verifier.sol"; +import "src/layer1/verifiers/Risc0Verifier.sol"; +import "src/layer1/provers/GuardianProver.sol"; +import "src/layer1/tiers/LibTiers.sol"; +import "src/layer1/team/ERC20Airdrop.sol"; +import "src/shared/bridge/QuotaManager.sol"; +import "src/shared/bridge/Bridge.sol"; +import "test/shared/CommonTest.sol"; + +contract TaikoL1WithConfig is TaikoL1 { + TaikoData.Config private __config; + + function initWithConfig( + address _owner, + address _rollupResolver, + bytes32 _genesisBlockHash, + bool _toPause, + TaikoData.Config memory _config + ) + external + initializer + { + __Essential_init(_owner, _rollupResolver); + LibUtils.init(state, _genesisBlockHash); + if (_toPause) _pause(); + __config = _config; + } + + function getConfig() public view override returns (TaikoData.Config memory) { + return __config; + } +} + +abstract contract Layer1Test is CommonTest { + function deployBondToken() internal returns (TaikoToken) { + return TaikoToken( + deploy({ + name: "bond_token", + impl: address(new TaikoToken()), + data: abi.encodeCall(TaikoToken.init, (address(0), address(this))) + }) + ); + } + + function deployGuardianProver() internal returns (GuardianProver) { + return GuardianProver( + deploy({ + name: "guardian_prover", + impl: address(new GuardianProver()), + data: abi.encodeCall(GuardianProver.init, (address(0), address(resolver))) + }) + ); + } + + function deploySgxVerifier() internal returns (SgxVerifier) { + return SgxVerifier( + deploy({ + name: "tier_sgx", + impl: address(new SgxVerifier()), + data: abi.encodeCall(SgxVerifier.init, (address(0), address(resolver))) + }) + ); + } +} diff --git a/packages/protocol/test/layer1/TaikoL1Test.sol b/packages/protocol/test/layer1/TaikoL1Test.sol deleted file mode 100644 index e77e24220b9..00000000000 --- a/packages/protocol/test/layer1/TaikoL1Test.sol +++ /dev/null @@ -1,15 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/based/TaikoL1.sol"; -import "src/layer1/token/TaikoToken.sol"; -import "src/layer1/verifiers/SgxVerifier.sol"; -import "src/layer1/verifiers/SP1Verifier.sol"; -import "src/layer1/verifiers/Risc0Verifier.sol"; -import "src/layer1/provers/GuardianProver.sol"; -import "src/layer1/team/airdrop/ERC20Airdrop.sol"; -import "src/shared/bridge/QuotaManager.sol"; -import "../layer1/based/TestTierRouter.sol"; -import "../shared/TaikoTest.sol"; - -abstract contract TaikoL1Test is TaikoTest { } diff --git a/packages/protocol/test/layer1/automata-attestation/common/AttestationBase.t.sol b/packages/protocol/test/layer1/automata-attestation/AttestationBase.sol similarity index 97% rename from packages/protocol/test/layer1/automata-attestation/common/AttestationBase.t.sol rename to packages/protocol/test/layer1/automata-attestation/AttestationBase.sol index 1f2d71a67ce..0ff55d4c576 100644 --- a/packages/protocol/test/layer1/automata-attestation/common/AttestationBase.t.sol +++ b/packages/protocol/test/layer1/automata-attestation/AttestationBase.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.24; import "forge-std/src/Test.sol"; -import "forge-std/src/console.sol"; +import "forge-std/src/console2.sol"; import "forge-std/src/StdJson.sol"; import "@optimism/packages/contracts-bedrock/src/libraries/Bytes.sol"; @@ -16,8 +16,8 @@ import "src/layer1/automata-attestation/lib/PEMCertChainLib.sol"; import "src/layer1/automata-attestation/lib/QuoteV3Auth/V3Struct.sol"; import "src/layer1/automata-attestation/utils/BytesUtils.sol"; import "solady/src/utils/Base64.sol"; -import "../utils/DcapTestUtils.t.sol"; -import "../utils/V3QuoteParseUtils.t.sol"; +import "./helpers/DcapTestUtils.sol"; +import "./helpers/V3QuoteParseUtils.sol"; contract AttestationBase is Test, DcapTestUtils, V3QuoteParseUtils { using BytesUtils for bytes; @@ -111,7 +111,7 @@ contract AttestationBase is Test, DcapTestUtils, V3QuoteParseUtils { (bool qeIdParsedSuccess, EnclaveIdStruct.EnclaveId memory parsedEnclaveId) = parseEnclaveIdentityJson(_enclaveIdJson); AutomataDcapV3Attestation(_attestationAddress).configureQeIdentityJson(parsedEnclaveId); - console.log("qeIdParsedSuccess: %s", qeIdParsedSuccess); + console2.log("qeIdParsedSuccess: %s", qeIdParsedSuccess); } function configureTcbInfoJson( @@ -124,7 +124,7 @@ contract AttestationBase is Test, DcapTestUtils, V3QuoteParseUtils { parseTcbInfoJson(_tcbInfoJson); string memory fmspc = LibString.lower(parsedTcbInfo.fmspc); AutomataDcapV3Attestation(_attestationAddress).configureTcbInfoJson(fmspc, parsedTcbInfo); - console.log("tcbParsedSuccess: %s", tcbParsedSuccess); + console2.log("tcbParsedSuccess: %s", tcbParsedSuccess); } function verifyParsedQuoteAttestation( @@ -146,15 +146,15 @@ contract AttestationBase is Test, DcapTestUtils, V3QuoteParseUtils { ) internal { - // console.logBytes(_v3QuoteBytes); + // console2.logBytes(_v3QuoteBytes); V3Struct.ParsedV3QuoteStruct memory v3quote = ParseV3QuoteBytes(_pemCertChainLibAddr, _v3QuoteBytes); address regInstanceAddr = address(bytes20(Bytes.slice(v3quote.localEnclaveReport.reportData, 0, 20))); - console.log("[log] register sgx instance address: %s", regInstanceAddr); + console2.log("[log] register sgx instance address: %s", regInstanceAddr); uint256 sgxIdx = SgxVerifier(_sgxVerifier).registerInstance(v3quote); - console.log("[log] register sgx instance index: %s", sgxIdx); + console2.log("[log] register sgx instance index: %s", sgxIdx); } function deployProxy(address impl, bytes memory data) internal returns (address proxy) { diff --git a/packages/protocol/test/layer1/automata-attestation/AutomataDcapV3AttestationTest.t.sol b/packages/protocol/test/layer1/automata-attestation/AutomataDcapV3AttestationTest.t.sol index 148cae8a13f..c303000eedb 100644 --- a/packages/protocol/test/layer1/automata-attestation/AutomataDcapV3AttestationTest.t.sol +++ b/packages/protocol/test/layer1/automata-attestation/AutomataDcapV3AttestationTest.t.sol @@ -2,11 +2,11 @@ pragma solidity ^0.8.24; import "forge-std/src/Test.sol"; -import "forge-std/src/console.sol"; +import "forge-std/src/console2.sol"; import "forge-std/src/StdJson.sol"; -import "./common/AttestationBase.t.sol"; +import "./AttestationBase.sol"; -contract AutomataDcapV3AttestationTest is Test, AttestationBase { +contract TestAutomataDcapV3Attestation is Test, AttestationBase { using BytesUtils for bytes; using stdJson for string; @@ -49,7 +49,7 @@ contract AutomataDcapV3AttestationTest is Test, AttestationBase { function testParsedQuoteJsonAttestation() public { vm.prank(user); string memory v3QuoteJsonStr = vm.readFile(string.concat(vm.projectRoot(), v3QuoteJsonPath)); - // console.log("[LOG] v3QuoteJsonStr: %s", v3QuoteJsonStr); + // console2.log("[LOG] v3QuoteJsonStr: %s", v3QuoteJsonStr); bytes memory v3QuotePacked = vm.parseJson(v3QuoteJsonStr); (, V3Struct.ParsedV3QuoteStruct memory v3quote) = parseV3QuoteJson(v3QuotePacked); @@ -78,7 +78,7 @@ contract AutomataDcapV3AttestationTest is Test, AttestationBase { verifyParsedQuoteAttestation(v3QuoteBytes, true); address parsedInstanceAddr = address(bytes20(Bytes.slice(v3quote.localEnclaveReport.reportData, 0, 20))); - // console.log("[log] parsed instance addr = %s", parsedInstanceAddr); + // console2.log("[log] parsed instance addr = %s", parsedInstanceAddr); assertTrue(parsedInstanceAddr == address(0xFECF437744A6b5680cA60692eaA4b1A9320e8240)); } @@ -113,7 +113,7 @@ contract AutomataDcapV3AttestationTest is Test, AttestationBase { verifyParsedQuoteAttestation(v3QuoteBytes, true); address parsedInstanceAddr = address(bytes20(Bytes.slice(v3quote.localEnclaveReport.reportData, 0, 20))); - console.log("[log] parsed instance addr = %s", parsedInstanceAddr); + console2.log("[log] parsed instance addr = %s", parsedInstanceAddr); assertTrue(parsedInstanceAddr == address(0xC2D4564358139C90C17B744FE837F4DDc503EEdF)); } @@ -124,7 +124,7 @@ contract AutomataDcapV3AttestationTest is Test, AttestationBase { verifyParsedQuoteAttestation(v3QuoteBytes, true); address parsedInstanceAddr = address(bytes20(Bytes.slice(v3quote.localEnclaveReport.reportData, 0, 20))); - // console.log("[log] parsed instance addr = %s", parsedInstanceAddr); + // console2.log("[log] parsed instance addr = %s", parsedInstanceAddr); assertTrue(parsedInstanceAddr == 0xC2D4564358139C90C17B744FE837F4DDc503EEdF); } @@ -138,7 +138,7 @@ contract AutomataDcapV3AttestationTest is Test, AttestationBase { verifyParsedQuoteAttestation(v3QuoteBytes, true); address parsedInstanceAddr = address(bytes20(Bytes.slice(v3quote.localEnclaveReport.reportData, 0, 20))); - // console.log("[log] parsed instance addr = %s", parsedInstanceAddr); + // console2.log("[log] parsed instance addr = %s", parsedInstanceAddr); assertTrue(parsedInstanceAddr == 0x309734C02d2145cABB034F3c0505D28F7E5bFc2d); } @@ -152,7 +152,7 @@ contract AutomataDcapV3AttestationTest is Test, AttestationBase { verifyParsedQuoteAttestation(v3QuoteBytes, true); address parsedInstanceAddr = address(bytes20(Bytes.slice(v3quote.localEnclaveReport.reportData, 0, 20))); - // console.log("[log] parsed instance addr = %s", parsedInstanceAddr); + // console2.log("[log] parsed instance addr = %s", parsedInstanceAddr); assertTrue(parsedInstanceAddr == 0xecf78b2b1F7e61370e150678b6283C042c6bDa03); } @@ -164,7 +164,7 @@ contract AutomataDcapV3AttestationTest is Test, AttestationBase { verifyParsedQuoteAttestation(v3QuoteBytes, true); address parsedInstanceAddr = address(bytes20(Bytes.slice(v3quote.localEnclaveReport.reportData, 0, 20))); - // console.log("[log] parsed instance addr = %s", parsedInstanceAddr); + // console2.log("[log] parsed instance addr = %s", parsedInstanceAddr); assertTrue(parsedInstanceAddr == 0x1d0B9a2a63D98B18B288889cB61160016534c814); } diff --git a/packages/protocol/test/layer1/automata-attestation/utils/DcapTestUtils.t.sol b/packages/protocol/test/layer1/automata-attestation/helpers/DcapTestUtils.sol similarity index 100% rename from packages/protocol/test/layer1/automata-attestation/utils/DcapTestUtils.t.sol rename to packages/protocol/test/layer1/automata-attestation/helpers/DcapTestUtils.sol diff --git a/packages/protocol/test/layer1/automata-attestation/utils/V3QuoteParseUtils.t.sol b/packages/protocol/test/layer1/automata-attestation/helpers/V3QuoteParseUtils.sol similarity index 100% rename from packages/protocol/test/layer1/automata-attestation/utils/V3QuoteParseUtils.t.sol rename to packages/protocol/test/layer1/automata-attestation/helpers/V3QuoteParseUtils.sol diff --git a/packages/protocol/test/layer1/based/GuardianProver.t.sol b/packages/protocol/test/layer1/based/GuardianProver.t.sol new file mode 100644 index 00000000000..8cedf2151ae --- /dev/null +++ b/packages/protocol/test/layer1/based/GuardianProver.t.sol @@ -0,0 +1,144 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "test/layer1/Layer1Test.sol"; + +// TODO(dantaik): we need to test the real guardian prover, not this one. +contract GuardianProverTarget is GuardianProver { + uint256 public operationId; + + function init() external initializer { + __Essential_init(address(0)); + } + + function approve(bytes32 hash) external returns (bool) { + return _saveApproval(operationId++, hash); + } +} + +contract TestGuardianProver is Layer1Test { + GuardianProverTarget guardianProver; + + function getSigners(uint256 numGuardians) internal returns (address[] memory signers) { + signers = new address[](numGuardians); + for (uint256 i = 0; i < numGuardians; ++i) { + signers[i] = randAddress(); + vm.deal(signers[i], 1 ether); + } + } + + function setUpOnEthereum() internal override { + guardianProver = GuardianProverTarget( + deploy({ + name: "guardians", + impl: address(new GuardianProverTarget()), + data: abi.encodeCall(GuardianProverTarget.init, ()) + }) + ); + } + + function test_guardian_prover_set_guardians() public transactBy(deployer) { + vm.expectRevert(GuardianProver.GP_INVALID_GUARDIAN_SET.selector); + guardianProver.setGuardians(getSigners(0), 0, true); + + vm.expectRevert(GuardianProver.GP_INVALID_MIN_GUARDIANS.selector); + guardianProver.setGuardians(getSigners(5), 0, true); + + vm.expectRevert(GuardianProver.GP_INVALID_MIN_GUARDIANS.selector); + guardianProver.setGuardians(getSigners(5), 6, true); + } + + function test_guardian_prover_set_guardians2() public transactBy(deployer) { + address[] memory signers = getSigners(5); + signers[0] = address(0); + vm.expectRevert(GuardianProver.GP_INVALID_GUARDIAN.selector); + guardianProver.setGuardians(signers, 4, true); + + signers[0] = signers[1]; + vm.expectRevert(GuardianProver.GP_INVALID_GUARDIAN_SET.selector); + guardianProver.setGuardians(signers, 4, true); + } + + function test_guardian_prover_approve() public { + address[] memory signers = getSigners(6); + vm.prank(deployer); + guardianProver.setGuardians(signers, 4, true); + + bytes32 hash = keccak256("paris"); + for (uint256 i; i < 6; ++i) { + vm.prank(signers[0]); + assertEq(guardianProver.approve(hash), false); + } + + hash = keccak256("singapore"); + for (uint256 i; i < 6; ++i) { + vm.startPrank(signers[i]); + guardianProver.approve(hash); + + assertEq(guardianProver.approve(hash), i >= 3); + vm.stopPrank(); + } + + // changing the settings will invalid all approval history + vm.prank(deployer); + guardianProver.setGuardians(signers, 3, true); + assertEq(guardianProver.version(), 2); + } + + // Tests `verifyProof()` with the correct prover + function test_guardian_prover_verifyProof() public view { + // Context + IVerifier.Context memory ctx = IVerifier.Context({ + metaHash: bytes32(0), + blobHash: bytes32(0), + prover: address(guardianProver), + msgSender: address(guardianProver), + blockId: 10, + isContesting: false, + blobUsed: false + }); + + // Transition + TaikoData.Transition memory transition = TaikoData.Transition({ + parentHash: bytes32(0), + blockHash: bytes32(0), + stateRoot: bytes32(0), + graffiti: bytes32(0) + }); + + // TierProof + TaikoData.TierProof memory proof = TaikoData.TierProof({ tier: 74, data: "" }); + + // `verifyProof()` + guardianProver.verifyProof(ctx, transition, proof); + } + + // Tests `verifyProof()` with the wrong prover + function test_guardian_prover_verifyProof_invalidProver() public { + // Context + IVerifier.Context memory ctx = IVerifier.Context({ + metaHash: bytes32(0), + blobHash: bytes32(0), + prover: Alice, // invalid + msgSender: Alice, + blockId: 10, + isContesting: false, + blobUsed: false + }); + + // Transition + TaikoData.Transition memory transition = TaikoData.Transition({ + parentHash: bytes32(0), + blockHash: bytes32(0), + stateRoot: bytes32(0), + graffiti: bytes32(0) + }); + + // TierProof + TaikoData.TierProof memory proof = TaikoData.TierProof({ tier: 74, data: "" }); + + // `verifyProof()` with invalid ctx.prover + vm.expectRevert(GuardianProver.GV_PERMISSION_DENIED.selector); + guardianProver.verifyProof(ctx, transition, proof); + } +} diff --git a/packages/protocol/test/layer1/based/GuardianProver1.t.sol b/packages/protocol/test/layer1/based/GuardianProver1.t.sol deleted file mode 100644 index 0400cafd3eb..00000000000 --- a/packages/protocol/test/layer1/based/GuardianProver1.t.sol +++ /dev/null @@ -1,85 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/provers/GuardianProver.sol"; -import "test/shared/TaikoTest.sol"; - -contract DummyGuardianProver is GuardianProver { - uint256 public operationId; - - function init() external initializer { - __Essential_init(address(0)); - } - - function approve(bytes32 hash) public returns (bool) { - return _saveApproval(operationId++, hash); - } -} - -contract TestGuardianProver1 is TaikoTest { - DummyGuardianProver target; - - function getSigners(uint256 numGuardians) internal returns (address[] memory signers) { - signers = new address[](numGuardians); - for (uint256 i = 0; i < numGuardians; ++i) { - signers[i] = randAddress(); - vm.deal(signers[i], 1 ether); - } - } - - function setUp() public { - target = DummyGuardianProver( - deployProxy({ - name: "guardians", - impl: address(new DummyGuardianProver()), - data: abi.encodeCall(DummyGuardianProver.init, ()) - }) - ); - } - - function test_guardian_prover_set_guardians() public { - vm.expectRevert(GuardianProver.GP_INVALID_GUARDIAN_SET.selector); - target.setGuardians(getSigners(0), 0, true); - - vm.expectRevert(GuardianProver.GP_INVALID_MIN_GUARDIANS.selector); - target.setGuardians(getSigners(5), 0, true); - - vm.expectRevert(GuardianProver.GP_INVALID_MIN_GUARDIANS.selector); - target.setGuardians(getSigners(5), 6, true); - } - - function test_guardian_prover_set_guardians2() public { - address[] memory signers = getSigners(5); - signers[0] = address(0); - vm.expectRevert(GuardianProver.GP_INVALID_GUARDIAN.selector); - target.setGuardians(signers, 4, true); - - signers[0] = signers[1]; - vm.expectRevert(GuardianProver.GP_INVALID_GUARDIAN_SET.selector); - target.setGuardians(signers, 4, true); - } - - function test_guardian_prover_approve() public { - address[] memory signers = getSigners(6); - target.setGuardians(signers, 4, true); - - bytes32 hash = keccak256("paris"); - for (uint256 i; i < 6; ++i) { - vm.prank(signers[0]); - assertEq(target.approve(hash), false); - } - - hash = keccak256("singapore"); - for (uint256 i; i < 6; ++i) { - vm.startPrank(signers[i]); - target.approve(hash); - - assertEq(target.approve(hash), i >= 3); - vm.stopPrank(); - } - - // changing the settings will invalid all approval history - target.setGuardians(signers, 3, true); - assertEq(target.version(), 2); - } -} diff --git a/packages/protocol/test/layer1/based/GuardianProver2.t.sol b/packages/protocol/test/layer1/based/GuardianProver2.t.sol deleted file mode 100644 index 2cc6df5a115..00000000000 --- a/packages/protocol/test/layer1/based/GuardianProver2.t.sol +++ /dev/null @@ -1,77 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/provers/GuardianProver.sol"; -import "./TaikoL1TestBase.sol"; - -/// @author Kirk Baird -contract TestGuardianProver2 is TaikoL1TestBase { - function deployTaikoL1() internal override returns (TaikoL1) { - return - TaikoL1(payable(deployProxy({ name: "taiko", impl: address(new TaikoL1()), data: "" }))); - } - - function setUp() public override { - // Call the TaikoL1TestBase setUp() - super.setUp(); - } - - // Tests `verifyProof()` with the correct prover - function test_guardian_prover_verifyProof() public view { - // Context - IVerifier.Context memory ctx = IVerifier.Context({ - metaHash: bytes32(0), - blobHash: bytes32(0), - prover: address(gp), - msgSender: address(gp), - blockId: 10, - isContesting: false, - blobUsed: false - }); - - // Transition - TaikoData.Transition memory transition = TaikoData.Transition({ - parentHash: bytes32(0), - blockHash: bytes32(0), - stateRoot: bytes32(0), - graffiti: bytes32(0) - }); - - // TierProof - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: LibTiers.TIER_GUARDIAN, data: "" }); - - // `verifyProof()` - gp.verifyProof(ctx, transition, proof); - } - - // Tests `verifyProof()` with the wrong prover - function test_guardian_prover_verifyProof_invalidProver() public { - // Context - IVerifier.Context memory ctx = IVerifier.Context({ - metaHash: bytes32(0), - blobHash: bytes32(0), - prover: Alice, // invalid - msgSender: Alice, - blockId: 10, - isContesting: false, - blobUsed: false - }); - - // Transition - TaikoData.Transition memory transition = TaikoData.Transition({ - parentHash: bytes32(0), - blockHash: bytes32(0), - stateRoot: bytes32(0), - graffiti: bytes32(0) - }); - - // TierProof - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: LibTiers.TIER_GUARDIAN, data: "" }); - - // `verifyProof()` with invalid ctx.prover - vm.expectRevert(GuardianProver.GV_PERMISSION_DENIED.selector); - gp.verifyProof(ctx, transition, proof); - } -} diff --git a/packages/protocol/test/layer1/based/TaikoL1.t.sol b/packages/protocol/test/layer1/based/TaikoL1.t.sol deleted file mode 100644 index 52415ea780d..00000000000 --- a/packages/protocol/test/layer1/based/TaikoL1.t.sol +++ /dev/null @@ -1,236 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "./TaikoL1TestBase.sol"; - -contract TaikoL1_NoCooldown is TaikoL1 { - function getConfig() public pure override returns (TaikoData.Config memory config) { - config = TaikoL1.getConfig(); - // over-write the following - config.maxBlocksToVerify = 0; - config.blockMaxProposals = 10; - config.blockRingBufferSize = 12; - config.livenessBond = 1e18; // 1 Taiko token - config.ontakeForkHeight = 0; - } -} - -contract Verifier { - fallback(bytes calldata) external returns (bytes memory) { - return bytes.concat(keccak256("taiko")); - } -} - -contract TaikoL1Tests is TaikoL1TestBase { - function deployTaikoL1() internal override returns (TaikoL1) { - return TaikoL1( - payable( - deployProxy({ name: "taiko", impl: address(new TaikoL1_NoCooldown()), data: "" }) - ) - ); - } - - /// @dev Test we can propose, prove, then verify more blocks than - /// 'blockMaxProposals' - function test_L1_more_blocks_than_ring_buffer_size() external { - giveEthAndTko(Alice, 1e8 ether, 100 ether); - // This is a very weird test (code?) issue here. - // If this line (or Bob's query balance) is uncommented, - // Alice/Bob has no balance.. (Causing reverts !!!) - console2.log("Alice balance:", tko.balanceOf(Alice)); - giveEthAndTko(Bob, 1e8 ether, 100 ether); - console2.log("Bob balance:", tko.balanceOf(Bob)); - giveEthAndTko(Carol, 1e8 ether, 100 ether); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - - for (uint256 blockId = 1; blockId < conf.blockMaxProposals * 3; blockId++) { - //printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); - vm.roll(block.number + 15 * 12); - - uint16 minTier = meta.minTier; - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - verifyBlock(1); - parentHash = blockHash; - } - printVariables(""); - } - - /// @dev Test more than one block can be proposed, proven, & verified in the - /// same L1 block. - function test_L1_multiple_blocks_in_one_L1_block() external { - giveEthAndTko(Alice, 1e8 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - giveEthAndTko(Carol, 1e8 ether, 100 ether); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - - for (uint256 blockId = 1; blockId <= 20; ++blockId) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - printVariables("after propose"); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); - vm.roll(block.number + 15 * 12); - uint16 minTier = meta.minTier; - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - verifyBlock(2); - - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); - assertEq(meta.id, blk.blockId); - - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, parentHash); - assertEq(ts.prover, Alice); - - parentHash = blockHash; - } - printVariables(""); - } - - /// @dev Test verifying multiple blocks in one transaction - function test_L1_verifying_multiple_blocks_once() external { - giveEthAndTko(Alice, 1e8 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - giveEthAndTko(Carol, 1e8 ether, 100 ether); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - - for (uint256 blockId = 1; blockId <= conf.blockMaxProposals; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - printVariables("after propose"); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); - parentHash = blockHash; - } - - vm.roll(block.number + 15 * 12); - verifyBlock(conf.blockMaxProposals - 1); - printVariables("after verify"); - verifyBlock(conf.blockMaxProposals); - printVariables("after verify"); - } - - /// @dev Test if a given transition deadline is based on proposal time - function test_L1_in_proving_window_logic() external { - giveEthAndTko(Alice, 1000 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - giveEthAndTko(Carol, 1e8 ether, 100 ether); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - - for (uint256 blockId = 1; blockId <= conf.blockMaxProposals; blockId++) { - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - bytes32 blockHash; - bytes32 stateRoot; - if (blockId % 2 == 0) { - // Stay within proving window - vm.warp(block.timestamp + 60); - - blockHash = bytes32(1e10 + blockId); - stateRoot = bytes32(1e9 + blockId); - - bytes32 secondTransitionHash = randBytes32(); - - // Within window and first transition -> Should revert if not assigned prover or - // guardian - proveBlock( - Carol, - meta, - parentHash, - secondTransitionHash, - stateRoot, - meta.minTier, - LibProving.L1_NOT_ASSIGNED_PROVER.selector - ); - - // Only guardian or assigned prover is allowed - if (blockId % 4 == 0) { - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); - } else { - proveBlock( - Carol, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, "" - ); - } - } else { - // Go into the future, outside of block proposal time + window - vm.warp(block.timestamp + 2 days); - - blockHash = bytes32(1e10 + blockId); - stateRoot = bytes32(1e9 + blockId); - - bytes32 secondTransitionHash = randBytes32(); - - // Carol can prove since it is outside of the window - proveBlock( - Carol, meta, parentHash, secondTransitionHash, stateRoot, meta.minTier, "" - ); - - parentHash = blockHash; - } - parentHash = blockHash; - } - } - - function test_pauseProving() external { - L1.pauseProving(true); - - giveEthAndTko(Alice, 1000 ether, 1000 ether); - giveEthAndTko(Bob, 1e8 ether, 100 ether); - - // Proposing is still possible - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - // Proving is not, so supply the revert reason to proveBlock - proveBlock( - Bob, - meta, - GENESIS_BLOCK_HASH, - bytes32("01"), - bytes32("02"), - meta.minTier, - LibProving.L1_PROVING_PAUSED.selector - ); - } - - function test_unpause() external { - L1.pause(); - - giveEthAndTko(Alice, 1000 ether, 1000 ether); - giveEthAndTko(Bob, 1e8 ether, 100 ether); - - // Proposing is also not possible - proposeButRevert(Alice, 1024, EssentialContract.INVALID_PAUSE_STATUS.selector); - - // unpause - L1.unpause(); - - // Proposing is possible again - proposeBlock(Alice, 1024); - } - - function proposeButRevert(address proposer, uint24 txListSize, bytes4 revertReason) internal { - vm.prank(proposer, proposer); - vm.expectRevert(revertReason); - L1.proposeBlockV2("", new bytes(txListSize)); - } -} diff --git a/packages/protocol/test/layer1/based/TaikoL1LibProvingWithTiers.t.sol b/packages/protocol/test/layer1/based/TaikoL1LibProvingWithTiers.t.sol deleted file mode 100644 index d27eb8a968c..00000000000 --- a/packages/protocol/test/layer1/based/TaikoL1LibProvingWithTiers.t.sol +++ /dev/null @@ -1,628 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "./TaikoL1TestBase.sol"; - -contract TaikoL1Tiers is TaikoL1 { - function getConfig() public pure override returns (TaikoData.Config memory config) { - config = TaikoL1.getConfig(); - - config.maxBlocksToVerify = 0; - config.blockMaxProposals = 10; - config.blockRingBufferSize = 12; - config.livenessBond = 1e18; // 1 Taiko token - config.ontakeForkHeight = 0; - } -} - -contract Verifier { - fallback(bytes calldata) external returns (bytes memory) { - return bytes.concat(keccak256("taiko")); - } -} - -contract TaikoL1LibProvingWithTiers is TaikoL1TestBase { - function deployTaikoL1() internal override returns (TaikoL1 taikoL1) { - taikoL1 = TaikoL1( - payable(deployProxy({ name: "taiko", impl: address(new TaikoL1Tiers()), data: "" })) - ); - } - - function proveHigherTierProof( - TaikoData.BlockMetadataV2 memory meta, - bytes32 parentHash, - bytes32 stateRoot, - bytes32 blockHash, - uint16 minTier - ) - internal - { - uint16 tierToProveWith; - if (minTier == LibTiers.TIER_OPTIMISTIC) { - tierToProveWith = LibTiers.TIER_SGX; - } else if (minTier == LibTiers.TIER_SGX) { - tierToProveWith = LibTiers.TIER_GUARDIAN; - } - proveBlock(Carol, meta, parentHash, blockHash, stateRoot, tierToProveWith, ""); - } - - function test_L1_ContestingWithSameProof() external { - giveEthAndTko(Alice, 1e7 ether, 1000 ether); - giveEthAndTko(Carol, 1e7 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < conf.blockMaxProposals * 3; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - // This proof cannot be verified obviously because of - // blockhash:blockId - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); - - // Try to contest - but should revert with L1_ALREADY_PROVED - proveBlock( - Carol, - meta, - parentHash, - blockHash, - stateRoot, - meta.minTier, - LibProving.L1_ALREADY_PROVED.selector - ); - - vm.roll(block.number + 15 * 12); - - uint16 minTier = meta.minTier; - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - verifyBlock(1); - - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_ContestingWithDifferentButCorrectProof() external { - giveEthAndTko(Alice, 1e8 ether, 1000 ether); - giveEthAndTko(Carol, 1e8 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < conf.blockMaxProposals * 3; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - // This proof cannot be verified obviously because of - // stateRoot instead of blockHash - uint16 minTier = meta.minTier; - - proveBlock(Alice, meta, parentHash, stateRoot, stateRoot, minTier, ""); - - // Try to contest - proveBlock(Carol, meta, parentHash, blockHash, stateRoot, minTier, ""); - - vm.roll(block.number + 15 * 12); - - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - // Cannot verify block because it is contested.. - verifyBlock(1); - - proveHigherTierProof(meta, parentHash, stateRoot, blockHash, minTier); - - vm.warp( - block.timestamp + tierProvider().getTier(LibTiers.TIER_GUARDIAN).cooldownWindow * 60 - + 1 - ); - // Now can verify - console2.log("Probalom verify-olni"); - verifyBlock(1); - - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_ContestingWithSgxProof() external { - giveEthAndTko(Alice, 1e8 ether, 1000 ether); - giveEthAndTko(Carol, 1e8 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < conf.blockMaxProposals * 3; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - // This proof cannot be verified obviously because of - // stateRoot instead of blockHash - uint16 minTier = meta.minTier; - proveBlock(Alice, meta, parentHash, stateRoot, stateRoot, minTier, ""); - - // Try to contest - proveBlock(Carol, meta, parentHash, blockHash, stateRoot, minTier, ""); - - vm.roll(block.number + 15 * 12); - - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - // Cannot verify block because it is contested.. - verifyBlock(1); - - proveHigherTierProof(meta, parentHash, stateRoot, blockHash, minTier); - - // Otherwise just not contest - vm.warp( - block.timestamp + tierProvider().getTier(LibTiers.TIER_GUARDIAN).cooldownWindow * 60 - + 1 - ); - // Now can verify - verifyBlock(1); - - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_ContestingWithDifferentButInCorrectProof() external { - giveEthAndTko(Alice, 1e8 ether, 1000 ether); - giveEthAndTko(Carol, 1e8 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < conf.blockMaxProposals * 3; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - // This proof cannot be verified obviously because of - // stateRoot instead of blockHash - uint16 minTier = meta.minTier; - - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, minTier, ""); - - if (minTier == LibTiers.TIER_OPTIMISTIC) { - // Try to contest - proveBlock(Carol, meta, parentHash, stateRoot, stateRoot, minTier, ""); - - vm.roll(block.number + 15 * 12); - - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - // Cannot verify block because it is contested.. - verifyBlock(1); - - proveBlock( - Carol, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, "" - ); - } - - // Otherwise just not contest - vm.warp( - block.timestamp + tierProvider().getTier(LibTiers.TIER_GUARDIAN).cooldownWindow * 60 - + 1 - ); - // Now can verify - verifyBlock(1); - - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_ContestingWithInvalidBlockHash() external { - giveEthAndTko(Alice, 1e8 ether, 1000 ether); - giveEthAndTko(Carol, 1e8 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < 10; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - // This proof cannot be verified obviously because of - // stateRoot instead of blockHash - uint16 minTier = meta.minTier; - proveBlock(Alice, meta, parentHash, stateRoot, stateRoot, minTier, ""); - - if (minTier == LibTiers.TIER_OPTIMISTIC) { - // Try to contest - proveBlock(Carol, meta, parentHash, blockHash, stateRoot, minTier, ""); - - vm.roll(block.number + 15 * 12); - - vm.warp( - block.timestamp - + tierProvider().getTier(LibTiers.TIER_GUARDIAN).cooldownWindow * 60 + 1 - ); - - // Cannot verify block because it is contested.. - verifyBlock(1); - - proveBlock( - Carol, - meta, - parentHash, - 0, - stateRoot, - LibTiers.TIER_GUARDIAN, - LibProving.L1_INVALID_TRANSITION.selector - ); - } - - // Otherwise just not contest - vm.warp( - block.timestamp + tierProvider().getTier(LibTiers.TIER_GUARDIAN).cooldownWindow * 60 - + 1 - ); - // Now can verify - verifyBlock(1); - - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_NonAssignedProverCannotBeFirstInProofWindowTime() external { - giveEthAndTko(Alice, 1e8 ether, 100 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - giveEthAndTko(Carol, 1e8 ether, 100 ether); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - - for (uint256 blockId = 1; blockId < 10; blockId++) { - //printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - proveBlock( - Carol, - meta, - parentHash, - blockHash, - stateRoot, - meta.minTier, - LibProving.L1_NOT_ASSIGNED_PROVER.selector - ); - vm.roll(block.number + 15 * 12); - - uint16 minTier = meta.minTier; - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - verifyBlock(1); - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_GuardianProverCanAlwaysOverwriteTheProof() external { - giveEthAndTko(Alice, 1e7 ether, 1000 ether); - giveEthAndTko(Carol, 1e7 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < conf.blockMaxProposals * 3; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - // This proof cannot be verified obviously because of - // blockhash:blockId - - (, TaikoData.SlotB memory b) = L1.getStateVariables(); - uint64 lastVerifiedBlockBefore = b.lastVerifiedBlockId; - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); - console2.log("mintTier is:", meta.minTier); - // Try to contest - proveBlock( - Carol, meta, parentHash, bytes32(uint256(1)), bytes32(uint256(1)), meta.minTier, "" - ); - vm.roll(block.number + 15 * 12); - - uint16 minTier = meta.minTier; - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - verifyBlock(1); - - (, b) = L1.getStateVariables(); - uint64 lastVerifiedBlockAfter = b.lastVerifiedBlockId; - - console.log(lastVerifiedBlockAfter, lastVerifiedBlockBefore); - // So it is contested - because last verified not changd - assertEq(lastVerifiedBlockAfter, lastVerifiedBlockBefore); - - // Guardian can prove with the original (good) hashes. - proveBlock(Carol, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, ""); - - vm.roll(block.number + 15 * 12); - vm.warp( - block.timestamp + tierProvider().getTier(LibTiers.TIER_GUARDIAN).cooldownWindow * 60 - + 1 - ); - - verifyBlock(1); - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_GuardianProverFailsWithInvalidBlockHash() external { - giveEthAndTko(Alice, 1e7 ether, 1000 ether); - giveEthAndTko(Carol, 1e7 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < conf.blockMaxProposals * 3; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - // This proof cannot be verified obviously because of - // blockhash:blockId - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); - - // Try to contest - but should revert with L1_ALREADY_PROVED - proveBlock( - Carol, - meta, - parentHash, - 0, - stateRoot, - LibTiers.TIER_GUARDIAN, - LibProving.L1_INVALID_TRANSITION.selector - ); - - vm.roll(block.number + 15 * 12); - - uint16 minTier = meta.minTier; - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - verifyBlock(1); - - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_GuardianProverCanOverwriteIfNotSameProof() external { - uint64 syncInternal = L1.getConfig().stateRootSyncInternal; - console2.log("syncInternal:", syncInternal); - - giveEthAndTko(Alice, 1e7 ether, 1000 ether); - giveEthAndTko(Carol, 1e7 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < conf.blockMaxProposals * 3; blockId++) { - bool isSyncBlock = LibUtils.isSyncBlock(syncInternal, blockId); - console2.log("blockId:", blockId); - console2.log("isSyncBlock:", isSyncBlock); - - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - mine(1); - - bytes32 blockHash = bytes32(1_000_000 + blockId); - bytes32 stateRoot = bytes32(2_000_000 + blockId); - - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); - - // Prove as guardian - blockHash = bytes32(1_000_000 + blockId + 100); - stateRoot = bytes32(2_000_000 + blockId + 100); - proveBlock(Carol, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, ""); - - // Re-prove as guardian - stateRoot = bytes32(2_000_000 + blockId + 200); - if (!isSyncBlock) { - // Changing stateRoot doesn't help - proveBlock( - Carol, - meta, - parentHash, - blockHash, - stateRoot, - LibTiers.TIER_GUARDIAN, - LibProving.L1_ALREADY_PROVED.selector - ); - } - blockHash = bytes32(1_000_000 + blockId + 200); - proveBlock(Carol, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, ""); - - vm.roll(block.number + 15 * 12); - - uint16 minTier = meta.minTier; - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - verifyBlock(1); - - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_ProveWithInvalidBlockId() external { - registerAddress("guardian_prover", Alice); - - giveEthAndTko(Alice, 1e8 ether, 1000 ether); - giveEthAndTko(Carol, 1e8 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < 10; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - - meta.id = 100; - proveBlock( - Carol, - meta, - parentHash, - blockHash, - stateRoot, - LibTiers.TIER_SGX, - LibUtils.L1_INVALID_BLOCK_ID.selector - ); - - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_ProveWithInvalidMetahash() external { - registerAddress("guardian_prover", Alice); - - giveEthAndTko(Alice, 1e8 ether, 1000 ether); - giveEthAndTko(Carol, 1e8 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - giveEthAndTko(Bob, 1e6 ether, 100 ether); - console2.log("Bob balance:", tko.balanceOf(Bob)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < 10; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - - // Mess up metahash - meta.proposedIn = 200; - proveBlock( - Bob, - meta, - parentHash, - blockHash, - stateRoot, - LibTiers.TIER_SGX, - LibProving.L1_BLOCK_MISMATCH.selector - ); - - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_GuardianProofCannotBeOverwrittenByLowerTier() external { - giveEthAndTko(Alice, 1e7 ether, 1000 ether); - giveEthAndTko(Carol, 1e7 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - for (uint256 blockId = 1; blockId < conf.blockMaxProposals * 3; blockId++) { - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(1e10 + blockId); - bytes32 stateRoot = bytes32(1e9 + blockId); - // This proof cannot be verified obviously because of blockhash is - // exchanged with stateRoot - proveBlock(Alice, meta, parentHash, stateRoot, stateRoot, meta.minTier, ""); - - // Prove as guardian - proveBlock(Carol, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, ""); - - // Try to re-prove but reverts - proveBlock( - Bob, - meta, - parentHash, - stateRoot, - stateRoot, - LibTiers.TIER_SGX, - LibProving.L1_INVALID_TIER.selector - ); - - vm.roll(block.number + 15 * 12); - - uint16 minTier = meta.minTier; - vm.warp(block.timestamp + tierProvider().getTier(minTier).cooldownWindow * 60 + 1); - - verifyBlock(1); - - parentHash = blockHash; - } - printVariables(""); - } - - function test_L1_ContestingWithLowerTierProofReverts() external { - giveEthAndTko(Alice, 1e7 ether, 1000 ether); - giveEthAndTko(Carol, 1e7 ether, 1000 ether); - console2.log("Alice balance:", tko.balanceOf(Alice)); - - bytes32 parentHash = GENESIS_BLOCK_HASH; - printVariables("before propose"); - TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, 1024); - - //printVariables("after propose"); - mine(1); - - bytes32 blockHash = bytes32(uint256(1)); - bytes32 stateRoot = bytes32(uint256(1)); - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, ""); - - // Try to contest with a lower tier proof- but should revert with L1_INVALID_TIER - proveBlock( - Carol, - meta, - parentHash, - blockHash, - stateRoot, - LibTiers.TIER_SGX, - LibProving.L1_INVALID_TIER.selector - ); - - printVariables(""); - } -} diff --git a/packages/protocol/test/layer1/based/TaikoL1TestBase.sol b/packages/protocol/test/layer1/based/TaikoL1TestBase.sol deleted file mode 100644 index 49c0d6e32df..00000000000 --- a/packages/protocol/test/layer1/based/TaikoL1TestBase.sol +++ /dev/null @@ -1,280 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "../TaikoL1Test.sol"; - -abstract contract TaikoL1TestBase is TaikoTest { - AddressManager public addressManager; - TaikoToken public tko; - SignalService public ss; - TaikoL1 public L1; - TaikoData.Config conf; - uint256 internal logCount; - Risc0Verifier public rv; - SP1Verifier public sp1; - SgxVerifier public sv; - GuardianProver public gp; - TestTierRouter public tr; - Bridge public bridge; - - bytes32 public GENESIS_BLOCK_HASH = keccak256("GENESIS_BLOCK_HASH"); - - address public L2SS = randAddress(); - address public L2 = randAddress(); - // Bootstrapped SGX instances (by owner) - address internal SGX_X_0 = vm.addr(0x1000004); - address internal SGX_X_1 = vm.addr(0x1000005); - - function deployTaikoL1() internal virtual returns (TaikoL1 taikoL1); - - function tierProvider() internal view returns (ITierProvider) { - ITierRouter tierRouter = ITierRouter(L1.resolve(LibStrings.B_TIER_ROUTER, false)); - return ITierProvider(tierRouter.getProvider(0)); - } - - function setUp() public virtual { - L1 = deployTaikoL1(); - conf = L1.getConfig(); - - addressManager = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }) - ); - - ss = SignalService( - deployProxy({ - name: "signal_service", - impl: address(new SignalService()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))) - }) - ); - ss.authorize(address(L1), true); - - sv = SgxVerifier( - deployProxy({ - name: "tier_sgx", - impl: address(new SgxVerifier()), - data: abi.encodeCall(SgxVerifier.init, (address(0), address(addressManager))) - }) - ); - - address[] memory initSgxInstances = new address[](1); - initSgxInstances[0] = SGX_X_0; - sv.addInstances(initSgxInstances); - - gp = GuardianProver( - deployProxy({ - name: "guardian_prover", - impl: address(new GuardianProver()), - data: abi.encodeCall(GuardianProver.init, (address(0), address(addressManager))) - }) - ); - - setupGuardianProverMultisig(); - - tr = new TestTierRouter(); - - bridge = Bridge( - payable( - deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ) - ); - - registerAddress("taiko", address(L1)); - registerAddress("tier_sgx", address(sv)); - registerAddress("tier_guardian", address(gp)); - registerAddress("tier_router", address(tr)); - registerAddress("signal_service", address(ss)); - registerL2Address("taiko", address(L2)); - registerL2Address("signal_service", address(L2SS)); - registerL2Address("taiko_l2", address(L2)); - - tko = TaikoToken( - deployProxy({ - name: "taiko_token", - impl: address(new TaikoToken()), - data: abi.encodeCall(TaikoToken.init, (address(0), address(this))), - registerTo: address(addressManager) - }) - ); - registerAddress("bond_token", address(tko)); - - L1.init(address(0), address(addressManager), GENESIS_BLOCK_HASH, false); - mine(1); - - gp.enableBondAllowance(true); - printVariables("init "); - } - - function proposeBlock( - address proposer, - uint24 txListSize - ) - internal - returns (TaikoData.BlockMetadataV2 memory) - { - vm.prank(proposer, proposer); - return L1.proposeBlockV2("", new bytes(txListSize)); - } - - function proveBlock( - address prover, - TaikoData.BlockMetadataV2 memory meta, - bytes32 parentHash, - bytes32 blockHash, - bytes32 stateRoot, - uint16 tier, - bytes4 revertReason - ) - internal - virtual - { - TaikoData.Transition memory tran = TaikoData.Transition({ - parentHash: parentHash, - blockHash: blockHash, - stateRoot: stateRoot, - graffiti: 0x0 - }); - - TaikoData.TierProof memory proof; - proof.tier = tier; - address newInstance; - - // Keep changing the pub key associated with an instance to avoid - // attacks, - // obviously just a mock due to 2 addresses changing all the time. - (newInstance,) = sv.instances(0); - if (newInstance == SGX_X_0) { - newInstance = SGX_X_1; - } else { - newInstance = SGX_X_0; - } - - if (tier == LibTiers.TIER_SGX) { - bytes memory signature = - createSgxSignatureProof(tran, newInstance, prover, keccak256(abi.encode(meta))); - - proof.data = bytes.concat(bytes4(0), bytes20(newInstance), signature); - } - - if (tier == LibTiers.TIER_GUARDIAN) { - proof.data = ""; - - // Grant 2 signatures, 3rd might be a revert - vm.prank(David, David); - gp.approveV2(meta, tran, proof); - vm.prank(Emma, Emma); - gp.approveV2(meta, tran, proof); - - if (revertReason != "") { - vm.prank(Frank, Frank); - vm.expectRevert(); // Revert reason is 'wrapped' so will not be - // identical to the expectedRevert - gp.approveV2(meta, tran, proof); - } else { - vm.prank(Frank, Frank); - gp.approveV2(meta, tran, proof); - } - } else { - if (revertReason != "") { - vm.prank(prover); - vm.expectRevert(revertReason); - L1.proveBlock(meta.id, abi.encode(meta, tran, proof)); - } else { - vm.prank(prover); - L1.proveBlock(meta.id, abi.encode(meta, tran, proof)); - } - } - } - - function verifyBlock(uint64 count) internal { - L1.verifyBlocks(count); - } - - function setupGuardianProverMultisig() internal { - address[] memory initMultiSig = new address[](5); - initMultiSig[0] = David; - initMultiSig[1] = Emma; - initMultiSig[2] = Frank; - initMultiSig[3] = Grace; - initMultiSig[4] = Henry; - - gp.setGuardians(initMultiSig, 3, true); - } - - function registerAddress(bytes32 nameHash, address addr) internal { - addressManager.setAddress(uint64(block.chainid), nameHash, addr); - console2.log(block.chainid, uint256(nameHash), unicode"→", addr); - } - - function registerL2Address(bytes32 nameHash, address addr) internal { - addressManager.setAddress(conf.chainId, nameHash, addr); - console2.log(conf.chainId, string(abi.encodePacked(nameHash)), unicode"→", addr); - } - - function createSgxSignatureProof( - TaikoData.Transition memory tran, - address newInstance, - address prover, - bytes32 metaHash - ) - internal - view - returns (bytes memory signature) - { - uint64 chainId = L1.getConfig().chainId; - bytes32 digest = LibPublicInput.hashPublicInputs( - tran, address(sv), newInstance, prover, metaHash, chainId - ); - - uint256 signerPrivateKey; - - // In the test suite these are the 3 which acts as provers - if (SGX_X_0 == newInstance) { - signerPrivateKey = 0x1000005; - } else if (SGX_X_1 == newInstance) { - signerPrivateKey = 0x1000004; - } - - (uint8 v, bytes32 r, bytes32 s) = vm.sign(signerPrivateKey, digest); - signature = abi.encodePacked(r, s, v); - } - - function giveEthAndTko(address to, uint256 amountTko, uint256 amountEth) internal { - vm.deal(to, amountEth); - tko.transfer(to, amountTko); - - vm.prank(to, to); - tko.approve(address(L1), amountTko); - - console2.log("TKO balance:", to, tko.balanceOf(to)); - console2.log("ETH balance:", to, to.balance); - } - - function printVariables(string memory comment) internal view { - (, TaikoData.SlotB memory b) = L1.getStateVariables(); - - string memory str = string.concat( - "---chain [", - vm.toString(b.lastVerifiedBlockId), - unicode"→", - vm.toString(b.numBlocks), - "] // ", - comment - ); - console2.log(str); - } - - function mine(uint256 counts) internal { - vm.warp(block.timestamp + 20 * counts); - vm.roll(block.number + counts); - } -} diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup1.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup1.t.sol index 9226cc75074..82cea89289c 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup1.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup1.t.sol @@ -1,30 +1,31 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; -contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group1 is TestTaikoL1Base { // Test summary: // 1. Alice proposes a block // 2. Alice proves the block within the proving window, using the correct parent hash. // 3. Alice's proof is used to verify the block. + function test_taikoL1_group_1_case_1() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000); printBlockAndTrans(0); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); - uint96 livenessBond = L1.getConfig().livenessBond; uint256 proposedAt; { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); - assertEq(meta.minTier, LibTiers.TIER_OPTIMISTIC); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); + assertEq(meta.minTier, minTierId); assertEq(blk.nextTransitionId, 1); assertEq(blk.verifiedTransitionId, 0); @@ -38,7 +39,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { proposedAt = blk.proposedAt; - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); } // Prove the block @@ -47,7 +48,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { bytes32 stateRoot = bytes32(uint256(11)); console2.log("====== Taylor cannot prove the block in the proving window"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock( Taylor, meta, @@ -59,7 +60,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { ); console2.log("====== Alice proves the block"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); uint256 provenAt; @@ -67,46 +68,46 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); assertEq(blk.proposedAt, proposedAt); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_OPTIMISTIC); + assertEq(ts.tier, minTierId); assertEq(ts.contester, address(0)); assertEq(ts.prover, Alice); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.validityBond, minTier.validityBond); assertEq(ts.timestamp, block.timestamp); provenAt = ts.timestamp; - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); } console2.log("====== Verify block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); assertEq(blk.proposedAt, proposedAt); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_OPTIMISTIC); + assertEq(ts.tier, minTierId); assertEq(ts.contester, address(0)); assertEq(ts.prover, Alice); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.validityBond, minTier.validityBond); assertEq(ts.timestamp, provenAt); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether); } } @@ -115,22 +116,22 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { // 2. Taylor proposes the block outside the proving window. // 3. Taylor's proof is used to verify the block. function test_taikoL1_group_1_case_2() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000); printBlockAndTrans(0); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); - uint96 livenessBond = L1.getConfig().livenessBond; uint256 proposedAt; { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); - assertEq(meta.minTier, LibTiers.TIER_OPTIMISTIC); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); + assertEq(meta.minTier, minTierId); assertEq(blk.nextTransitionId, 1); assertEq(blk.verifiedTransitionId, 0); @@ -144,7 +145,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { proposedAt = blk.proposedAt; - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); } // Prove the block @@ -153,7 +154,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { bytes32 stateRoot = bytes32(uint256(11)); console2.log("====== Taylor proves the block"); - mineAndWrap(7 days); + mineOneBlockAndWrap(7 days); proveBlock(Taylor, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); uint256 provenAt; @@ -161,50 +162,50 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); assertEq(blk.proposedAt, proposedAt); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_OPTIMISTIC); + assertEq(ts.tier, minTierId); assertEq(ts.contester, address(0)); assertEq(ts.prover, Taylor); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.validityBond, minTier.validityBond); assertEq(ts.timestamp, block.timestamp); provenAt = ts.timestamp; assertEq( - totalTkoBalance(tko, L1, Taylor), - 10_000 ether - tierOp.validityBond + livenessBond * 7 / 8 + getBondTokenBalance(Taylor), + 10_000 ether - minTier.validityBond + livenessBond * 7 / 8 ); } console2.log("====== Verify block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); assertEq(blk.proposedAt, proposedAt); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_OPTIMISTIC); + assertEq(ts.tier, minTierId); assertEq(ts.contester, address(0)); assertEq(ts.prover, Taylor); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.validityBond, minTier.validityBond); assertEq(ts.timestamp, provenAt); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether + livenessBond * 7 / 8); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Taylor), 10_000 ether + livenessBond * 7 / 8); } } @@ -214,11 +215,12 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { // 3. Taylor proves the block outside the proving window. // 4. Taylor's proof is used to verify the block. function test_taikoL1_group_1_case_3() external { - vm.warp(1_000_000); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mineOneBlockAndWrap(1000); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -229,32 +231,32 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); console2.log("====== Alice proves the block first"); proveBlock(Alice, meta, parentHash1, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Taylor proves the block later"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Taylor, meta, parentHash2, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Verify block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 3); assertEq(blk.verifiedTransitionId, 2); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 2); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 2); assertEq(ts.contester, address(0)); assertEq(ts.prover, Taylor); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.validityBond, minTier.validityBond); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); + assertEq(getBondTokenBalance(Taylor), 10_000 ether); } } @@ -264,11 +266,12 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { // 3. Taylor proves the block outside the proving window. // 4. Alice's proof is used to verify the block. function test_taikoL1_group_1_case_4() external { - vm.warp(1_000_000); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mineOneBlockAndWrap(1000); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -279,31 +282,31 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); console2.log("====== Alice proves the block first"); proveBlock(Alice, meta, parentHash1, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Taylor proves the block later"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Taylor, meta, parentHash2, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Verify block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 3); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.contester, address(0)); assertEq(ts.prover, Alice); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.validityBond, minTier.validityBond); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether - tierOp.validityBond); + assertEq(getBondTokenBalance(Taylor), 10_000 ether - minTier.validityBond); } } @@ -313,12 +316,14 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { // 3. Taylor also proves the block outside the proving window. // 4. Taylor's proof is used to verify the block. function test_taikoL1_group_1_case_5() external { - vm.warp(1_000_000); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mineOneBlockAndWrap(1000); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -329,31 +334,31 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(7 days); + mineOneBlockAndWrap(7 days); console2.log("====== William proves the block first"); proveBlock(William, meta, parentHash1, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Taylor proves the block later"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Taylor, meta, parentHash2, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Verify block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 3); assertEq(blk.verifiedTransitionId, 2); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 2); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 2); assertEq(ts.contester, address(0)); assertEq(ts.prover, Taylor); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.validityBond, minTier.validityBond); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - L1.getConfig().livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); } } @@ -362,22 +367,22 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { // 2. Alice proves the block outside the proving window, using the correct parent hash. // 3. Alice's proof is used to verify the block. function test_taikoL1_group_1_case_6() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000); printBlockAndTrans(0); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); - uint96 livenessBond = L1.getConfig().livenessBond; uint256 proposedAt; { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); - assertEq(meta.minTier, LibTiers.TIER_OPTIMISTIC); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); + assertEq(meta.minTier, minTierId); assertEq(blk.nextTransitionId, 1); assertEq(blk.verifiedTransitionId, 0); @@ -391,7 +396,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { proposedAt = blk.proposedAt; - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); } // Prove the block @@ -400,7 +405,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { bytes32 stateRoot = bytes32(uint256(11)); console2.log("====== Alice proves the block outside the proving window"); - mineAndWrap(7 days); + mineOneBlockAndWrap(7 days); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); uint256 provenAt; @@ -408,69 +413,68 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); assertEq(blk.proposedAt, proposedAt); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_OPTIMISTIC); + assertEq(ts.tier, minTierId); assertEq(ts.contester, address(0)); assertEq(ts.prover, Alice); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.validityBond, minTier.validityBond); assertEq(ts.timestamp, block.timestamp); provenAt = ts.timestamp; assertEq( - totalTkoBalance(tko, L1, Alice), - 10_000 ether - tierOp.validityBond - livenessBond / 8 + getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond - livenessBond / 8 ); } console2.log("====== Verify block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); assertEq(blk.proposedAt, proposedAt); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_OPTIMISTIC); + assertEq(ts.tier, minTierId); assertEq(ts.contester, address(0)); assertEq(ts.prover, Alice); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.validityBond, minTier.validityBond); assertEq(ts.timestamp, provenAt); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond / 8); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond / 8); } } // Test summary: // 1. Alice proposes a block, assigning herself as the prover. function test_taikoL1_group_1_case_7_no_hooks() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000); printBlockAndTrans(0); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); console2.log("====== Alice propose a block with herself as the assigned prover"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); - uint96 livenessBond = L1.getConfig().livenessBond; uint256 proposedAt; { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); - assertEq(meta.minTier, LibTiers.TIER_OPTIMISTIC); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); + assertEq(meta.minTier, minTierId); assertEq(blk.nextTransitionId, 1); assertEq(blk.verifiedTransitionId, 0); @@ -484,7 +488,7 @@ contract TaikoL1TestGroup1 is TaikoL1TestGroupBase { proposedAt = blk.proposedAt; - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); } } } diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup10.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup10.t.sol index 489daa1c10b..7dc878076cc 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup10.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup10.t.sol @@ -1,18 +1,20 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; -contract TaikoL10TestGroup1 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group10 is TestTaikoL1Base { // Test summary: // 1. Alice proposes 5 blocks, // 2. Alice proves all 5 block within the proving window, using the correct parent hash. // 3. Verify up to 10 blocks + function test_taikoL1_group_10_case_1() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); printBlockAndTrans(0); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); console2.log("====== Alice propose 5 block"); bytes32 parentHash = GENESIS_BLOCK_HASH; @@ -24,7 +26,7 @@ contract TaikoL10TestGroup1 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10_000 + i)); bytes32 stateRoot = bytes32(uint256(20_000 + i)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); printBlockAndTrans(meta.id); @@ -33,13 +35,13 @@ contract TaikoL10TestGroup1 is TaikoL1TestGroupBase { } console2.log("====== Verify up to 10 block"); - mineAndWrap(7 days); - verifyBlock(10); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(10); { - (, TaikoData.SlotB memory b) = L1.getStateVariables(); + (, TaikoData.SlotB memory b) = taikoL1.getStateVariables(); assertEq(b.lastVerifiedBlockId, 5); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether); } } } diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup11.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup11.t.sol index 6f5feb65b58..617b67c8c9b 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup11.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup11.t.sol @@ -1,19 +1,18 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; -contract TaikoL10TestGroup11 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group11 is TestTaikoL1Base { // Test summary: // 1. Zachary proposes a block with a custom proposer in the block parameters // 2. The proposal will revert as Zachary is not registered as the preconf task manager. function test_taikoL1_group_11_case_1() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); printBlockAndTrans(0); - giveEthAndTko(Zachary, 10_000 ether, 1000 ether); - - ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Zachary, 10_000 ether); + mintEther(Zachary, 1000 ether); console2.log("====== Zachary proposes a block"); @@ -27,15 +26,17 @@ contract TaikoL10TestGroup11 is TaikoL1TestGroupBase { // 2. Alice proves the block // 3. Alice verifies the block to get back her bonds. function test_taikoL1_group_11_case_2() external { - registerAddress("preconf_task_manager", Zachary); + vm.startPrank(deployer); + register("preconf_task_manager", Zachary); + vm.stopPrank(); - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); printBlockAndTrans(0); - giveEthAndTko(Zachary, 10_000 ether, 1000 ether); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Zachary, 10_000 ether); + mintEther(Zachary, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); console2.log("====== Zachary proposes a block with Alice as the proposer"); @@ -43,27 +44,27 @@ contract TaikoL10TestGroup11 is TaikoL1TestGroupBase { params.proposer = Alice; TaikoData.BlockMetadataV2 memory meta = proposeBlock(Zachary, params, ""); - assertEq(totalTkoBalance(tko, L1, Zachary), 10_000 ether); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - L1.getConfig().livenessBond); + assertEq(getBondTokenBalance(Zachary), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); console2.log("====== Alice proves the block"); // Prove the block bytes32 blockHash = bytes32(uint256(10_000)); bytes32 stateRoot = bytes32(uint256(20_000)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, GENESIS_BLOCK_HASH, blockHash, stateRoot, meta.minTier, ""); - assertEq(totalTkoBalance(tko, L1, Zachary), 10_000 ether); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); + assertEq(getBondTokenBalance(Zachary), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); printBlockAndTrans(meta.id); console2.log("====== Alice's block is verified"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); - assertEq(totalTkoBalance(tko, L1, Zachary), 10_000 ether); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether); + assertEq(getBondTokenBalance(Zachary), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether); } } diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup12.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup12.t.sol new file mode 100644 index 00000000000..809a1cf31d1 --- /dev/null +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup12.t.sol @@ -0,0 +1,212 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "./TestTaikoL1Base.sol"; + +contract TestTaikoL1_Group12 is TestTaikoL1Base { + /// @dev Test we can propose, prove, then verify more blocks than + /// 'blockMaxProposals' + function test_taikoL1_group_12_more_blocks_than_ring_buffer_size() external { + mintTaikoToken(Alice, 1_000_000 ether); + mintEther(Alice, 1_000_000 ether); + mintTaikoToken(Bob, 1_000_000 ether); + mintEther(Bob, 1_000_000 ether); + mintTaikoToken(Carol, 1_000_000 ether); + mintEther(Carol, 1_000_000 ether); + + bytes32 parentHash = GENESIS_BLOCK_HASH; + + for (uint256 blockId = 1; blockId < getConfig().blockMaxProposals * 3; blockId++) { + //printStateVariables("before propose"); + TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); + + //printStateVariables("after propose"); + mineOneBlockAndWrap(12 seconds); + + bytes32 blockHash = bytes32(1e10 + blockId); + bytes32 stateRoot = bytes32(1e9 + blockId); + proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); + vm.roll(block.number + 15 * 12); + + uint16 minTier = meta.minTier; + vm.warp(block.timestamp + tierProvider.getTier(0, minTier).cooldownWindow * 60 + 1); + + taikoL1.verifyBlocks(1); + parentHash = blockHash; + } + printStateVariables(""); + } + + /// @dev Test more than one block can be proposed, proven, & verified in the + /// same L1 block. + function test_taikoL1_group_12_multiple_blocks_in_one_L1_block() external { + mintTaikoToken(Alice, 1_000_000 ether); + mintEther(Alice, 1_000_000 ether); + console2.log("Alice balance:", bondToken.balanceOf(Alice)); + mintTaikoToken(Carol, 1_000_000 ether); + mintEther(Carol, 1_000_000 ether); + + bytes32 parentHash = GENESIS_BLOCK_HASH; + + for (uint256 blockId = 1; blockId <= 20; ++blockId) { + printStateVariables("before propose"); + TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); + + printStateVariables("after propose"); + + bytes32 blockHash = bytes32(1e10 + blockId); + bytes32 stateRoot = bytes32(1e9 + blockId); + + proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); + vm.roll(block.number + 15 * 12); + uint16 minTier = meta.minTier; + vm.warp(block.timestamp + tierProvider.getTier(0, minTier).cooldownWindow * 60 + 1); + + taikoL1.verifyBlocks(2); + + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); + assertEq(meta.id, blk.blockId); + + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, parentHash); + assertEq(ts.prover, Alice); + + parentHash = blockHash; + } + printStateVariables(""); + } + + /// @dev Test verifying multiple blocks in one transaction + function test_taikoL1_group_12_verifying_multiple_blocks_once() external { + mintTaikoToken(Alice, 1_000_000 ether); + mintEther(Alice, 1_000_000 ether); + console2.log("Alice balance:", bondToken.balanceOf(Alice)); + mintTaikoToken(Carol, 1_000_000 ether); + mintEther(Carol, 1_000_000 ether); + + bytes32 parentHash = GENESIS_BLOCK_HASH; + + for (uint256 blockId = 1; blockId <= getConfig().blockMaxProposals; blockId++) { + printStateVariables("before propose"); + TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); + + printStateVariables("after propose"); + + bytes32 blockHash = bytes32(1e10 + blockId); + bytes32 stateRoot = bytes32(1e9 + blockId); + + proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); + parentHash = blockHash; + } + + vm.roll(block.number + 15 * 12); + taikoL1.verifyBlocks(getConfig().blockMaxProposals - 1); + printStateVariables("after verify"); + taikoL1.verifyBlocks(getConfig().blockMaxProposals); + printStateVariables("after verify"); + } + + /// @dev Test if a given transition deadline is based on proposal time + function test_taikoL1_group_12_in_proving_window_logic() external { + mintTaikoToken(Alice, 1_000_000 ether); + mintEther(Alice, 1_000_000 ether); + mintTaikoToken(Carol, 1_000_000 ether); + mintEther(Carol, 1_000_000 ether); + + bytes32 parentHash = GENESIS_BLOCK_HASH; + + for (uint256 blockId = 1; blockId <= getConfig().blockMaxProposals; blockId++) { + TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); + + bytes32 blockHash; + bytes32 stateRoot; + if (blockId % 2 == 0) { + // Stay within proving window + vm.warp(block.timestamp + 60); + + blockHash = bytes32(1e10 + blockId); + stateRoot = bytes32(1e9 + blockId); + + bytes32 secondTransitionHash = randBytes32(); + + // Within window and first transition -> Should revert if not assigned prover or + // guardian + proveBlock( + Carol, + meta, + parentHash, + secondTransitionHash, + stateRoot, + meta.minTier, + LibProving.L1_NOT_ASSIGNED_PROVER.selector + ); + + // Only guardian or assigned prover is allowed + if (blockId % 4 == 0) { + proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); + } else { + proveBlock(Carol, meta, parentHash, blockHash, stateRoot, 74, ""); + } + } else { + // Go into the future, outside of block proposal time + window + mineOneBlockAndWrap(2 days); + + blockHash = bytes32(1e10 + blockId); + stateRoot = bytes32(1e9 + blockId); + + bytes32 secondTransitionHash = randBytes32(); + + // Carol can prove since it is outside of the window + proveBlock( + Carol, meta, parentHash, secondTransitionHash, stateRoot, meta.minTier, "" + ); + + parentHash = blockHash; + } + parentHash = blockHash; + } + } + + function test_taikoL1_group_12_pauseProving() external { + vm.prank(deployer); + taikoL1.pauseProving(true); + + mintTaikoToken(Alice, 1_000_000 ether); + mintEther(Alice, 1_000_000 ether); + mintTaikoToken(Bob, 1_000_000 ether); + mintEther(Bob, 1_000_000 ether); + + // Proposing is still possible + TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); + + // Proving is not, so supply the revert reason to proveBlock + proveBlock( + Bob, + meta, + GENESIS_BLOCK_HASH, + bytes32("01"), + bytes32("02"), + meta.minTier, + LibProving.L1_PROVING_PAUSED.selector + ); + } + + function test_taikoL1_group_12_unpause() external { + vm.prank(deployer); + taikoL1.pause(); + + mintTaikoToken(Alice, 1_000_000 ether); + mintEther(Alice, 1_000_000 ether); + mintTaikoToken(Bob, 1_000_000 ether); + mintEther(Bob, 1_000_000 ether); + + // Proposing is also not possible + proposeBlock(Alice, EssentialContract.INVALID_PAUSE_STATUS.selector); + + // unpause + vm.prank(deployer); + taikoL1.unpause(); + + // Proposing is possible again + proposeBlock(Alice, ""); + } +} diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup2.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup2.t.sol index 364c1f62717..eb1651ffef2 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup2.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup2.t.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; -contract TaikoL1TestGroup2 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group2 is TestTaikoL1Base { // Test summary: // 1. Alice proposes a block, Alice as the prover. // 2. Alice proves the block within the proving window, with correct parent hash. @@ -11,14 +11,16 @@ contract TaikoL1TestGroup2 is TaikoL1TestGroupBase { // 4. William proves Alice is correct and Taylor is wrong. // 5. William's proof is used to verify the block. function test_taikoL1_group_2_case_1() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = ITierProvider(tr).getTier(LibTiers.TIER_SGX); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); + ITierProvider.Tier memory tier3 = tierProvider.getTier(0, 73); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -28,83 +30,83 @@ contract TaikoL1TestGroup2 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Taylor contests Alice"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Taylor, meta, parentHash, blockHash2, stateRoot2, meta.minTier, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_OPTIMISTIC); + assertEq(ts.tier, minTierId); assertEq(ts.contester, Taylor); - assertEq(ts.contestBond, tierOp.contestBond); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.contestBond, minTier.contestBond); + assertEq(ts.validityBond, minTier.validityBond); assertEq(ts.prover, Alice); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether - tierOp.contestBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); + assertEq(getBondTokenBalance(Taylor), 10_000 ether - minTier.contestBond); } console2.log("====== William proves Alice is right"); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_SGX, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash, stateRoot, 73, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.contester, address(0)); - assertEq(ts.validityBond, tierSgx.validityBond); + assertEq(ts.validityBond, tier3.validityBond); assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); // not zero - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether - tierOp.contestBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether); + assertEq(getBondTokenBalance(Taylor), 10_000 ether - minTier.contestBond); assertEq( - totalTkoBalance(tko, L1, William), - 10_000 ether - tierSgx.validityBond + tierOp.contestBond * 7 / 8 + getBondTokenBalance(William), + 10_000 ether - tier3.validityBond + minTier.contestBond * 7 / 8 ); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); // assertEq(blk.livenessBond, livenessBond); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.prover, William); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether + tierOp.contestBond * 7 / 8); + assertEq(getBondTokenBalance(William), 10_000 ether + minTier.contestBond * 7 / 8); } } @@ -115,14 +117,16 @@ contract TaikoL1TestGroup2 is TaikoL1TestGroupBase { // 4. William proves Taylor is correct and Alice is wrong. // 5. William's proof is used to verify the block. function test_taikoL1_group_2_case_2() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = ITierProvider(tr).getTier(LibTiers.TIER_SGX); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); + ITierProvider.Tier memory tier3 = tierProvider.getTier(0, 73); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -132,90 +136,89 @@ contract TaikoL1TestGroup2 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Taylor contests Alice"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Taylor, meta, parentHash, blockHash2, stateRoot2, meta.minTier, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_OPTIMISTIC); + assertEq(ts.tier, minTierId); assertEq(ts.contester, Taylor); - assertEq(ts.contestBond, tierOp.contestBond); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.contestBond, minTier.contestBond); + assertEq(ts.validityBond, minTier.validityBond); assertEq(ts.prover, Alice); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether - tierOp.contestBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); + assertEq(getBondTokenBalance(Taylor), 10_000 ether - minTier.contestBond); } console2.log("====== William proves Tayler is right"); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash2, stateRoot2, LibTiers.TIER_SGX, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash2, stateRoot2, 73, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.contester, address(0)); - assertEq(ts.validityBond, tierSgx.validityBond); + assertEq(ts.validityBond, tier3.validityBond); assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); - uint256 quarterReward = tierOp.validityBond * 7 / 8 / 4; - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether + quarterReward * 3); + uint256 quarterReward = minTier.validityBond * 7 / 8 / 4; + assertEq(getBondTokenBalance(Taylor), 10_000 ether + quarterReward * 3); assertEq( - totalTkoBalance(tko, L1, William), - 10_000 ether - tierSgx.validityBond + quarterReward + getBondTokenBalance(William), 10_000 ether - tier3.validityBond + quarterReward ); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.contester, address(0)); - assertEq(ts.validityBond, tierSgx.validityBond); + assertEq(ts.validityBond, tier3.validityBond); assertEq(ts.prover, William); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); - uint256 quarterReward = tierOp.validityBond * 7 / 8 / 4; - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether + quarterReward * 3); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether + quarterReward); + uint256 quarterReward = minTier.validityBond * 7 / 8 / 4; + assertEq(getBondTokenBalance(Taylor), 10_000 ether + quarterReward * 3); + assertEq(getBondTokenBalance(William), 10_000 ether + quarterReward); } } } diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup3.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup3.t.sol index 0375309e8d0..064ceb859c8 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup3.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup3.t.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; -contract TaikoL1TestGroup3 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group3 is TestTaikoL1Base { // Test summary: // 1. Alice proposes a block, // 2. James proves the block outside the proving window, using the correct parent hash. @@ -11,107 +11,109 @@ contract TaikoL1TestGroup3 is TaikoL1TestGroupBase { // 4. William proves James is correct and Taylor is wrong. // 5. William's proof is used to verify the block. function test_taikoL1_group_3_case_1() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(James, 10_000 ether, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = ITierProvider(tr).getTier(LibTiers.TIER_SGX); + mintTaikoToken(James, 10_000 ether); + mintEther(James, 1000 ether); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); + + ITierProvider.Tier memory tier3 = tierProvider.getTier(0, 73); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); - uint96 livenessBond = L1.getConfig().livenessBond; - console2.log("====== James proves the block"); bytes32 parentHash = GENESIS_BLOCK_HASH; bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(7 days); + mineOneBlockAndWrap(7 days); proveBlock(James, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Taylor contests James"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Taylor, meta, parentHash, blockHash2, stateRoot2, meta.minTier, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_OPTIMISTIC); + assertEq(ts.tier, minTierId); assertEq(ts.contester, Taylor); - assertEq(ts.contestBond, tierOp.contestBond); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.contestBond, minTier.contestBond); + assertEq(ts.validityBond, minTier.validityBond); assertEq(ts.prover, James); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); assertEq( - totalTkoBalance(tko, L1, James), - 10_000 ether - tierOp.validityBond + livenessBond * 7 / 8 + getBondTokenBalance(James), + 10_000 ether - minTier.validityBond + livenessBond * 7 / 8 ); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether - tierOp.contestBond); + assertEq(getBondTokenBalance(Taylor), 10_000 ether - minTier.contestBond); } console2.log("====== William proves James is right"); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_SGX, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash, stateRoot, 73, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.contester, address(0)); - assertEq(ts.validityBond, tierSgx.validityBond); + assertEq(ts.validityBond, tier3.validityBond); assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); // not zero - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether - tierOp.contestBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Taylor), 10_000 ether - minTier.contestBond); assertEq( - totalTkoBalance(tko, L1, William), - 10_000 ether - tierSgx.validityBond + tierOp.contestBond * 7 / 8 + getBondTokenBalance(William), + 10_000 ether - tier3.validityBond + minTier.contestBond * 7 / 8 ); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); // assertEq(blk.livenessBond, livenessBond); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.prover, William); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether + tierOp.contestBond * 7 / 8); + assertEq(getBondTokenBalance(William), 10_000 ether + minTier.contestBond * 7 / 8); } } @@ -122,122 +124,123 @@ contract TaikoL1TestGroup3 is TaikoL1TestGroupBase { // 4. William proves Taylor is correct and James is wrong. // 5. William's proof is used to verify the block. function test_taikoL1_group_3_case_2() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(James, 10_000 ether, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = ITierProvider(tr).getTier(LibTiers.TIER_SGX); + mintTaikoToken(James, 10_000 ether); + mintEther(James, 1000 ether); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); + + ITierProvider.Tier memory tier3 = tierProvider.getTier(0, 73); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); - uint96 livenessBond = L1.getConfig().livenessBond; - console2.log("====== James proves the block"); bytes32 parentHash = GENESIS_BLOCK_HASH; bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(7 days); + mineOneBlockAndWrap(7 days); proveBlock(James, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Taylor contests James"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Taylor, meta, parentHash, blockHash2, stateRoot2, meta.minTier, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_OPTIMISTIC); + assertEq(ts.tier, minTierId); assertEq(ts.contester, Taylor); - assertEq(ts.contestBond, tierOp.contestBond); - assertEq(ts.validityBond, tierOp.validityBond); + assertEq(ts.contestBond, minTier.contestBond); + assertEq(ts.validityBond, minTier.validityBond); assertEq(ts.prover, James); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); assertEq( - totalTkoBalance(tko, L1, James), - 10_000 ether - tierOp.validityBond + livenessBond * 7 / 8 + getBondTokenBalance(James), + 10_000 ether - minTier.validityBond + livenessBond * 7 / 8 ); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether - tierOp.contestBond); + assertEq(getBondTokenBalance(Taylor), 10_000 ether - minTier.contestBond); } console2.log("====== William proves Tayler is right"); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash2, stateRoot2, LibTiers.TIER_SGX, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash2, stateRoot2, 73, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.contester, address(0)); - assertEq(ts.validityBond, tierSgx.validityBond); + assertEq(ts.validityBond, tier3.validityBond); assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); assertEq( - totalTkoBalance(tko, L1, James), - 10_000 ether - tierOp.validityBond + livenessBond * 7 / 8 + getBondTokenBalance(James), + 10_000 ether - minTier.validityBond + livenessBond * 7 / 8 ); - uint256 quarterReward = tierOp.validityBond * 7 / 8 / 4; - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether + quarterReward * 3); + uint256 quarterReward = minTier.validityBond * 7 / 8 / 4; + assertEq(getBondTokenBalance(Taylor), 10_000 ether + quarterReward * 3); assertEq( - totalTkoBalance(tko, L1, William), - 10_000 ether - tierSgx.validityBond + quarterReward + getBondTokenBalance(William), 10_000 ether - tier3.validityBond + quarterReward ); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.contester, address(0)); - assertEq(ts.validityBond, tierSgx.validityBond); + assertEq(ts.validityBond, tier3.validityBond); assertEq(ts.prover, William); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); - uint256 quarterReward = tierOp.validityBond * 7 / 8 / 4; + uint256 quarterReward = minTier.validityBond * 7 / 8 / 4; assertEq( - totalTkoBalance(tko, L1, James), - 10_000 ether - tierOp.validityBond + livenessBond * 7 / 8 + getBondTokenBalance(James), + 10_000 ether - minTier.validityBond + livenessBond * 7 / 8 ); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether + quarterReward * 3); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether + quarterReward); + assertEq(getBondTokenBalance(Taylor), 10_000 ether + quarterReward * 3); + assertEq(getBondTokenBalance(William), 10_000 ether + quarterReward); } } } diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup4.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup4.t.sol index 5a748170b7a..57536eddee3 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup4.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup4.t.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; -contract TaikoL1TestGroup4 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group4 is TestTaikoL1Base { // Test summary: // 1. Alice proposes a block, Alice is the prover. // 2. Alice proves the block within the proving window, using the correct parent hash. @@ -11,13 +11,15 @@ contract TaikoL1TestGroup4 is TaikoL1TestGroupBase { // proof. // 4. Taylor's proof is used to verify the block. function test_taikoL1_group_4_case_1() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = ITierProvider(tr).getTier(LibTiers.TIER_SGX); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); + + ITierProvider.Tier memory tier3 = tierProvider.getTier(0, 73); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -27,57 +29,57 @@ contract TaikoL1TestGroup4 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Taylor contests Alice with a higher tier proof"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); - proveBlock(Taylor, meta, parentHash, blockHash2, stateRoot2, LibTiers.TIER_SGX, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(Taylor, meta, parentHash, blockHash2, stateRoot2, 73, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.contester, address(0)); - assertEq(ts.validityBond, tierSgx.validityBond); + assertEq(ts.validityBond, tier3.validityBond); assertEq(ts.prover, Taylor); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); assertEq( - tko.balanceOf(Taylor), - 10_000 ether - tierSgx.validityBond + tierOp.validityBond * 7 / 8 + bondToken.balanceOf(Taylor), + 10_000 ether - tier3.validityBond + minTier.validityBond * 7 / 8 ); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); // assertEq(blk.livenessBond, livenessBond); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.prover, Taylor); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether + tierOp.validityBond * 7 / 8); + assertEq(getBondTokenBalance(Taylor), 10_000 ether + minTier.validityBond * 7 / 8); } } @@ -88,78 +90,80 @@ contract TaikoL1TestGroup4 is TaikoL1TestGroupBase { // proof. // 4. Taylor's proof is used to verify the block. function test_taikoL1_group_4_case_2() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); + + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(David, 10_000 ether); + mintEther(David, 1000 ether); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); - giveEthAndTko(David, 10_000 ether, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = ITierProvider(tr).getTier(LibTiers.TIER_SGX); + ITierProvider.Tier memory tier3 = tierProvider.getTier(0, 73); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); - uint96 livenessBond = L1.getConfig().livenessBond; - console2.log("====== Alice proves the block as the assigned prover"); bytes32 parentHash = GENESIS_BLOCK_HASH; bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(7 days); + mineOneBlockAndWrap(7 days); proveBlock(David, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Taylor contests David with a higher tier proof"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); - proveBlock(Taylor, meta, parentHash, blockHash2, stateRoot2, LibTiers.TIER_SGX, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(Taylor, meta, parentHash, blockHash2, stateRoot2, 73, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.contester, address(0)); - assertEq(ts.validityBond, tierSgx.validityBond); + assertEq(ts.validityBond, tier3.validityBond); assertEq(ts.prover, Taylor); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); assertEq( - tko.balanceOf(David), 10_000 ether - tierOp.validityBond + livenessBond * 7 / 8 + bondToken.balanceOf(David), + 10_000 ether - minTier.validityBond + livenessBond * 7 / 8 ); assertEq( - tko.balanceOf(Taylor), - 10_000 ether - tierSgx.validityBond + tierOp.validityBond * 7 / 8 + bondToken.balanceOf(Taylor), + 10_000 ether - tier3.validityBond + minTier.validityBond * 7 / 8 ); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.prover, Taylor); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether + tierOp.validityBond * 7 / 8); + assertEq(getBondTokenBalance(Taylor), 10_000 ether + minTier.validityBond * 7 / 8); } } } diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup5.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup5.t.sol index 9b59addfd55..7674de5ca11 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup5.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup5.t.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; -contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group5 is TestTaikoL1Base { // Test summary: // 1. Alice proposes a block, // 2. Guardian prover directly proves the block. @@ -11,11 +11,13 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { // 4. Guardian prover proves the block again with a different transition. // 5. William contests the guardian prover using a lower-tier proof and fails. function test_taikoL1_group_5_case_1() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -25,98 +27,92 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash, stateRoot, 74, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); + assertEq(ts.tier, 74); assertEq(ts.contester, address(0)); assertEq(ts.validityBond, 0); - assertEq(ts.prover, address(gp)); + assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether); + assertEq(getBondTokenBalance(William), 10_000 ether); } console2.log("====== Guardian re-approve with the same transition"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock( William, meta, parentHash, blockHash, stateRoot, - LibTiers.TIER_GUARDIAN, + 74, LibProving.L1_ALREADY_PROVED.selector ); console2.log("====== Guardian re-approve with a different transition"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash2, stateRoot2, LibTiers.TIER_GUARDIAN, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash2, stateRoot2, 74, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); + assertEq(ts.tier, 74); assertEq(ts.contester, address(0)); assertEq(ts.validityBond, 0); - assertEq(ts.prover, address(gp)); + assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether); + assertEq(getBondTokenBalance(William), 10_000 ether); } console2.log("====== William contests with a lower tier proof"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock( - William, - meta, - parentHash, - blockHash, - stateRoot, - LibTiers.TIER_SGX, - LibProving.L1_INVALID_TIER.selector + William, meta, parentHash, blockHash, stateRoot, 73, LibProving.L1_INVALID_TIER.selector ); console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); - assertEq(ts.prover, address(gp)); + assertEq(ts.tier, 74); + assertEq(ts.prover, William); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether); + assertEq(getBondTokenBalance(William), 10_000 ether); } } @@ -127,12 +123,13 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { // 4. Guardian prover proves the block with a different transition. // 5. William contests the guardian prover using a lower-tier proof and fails. function test_taikoL1_group_5_case_2() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -142,66 +139,66 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Guardian re-approve with the same transition"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock( William, meta, parentHash, blockHash, stateRoot, - LibTiers.TIER_GUARDIAN, + 74, LibProving.L1_ALREADY_PROVED.selector ); console2.log("====== Guardian re-approve with a different transition"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash2, stateRoot2, LibTiers.TIER_GUARDIAN, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash2, stateRoot2, 74, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); + assertEq(ts.tier, 74); assertEq(ts.contester, address(0)); assertEq(ts.validityBond, 0); - assertEq(ts.prover, address(gp)); + assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); + assertEq(getBondTokenBalance(William), 10_000 ether + minTier.validityBond * 7 / 8); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); - assertEq(ts.prover, address(gp)); + assertEq(ts.tier, 74); + assertEq(ts.prover, William); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); + assertEq(getBondTokenBalance(William), 10_000 ether + minTier.validityBond * 7 / 8); } } @@ -212,90 +209,92 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { // 4. Guardian prover proves the block with a different transition. // 5. William contests the guardian prover using a lower-tier proof and fails. function test_taikoL1_group_5_case_3() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(David, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(David, 10_000 ether); + mintEther(David, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); - uint96 livenessBond = L1.getConfig().livenessBond; - console2.log("====== David proves the block"); bytes32 parentHash = GENESIS_BLOCK_HASH; bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(7 days); + mineOneBlockAndWrap(7 days); proveBlock(David, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Guardian re-approve with the same transition"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock( William, meta, parentHash, blockHash, stateRoot, - LibTiers.TIER_GUARDIAN, + 74, LibProving.L1_ALREADY_PROVED.selector ); console2.log("====== Guardian re-approve with a different transition"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash2, stateRoot2, LibTiers.TIER_GUARDIAN, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash2, stateRoot2, 74, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); + assertEq(ts.tier, 74); assertEq(ts.contester, address(0)); assertEq(ts.validityBond, 0); - assertEq(ts.prover, address(gp)); + assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); assertEq( - tko.balanceOf(David), 10_000 ether - tierOp.validityBond + livenessBond * 7 / 8 + getBondTokenBalance(David), + 10_000 ether - minTier.validityBond + livenessBond * 7 / 8 ); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(William), 10_000 ether + minTier.validityBond * 7 / 8); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); assertEq(ts.stateRoot, stateRoot2); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); - assertEq(ts.prover, address(gp)); + assertEq(ts.tier, 74); + assertEq(ts.prover, William); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); assertEq( - tko.balanceOf(David), 10_000 ether - tierOp.validityBond + livenessBond * 7 / 8 + getBondTokenBalance(David), + 10_000 ether - minTier.validityBond + livenessBond * 7 / 8 ); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(William), 10_000 ether + minTier.validityBond * 7 / 8); } } @@ -303,11 +302,13 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { // 1. Alice proposes a block, // 2. Guardian prover directly proves the block out of proving window function test_taikoL1_group_5_case_4() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -317,27 +318,27 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(7 days); - proveBlock(William, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, ""); + mineOneBlockAndWrap(7 days); + proveBlock(William, meta, parentHash, blockHash, stateRoot, 74, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); + assertEq(ts.tier, 74); assertEq(ts.contester, address(0)); assertEq(ts.validityBond, 0); - assertEq(ts.prover, address(gp)); + assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - L1.getConfig().livenessBond); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(William), 10_000 ether + livenessBond * 7 / 8); } } } diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup6.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup6.t.sol index 8dbb1649542..56f5618bc2a 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup6.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup6.t.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; -contract TaikoL1TestGroup6 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group6 is TestTaikoL1Base { // Test summary: // 1. Alice proposes a block, // 2. Alice proves the block within the proving window, using the correct parent hash. @@ -11,12 +11,14 @@ contract TaikoL1TestGroup6 is TaikoL1TestGroupBase { // 4. Alice re-proves his proof, showing Taylor is incorrect. // 5. Alice's proof is validated and used to verify the block. function test_taikoL1_group_6_case_1() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); - ITierProvider.Tier memory tierSgx = ITierProvider(tr).getTier(LibTiers.TIER_SGX); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); + + ITierProvider.Tier memory tier3 = tierProvider.getTier(0, 73); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -26,61 +28,61 @@ contract TaikoL1TestGroup6 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Taylor contests Alice"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Taylor, meta, parentHash, blockHash2, stateRoot2, meta.minTier, ""); console2.log("====== Alice cannot proves himself is right"); - mineAndWrap(10 seconds); - proveBlock(Alice, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_SGX, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(Alice, meta, parentHash, blockHash, stateRoot, 73, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.contester, address(0)); - assertEq(ts.validityBond, tierSgx.validityBond); + assertEq(ts.validityBond, tier3.validityBond); assertEq(ts.prover, Alice); assertEq(ts.timestamp, block.timestamp); // not zero - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether - tierOp.contestBond); + assertEq(getBondTokenBalance(Taylor), 10_000 ether - minTier.contestBond); assertEq( - totalTkoBalance(tko, L1, Alice), - 10_000 ether - tierSgx.validityBond + tierOp.contestBond * 7 / 8 + getBondTokenBalance(Alice), + 10_000 ether - tier3.validityBond + minTier.contestBond * 7 / 8 ); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); assertEq(ts.stateRoot, stateRoot); - assertEq(ts.tier, LibTiers.TIER_SGX); + assertEq(ts.tier, 73); assertEq(ts.prover, Alice); - assertEq(totalTkoBalance(tko, L1, Taylor), 10_000 ether - tierOp.contestBond); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether + tierOp.contestBond * 7 / 8); + assertEq(getBondTokenBalance(Taylor), 10_000 ether - minTier.contestBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether + minTier.contestBond * 7 / 8); } } } diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup7.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup7.t.sol index f8d57a59536..e55a30a52b0 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup7.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup7.t.sol @@ -1,19 +1,20 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; -contract TaikoL1TestGroup7 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group7 is TestTaikoL1Base { // Test summary: // 1. Alice proposes a block, // 2. Alice proves the block within the proving window, using the correct parent hash. // 3. After the cooldown window, Taylor contests Alice's proof, and fails. function test_taikoL1_group_7_case_1() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -23,10 +24,10 @@ contract TaikoL1TestGroup7 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); - mineAndWrap(tierOp.cooldownWindow * 60); + mineOneBlockAndWrap(minTier.cooldownWindow * 60); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); proveBlock( @@ -47,12 +48,14 @@ contract TaikoL1TestGroup7 is TaikoL1TestGroupBase { // 3. Taylor contests Alice's proof. // 4. William attempts but fails to contest Alice again. function test_taikoL1_group_7_case_2() external { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - giveEthAndTko(Taylor, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); + mintTaikoToken(Taylor, 10_000 ether); + mintEther(Taylor, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -62,10 +65,10 @@ contract TaikoL1TestGroup7 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); - mineAndWrap(tierOp.cooldownWindow * 60 - 1); + mineOneBlockAndWrap(minTier.cooldownWindow * 60 - 1); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); proveBlock(Taylor, meta, parentHash, blockHash2, stateRoot2, meta.minTier, ""); diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup8.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup8.t.sol index 9c52fca4257..c67cade778b 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup8.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup8.t.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; -contract TaikoL1TestGroup8 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group8 is TestTaikoL1Base { // Test summary: // 1. Alice proposes a block, // 2. TaikoL1 is paused. @@ -13,17 +13,18 @@ contract TaikoL1TestGroup8 is TaikoL1TestGroupBase { // 6. Alice attempts again to prove the first block within the proving window. // 7. Alice tries to propose another block. function test_taikoL1_group_8_case_1() external { - vm.warp(1_000_000); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mineOneBlockAndWrap(1000 seconds); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); console2.log("====== Pause TaikoL1"); - mineAndWrap(10 seconds); - vm.prank(L1.owner()); - L1.pause(); + mineOneBlockAndWrap(10 seconds); + vm.prank(taikoL1.owner()); + taikoL1.pause(); console2.log("====== Alice proves the block first after L1 paused"); @@ -44,9 +45,9 @@ contract TaikoL1TestGroup8 is TaikoL1TestGroupBase { proposeBlock(Alice, EssentialContract.INVALID_PAUSE_STATUS.selector); console2.log("====== Unpause TaikoL1"); - mineAndWrap(10 seconds); - vm.prank(L1.owner()); - L1.unpause(); + mineOneBlockAndWrap(10 seconds); + vm.prank(taikoL1.owner()); + taikoL1.unpause(); console2.log("====== Alice proves the block first after L1 unpaused"); proveBlock(Alice, meta, parentHash1, blockHash, stateRoot, meta.minTier, ""); @@ -63,17 +64,18 @@ contract TaikoL1TestGroup8 is TaikoL1TestGroupBase { // 6. Alice attempts again to prove the first block within the proving window. // 7. Alice tries to propose another block. function test_taikoL1_group_8_case_2() external { - vm.warp(1_000_000); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); + mineOneBlockAndWrap(1000 seconds); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); console2.log("====== Pause TaikoL1 proving"); - mineAndWrap(10 seconds); - vm.prank(L1.owner()); - L1.pauseProving(true); + mineOneBlockAndWrap(10 seconds); + vm.prank(taikoL1.owner()); + taikoL1.pauseProving(true); console2.log("====== Alice proves the block first after L1 proving paused"); @@ -94,9 +96,9 @@ contract TaikoL1TestGroup8 is TaikoL1TestGroupBase { proposeBlock(Alice, ""); console2.log("====== Unpause TaikoL1 proving"); - mineAndWrap(10 seconds); - vm.prank(L1.owner()); - L1.pauseProving(false); + mineOneBlockAndWrap(10 seconds); + vm.prank(taikoL1.owner()); + taikoL1.pauseProving(false); console2.log("====== Alice proves the block first after L1 proving unpaused"); proveBlock(Alice, meta, parentHash1, blockHash, stateRoot, meta.minTier, ""); @@ -107,15 +109,15 @@ contract TaikoL1TestGroup8 is TaikoL1TestGroupBase { // 2. Gets a transition by ID & hash that doesn't exist. function test_taikoL1_group_8_case_3() external { vm.expectRevert(LibUtils.L1_INVALID_BLOCK_ID.selector); - L1.getBlockV2(2); + taikoL1.getBlockV2(2); vm.expectRevert(LibUtils.L1_TRANSITION_NOT_FOUND.selector); - L1.getTransition(0, 2); + taikoL1.getTransition(0, 2); vm.expectRevert(LibUtils.L1_TRANSITION_NOT_FOUND.selector); - L1.getTransition(0, randBytes32()); + taikoL1.getTransition(0, randBytes32()); vm.expectRevert(LibUtils.L1_INVALID_BLOCK_ID.selector); - L1.getTransition(3, randBytes32()); + taikoL1.getTransition(3, randBytes32()); } } diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroup9.t.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroup9.t.sol index 0fc7533182b..c76b89080ab 100644 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroup9.t.sol +++ b/packages/protocol/test/layer1/based/TaikoL1TestGroup9.t.sol @@ -1,28 +1,27 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL1TestGroupBase.sol"; +import "./TestTaikoL1Base.sol"; // Testing block proving and verification for block#2, as stateRootSyncInternal is set to 2 in // this test suite, we are testing that block#2 shall have state root always as zero. -contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { +contract TestTaikoL1_Group9 is TestTaikoL1Base { bytes32 internal constant FIRST_BLOCK_HASH = keccak256("FIRST_BLOCK_HASH"); function proposeProveVerifyTheFirstBlock() internal { - vm.warp(1_000_000); + mineOneBlockAndWrap(1000 seconds); - giveEthAndTko(David, 10_000 ether, 1000 ether); + mintTaikoToken(David, 10_000 ether); + mintEther(David, 1000 ether); console2.log("====== David proposes, proves, and verifies the first block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(David, ""); bytes32 stateRoot = bytes32(uint256(1)); - mineAndWrap(10 seconds); - proveBlock( - David, meta, GENESIS_BLOCK_HASH, FIRST_BLOCK_HASH, stateRoot, LibTiers.TIER_SGX, "" - ); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(10 seconds); + proveBlock(David, meta, GENESIS_BLOCK_HASH, FIRST_BLOCK_HASH, stateRoot, 73, ""); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); } // Test summary: @@ -35,8 +34,10 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { function test_taikoL1_group_9_case_1() external { proposeProveVerifyTheFirstBlock(); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -46,101 +47,95 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash, stateRoot, 74, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); // This block is not storing state root assertEq(ts.stateRoot, 0); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); + assertEq(ts.tier, 74); assertEq(ts.contester, address(0)); assertEq(ts.validityBond, 0); - assertEq(ts.prover, address(gp)); + assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether); + assertEq(getBondTokenBalance(William), 10_000 ether); } console2.log("====== Guardian re-approve with the same transition"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock( William, meta, parentHash, blockHash, stateRoot, - LibTiers.TIER_GUARDIAN, + 74, LibProving.L1_ALREADY_PROVED.selector ); console2.log("====== Guardian re-approve with a different transition"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash2, stateRoot2, LibTiers.TIER_GUARDIAN, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash2, stateRoot2, 74, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); // This block is not storing state root assertEq(ts.stateRoot, 0); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); + assertEq(ts.tier, 74); assertEq(ts.contester, address(0)); assertEq(ts.validityBond, 0); - assertEq(ts.prover, address(gp)); + assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether); + assertEq(getBondTokenBalance(William), 10_000 ether); } console2.log("====== William contests with a lower tier proof"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock( - William, - meta, - parentHash, - blockHash, - stateRoot, - LibTiers.TIER_SGX, - LibProving.L1_INVALID_TIER.selector + William, meta, parentHash, blockHash, stateRoot, 73, LibProving.L1_INVALID_TIER.selector ); console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); // This block is not storing state root assertEq(ts.stateRoot, 0); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); - assertEq(ts.prover, address(gp)); + assertEq(ts.tier, 74); + assertEq(ts.prover, William); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether); + assertEq(getBondTokenBalance(William), 10_000 ether); } } @@ -154,9 +149,10 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { function test_taikoL1_group_9_case_2() external { proposeProveVerifyTheFirstBlock(); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -166,68 +162,71 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock(Alice, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Guardian re-approve with the same transition"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock( William, meta, parentHash, blockHash, stateRoot, - LibTiers.TIER_GUARDIAN, + 74, LibProving.L1_ALREADY_PROVED.selector ); console2.log("====== Guardian re-approve with a different transition"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash2, stateRoot2, LibTiers.TIER_GUARDIAN, ""); + mineOneBlockAndWrap(10 seconds); + + assertEq(getBondTokenBalance(William), 10_000 ether); + + proveBlock(William, meta, parentHash, blockHash2, stateRoot2, 74, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); // This block is not storing state root assertEq(ts.stateRoot, 0); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); + assertEq(ts.tier, 74); assertEq(ts.contester, address(0)); assertEq(ts.validityBond, 0); - assertEq(ts.prover, address(gp)); + assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); + assertEq(getBondTokenBalance(William), 10_000 ether + minTier.validityBond * 7 / 8); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); // This block is not storing state root assertEq(ts.stateRoot, 0); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); - assertEq(ts.prover, address(gp)); + assertEq(ts.tier, 74); + assertEq(ts.prover, William); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - tierOp.validityBond); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether - minTier.validityBond); + assertEq(getBondTokenBalance(William), 10_000 ether + minTier.validityBond * 7 / 8); } } @@ -241,91 +240,91 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { function test_taikoL1_group_9_case_3() external { proposeProveVerifyTheFirstBlock(); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - giveEthAndTko(Carol, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); - ITierProvider.Tier memory tierOp = ITierProvider(tr).getTier(LibTiers.TIER_OPTIMISTIC); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); + mintTaikoToken(Carol, 10_000 ether); + mintEther(Carol, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); - uint96 livenessBond = L1.getConfig().livenessBond; - console2.log("====== Carol proves the block"); bytes32 parentHash = FIRST_BLOCK_HASH; bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(7 days); + mineOneBlockAndWrap(7 days); proveBlock(Carol, meta, parentHash, blockHash, stateRoot, meta.minTier, ""); console2.log("====== Guardian re-approve with the same transition"); - mineAndWrap(10 seconds); + mineOneBlockAndWrap(10 seconds); proveBlock( William, meta, parentHash, blockHash, stateRoot, - LibTiers.TIER_GUARDIAN, + 74, LibProving.L1_ALREADY_PROVED.selector ); console2.log("====== Guardian re-approve with a different transition"); bytes32 blockHash2 = bytes32(uint256(20)); bytes32 stateRoot2 = bytes32(uint256(21)); - mineAndWrap(10 seconds); - proveBlock(William, meta, parentHash, blockHash2, stateRoot2, LibTiers.TIER_GUARDIAN, ""); + mineOneBlockAndWrap(10 seconds); + proveBlock(William, meta, parentHash, blockHash2, stateRoot2, 74, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); // This block is not storing state root assertEq(ts.stateRoot, 0); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); + assertEq(ts.tier, 74); assertEq(ts.contester, address(0)); assertEq(ts.validityBond, 0); - assertEq(ts.prover, address(gp)); + assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); assertEq( - totalTkoBalance(tko, L1, Carol), - 10_000 ether - tierOp.validityBond + livenessBond * 7 / 8 + getBondTokenBalance(Carol), + 10_000 ether - minTier.validityBond + livenessBond * 7 / 8 ); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(William), 10_000 ether + minTier.validityBond * 7 / 8); } console2.log("====== Verify the block"); - mineAndWrap(7 days); - verifyBlock(1); + mineOneBlockAndWrap(7 days); + taikoL1.verifyBlocks(1); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 1); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash2); // This block is not storing state root assertEq(ts.stateRoot, 0); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); - assertEq(ts.prover, address(gp)); + assertEq(ts.tier, 74); + assertEq(ts.prover, William); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); assertEq( - totalTkoBalance(tko, L1, Carol), - 10_000 ether - tierOp.validityBond + livenessBond * 7 / 8 + getBondTokenBalance(Carol), + 10_000 ether - minTier.validityBond + livenessBond * 7 / 8 ); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(William), 10_000 ether + minTier.validityBond * 7 / 8); } } @@ -336,8 +335,10 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { function test_taikoL1_group_9_case_4() external { proposeProveVerifyTheFirstBlock(); - giveEthAndTko(Alice, 10_000 ether, 1000 ether); - giveEthAndTko(William, 10_000 ether, 1000 ether); + mintTaikoToken(Alice, 10_000 ether); + mintEther(Alice, 1000 ether); + mintTaikoToken(William, 10_000 ether); + mintEther(William, 1000 ether); console2.log("====== Alice propose a block"); TaikoData.BlockMetadataV2 memory meta = proposeBlock(Alice, ""); @@ -347,28 +348,28 @@ contract TaikoL1TestGroup5 is TaikoL1TestGroupBase { bytes32 blockHash = bytes32(uint256(10)); bytes32 stateRoot = bytes32(uint256(11)); - mineAndWrap(7 days); - proveBlock(William, meta, parentHash, blockHash, stateRoot, LibTiers.TIER_GUARDIAN, ""); + mineOneBlockAndWrap(7 days); + proveBlock(William, meta, parentHash, blockHash, stateRoot, 74, ""); { printBlockAndTrans(meta.id); - TaikoData.BlockV2 memory blk = L1.getBlockV2(meta.id); + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(meta.id); assertEq(blk.nextTransitionId, 2); assertEq(blk.verifiedTransitionId, 0); - TaikoData.TransitionState memory ts = L1.getTransition(meta.id, 1); + TaikoData.TransitionState memory ts = taikoL1.getTransition(meta.id, 1); assertEq(ts.blockHash, blockHash); // This block is not storing state root assertEq(ts.stateRoot, 0); - assertEq(ts.tier, LibTiers.TIER_GUARDIAN); + assertEq(ts.tier, 74); assertEq(ts.contester, address(0)); assertEq(ts.validityBond, 0); - assertEq(ts.prover, address(gp)); + assertEq(ts.prover, William); assertEq(ts.timestamp, block.timestamp); - assertEq(totalTkoBalance(tko, L1, Alice), 10_000 ether - L1.getConfig().livenessBond); - assertEq(totalTkoBalance(tko, L1, William), 10_000 ether); + assertEq(getBondTokenBalance(Alice), 10_000 ether - livenessBond); + assertEq(getBondTokenBalance(William), 10_000 ether + livenessBond * 7 / 8); } } } diff --git a/packages/protocol/test/layer1/based/TaikoL1TestGroupBase.sol b/packages/protocol/test/layer1/based/TaikoL1TestGroupBase.sol deleted file mode 100644 index 5948876c131..00000000000 --- a/packages/protocol/test/layer1/based/TaikoL1TestGroupBase.sol +++ /dev/null @@ -1,219 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "./TaikoL1TestBase.sol"; - -contract TaikoL1New is TaikoL1 { - function getConfig() public pure override returns (TaikoData.Config memory config) { - config = TaikoL1.getConfig(); - config.maxBlocksToVerify = 0; - config.blockMaxProposals = 20; - config.blockRingBufferSize = 25; - config.stateRootSyncInternal = 2; - config.ontakeForkHeight = 0; - } -} - -abstract contract TaikoL1TestGroupBase is TaikoL1TestBase { - function deployTaikoL1() internal virtual override returns (TaikoL1) { - return TaikoL1( - payable(deployProxy({ name: "taiko", impl: address(new TaikoL1New()), data: "" })) - ); - } - - function proposeBlock( - address proposer, - bytes4 revertReason - ) - internal - returns (TaikoData.BlockMetadataV2 memory) - { - vm.prank(proposer); - if (revertReason != "") vm.expectRevert(revertReason); - return L1.proposeBlockV2("", new bytes(10)); - } - - function proposeBlock( - address proposer, - TaikoData.BlockParamsV2 memory params, - bytes4 revertReason - ) - internal - returns (TaikoData.BlockMetadataV2 memory) - { - vm.prank(proposer); - if (revertReason != "") vm.expectRevert(revertReason); - return L1.proposeBlockV2(abi.encode(params), new bytes(10)); - } - - function proveBlock( - address prover, - TaikoData.BlockMetadataV2 memory meta, - bytes32 parentHash, - bytes32 blockHash, - bytes32 stateRoot, - uint16 tier, - bytes4 revertReason - ) - internal - override - { - TaikoData.Transition memory tran = TaikoData.Transition({ - parentHash: parentHash, - blockHash: blockHash, - stateRoot: stateRoot, - graffiti: 0x0 - }); - - TaikoData.TierProof memory proof; - proof.tier = tier; - address newInstance; - - // Keep changing the pub key associated with an instance to avoid - // attacks, - // obviously just a mock due to 2 addresses changing all the time. - (newInstance,) = sv.instances(0); - if (newInstance == SGX_X_0) { - newInstance = SGX_X_1; - } else { - newInstance = SGX_X_0; - } - - if (tier == LibTiers.TIER_SGX) { - bytes memory signature = - createSgxSignatureProof(tran, newInstance, prover, keccak256(abi.encode(meta))); - - proof.data = bytes.concat(bytes4(0), bytes20(newInstance), signature); - } - - if (tier == LibTiers.TIER_GUARDIAN) { - proof.data = ""; - - // Grant 2 signatures, 3rd might be a revert - vm.prank(David, David); - gp.approveV2(meta, tran, proof); - vm.prank(Emma, Emma); - gp.approveV2(meta, tran, proof); - - if (revertReason != "") vm.expectRevert(revertReason); - vm.prank(Frank); - gp.approveV2(meta, tran, proof); - } else { - if (revertReason != "") vm.expectRevert(revertReason); - vm.prank(prover); - L1.proveBlock(meta.id, abi.encode(meta, tran, proof)); - } - } - - function proveBlock2( - address prover, - TaikoData.BlockMetadataV2 memory meta, - bytes32 parentHash, - bytes32 blockHash, - bytes32 stateRoot, - uint16 tier, - bytes4 revertReason - ) - internal - { - TaikoData.Transition memory tran = TaikoData.Transition({ - parentHash: parentHash, - blockHash: blockHash, - stateRoot: stateRoot, - graffiti: 0x0 - }); - - TaikoData.TierProof memory proof; - proof.tier = tier; - address newInstance; - - // Keep changing the pub key associated with an instance to avoid - // attacks, - // obviously just a mock due to 2 addresses changing all the time. - (newInstance,) = sv.instances(0); - if (newInstance == SGX_X_0) { - newInstance = SGX_X_1; - } else { - newInstance = SGX_X_0; - } - - if (tier == LibTiers.TIER_SGX) { - bytes memory signature = - createSgxSignatureProof(tran, newInstance, prover, keccak256(abi.encode(meta))); - - proof.data = bytes.concat(bytes4(0), bytes20(newInstance), signature); - } - - if (tier == LibTiers.TIER_GUARDIAN) { - proof.data = ""; - - // Grant 2 signatures, 3rd might be a revert - vm.prank(David, David); - gp.approveV2(meta, tran, proof); - vm.prank(Emma, Emma); - gp.approveV2(meta, tran, proof); - - if (revertReason != "") vm.expectRevert(revertReason); - vm.prank(Frank); - gp.approveV2(meta, tran, proof); - } else { - if (revertReason != "") vm.expectRevert(revertReason); - vm.prank(prover); - L1.proveBlock(meta.id, abi.encode(meta, tran, proof)); - } - } - - function printBlockAndTrans(uint64 blockId) internal view { - TaikoData.BlockV2 memory blk = L1.getBlockV2(blockId); - printBlock(blk); - - for (uint32 i = 1; i < blk.nextTransitionId; ++i) { - printTran(i, L1.getTransition(blockId, i)); - } - } - - function totalTkoBalance( - TaikoToken tko, - TaikoL1 L1, - address user - ) - internal - view - returns (uint256) - { - return tko.balanceOf(user) + L1.bondBalanceOf(user); - } - - function printBlock(TaikoData.BlockV2 memory blk) internal view { - (, TaikoData.SlotB memory b) = L1.getStateVariables(); - console2.log("\n=================="); - console2.log("---CHAIN:"); - console2.log(" | lastVerifiedBlockId:", b.lastVerifiedBlockId); - console2.log(" | numBlocks:", b.numBlocks); - console2.log(" | timestamp:", block.timestamp); - console2.log("---BLOCK#", blk.blockId); - console2.log(" | proposedAt:", blk.proposedAt); - console2.log(" | proposedIn:", blk.proposedIn); - console2.log(" | metaHash:", vm.toString(blk.metaHash)); - console2.log(" | nextTransitionId:", blk.nextTransitionId); - console2.log(" | verifiedTransitionId:", blk.verifiedTransitionId); - } - - function printTran(uint64 tid, TaikoData.TransitionState memory ts) internal pure { - console2.log(" |---TRANSITION#", tid); - console2.log(" | tier:", ts.tier); - console2.log(" | prover:", ts.prover); - console2.log(" | validityBond:", ts.validityBond); - console2.log(" | contester:", ts.contester); - console2.log(" | contestBond:", ts.contestBond); - console2.log(" | timestamp:", ts.timestamp); - console2.log(" | key (parentHash):", vm.toString(ts.key)); - console2.log(" | blockHash:", vm.toString(ts.blockHash)); - console2.log(" | stateRoot:", vm.toString(ts.stateRoot)); - } - - function mineAndWrap(uint256 value) internal { - vm.roll(block.number + 1); - vm.warp(block.timestamp + value); - } -} diff --git a/packages/protocol/test/layer1/based/TestTaikoL1Base.sol b/packages/protocol/test/layer1/based/TestTaikoL1Base.sol new file mode 100644 index 00000000000..a8adacbff8a --- /dev/null +++ b/packages/protocol/test/layer1/based/TestTaikoL1Base.sol @@ -0,0 +1,208 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "../Layer1Test.sol"; +import "./helpers/TierProvider_With4Tiers.sol"; +import "./helpers/Verifier_ToggleStub.sol"; + +abstract contract TestTaikoL1Base is Layer1Test { + bytes32 internal GENESIS_BLOCK_HASH = keccak256("GENESIS_BLOCK_HASH"); + + TaikoToken internal bondToken; + SignalService internal signalService; + Bridge internal bridge; + ITierProvider internal tierProvider; + Verifier_ToggleStub internal tier1Verifier; + Verifier_ToggleStub internal tier2Verifier; + Verifier_ToggleStub internal tier3Verifier; + Verifier_ToggleStub internal tier4Verifier; + TaikoL1 internal taikoL1; + uint16 minTierId; + ITierProvider.Tier internal minTier; + uint96 livenessBond; + + address internal tSignalService = randAddress(); + address internal taikoL2 = randAddress(); + + function setUpOnEthereum() internal override { + bondToken = deployBondToken(); + signalService = deploySignalService(address(new SignalService())); + bridge = deployBridge(address(new Bridge())); + tierProvider = deployTierProvider(); + tier1Verifier = deployVerifier(""); + tier2Verifier = deployVerifier("tier_2"); + tier3Verifier = deployVerifier("tier_3"); + tier4Verifier = deployVerifier("tier_4"); + taikoL1 = deployTaikoL1(getConfig()); + + signalService.authorize(address(taikoL1), true); + minTierId = tierProvider.getMinTier(0, address(0), 0); + minTier = tierProvider.getTier(0, minTierId); + livenessBond = taikoL1.getConfig().livenessBond; + + mineOneBlockAndWrap(12 seconds); + } + + function setUpOnTaiko() internal override { + register("taiko", taikoL2); + register("signal_service", tSignalService); + } + + function mintEther(address to, uint256 amountEth) internal { + vm.deal(to, amountEth); + console2.log("Ether balance:", to, to.balance); + } + + function mintTaikoToken(address to, uint256 amountTko) internal { + bondToken.transfer(to, amountTko); + + vm.prank(to); + bondToken.approve(address(taikoL1), amountTko); + + console2.log("Bond balance :", to, bondToken.balanceOf(to)); + } + + function proposeBlock( + address proposer, + bytes4 revertReason + ) + internal + returns (TaikoData.BlockMetadataV2 memory) + { + vm.prank(proposer); + if (revertReason != "") vm.expectRevert(revertReason); + return taikoL1.proposeBlockV2("", new bytes(10)); + } + + function proposeBlock( + address proposer, + TaikoData.BlockParamsV2 memory params, + bytes4 revertReason + ) + internal + returns (TaikoData.BlockMetadataV2 memory) + { + vm.prank(proposer); + if (revertReason != "") vm.expectRevert(revertReason); + return taikoL1.proposeBlockV2(abi.encode(params), new bytes(10)); + } + + function proveBlock( + address prover, + TaikoData.BlockMetadataV2 memory meta, + bytes32 parentHash, + bytes32 blockHash, + bytes32 stateRoot, + uint16 tierId, + bytes4 revertReason + ) + internal + { + TaikoData.Transition memory tran = TaikoData.Transition({ + parentHash: parentHash, + blockHash: blockHash, + stateRoot: stateRoot, + graffiti: 0x0 + }); + + TaikoData.TierProof memory proof; + proof.tier = tierId; + proof.data = "proofdata"; + + if (revertReason != "") vm.expectRevert(revertReason); + vm.prank(prover); + taikoL1.proveBlock(meta.id, abi.encode(meta, tran, proof)); + } + + function getBondTokenBalance(address user) internal view returns (uint256) { + return bondToken.balanceOf(user) + taikoL1.bondBalanceOf(user); + } + + function printBlockAndTrans(uint64 blockId) internal view { + TaikoData.BlockV2 memory blk = taikoL1.getBlockV2(blockId); + printBlock(blk); + + for (uint32 i = 1; i < blk.nextTransitionId; ++i) { + printTran(i, taikoL1.getTransition(blockId, i)); + } + } + + function printStateVariables(string memory label) internal view { + (TaikoData.SlotA memory a, TaikoData.SlotB memory b) = taikoL1.getStateVariables(); + console2.log("\n==================", label); + console2.log("---CHAIN:"); + console2.log(" | lastSyncedBlockId:", a.lastSyncedBlockId); + console2.log(" | lastSynecdAt:", a.lastSynecdAt); + console2.log(" | lastVerifiedBlockId:", b.lastVerifiedBlockId); + console2.log(" | numBlocks:", b.numBlocks); + console2.log(" | lastProposedIn:", b.lastProposedIn); + console2.log(" | timestamp:", block.timestamp); + } + + function printBlock(TaikoData.BlockV2 memory blk) internal view { + printStateVariables(""); + console2.log("---BLOCK#", blk.blockId); + console2.log(" | proposedAt:", blk.proposedAt); + console2.log(" | proposedIn:", blk.proposedIn); + console2.log(" | metaHash:", vm.toString(blk.metaHash)); + console2.log(" | nextTransitionId:", blk.nextTransitionId); + console2.log(" | verifiedTransitionId:", blk.verifiedTransitionId); + } + + function printTran(uint64 tid, TaikoData.TransitionState memory ts) internal pure { + console2.log(" |---TRANSITION#", tid); + console2.log(" | tier:", ts.tier); + console2.log(" | prover:", ts.prover); + console2.log(" | validityBond:", ts.validityBond); + console2.log(" | contester:", ts.contester); + console2.log(" | contestBond:", ts.contestBond); + console2.log(" | timestamp:", ts.timestamp); + console2.log(" | key (parentHash):", vm.toString(ts.key)); + console2.log(" | blockHash:", vm.toString(ts.blockHash)); + console2.log(" | stateRoot:", vm.toString(ts.stateRoot)); + } + + function deployTierProvider() internal returns (ITierProvider tierProvider_) { + tierProvider_ = new TierProvider_With4Tiers(); + register("tier_provider", address(tierProvider_)); + } + + function deployTaikoL1(TaikoData.Config memory config) internal returns (TaikoL1) { + return TaikoL1( + deploy({ + name: "taiko", + impl: address(new TaikoL1WithConfig()), + data: abi.encodeCall( + TaikoL1WithConfig.initWithConfig, + (address(0), address(resolver), GENESIS_BLOCK_HASH, false, config) + ) + }) + ); + } + + function deployVerifier(bytes32 name) internal returns (Verifier_ToggleStub verifier) { + verifier = new Verifier_ToggleStub(); + register(name, address(verifier)); + } + + function getConfig() internal view virtual returns (TaikoData.Config memory) { + return TaikoData.Config({ + chainId: taikoChainId, + blockMaxProposals: 20, + blockRingBufferSize: 25, + maxBlocksToVerify: 16, + blockMaxGasLimit: 240_000_000, + livenessBond: 125e18, + stateRootSyncInternal: 2, + maxAnchorHeightOffset: 64, + baseFeeConfig: LibSharedData.BaseFeeConfig({ + adjustmentQuotient: 8, + sharingPctg: 75, + gasIssuancePerSecond: 5_000_000, + minGasExcess: 1_340_000_000, // correspond to 0.008847185 gwei basefee + maxGasIssuancePerBlock: 600_000_000 // two minutes: 5_000_000 * 120 + }), + ontakeForkHeight: 0 // or 1 + }); + } +} diff --git a/packages/protocol/test/layer1/based/TestTierRouter.sol b/packages/protocol/test/layer1/based/TestTierRouter.sol deleted file mode 100644 index 833d259f639..00000000000 --- a/packages/protocol/test/layer1/based/TestTierRouter.sol +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/shared/common/LibStrings.sol"; -import "src/layer1/tiers/ITierProvider.sol"; -import "src/layer1/tiers/LibTiers.sol"; -import "src/layer1/tiers/ITierRouter.sol"; - -/// @title TestTierRouter -/// @dev Labeled in AddressResolver as "tier_router" -/// @custom:security-contact security@taiko.xyz -contract TestTierRouter is ITierProvider, ITierRouter { - uint256[50] private __gap; - - /// @inheritdoc ITierRouter - function getProvider(uint256) external view returns (address) { - return address(this); - } - - /// @inheritdoc ITierProvider - function getTier(uint16 _tierId) public pure override returns (ITierProvider.Tier memory) { - if (_tierId == LibTiers.TIER_OPTIMISTIC) { - return ITierProvider.Tier({ - verifierName: "", - validityBond: 250 ether, // TKO - contestBond: 500 ether, // TKO - cooldownWindow: 1440, //24 hours - provingWindow: 30, // 0.5 hours - maxBlocksToVerifyPerProof: 0 // DEPRECATED - }); - } - - if (_tierId == LibTiers.TIER_SGX) { - return ITierProvider.Tier({ - verifierName: LibStrings.B_TIER_SGX, - validityBond: 250 ether, // TKO - contestBond: 1640 ether, // =250TKO * 6.5625 - cooldownWindow: 1440, //24 hours - provingWindow: 60, // 1 hours - maxBlocksToVerifyPerProof: 0 // DEPRECATED - }); - } - - if (_tierId == LibTiers.TIER_GUARDIAN) { - return ITierProvider.Tier({ - verifierName: LibStrings.B_TIER_GUARDIAN, - validityBond: 0, // must be 0 for top tier - contestBond: 0, // must be 0 for top tier - cooldownWindow: 60, //1 hours - provingWindow: 2880, // 48 hours - maxBlocksToVerifyPerProof: 0 // DEPRECATED - }); - } - - revert TIER_NOT_FOUND(); - } - - /// @inheritdoc ITierProvider - function getTierIds() public pure override returns (uint16[] memory tiers_) { - tiers_ = new uint16[](3); - tiers_[0] = LibTiers.TIER_OPTIMISTIC; - tiers_[1] = LibTiers.TIER_SGX; - tiers_[2] = LibTiers.TIER_GUARDIAN; - } - - /// @inheritdoc ITierProvider - function getMinTier(address, uint256 _rand) public pure override returns (uint16) { - // 10% will be selected to require SGX proofs. - if (_rand % 10 == 0) return LibTiers.TIER_SGX; - // Other blocks are optimistic, without validity proofs. - return LibTiers.TIER_OPTIMISTIC; - } -} diff --git a/packages/protocol/test/layer1/based/MockTaikoL1.sol b/packages/protocol/test/layer1/based/helpers/TaikoL1_EmptyStub.sol similarity index 95% rename from packages/protocol/test/layer1/based/MockTaikoL1.sol rename to packages/protocol/test/layer1/based/helpers/TaikoL1_EmptyStub.sol index 82e50637655..1c970e0948c 100644 --- a/packages/protocol/test/layer1/based/MockTaikoL1.sol +++ b/packages/protocol/test/layer1/based/helpers/TaikoL1_EmptyStub.sol @@ -3,9 +3,9 @@ pragma solidity ^0.8.24; import "src/layer1/based/ITaikoL1.sol"; -/// @title MockTaikoL1 +/// @title TaikoL1_EmptyStub /// @custom:security-contact security@taiko.xyz -contract MockTaikoL1 is ITaikoL1 { +contract TaikoL1_EmptyStub is ITaikoL1 { function proposeBlockV2( bytes calldata _params, bytes calldata _txList diff --git a/packages/protocol/test/layer1/based/helpers/TierProvider_With4Tiers.sol b/packages/protocol/test/layer1/based/helpers/TierProvider_With4Tiers.sol new file mode 100644 index 00000000000..c6e5d71f040 --- /dev/null +++ b/packages/protocol/test/layer1/based/helpers/TierProvider_With4Tiers.sol @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/shared/libs/LibStrings.sol"; +import "src/layer1/tiers/ITierProvider.sol"; + +/// @title TierProvider_With4Tiers +/// @dev Labeled in AddressResolver as "tier_router" +/// @custom:security-contact security@taiko.xyz +contract TierProvider_With4Tiers is ITierProvider { + uint16 private minTier = 72; + uint96 public constant BOND_UINT = 100 ether; + uint16 public constant ONE_HOUR = 60; + + function setMinTier(uint16 _minTier) external { + minTier = _minTier; + } + + /// @inheritdoc ITierProvider + function getTier( + uint64, + uint16 _tierId + ) + public + pure + override + returns (ITierProvider.Tier memory) + { + if (_tierId == 71) { + return ITierProvider.Tier({ + verifierName: "", + validityBond: BOND_UINT, + contestBond: BOND_UINT * 2, + cooldownWindow: ONE_HOUR, + provingWindow: ONE_HOUR, + maxBlocksToVerifyPerProof: 0 // DEPRECATED + }); + } + + if (_tierId == 72) { + return ITierProvider.Tier({ + verifierName: "tier_2", + validityBond: BOND_UINT * 3, + contestBond: BOND_UINT * 4, + cooldownWindow: ONE_HOUR, + provingWindow: ONE_HOUR, + maxBlocksToVerifyPerProof: 0 // DEPRECATED + }); + } + + if (_tierId == 73) { + return ITierProvider.Tier({ + verifierName: "tier_3", + validityBond: BOND_UINT * 5, + contestBond: BOND_UINT * 6, + cooldownWindow: ONE_HOUR, + provingWindow: ONE_HOUR, + maxBlocksToVerifyPerProof: 0 // DEPRECATED + }); + } + + if (_tierId == 74) { + return ITierProvider.Tier({ + verifierName: "tier_4", + validityBond: 0, // must be 0 for top tier + contestBond: 0, // must be 0 for top tier + cooldownWindow: ONE_HOUR, + provingWindow: ONE_HOUR, + maxBlocksToVerifyPerProof: 0 // DEPRECATED + }); + } + revert TIER_NOT_FOUND(); + } + + /// @inheritdoc ITierProvider + function getTierIds() public pure override returns (uint16[] memory tiers_) { + tiers_ = new uint16[](4); + tiers_[0] = 71; + tiers_[1] = 72; + tiers_[2] = 73; + tiers_[3] = 74; + } + + /// @inheritdoc ITierProvider + function getMinTier(uint64, address, uint256) public view override returns (uint16) { + return minTier; + } +} diff --git a/packages/protocol/test/layer1/based/helpers/Verifier_ToggleStub.sol b/packages/protocol/test/layer1/based/helpers/Verifier_ToggleStub.sol new file mode 100644 index 00000000000..41becaade09 --- /dev/null +++ b/packages/protocol/test/layer1/based/helpers/Verifier_ToggleStub.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/layer1/verifiers/IVerifier.sol"; + +contract Verifier_ToggleStub is IVerifier { + bool private shouldFail; + + function makeVerifierToFail() external { + shouldFail = true; + } + + function makeVerifierToSucceed() external { + shouldFail = false; + } + + function verifyProof( + Context calldata, + TaikoData.Transition calldata, + TaikoData.TierProof calldata + ) + external + view + { + require(!shouldFail, "IVerifier failure"); + } + + function verifyBatchProof(ContextV2[] calldata, TaikoData.TierProof calldata) external view { + require(!shouldFail, "IVerifier failure"); + } +} diff --git a/packages/protocol/test/layer1/preconf/bls/script-test/BLSHashToCurveG2.sol b/packages/protocol/test/layer1/preconf/bls/script-test/BLSHashToCurveG2.sol index 9caf95cdaea..02309817bf4 100644 --- a/packages/protocol/test/layer1/preconf/bls/script-test/BLSHashToCurveG2.sol +++ b/packages/protocol/test/layer1/preconf/bls/script-test/BLSHashToCurveG2.sol @@ -2,7 +2,7 @@ // solhint-disable-next-line pragma solidity ^0.8.24; -import "script/layer1/preconf/BaseScript.sol"; +import "script/BaseScript.sol"; import "src/layer1/preconf/libs/LibBLS12381.sol"; /** diff --git a/packages/protocol/test/layer1/preconf/bls/script-test/BLSVerifySignature.sol b/packages/protocol/test/layer1/preconf/bls/script-test/BLSVerifySignature.sol index 244b2bcf629..34295f1bbe8 100644 --- a/packages/protocol/test/layer1/preconf/bls/script-test/BLSVerifySignature.sol +++ b/packages/protocol/test/layer1/preconf/bls/script-test/BLSVerifySignature.sol @@ -2,7 +2,7 @@ // solhint-disable-next-line pragma solidity ^0.8.24; -import "script/layer1/preconf/BaseScript.sol"; +import "script/BaseScript.sol"; import "src/layer1/preconf/libs/LibBLSSignature.sol"; /** diff --git a/packages/protocol/test/layer1/preconf/fixtures/BlocksFixtures.sol b/packages/protocol/test/layer1/preconf/fixtures/BlocksFixtures.sol index 291da5cb39b..ce1f09251b0 100644 --- a/packages/protocol/test/layer1/preconf/fixtures/BlocksFixtures.sol +++ b/packages/protocol/test/layer1/preconf/fixtures/BlocksFixtures.sol @@ -5,7 +5,7 @@ import "../BaseTest.sol"; import "../mocks/MockPreconfRegistry.sol"; import "../mocks/MockPreconfServiceManager.sol"; import "../mocks/MockBeaconBlockRoot.sol"; -import "test/layer1/based/MockTaikoL1.sol"; +import "test/layer1/based/helpers/TaikoL1_EmptyStub.sol"; import "src/layer1/preconf/impl/LibPreconfConstants.sol"; import "src/layer1/preconf/impl/PreconfTaskManager.sol"; @@ -18,13 +18,13 @@ contract BlocksFixtures is BaseTest { MockPreconfRegistry internal preconfRegistry; MockPreconfServiceManager internal preconfServiceManager; MockBeaconBlockRoot internal beaconBlockRootContract; - MockTaikoL1 internal taikoL1; + TaikoL1_EmptyStub internal taikoL1; function setUp() public virtual { preconfRegistry = new MockPreconfRegistry(); preconfServiceManager = new MockPreconfServiceManager(); beaconBlockRootContract = new MockBeaconBlockRoot(); - taikoL1 = new MockTaikoL1(); + taikoL1 = new TaikoL1_EmptyStub(); preconfTaskManager = new PreconfTaskManager( IPreconfServiceManager(address(preconfServiceManager)), diff --git a/packages/protocol/test/layer1/preconf/fixtures/LookaheadFixtures.sol b/packages/protocol/test/layer1/preconf/fixtures/LookaheadFixtures.sol index d9e77fe34bc..642eca15929 100644 --- a/packages/protocol/test/layer1/preconf/fixtures/LookaheadFixtures.sol +++ b/packages/protocol/test/layer1/preconf/fixtures/LookaheadFixtures.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "test/layer1/based/MockTaikoL1.sol"; +import "test/layer1/based/helpers/TaikoL1_EmptyStub.sol"; import "src/layer1/preconf/impl/LibPreconfConstants.sol"; import "src/layer1/preconf/impl/PreconfTaskManager.sol"; import "src/layer1/preconf/iface/IPreconfRegistry.sol"; @@ -17,13 +17,13 @@ contract LookaheadFixtures is BaseTest { MockPreconfRegistry internal preconfRegistry; MockPreconfServiceManager internal preconfServiceManager; MockBeaconBlockRoot internal beaconBlockRootContract; - MockTaikoL1 internal taikoL1; + TaikoL1_EmptyStub internal taikoL1; function setUp() public virtual { preconfRegistry = new MockPreconfRegistry(); preconfServiceManager = new MockPreconfServiceManager(); beaconBlockRootContract = new MockBeaconBlockRoot(); - taikoL1 = new MockTaikoL1(); + taikoL1 = new TaikoL1_EmptyStub(); preconfTaskManager = new PreconfTaskManager( IPreconfServiceManager(address(preconfServiceManager)), diff --git a/packages/protocol/test/layer1/team/airdrop/ERC20Airdrop.t.sol b/packages/protocol/test/layer1/team/airdrop/ERC20Airdrop.t.sol index b96d8454d30..e83cc44276b 100644 --- a/packages/protocol/test/layer1/team/airdrop/ERC20Airdrop.t.sol +++ b/packages/protocol/test/layer1/team/airdrop/ERC20Airdrop.t.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; -import "../../TaikoL1Test.sol"; +import "../../Layer1Test.sol"; -contract MockERC20Airdrop is ERC20Airdrop { +contract ERC20AirdropNoVerify is ERC20Airdrop { function _verifyMerkleProof( bytes32[] calldata, /*proof*/ bytes32, /*merkleRoot*/ @@ -19,9 +19,9 @@ contract MockERC20Airdrop is ERC20Airdrop { } } -// Simple mock - so that we do not need to deploy AddressManager (for these tests). With this +// Simple mock - so that we do not need to deploy DefaultResolver (for these tests). With this // contract we mock an ERC20Vault which mints tokens into a Vault (which holds the TKO). -contract MockAddressManager { +contract MockDefaultResolver { address mockERC20Vault; constructor(address _mockERC20Vault) { @@ -35,7 +35,7 @@ contract MockAddressManager { // It does nothing but: // - stores the tokens for the airdrop -// - owner can call approve() on token, and approving the AirdropERC20.sol contract so it acts on +// - deployer can call approve() on token, and approving the AirdropERC20.sol contract so it acts on // behalf // - funds can later be withdrawn by the user contract SimpleERC20Vault is OwnableUpgradeable { @@ -60,97 +60,68 @@ contract SimpleERC20Vault is OwnableUpgradeable { } } -contract TestERC20Airdrop is TaikoTest { - address public owner = randAddress(); +contract TestERC20Airdrop is Layer1Test { + uint64 private claimStart; - // Private Key: 0x1dc880d28041a41132437eae90c9e09c3b9e13438c2d0f6207804ceece623395 - address public Lily = 0x3447b15c1b0a27D339C812b98881eC64051068b3; + BridgedERC20 private token; + SimpleERC20Vault private vault; + ERC20Airdrop private airdrop; - bytes32 public constant merkleRoot = bytes32(uint256(1)); - bytes32[] public merkleProof; - uint64 public claimStart; - uint64 public claimEnd; - - BridgedERC20 token; - MockERC20Airdrop airdrop; - MockAddressManager addressManager; - SimpleERC20Vault vault; - - function setUp() public { - vm.startPrank(owner); - - // 1. We need to have a vault + function setUpOnEthereum() internal override { vault = SimpleERC20Vault( - deployProxy({ - name: "vault", + deploy({ + name: "erc20_vault", impl: address(new SimpleERC20Vault()), data: abi.encodeCall(SimpleERC20Vault.init, ()) }) ); - // 2. Need to add it to the AddressManager (below here i'm just mocking it) so that we can - // mint TKO. Basically this step only required in this test. Only thing we need to be sure - // on testnet/mainnet. Vault (which Airdrop transfers from) HAVE tokens. - addressManager = new MockAddressManager(address(vault)); - - // 3. Deploy a bridged TKO token (but on mainnet it will be just a bridged token from L1 to - // L2) - not necessary step on mainnet. token = BridgedERC20( - deployProxy({ - name: "tko", + deploy({ + name: "some_token", impl: address(new BridgedERC20()), data: abi.encodeCall( BridgedERC20.init, - (address(0), address(addressManager), randAddress(), 100, 18, "TKO", "Taiko Token") + (address(0), address(resolver), randAddress(), 100, 18, "SOME", "Some Token") ) }) ); - vm.stopPrank(); - - // 5. Mint (AKA transfer) to the vault. This step on mainnet will be done by Taiko Labs. For - // testing on A6 the important thing is: HAVE tokens in this vault! - vm.prank(address(vault), owner); - BridgedERC20(token).mint(address(vault), 1_000_000_000e18); - - // 6. Deploy the airdrop contract, and set the claimStart, claimEnd and merkleRoot -> On - // mainnet it will be separated into 2 tasks obviously, because first we deploy, then we set - // those variables. On testnet (e.g. A6) it shall also be 2 steps easily. Deploy a contract, - // then set merkle. claimStart = uint64(block.timestamp + 10); - claimEnd = uint64(block.timestamp + 10_000); - merkleProof = new bytes32[](3); - - vm.startPrank(owner); - airdrop = MockERC20Airdrop( - deployProxy({ - name: "MockERC20Airdrop", - impl: address(new MockERC20Airdrop()), + + airdrop = ERC20Airdrop( + deploy({ + name: "airdrop", + impl: address(new ERC20AirdropNoVerify()), data: abi.encodeCall( ERC20Airdrop.init, - (address(0), claimStart, claimEnd, merkleRoot, address(token), address(vault)) + ( + address(0), + claimStart, + claimStart + 10_000, + bytes32(uint256(1)), + address(token), + address(vault) + ) ) }) ); + } - vm.stopPrank(); - - // 7. Approval (Vault approves Airdrop contract to be the spender!) Has to be done on - // testnet and mainnet too, obviously. - vm.prank(address(vault), owner); + function test_erc20_airdrop_claim() public { + vm.startPrank(address(vault), deployer); + BridgedERC20(token).mint(address(vault), 1_000_000_000e18); BridgedERC20(token).approve(address(airdrop), 1_000_000_000e18); + vm.stopPrank(); // Vault shall have the balance assertEq(BridgedERC20(token).balanceOf(address(vault)), 1_000_000_000e18); vm.roll(block.number + 1); - } - - function test_claim() public { vm.warp(claimStart); - vm.prank(Alice, Alice); - airdrop.claim(Alice, 100, merkleProof); + vm.prank(Alice); + airdrop.claim(Alice, 100, new bytes32[](3)); // Check Alice balance assertEq(token.balanceOf(Alice), 100); diff --git a/packages/protocol/test/layer1/team/airdrop/MerkleClaimable.t.sol b/packages/protocol/test/layer1/team/airdrop/MerkleClaimable.t.sol index 613a34637ce..51d228ee297 100644 --- a/packages/protocol/test/layer1/team/airdrop/MerkleClaimable.t.sol +++ b/packages/protocol/test/layer1/team/airdrop/MerkleClaimable.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "../../TaikoL1Test.sol"; +import "../../Layer1Test.sol"; contract MockMerkleClaimable is MerkleClaimable { function init(uint64 _claimStart, uint64 _claimEnd, bytes32 _merkleRoot) external initializer { @@ -13,33 +13,38 @@ contract MockMerkleClaimable is MerkleClaimable { } } -contract TestMerkleClaimable is TaikoTest { - bytes public data = abi.encode(Alice, 100); - - bytes32 public constant merkleRoot = +contract TestMerkleClaimable is Layer1Test { + bytes32 private constant merkleRoot = 0x73a7330a8657ad864b954215a8f636bb3709d2edea60bcd4fcb8a448dbc6d70f; - bytes32[] public merkleProof; - uint64 public claimStart; - uint64 public claimEnd; - MockMerkleClaimable public merkleClaimable; + bytes private data = abi.encode(Alice, 100); - function setUp() public { - claimStart = uint64(block.timestamp + 10); - claimEnd = uint64(block.timestamp + 10_000); + bytes32[] private merkleProof; + uint64 private claimStart; + uint64 private claimEnd; - merkleProof = new bytes32[](3); - merkleProof[0] = 0x4014b456db813d18e801fe3b30bbe14542c9c84caa9a92b643f7f46849283077; - merkleProof[1] = 0xfc2f09b34fb9437f9bde16049237a2ab3caa6d772bd794da57a8c314aea22b3f; - merkleProof[2] = 0xc13844b93533d8aec9c7c86a3d9399efb4e834f4069b9fd8a88e7290be612d05; + MockMerkleClaimable private merkleClaimable; + function setUpOnEthereum() internal override { merkleClaimable = MockMerkleClaimable( - deployProxy({ + deploy({ name: "MockMerkleClaimable", impl: address(new MockMerkleClaimable()), data: abi.encodeCall(MockMerkleClaimable.init, (0, 0, merkleRoot)) }) ); + } + + function setUp() public override { + super.setUp(); + + merkleProof = new bytes32[](3); + merkleProof[0] = 0x4014b456db813d18e801fe3b30bbe14542c9c84caa9a92b643f7f46849283077; + merkleProof[1] = 0xfc2f09b34fb9437f9bde16049237a2ab3caa6d772bd794da57a8c314aea22b3f; + merkleProof[2] = 0xc13844b93533d8aec9c7c86a3d9399efb4e834f4069b9fd8a88e7290be612d05; + + claimStart = uint64(block.timestamp + 10); + claimEnd = uint64(block.timestamp + 10_000); vm.startPrank(merkleClaimable.owner()); merkleClaimable.setConfig(claimStart, claimEnd, merkleRoot); diff --git a/packages/protocol/test/layer1/team/tokenunlock/TokenUnlock.t.sol b/packages/protocol/test/layer1/team/tokenunlock/TokenUnlock.t.sol index 1bac31403c8..e95177d9dda 100644 --- a/packages/protocol/test/layer1/team/tokenunlock/TokenUnlock.t.sol +++ b/packages/protocol/test/layer1/team/tokenunlock/TokenUnlock.t.sol @@ -2,8 +2,8 @@ pragma solidity ^0.8.24; import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol"; -import "src/layer1/team/tokenunlock/TokenUnlock.sol"; -import "test/shared/TaikoTest.sol"; +import "src/layer1/team/TokenUnlock.sol"; +import "../../Layer1Test.sol"; contract MyERC20 is ERC20, ERC20Votes { constructor(address owner) ERC20("Taiko Token", "TKO") ERC20Permit("Taiko Token") { @@ -30,42 +30,37 @@ contract MyERC20 is ERC20, ERC20Votes { } } -contract TestTokenUnlock is TaikoTest { - AddressManager private addressManager; - address public assignmentHook = vm.addr(0x1000); - address public taikoL1 = vm.addr(0x2000); - uint64 private TGE = 1_000_000; +contract TestTokenUnlock is Layer1Test { + uint64 private constant TGE = 1_000_000; + + address private taikoL1 = randAddress(); TokenUnlock private target; - MyERC20 tko = new MyERC20(Alice); - - function setUp() public { - addressManager = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }) - ); + MyERC20 private taikoToken; - addressManager.setAddress(uint64(block.chainid), "bond_token", address(tko)); - addressManager.setAddress(uint64(block.chainid), "taiko_token", address(tko)); - addressManager.setAddress(uint64(block.chainid), "assignment_hook", assignmentHook); - addressManager.setAddress(uint64(block.chainid), "taiko", taikoL1); - addressManager.setAddress(uint64(block.chainid), "prover_set", address(new ProverSet())); + function setUpOnEthereum() internal override { + taikoToken = new MyERC20(Alice); - vm.warp(TGE); + register("bond_token", address(taikoToken)); + register("taiko_token", address(taikoToken)); + register("taiko", taikoL1); + register("prover_set", address(new ProverSet())); target = TokenUnlock( - deployProxy({ - name: "target", + deploy({ + name: "token_unlock", impl: address(new TokenUnlock()), - data: abi.encodeCall(TokenUnlock.init, (Alice, address(addressManager), Bob, TGE)) + data: abi.encodeCall(TokenUnlock.init, (Alice, address(resolver), Bob, TGE)) }) ); + } + + function setUp() public override { + super.setUp(); + vm.warp(TGE); vm.prank(Alice); - tko.approve(address(target), 1_000_000_000 ether); + taikoToken.approve(address(target), 1_000_000_000 ether); } function test_tokenunlock_single_vest_withdrawal() public { @@ -75,10 +70,10 @@ contract TestTokenUnlock is TaikoTest { vm.startPrank(Alice); target.vest(100 ether); - tko.transfer(address(target), 0.5 ether); + taikoToken.transfer(address(target), 0.5 ether); vm.stopPrank(); - assertEq(tko.balanceOf(address(target)), 100.5 ether); + assertEq(taikoToken.balanceOf(address(target)), 100.5 ether); assertEq(target.amountVested(), 100 ether); assertEq(target.amountWithdrawable(), 0.5 ether); @@ -107,7 +102,7 @@ contract TestTokenUnlock is TaikoTest { assertEq(target.amountWithdrawable(), 100.5 ether); vm.prank(Alice); - tko.transfer(address(target), 0.5 ether); + taikoToken.transfer(address(target), 0.5 ether); assertEq(target.amountVested(), 100 ether); assertEq(target.amountWithdrawable(), 101 ether); } @@ -133,7 +128,7 @@ contract TestTokenUnlock is TaikoTest { assertEq(target.amountWithdrawable(), 150 ether); vm.prank(Alice); - tko.transfer(address(target), 1000 ether); + taikoToken.transfer(address(target), 1000 ether); vm.warp(TGE + target.ONE_YEAR() * 2); assertEq(target.amountVested(), 600 ether); @@ -158,7 +153,7 @@ contract TestTokenUnlock is TaikoTest { target.vest(100 ether); assertEq(target.amountVested(), 100 ether); assertEq(target.amountWithdrawable(), 0 ether); - assertEq(tko.balanceOf(address(target)), 100 ether); + assertEq(taikoToken.balanceOf(address(target)), 100 ether); vm.prank(Bob); vm.expectRevert(TokenUnlock.NOT_WITHDRAWABLE.selector); @@ -168,7 +163,7 @@ contract TestTokenUnlock is TaikoTest { target.vest(200 ether); assertEq(target.amountVested(), 300 ether); assertEq(target.amountWithdrawable(), 0 ether); - assertEq(tko.balanceOf(address(target)), 300 ether); + assertEq(taikoToken.balanceOf(address(target)), 300 ether); vm.warp(TGE + target.ONE_YEAR()); assertEq(target.amountVested(), 300 ether); @@ -176,26 +171,26 @@ contract TestTokenUnlock is TaikoTest { vm.prank(Bob); target.withdraw(Bob, 75 ether); - assertEq(tko.balanceOf(address(target)), 225 ether); - assertEq(tko.balanceOf(Bob), 75 ether); + assertEq(taikoToken.balanceOf(address(target)), 225 ether); + assertEq(taikoToken.balanceOf(Bob), 75 ether); assertEq(target.amountVested(), 300 ether); assertEq(target.amountWithdrawable(), 0 ether); - assertEq(tko.balanceOf(address(target)), 225 ether); + assertEq(taikoToken.balanceOf(address(target)), 225 ether); vm.prank(Alice); target.vest(300 ether); assertEq(target.amountVested(), 600 ether); assertEq(target.amountWithdrawable(), 75 ether); - assertEq(tko.balanceOf(address(target)), 525 ether); + assertEq(taikoToken.balanceOf(address(target)), 525 ether); vm.prank(Alice); - tko.transfer(address(target), 1000 ether); + taikoToken.transfer(address(target), 1000 ether); vm.warp(TGE + target.ONE_YEAR() * 2); assertEq(target.amountVested(), 600 ether); assertEq(target.amountWithdrawable(), 1225 ether); - assertEq(tko.balanceOf(address(target)), 1525 ether); + assertEq(taikoToken.balanceOf(address(target)), 1525 ether); vm.prank(Bob); vm.expectRevert(TokenUnlock.NOT_WITHDRAWABLE.selector); @@ -203,45 +198,45 @@ contract TestTokenUnlock is TaikoTest { vm.prank(Bob); target.withdraw(Carol, 225 ether); - assertEq(tko.balanceOf(Carol), 225 ether); + assertEq(taikoToken.balanceOf(Carol), 225 ether); assertEq(target.amountVested(), 600 ether); assertEq(target.amountWithdrawable(), 1000 ether); - assertEq(tko.balanceOf(address(target)), 1300 ether); + assertEq(taikoToken.balanceOf(address(target)), 1300 ether); vm.prank(Alice); target.vest(400 ether); assertEq(target.amountVested(), 1000 ether); assertEq(target.amountWithdrawable(), 1200 ether); - assertEq(tko.balanceOf(address(target)), 1700 ether); + assertEq(taikoToken.balanceOf(address(target)), 1700 ether); vm.warp(TGE + target.ONE_YEAR() * 4); assertEq(target.amountVested(), 1000 ether); assertEq(target.amountWithdrawable(), 1700 ether); - assertEq(tko.balanceOf(address(target)), 1700 ether); + assertEq(taikoToken.balanceOf(address(target)), 1700 ether); vm.prank(Bob); vm.expectRevert(EssentialContract.ZERO_ADDRESS.selector); target.withdraw(address(0), 1 ether); vm.prank(Alice); - tko.transfer(address(target), 300 ether); + taikoToken.transfer(address(target), 300 ether); vm.warp(TGE + target.ONE_YEAR() * 5); vm.prank(Bob); target.withdraw(David, 2000 ether); - assertEq(tko.balanceOf(David), 2000 ether); - assertEq(tko.balanceOf(address(target)), 0 ether); + assertEq(taikoToken.balanceOf(David), 2000 ether); + assertEq(taikoToken.balanceOf(address(target)), 0 ether); vm.prank(Alice); - tko.transfer(address(target), 1000 ether); + taikoToken.transfer(address(target), 1000 ether); assertEq(target.amountWithdrawable(), 1000 ether); vm.prank(Bob); target.withdraw(Emma, 1000 ether); - assertEq(tko.balanceOf(Emma), 1000 ether); - assertEq(tko.balanceOf(address(target)), 0 ether); + assertEq(taikoToken.balanceOf(Emma), 1000 ether); + assertEq(taikoToken.balanceOf(address(target)), 0 ether); } function test_tokenunlock_delegate() public { @@ -249,18 +244,18 @@ contract TestTokenUnlock is TaikoTest { target.vest(100 ether); assertEq(target.amountVested(), 100 ether); assertEq(target.amountWithdrawable(), 0 ether); - assertEq(tko.balanceOf(address(target)), 100 ether); + assertEq(taikoToken.balanceOf(address(target)), 100 ether); vm.prank(Bob); target.delegate(Carol); - assertEq(tko.delegates(address(target)), Carol); + assertEq(taikoToken.delegates(address(target)), Carol); } function test_tokenunlock_proverset() public { vm.startPrank(Alice); target.vest(100 ether); - tko.transfer(address(target), 20 ether); + taikoToken.transfer(address(target), 20 ether); vm.warp(TGE + target.ONE_YEAR() * 2); vm.expectRevert(TokenUnlock.PERMISSION_DENIED.selector); @@ -281,8 +276,8 @@ contract TestTokenUnlock is TaikoTest { target.depositToProverSet(address(set1), 121 ether); target.depositToProverSet(address(set1), 120 ether); - assertEq(tko.balanceOf(address(set1)), 120 ether); - assertEq(tko.balanceOf(address(target)), 0 ether); + assertEq(taikoToken.balanceOf(address(set1)), 120 ether); + assertEq(taikoToken.balanceOf(address(target)), 0 ether); assertEq(target.amountVested(), 100 ether); assertEq(target.amountWithdrawable(), 0 ether); @@ -290,8 +285,8 @@ contract TestTokenUnlock is TaikoTest { set1.withdrawToAdmin(121 ether); set1.withdrawToAdmin(120 ether); - assertEq(tko.balanceOf(address(set1)), 0 ether); - assertEq(tko.balanceOf(address(target)), 120 ether); + assertEq(taikoToken.balanceOf(address(set1)), 0 ether); + assertEq(taikoToken.balanceOf(address(target)), 120 ether); assertEq(target.amountVested(), 100 ether); assertEq(target.amountWithdrawable(), 70 ether); diff --git a/packages/protocol/test/layer1/verifiers/MockPlonkVerifier.sol b/packages/protocol/test/layer1/verifiers/MockPlonkVerifier.sol deleted file mode 100644 index 9ff78e24627..00000000000 --- a/packages/protocol/test/layer1/verifiers/MockPlonkVerifier.sol +++ /dev/null @@ -1,20 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "@optimism/packages/contracts-bedrock/src/libraries/Bytes.sol"; - -/// @author Kirk Baird -contract MockPlonkVerifier { - bool public _shouldRevert; - - // Mock verifier that just returns what is sent in the proof after the first 64 bytes - fallback(bytes calldata input) external returns (bytes memory) { - require(!_shouldRevert, "We're going to revert here for fun :)"); - - return Bytes.slice(input, 64, input.length - 64); - } - - function setShouldRevert(bool shouldRevert) public { - _shouldRevert = shouldRevert; - } -} diff --git a/packages/protocol/test/layer1/verifiers/Risc0Verifier.t.sol b/packages/protocol/test/layer1/verifiers/Risc0Verifier.t.sol deleted file mode 100644 index fcb63f057e7..00000000000 --- a/packages/protocol/test/layer1/verifiers/Risc0Verifier.t.sol +++ /dev/null @@ -1,164 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "../based/TaikoL1TestBase.sol"; - -contract MockRisc0RemoteVerifier is IRiscZeroVerifier { - // To simulate failing and succeeding - bool public verifying; - - function setVerifier(bool _verifying) public { - verifying = _verifying; - } - - function verify( - bytes calldata, /*seal*/ - bytes32, /*imageId*/ - bytes32 /*journalDigest*/ - ) - external - view - { - require(verifying, "RiscZeroRemoteVerifier: invalid proof"); - } - - function verifyIntegrity(Receipt calldata /*receipt*/ ) external view { - require(verifying, "RiscZeroRemoteVerifier: invalid integrity"); - } -} - -contract TestRiscZeroVerifier is TaikoL1TestBase { - MockRisc0RemoteVerifier riscZeroRemoteVerifier; - - function deployTaikoL1() internal override returns (TaikoL1) { - return - TaikoL1(payable(deployProxy({ name: "taiko", impl: address(new TaikoL1()), data: "" }))); - } - - function setUp() public override { - // Call the TaikoL1TestBase setUp() - super.setUp(); - - riscZeroRemoteVerifier = new MockRisc0RemoteVerifier(); - riscZeroRemoteVerifier.setVerifier(true); - - registerAddress("risc0_groth16_verifier", address(riscZeroRemoteVerifier)); - - // Deploy Taiko's RiscZero proof verifier - rv = Risc0Verifier( - deployProxy({ - name: "tier_zkvm_risc0", - impl: address(new Risc0Verifier()), - data: abi.encodeCall(Risc0Verifier.init, (address(0), address(addressManager))) - }) - ); - - rv.setImageIdTrusted(bytes32("11"), true); - - registerAddress("risc_zero_verifier", address(rv)); - } - - // Test `verifyProof()` happy path - function test_verifyProof() external { - vm.stopPrank(); - - // Caller not necessary has to be TaikoL1 contract because there is no keys (as in SGX keys) - // to be front run. - vm.startPrank(Alice); - - bytes memory seal = hex"00"; - bytes32 imageId = bytes32("11"); - bytes32 postStateDigest = bytes32("22"); - - // TierProof - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 100, data: abi.encode(seal, imageId, postStateDigest) }); - - vm.warp(block.timestamp + 5); - - (IVerifier.Context memory ctx, TaikoData.Transition memory transition) = - _getDummyContextAndTransition(); - - // `verifyProof()` - rv.verifyProof(ctx, transition, proof); - - vm.stopPrank(); - } - - function test_verifyProof_invalidImageId() external { - vm.stopPrank(); - - // Caller not necessary has to be TaikoL1 contract because there is no keys (as in SGX keys) - // to be front run. - vm.startPrank(Alice); - - bytes memory seal = hex"00"; - bytes32 imageId = bytes32("121"); - bytes32 postStateDigest = bytes32("22"); - - // TierProof - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 100, data: abi.encode(seal, imageId, postStateDigest) }); - - vm.warp(block.timestamp + 5); - - (IVerifier.Context memory ctx, TaikoData.Transition memory transition) = - _getDummyContextAndTransition(); - - vm.expectRevert(Risc0Verifier.RISC_ZERO_INVALID_BLOCK_PROOF_IMAGE_ID.selector); - rv.verifyProof(ctx, transition, proof); - - vm.stopPrank(); - } - - function test_verifyProof_invalidProof() external { - riscZeroRemoteVerifier.setVerifier(false); - vm.stopPrank(); - - // Caller not necessary has to be TaikoL1 contract because there is no keys (as in SGX keys) - // to be front run. - vm.startPrank(Alice); - - bytes memory seal = hex"00"; - bytes32 imageId = bytes32("11"); - - // TierProof - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 100, data: abi.encode(seal, imageId) }); - - vm.warp(block.timestamp + 5); - - (IVerifier.Context memory ctx, TaikoData.Transition memory transition) = - _getDummyContextAndTransition(); - - vm.expectRevert(Risc0Verifier.RISC_ZERO_INVALID_PROOF.selector); - rv.verifyProof(ctx, transition, proof); - - vm.stopPrank(); - } - - function _getDummyContextAndTransition() - internal - pure - returns (IVerifier.Context memory ctx, TaikoData.Transition memory transition) - { - // Context - ctx = IVerifier.Context({ - metaHash: bytes32("ab"), - blobHash: bytes32("cd"), - prover: address(0), - msgSender: address(0), - blockId: 10, - isContesting: false, - blobUsed: false - }); - - // Transition - transition = TaikoData.Transition({ - parentHash: bytes32("12"), - blockHash: bytes32("34"), - stateRoot: bytes32("56"), - graffiti: bytes32("78") - }); - } -} diff --git a/packages/protocol/test/layer1/verifiers/RiscZeroGroth16Verifier.t.sol b/packages/protocol/test/layer1/verifiers/RiscZeroGroth16Verifier.t.sol deleted file mode 100644 index fabebf4101a..00000000000 --- a/packages/protocol/test/layer1/verifiers/RiscZeroGroth16Verifier.t.sol +++ /dev/null @@ -1,160 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "@risc0/contracts/groth16/RiscZeroGroth16Verifier.sol"; -import "@risc0/contracts/groth16/ControlID.sol"; -import "../based/TaikoL1TestBase.sol"; - -contract RiscZeroGroth16VerifierTest is TaikoL1TestBase { - function deployTaikoL1() internal override returns (TaikoL1) { - return - TaikoL1(payable(deployProxy({ name: "taiko", impl: address(new TaikoL1()), data: "" }))); - } - - function setUp() public override { - vm.startPrank(Emma); - // Call the TaikoL1TestBase setUp() - super.setUp(); - - RiscZeroGroth16Verifier verifier = - new RiscZeroGroth16Verifier(ControlID.CONTROL_ROOT, ControlID.BN254_CONTROL_ID); - console2.log("Deployed RiscZeroGroth16Verifier to", address(verifier)); - registerAddress("risc0_groth16_verifier", address(verifier)); - - // Deploy Taiko's RiscZero proof verifier - rv = Risc0Verifier( - deployProxy({ - name: "tier_zkvm_risc0", - impl: address(new Risc0Verifier()), - data: abi.encodeCall(Risc0Verifier.init, (address(0), address(addressManager))) - }) - ); - - rv.setImageIdTrusted( - bytes32(0x7669d1059d0dfa9537c2b3581569b8bc244495e6c406d07dea628bc8cf480392), true - ); - } - - // Test `verifyProof()` happy path - function test_risc0_groth16_verifyProof() external { - vm.stopPrank(); - - // Caller not necessary has to be TaikoL1 contract because there is no keys (as in SGX keys) - // to be front run. - vm.startPrank(Emma); - - bytes memory seal = - hex"50bd1769220929ac1ac3f9d3a8a4e7f4bcec136f8ea44be5a7248785d83b13879b409b762480f0ca5f38b164091e2def50b35829e453d1418492c01cc1b924e851580fe208d3808a925ce28724f0a862b944074f5277c4bd4b3153c1a1ff87056740628008fcc8d7edef53215db823e4773334e6f5fe08fed84c7ebd005fe4f42b80891724044cadde535253739049d99abc1a91a4a987ad93b0fcedbdb2440c9c2d662101509acb5f869bdb2e15d2609aa1a6c6c1a5a83e04fb2f77d25163b5675351be2204a497f20d43277d211adcc66b730b5d8d7635bb4a456cbf9029904ef2493a0346cd8e1aa2c270a160bc28bca77336bf18fe91b9dc8790a15f1618188dafa9"; - bytes32 imageId = - bytes32(0x7669d1059d0dfa9537c2b3581569b8bc244495e6c406d07dea628bc8cf480392); - bytes32 journalDigest = - bytes32(0xa82287ae36a69b51f8013851b3814ff1243da5dfa071f6fd9b46b85445895553); - - // TierProof - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 100, data: abi.encode(seal, imageId) }); - - vm.warp(block.timestamp + 5); - - (IVerifier.Context memory ctx, TaikoData.Transition memory transition) = - _generateTaikoMainnetContextAndTransition(); - - uint64 chainId = L1.getConfig().chainId; - bytes32 pi = LibPublicInput.hashPublicInputs( - transition, address(rv), address(0), ctx.prover, ctx.metaHash, chainId - ); - bytes memory header = hex"20000000"; // [32, 0, 0, 0] -- big-endian uint32(32) for hash - // bytes len - assert(sha256(bytes.concat(header, pi)) == journalDigest); - - // `verifyProof()` - rv.verifyProof(ctx, transition, proof); - - vm.stopPrank(); - } - - function _generateTaikoMainnetContextAndTransition() - internal - pure - returns (IVerifier.Context memory ctx, TaikoData.Transition memory transition) - { - // Context - ctx = IVerifier.Context({ - metaHash: bytes32(0xd7efb262f6f25cc817452a622009a22e5868e53e1f934d899d3ec68d8c4f2c5b), - blobHash: bytes32(0x015cc9688f24b8d2195e46829b3f726ce006884d5fd2760b7cf414bab9a1b231), - prover: address(0x70997970C51812dc3A010C7d01b50e0d17dc79C8), - msgSender: address(0), - blockId: 223_248, //from mainnet - isContesting: false, - blobUsed: true - }); - - // Transition - transition = TaikoData.Transition({ - parentHash: 0x317de24b32f09629524133334ad552a14e3de603d71a9cf9e88d722809f101b3, - blockHash: 0x9966d3cf051d3d1e44e2a740169627506a619257c95374e812ca572de91ed885, - stateRoot: 0x3ae3de1afa16b93a5c7ea20a0b36b43357061f5b8ef857053d68b2735c3df860, - graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 - }); - } - - function test_risc0_verifyBatchProof() public { - vm.startPrank(Emma); - - bytes32 aggProofImageId = 0x8e192ebe6872b47645367692838b2d697c467f5e4543d605b0ef7d10365fb11a; - bytes32 blkProofImageId = 0x7669d1059d0dfa9537c2b3581569b8bc244495e6c406d07dea628bc8cf480392; - - // proof generation elf - rv.setImageIdTrusted(aggProofImageId, true); - // proof aggregation elf - rv.setImageIdTrusted(blkProofImageId, true); - - vm.startPrank(address(L1)); - - // Context - IVerifier.ContextV2[] memory ctxs = new IVerifier.ContextV2[](2); - ctxs[0] = IVerifier.ContextV2({ - metaHash: 0x207b2833fb6d804612da24d8785b870a19c7a3f25fa4aaeb9799cd442d65b031, - blobHash: 0x01354e8725e60ad91b32ec4ab19158572a0a5b06b2d4d83f6269c9a7d068f49b, - prover: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - msgSender: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - blockId: 393_333, - isContesting: false, - blobUsed: true, - tran: TaikoData.Transition({ - parentHash: 0xce519622a374dc014c005d7857de26d952751a9067d3e23ffe14da247aa8a399, - blockHash: 0x941d557653da2214cbf3d30af8d9cadbc7b5f77b6c3e48bca548eba04eb9cd79, - stateRoot: 0x4203a2fd98d268d272acb24d91e25055a779b443ff3e732f2cee7abcf639b5e9, - graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 - }) - }); - ctxs[1] = IVerifier.ContextV2({ - metaHash: 0x946ba1a9c02fc2f01da49e31cb5be83c118193d0389987c6be616ce76426b44d, - blobHash: 0x01abac8c1fb54f87ff7b0cbf14259b9d5ee7a8de458c587dd6eda43ef8354b4f, - prover: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - msgSender: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - blockId: 393_334, - isContesting: false, - blobUsed: true, - tran: TaikoData.Transition({ - parentHash: 0x941d557653da2214cbf3d30af8d9cadbc7b5f77b6c3e48bca548eba04eb9cd79, - blockHash: 0xc0dad38646ab264be30995b7b7fd02db65e7115126fb52bfad94c0fc9572287c, - stateRoot: 0x222061caab95b6bd0f8dd398088030979efbe56e282cd566f7abd77838558eb9, - graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 - }) - }); - - bytes memory seal = - hex"50bd176901a68e3f05b0e651b6e5ff18e5463be794699597908b42b9ac3195a464c2b67320fb89c8199909a5ef1ff32366d1047009f4758294090f4ce613129f64a9ff58109cf0f6cb0f22e194dab522a2938631b138f4afeb075117a05d1ad75093515e15de11d9b231b79be5d42b0c7921ba22d62a6594258745f3e5c2e10508741fd813581ea8fab28ee1d07cb1f2e84500e2993cff3ca2e37284cfb5cfec5fe301d92f4246b2dbffc17d2ef5d889f50b8f28c51d1bacd6b0c55399e574969bb0a77207ceda541460cfec3e0c315889d62c0c91c5cf0cecd515ada96712735e5cf0ea1664af11012004ba7cb6adea3751911c8afe5eb5979b1adf43da6f9c18837f3d"; - // TierProof - TaikoData.TierProof memory proof = TaikoData.TierProof({ - tier: 100, - data: abi.encode(seal, blkProofImageId, aggProofImageId) - }); - - // `verifyProof()` - rv.verifyBatchProof(ctxs, proof); - - vm.stopPrank(); - } -} diff --git a/packages/protocol/test/layer1/verifiers/SP1PlonkVerifier.t.sol b/packages/protocol/test/layer1/verifiers/SP1PlonkVerifier.t.sol deleted file mode 100644 index 9291354fb43..00000000000 --- a/packages/protocol/test/layer1/verifiers/SP1PlonkVerifier.t.sol +++ /dev/null @@ -1,159 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import { SP1Verifier as SuccinctVerifier } from "@sp1-contracts/src/v3.0.0/SP1VerifierPlonk.sol"; -import "../based/TaikoL1TestBase.sol"; - -contract SuccinctVerifierTest is TaikoL1TestBase { - function deployTaikoL1() internal override returns (TaikoL1) { - return - TaikoL1(payable(deployProxy({ name: "taiko", impl: address(new TaikoL1()), data: "" }))); - } - - function setUp() public override { - vm.startPrank(Emma); - // Call the TaikoL1TestBase setUp() - super.setUp(); - - SuccinctVerifier verifier = new SuccinctVerifier(); - console2.log("Deployed SuccinctVerifier to", address(verifier)); - registerAddress("sp1_remote_verifier", address(verifier)); - - // Deploy Taiko's SP1 proof verifier - sp1 = SP1Verifier( - deployProxy({ - name: "tier_zkvm_sp1", - impl: address(new SP1Verifier()), - data: abi.encodeCall(SP1Verifier.init, (address(0), address(addressManager))) - }) - ); - - sp1.setProgramTrusted( - bytes32(0x004e167a367ef584f118c2fac6ffdda82e5349913a165703fb1895f0da412bff), true - ); - } - - // Test `verifyProof()` happy path - function test_sp1_Plonk_verifyProof() external { - vm.stopPrank(); - - // Caller not necessary has to be TaikoL1 contract because there is no keys (as in SGX keys) - // to be front run. - vm.startPrank(Emma); - - bytes memory sp1Proof = - hex"54bdcae329f3f04a73d0e51b60e37a3dc2eb812b6c818895fbda375c24ce943d40a1a3541655911e01acabfb1ed0a04027e641f5e492e883d2ca77a03266b485a61563fe1c751fa9821101c5e755f8963df8493e967224867963a4b459457ca1ae23b7c62e7b320dcb495d119ca771ce2030f6aeeb44c328bc03f8a892c69da84aa43ca1201baeb122781539d987fc6fd706123398a8d50f837817873890c18269c3d3dd0e782114074808a1ff3548b49f0b499424c689e4bf5d74cb876237240d6473dc1ab63fc429bee770b10527113efff5ee6f2705031d6c7370d0a60154f19e8dd20ba14bd5fd5683ac1094f7981b122d908442fa6cd1ca460ffbf49e7e162fbc0d25280c78297ab4f7026a04448422da8e376ebb2b359d6c7be1ec1a660d07dfa82ac8c2d89f04fa02cb3a86a2066188f92895f2f42dc2f6f7e5713067a14a925a02fdffdcb99f7ad1df29281d3120d1196595b53b22a386a3eae6043435445f140976aafc537cbad06c46ca5ad2b16a7da0c4bd45ac880aef87078e7347cb464f0db47c51e064400751c2f032fd0fb92d8e4cf42c5bdda442d7a3c28e3dce3bdd10d8e014089f3a9ddc8c56dd154fe487beaf0ac01e73da68271378808786e69b1b709cfdd5666f53d46c569c965ea013a17e733efa740beddb8e56183138db1723e68dc91a3c893c7d05439388d387ed0fbeb19c7e996083b39858b07762a87c21ae07df5ea0fe21cb4974dc52d4e21553864af5e7d7042bfd0703aed1cf80171006aec8456ef123dc1ae4ec805c9d301f0dfe4788a0c5c599ff7a3ed17390bb1f260665e92e3647d7b89fab2681bc7237943c4b45243f68705d53c2ce8e4c5303b8ae78d556d0c4a1efaa48aedbb7feef62a27332a462fbd4e7dff75f3df8d92ea73b5afcc5a42c1a564bcdd99f2dcfe8e0c9873fa0470753900a20f7e01bcd1b3e6c62b2f8cdbd7de3068b7f5dcbfd6c0e9a511baccef6c7adfc41dee3f2dd2bb2409707d3d21594e3f425f6f6873b5245ec7dd2473b9b14b7f80576e776f3068e65e12da6663c8fff51ab2cdf1960225945dea081c5a38231f62439ad08032e4131a32f5b70566b1b86b7fb0138d4e2497621d71b31580ec36043f2c57330190c8b7d5a408a9ca109ae6dc5b90c6f86b4c15d54d2da991591369cb03c3d9c0c5030e89f7de4a5b6e7975fad4d321b1e01863dc0dbe8d49517006c7587a38b"; - bytes32 vKey = bytes32(0x004e167a367ef584f118c2fac6ffdda82e5349913a165703fb1895f0da412bff); - console2.logBytes(abi.encodePacked(vKey, sp1Proof)); - // TierProof - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 100, data: abi.encodePacked(vKey, sp1Proof) }); - - vm.warp(block.timestamp + 5); - - (IVerifier.Context memory ctx, TaikoData.Transition memory transition) = - _generateTaikoMainnetContextAndTransition(); - - uint64 chainId = L1.getConfig().chainId; - bytes32 pi = LibPublicInput.hashPublicInputs( - transition, address(sp1), address(0), ctx.prover, ctx.metaHash, chainId - ); - console2.log("chainId: ", chainId); - console2.log("Verifier: ", address(sp1)); - console2.log("Prover: ", ctx.prover); - console2.log("MetaHash: "); - console2.logBytes32(ctx.metaHash); - console2.log("Public input"); - console2.logBytes32(pi); - - // `verifyProof()` - sp1.verifyProof(ctx, transition, proof); - - vm.stopPrank(); - } - - function _generateTaikoMainnetContextAndTransition() - internal - pure - returns (IVerifier.Context memory ctx, TaikoData.Transition memory transition) - { - // Context - ctx = IVerifier.Context({ - metaHash: bytes32(0xd7efb262f6f25cc817452a622009a22e5868e53e1f934d899d3ec68d8c4f2c5b), - blobHash: bytes32(0x015cc9688f24b8d2195e46829b3f726ce006884d5fd2760b7cf414bab9a1b231), - prover: address(0x70997970C51812dc3A010C7d01b50e0d17dc79C8), - msgSender: address(0), - blockId: 223_248, //from mainnet - isContesting: false, - blobUsed: true - }); - - // Transition - transition = TaikoData.Transition({ - parentHash: 0x317de24b32f09629524133334ad552a14e3de603d71a9cf9e88d722809f101b3, - blockHash: 0x9966d3cf051d3d1e44e2a740169627506a619257c95374e812ca572de91ed885, - stateRoot: 0x3ae3de1afa16b93a5c7ea20a0b36b43357061f5b8ef857053d68b2735c3df860, - graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 - }); - } - - // Test `verifyBatchProof()` happy path - function test_sp1_Plonk_verifyBatchProof() public { - vm.startPrank(Emma); - - // proof generation elf vk digest which is not a bn254 hash - // but a sha256 hash from the same Sp1Verifykey. - sp1.setProgramTrusted( - bytes32(0x270b3d1b1fbd613c23185f586ffdda82729a4c8968595c0f76312be15a412bff), true - ); - // proof aggregation elf - sp1.setProgramTrusted( - bytes32(0x00d5ff4ed163b73e75aa1f60c399b3c778df24abe584fc6eee1ce5c444b74bcd), true - ); - - vm.startPrank(address(L1)); - - // Context - IVerifier.ContextV2[] memory ctxs = new IVerifier.ContextV2[](2); - ctxs[0] = IVerifier.ContextV2({ - metaHash: 0x207b2833fb6d804612da24d8785b870a19c7a3f25fa4aaeb9799cd442d65b031, - blobHash: 0x01354e8725e60ad91b32ec4ab19158572a0a5b06b2d4d83f6269c9a7d068f49b, - prover: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - msgSender: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - blockId: 393_333, - isContesting: false, - blobUsed: true, - tran: TaikoData.Transition({ - parentHash: 0xce519622a374dc014c005d7857de26d952751a9067d3e23ffe14da247aa8a399, - blockHash: 0x941d557653da2214cbf3d30af8d9cadbc7b5f77b6c3e48bca548eba04eb9cd79, - stateRoot: 0x4203a2fd98d268d272acb24d91e25055a779b443ff3e732f2cee7abcf639b5e9, - graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 - }) - }); - ctxs[1] = IVerifier.ContextV2({ - metaHash: 0x946ba1a9c02fc2f01da49e31cb5be83c118193d0389987c6be616ce76426b44d, - blobHash: 0x01abac8c1fb54f87ff7b0cbf14259b9d5ee7a8de458c587dd6eda43ef8354b4f, - prover: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - msgSender: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - blockId: 393_334, - isContesting: false, - blobUsed: true, - tran: TaikoData.Transition({ - parentHash: 0x941d557653da2214cbf3d30af8d9cadbc7b5f77b6c3e48bca548eba04eb9cd79, - blockHash: 0xc0dad38646ab264be30995b7b7fd02db65e7115126fb52bfad94c0fc9572287c, - stateRoot: 0x222061caab95b6bd0f8dd398088030979efbe56e282cd566f7abd77838558eb9, - graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 - }) - }); - - // TierProof - bytes memory data = - hex"00d5ff4ed163b73e75aa1f60c399b3c778df24abe584fc6eee1ce5c444b74bcd270b3d1b1fbd613c23185f586ffdda82729a4c8968595c0f76312be15a412bff54bdcae3236b956a67d15b4682d972d50fbb3632ac950bd712dad2d4cc9c302856c11e6c2ed6722fc3e4904ed204eb05a9f32bae3f8e7d4fbdd854c3d269a33e601c39c90d02026cdcdd55268090e316df3ffc0eee6de2765eb0d767f1455cd35af89da20ade1e61dc074884d5317f0206abb720acf8c023d2740b41fe37f2cb00fe561725269f4321543b30d528ee3e8884ea493fc6b1629e9a7537e65353fb0afd7e8021d502cb556e7a2b600e859f3fc524ad681df470d8d0ccc463775434ca56de661b34a3b620726aed8affc8a90d7b798a92d6500dacd9fb7d43a37c301d70e59d2d192fa85b2f6689bd9a6d47df9ea45163a228c8291e8d6d0ed5d7d7be8bd6391d6496989df139eaff5fca0f9d47eccad8ff6fb7aa0b8bb3da8e73fa4ff825d208b0ce5a639f30501f200c12f8fa1bf5c4ac42c4a58ceb34bbb3b012121f6ff31ed772d57c421a75813f987888e7e3b984bff8465bbfbdd30d45fae9904816a21c99ca4a903ed19af479d4ce0a1b4e78e2a9b3bdb8dde8986e8f028da0dd37e3129a184b4d36427d130075802421e5c693297f4705a030454b105b91f3ce8be111967dd8016ec9aed42e42ed3ab53e1dc42a0b796557e05b658203ae972378db1a109898a02ac97adfe3d5b24e1ab0d49f7702b69d137e23264e5b2c5b6e72fc2b2a4562b793a2c00ead94de8890700aa3c2fe5baf59ab8b7f524d38ba3b71712151edd00307dc3c9f24ea9d1bbac6687c8f30dbe845663f7aaddaec9df8d1fd15ced22fa58272184fe02aad68fd5a90ee249fced2ef955c0af40e02be0621e7162413e629b4428cb929d0a2bd87375dcec17664fec3a5a6cd2f7039723d41f10b77f5f3b7b052db1043c302795d3d739eecd2d2f686c2c474dcc67d9e844ca50bdabc7ac085aeb02aff0b3cbf17aaa0114ba85eff4a938d87db17680a5995a90347b2a5eccaeeb1be204a6dd83da39fe9485822667a43d4a5451f494063075007f152eeb46e0bad0675cf6219b53b36b1ca474f13f6dae87d1efad3c71f89cd05a04a6c76f6703858650a5fd6e2b45be3bf299386595d8eca6c8c55d537e8b3263828c7be68c92bdae0be0ed101f89c0c4c16154867228dc47ff0a4fccb4bb72b7cf8aa2c4a9bd4fd01254e51a7fbf680f408b5ae9c189466625b0f41636d94060e805eb6da30eab1202b65d8226918c4b99a73a6874089dbc5eac08cfab3d7"; - TaikoData.TierProof memory proof = TaikoData.TierProof({ tier: 0, data: data }); - - // `verifyProof()` - sp1.verifyBatchProof(ctxs, proof); - - vm.stopPrank(); - } -} diff --git a/packages/protocol/test/layer1/verifiers/SP1Verifier.t.sol b/packages/protocol/test/layer1/verifiers/SP1Verifier.t.sol index 329031fdd83..df59b6a9641 100644 --- a/packages/protocol/test/layer1/verifiers/SP1Verifier.t.sol +++ b/packages/protocol/test/layer1/verifiers/SP1Verifier.t.sol @@ -1,160 +1,143 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "../based/TaikoL1TestBase.sol"; +import { SP1Verifier as SP1RemoteVerifier } from "@sp1-contracts/src/v3.0.0/SP1VerifierPlonk.sol"; +import "../Layer1Test.sol"; -contract MockSP1Gateway is ISP1Verifier { - // To simulate failing and succeeding - bool public verifying; - - error SP1_INVALID_PROOF(); - - function setVerifying(bool _verifying) public { - verifying = _verifying; - } - - function verifyProof( - bytes32, /*programVKey*/ - bytes calldata, /*publicValues*/ - bytes calldata /*proofBytes*/ - ) - external - view - { - require(verifying, "SP1Verifier: invalid proof"); +contract TaikoL1Stub_ReturnMainnetChainId { + function getConfig() external pure returns (TaikoData.Config memory config) { + config.chainId = 167_000; } } -contract TestSP1Verifier is TaikoL1TestBase { - MockSP1Gateway sp1Gateway; - - function deployTaikoL1() internal override returns (TaikoL1) { - return - TaikoL1(payable(deployProxy({ name: "taiko", impl: address(new TaikoL1()), data: "" }))); - } +contract TestSP1Verifier is Layer1Test { + SP1Verifier internal sp1Verifier; + address internal taikoL1; - function setUp() public override { - // Call the TaikoL1TestBase setUp() - super.setUp(); + function setUpOnEthereum() internal override { + taikoL1 = address(new TaikoL1Stub_ReturnMainnetChainId()); + register("taiko", taikoL1); + register("sp1_remote_verifier", address(new SP1RemoteVerifier())); - sp1Gateway = new MockSP1Gateway(); - sp1Gateway.setVerifying(true); - - // Deploy Taiko's SP1 proof verifier ('remitter') - sp1 = SP1Verifier( - deployProxy({ + // Deploy Taiko's SP1 proof verifier + sp1Verifier = SP1Verifier( + deploy({ name: "tier_zkvm_sp1", impl: address(new SP1Verifier()), - data: abi.encodeCall(SP1Verifier.init, (address(0), address(addressManager))) + data: abi.encodeCall(SP1Verifier.init, (address(0), address(resolver))) }) ); - sp1.setProgramTrusted(bytes32("105"), true); - - registerAddress("sp1_verifier", address(sp1)); - registerAddress("sp1_remote_verifier", address(sp1Gateway)); + sp1Verifier.setProgramTrusted( + bytes32(0x004e167a367ef584f118c2fac6ffdda82e5349913a165703fb1895f0da412bff), true + ); } // Test `verifyProof()` happy path - function test_verifyProof() external { - vm.stopPrank(); - - // Caller not necessary has to be TaikoL1 contract because there is no keys (as in SGX keys) - // to be front run. - vm.startPrank(Alice); - - bytes32 programVKey = bytes32("105"); - bytes memory sp1Proof = hex"00"; - + function test_sp1_Plonk_verifyProof() external { + bytes memory sp1Proof = + hex"54bdcae329f3f04a73d0e51b60e37a3dc2eb812b6c818895fbda375c24ce943d40a1a3541655911e01acabfb1ed0a04027e641f5e492e883d2ca77a03266b485a61563fe1c751fa9821101c5e755f8963df8493e967224867963a4b459457ca1ae23b7c62e7b320dcb495d119ca771ce2030f6aeeb44c328bc03f8a892c69da84aa43ca1201baeb122781539d987fc6fd706123398a8d50f837817873890c18269c3d3dd0e782114074808a1ff3548b49f0b499424c689e4bf5d74cb876237240d6473dc1ab63fc429bee770b10527113efff5ee6f2705031d6c7370d0a60154f19e8dd20ba14bd5fd5683ac1094f7981b122d908442fa6cd1ca460ffbf49e7e162fbc0d25280c78297ab4f7026a04448422da8e376ebb2b359d6c7be1ec1a660d07dfa82ac8c2d89f04fa02cb3a86a2066188f92895f2f42dc2f6f7e5713067a14a925a02fdffdcb99f7ad1df29281d3120d1196595b53b22a386a3eae6043435445f140976aafc537cbad06c46ca5ad2b16a7da0c4bd45ac880aef87078e7347cb464f0db47c51e064400751c2f032fd0fb92d8e4cf42c5bdda442d7a3c28e3dce3bdd10d8e014089f3a9ddc8c56dd154fe487beaf0ac01e73da68271378808786e69b1b709cfdd5666f53d46c569c965ea013a17e733efa740beddb8e56183138db1723e68dc91a3c893c7d05439388d387ed0fbeb19c7e996083b39858b07762a87c21ae07df5ea0fe21cb4974dc52d4e21553864af5e7d7042bfd0703aed1cf80171006aec8456ef123dc1ae4ec805c9d301f0dfe4788a0c5c599ff7a3ed17390bb1f260665e92e3647d7b89fab2681bc7237943c4b45243f68705d53c2ce8e4c5303b8ae78d556d0c4a1efaa48aedbb7feef62a27332a462fbd4e7dff75f3df8d92ea73b5afcc5a42c1a564bcdd99f2dcfe8e0c9873fa0470753900a20f7e01bcd1b3e6c62b2f8cdbd7de3068b7f5dcbfd6c0e9a511baccef6c7adfc41dee3f2dd2bb2409707d3d21594e3f425f6f6873b5245ec7dd2473b9b14b7f80576e776f3068e65e12da6663c8fff51ab2cdf1960225945dea081c5a38231f62439ad08032e4131a32f5b70566b1b86b7fb0138d4e2497621d71b31580ec36043f2c57330190c8b7d5a408a9ca109ae6dc5b90c6f86b4c15d54d2da991591369cb03c3d9c0c5030e89f7de4a5b6e7975fad4d321b1e01863dc0dbe8d49517006c7587a38b"; + bytes32 vKey = bytes32(0x004e167a367ef584f118c2fac6ffdda82e5349913a165703fb1895f0da412bff); + console2.logBytes(abi.encodePacked(vKey, sp1Proof)); // TierProof TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 100, data: abi.encode(programVKey, sp1Proof) }); + TaikoData.TierProof({ tier: 100, data: abi.encodePacked(vKey, sp1Proof) }); vm.warp(block.timestamp + 5); (IVerifier.Context memory ctx, TaikoData.Transition memory transition) = - _getDummyContextAndTransition(); - - // `verifyProof()` - sp1.verifyProof(ctx, transition, proof); + _generateTaikoMainnetContextAndTransition(); - vm.stopPrank(); + bytes32 pi = LibPublicInput.hashPublicInputs( + transition, address(sp1Verifier), address(0), ctx.prover, ctx.metaHash, 167_000 + ); + console2.log("Verifier: ", address(sp1Verifier)); + console2.log("Prover: ", ctx.prover); + console2.log("MetaHash: "); + console2.logBytes32(ctx.metaHash); + console2.log("Public input"); + console2.logBytes32(pi); + + sp1Verifier.verifyProof(ctx, transition, proof); } - function test_verifyProof_invalidProgramVKeyd() external { - vm.stopPrank(); - - // Caller not necessary has to be TaikoL1 contract because there is no keys (as in SGX keys) - // to be front run. - vm.startPrank(Alice); - - bytes32 programVKey = bytes32("101"); - bytes memory sp1Proof = hex"00"; - - // TierProof - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 100, data: abi.encode(programVKey, sp1Proof) }); - - vm.warp(block.timestamp + 5); - - (IVerifier.Context memory ctx, TaikoData.Transition memory transition) = - _getDummyContextAndTransition(); - - // `verifyProof()` - vm.expectRevert(SP1Verifier.SP1_INVALID_PROGRAM_VKEY.selector); - sp1.verifyProof(ctx, transition, proof); - - vm.stopPrank(); - } + // Test `verifyBatchProof()` happy path + function test_sp1_Plonk_verifyBatchProof() public { + // proof generation elf vk digest which is not a bn254 hash + // but a sha256 hash from the same Sp1Verifykey. + vm.startPrank(sp1Verifier.owner()); + sp1Verifier.setProgramTrusted( + bytes32(0x270b3d1b1fbd613c23185f586ffdda82729a4c8968595c0f76312be15a412bff), true + ); + // proof aggregation elf + sp1Verifier.setProgramTrusted( + bytes32(0x00d5ff4ed163b73e75aa1f60c399b3c778df24abe584fc6eee1ce5c444b74bcd), true + ); - function test_verifyProof_invalidProof() external { - sp1Gateway.setVerifying(false); vm.stopPrank(); - - // Caller not necessary has to be TaikoL1 contract because there is no keys (as in SGX keys) - // to be front run. - vm.startPrank(Alice); - - bytes32 programVKey = bytes32("105"); - bytes memory sp1Proof = hex"00"; + // Context + IVerifier.ContextV2[] memory ctxs = new IVerifier.ContextV2[](2); + ctxs[0] = IVerifier.ContextV2({ + metaHash: 0x207b2833fb6d804612da24d8785b870a19c7a3f25fa4aaeb9799cd442d65b031, + blobHash: 0x01354e8725e60ad91b32ec4ab19158572a0a5b06b2d4d83f6269c9a7d068f49b, + prover: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, + msgSender: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, + blockId: 393_333, + isContesting: false, + blobUsed: true, + tran: TaikoData.Transition({ + parentHash: 0xce519622a374dc014c005d7857de26d952751a9067d3e23ffe14da247aa8a399, + blockHash: 0x941d557653da2214cbf3d30af8d9cadbc7b5f77b6c3e48bca548eba04eb9cd79, + stateRoot: 0x4203a2fd98d268d272acb24d91e25055a779b443ff3e732f2cee7abcf639b5e9, + graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 + }) + }); + ctxs[1] = IVerifier.ContextV2({ + metaHash: 0x946ba1a9c02fc2f01da49e31cb5be83c118193d0389987c6be616ce76426b44d, + blobHash: 0x01abac8c1fb54f87ff7b0cbf14259b9d5ee7a8de458c587dd6eda43ef8354b4f, + prover: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, + msgSender: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, + blockId: 393_334, + isContesting: false, + blobUsed: true, + tran: TaikoData.Transition({ + parentHash: 0x941d557653da2214cbf3d30af8d9cadbc7b5f77b6c3e48bca548eba04eb9cd79, + blockHash: 0xc0dad38646ab264be30995b7b7fd02db65e7115126fb52bfad94c0fc9572287c, + stateRoot: 0x222061caab95b6bd0f8dd398088030979efbe56e282cd566f7abd77838558eb9, + graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 + }) + }); // TierProof - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 100, data: abi.encode(programVKey, sp1Proof) }); + bytes memory data = + hex"00d5ff4ed163b73e75aa1f60c399b3c778df24abe584fc6eee1ce5c444b74bcd270b3d1b1fbd613c23185f586ffdda82729a4c8968595c0f76312be15a412bff54bdcae3236b956a67d15b4682d972d50fbb3632ac950bd712dad2d4cc9c302856c11e6c2ed6722fc3e4904ed204eb05a9f32bae3f8e7d4fbdd854c3d269a33e601c39c90d02026cdcdd55268090e316df3ffc0eee6de2765eb0d767f1455cd35af89da20ade1e61dc074884d5317f0206abb720acf8c023d2740b41fe37f2cb00fe561725269f4321543b30d528ee3e8884ea493fc6b1629e9a7537e65353fb0afd7e8021d502cb556e7a2b600e859f3fc524ad681df470d8d0ccc463775434ca56de661b34a3b620726aed8affc8a90d7b798a92d6500dacd9fb7d43a37c301d70e59d2d192fa85b2f6689bd9a6d47df9ea45163a228c8291e8d6d0ed5d7d7be8bd6391d6496989df139eaff5fca0f9d47eccad8ff6fb7aa0b8bb3da8e73fa4ff825d208b0ce5a639f30501f200c12f8fa1bf5c4ac42c4a58ceb34bbb3b012121f6ff31ed772d57c421a75813f987888e7e3b984bff8465bbfbdd30d45fae9904816a21c99ca4a903ed19af479d4ce0a1b4e78e2a9b3bdb8dde8986e8f028da0dd37e3129a184b4d36427d130075802421e5c693297f4705a030454b105b91f3ce8be111967dd8016ec9aed42e42ed3ab53e1dc42a0b796557e05b658203ae972378db1a109898a02ac97adfe3d5b24e1ab0d49f7702b69d137e23264e5b2c5b6e72fc2b2a4562b793a2c00ead94de8890700aa3c2fe5baf59ab8b7f524d38ba3b71712151edd00307dc3c9f24ea9d1bbac6687c8f30dbe845663f7aaddaec9df8d1fd15ced22fa58272184fe02aad68fd5a90ee249fced2ef955c0af40e02be0621e7162413e629b4428cb929d0a2bd87375dcec17664fec3a5a6cd2f7039723d41f10b77f5f3b7b052db1043c302795d3d739eecd2d2f686c2c474dcc67d9e844ca50bdabc7ac085aeb02aff0b3cbf17aaa0114ba85eff4a938d87db17680a5995a90347b2a5eccaeeb1be204a6dd83da39fe9485822667a43d4a5451f494063075007f152eeb46e0bad0675cf6219b53b36b1ca474f13f6dae87d1efad3c71f89cd05a04a6c76f6703858650a5fd6e2b45be3bf299386595d8eca6c8c55d537e8b3263828c7be68c92bdae0be0ed101f89c0c4c16154867228dc47ff0a4fccb4bb72b7cf8aa2c4a9bd4fd01254e51a7fbf680f408b5ae9c189466625b0f41636d94060e805eb6da30eab1202b65d8226918c4b99a73a6874089dbc5eac08cfab3d7"; + TaikoData.TierProof memory proof = TaikoData.TierProof({ tier: 0, data: data }); - vm.warp(block.timestamp + 5); - - (IVerifier.Context memory ctx, TaikoData.Transition memory transition) = - _getDummyContextAndTransition(); - - vm.expectRevert(SP1Verifier.SP1_INVALID_PROOF.selector); - sp1.verifyProof(ctx, transition, proof); - - vm.stopPrank(); + sp1Verifier.verifyBatchProof(ctxs, proof); } - function _getDummyContextAndTransition() + function _generateTaikoMainnetContextAndTransition() internal pure returns (IVerifier.Context memory ctx, TaikoData.Transition memory transition) { // Context ctx = IVerifier.Context({ - metaHash: bytes32("ab"), - blobHash: bytes32("cd"), - prover: address(0), + metaHash: bytes32(0xd7efb262f6f25cc817452a622009a22e5868e53e1f934d899d3ec68d8c4f2c5b), + blobHash: bytes32(0x015cc9688f24b8d2195e46829b3f726ce006884d5fd2760b7cf414bab9a1b231), + prover: address(0x70997970C51812dc3A010C7d01b50e0d17dc79C8), msgSender: address(0), - blockId: 10, + blockId: 223_248, //from mainnet isContesting: false, - blobUsed: false + blobUsed: true }); // Transition transition = TaikoData.Transition({ - parentHash: bytes32("12"), - blockHash: bytes32("34"), - stateRoot: bytes32("56"), - graffiti: bytes32("78") + parentHash: 0x317de24b32f09629524133334ad552a14e3de603d71a9cf9e88d722809f101b3, + blockHash: 0x9966d3cf051d3d1e44e2a740169627506a619257c95374e812ca572de91ed885, + stateRoot: 0x3ae3de1afa16b93a5c7ea20a0b36b43357061f5b8ef857053d68b2735c3df860, + graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 }); } } diff --git a/packages/protocol/test/layer1/verifiers/SgxVerifier.t.sol b/packages/protocol/test/layer1/verifiers/SgxVerifier.t.sol deleted file mode 100644 index 2e1b115de9e..00000000000 --- a/packages/protocol/test/layer1/verifiers/SgxVerifier.t.sol +++ /dev/null @@ -1,441 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/verifiers/SgxVerifierBase.sol"; -import "../automata-attestation/common/AttestationBase.t.sol"; -import "../based/TaikoL1TestBase.sol"; - -contract TestSgxVerifier is TaikoL1TestBase, AttestationBase { - address internal SGX_Y = - vm.addr(0x9b1bb8cb3bdb539d0d1f03951d27f167f2d5443e7ef0d7ce745cd4ec619d3dd7); - address internal SGX_Z = randAddress(); - - address KNOWN_ADDRESS = address(0xAAAAAFE838B80D164535CD4d50058E456A4f9E16); - uint256 KNOWN_ADDRESS_PRIV_KEY = - 0xde9b0c39e60bb0404347b588c6891947db2c873942b553d5d15c03ea30c04c63; - - function deployTaikoL1() internal override returns (TaikoL1) { - return - TaikoL1(payable(deployProxy({ name: "taiko", impl: address(new TaikoL1()), data: "" }))); - } - - function setUp() public override { - // Call the TaikoL1TestBase setUp() - super.setUp(); - - // Call the AttestationBase init setup - super.initialSetup(); - - registerAddress("automata_dcap_attestation", address(attestation)); - } - - // Tests `addInstances()` from the owner - function test_addInstances() public { - uint256 startInstance = sv.nextInstanceId(); - - // Create instances to add - address[] memory instances = new address[](2); - instances[0] = Alice; - instances[1] = Bob; - - vm.expectEmit(true, true, true, true); - emit SgxVerifierBase.InstanceAdded(startInstance, instances[0], address(0), block.timestamp); - vm.expectEmit(true, true, true, true); - emit SgxVerifierBase.InstanceAdded( - startInstance + 1, instances[1], address(0), block.timestamp - ); - - // `addInstances()` - uint256[] memory ids = sv.addInstances(instances); - - // Verification - assertEq(ids.length, 2, "Invalid IDs length"); - assertEq(ids[0], startInstance, "Invalid ID"); - assertEq(ids[1], startInstance + 1, "Invalid ID"); - - (address instanceAddr, uint64 instanceAddedAt) = sv.instances(startInstance); - assertEq(instanceAddr, instances[0], "Invalid instance address"); - assertEq(instanceAddedAt, block.timestamp, "Invalid instance addedAt"); - - (instanceAddr, instanceAddedAt) = sv.instances(startInstance + 1); - assertEq(instanceAddr, instances[1], "Invalid instance address"); - assertEq(instanceAddedAt, block.timestamp, "Invalid instance addedAt"); - - assertEq(sv.nextInstanceId(), startInstance + 2, "Invalid next instance ID"); - - // Setup for second `addInstances()` from the owner - address[] memory instances2 = new address[](2); - instances2[0] = Carol; - instances2[1] = David; - - vm.expectEmit(true, true, true, true); - emit SgxVerifierBase.InstanceAdded( - startInstance + 2, instances2[0], address(0), block.timestamp - ); - vm.expectEmit(true, true, true, true); - emit SgxVerifierBase.InstanceAdded( - startInstance + 3, instances2[1], address(0), block.timestamp - ); - - // `addInstances()` - ids = sv.addInstances(instances2); - - // Verification - assertEq(ids.length, 2, "Invalid IDs length"); - assertEq(ids[0], startInstance + 2, "Invalid ID"); - assertEq(ids[1], startInstance + 3, "Invalid ID"); - - (instanceAddr, instanceAddedAt) = sv.instances(startInstance + 2); - assertEq(instanceAddr, instances2[0], "Invalid instance address"); - assertEq(instanceAddedAt, block.timestamp, "Invalid instance addedAt"); - - (instanceAddr, instanceAddedAt) = sv.instances(startInstance + 3); - assertEq(instanceAddr, instances2[1], "Invalid instance address"); - assertEq(instanceAddedAt, block.timestamp, "Invalid instance addedAt"); - - assertEq(sv.nextInstanceId(), startInstance + 4, "Invalid next instance ID"); - - vm.stopPrank(); - } - - // Tests `addInstances()` from the owner when there is a zero address - function test_addInstances_zeroAddress() external { - // Create instances to add - address[] memory instances = new address[](2); - instances[0] = Alice; - instances[1] = address(0); - - // `addInstances()` - vm.expectRevert(SgxVerifierBase.SGX_INVALID_INSTANCE.selector); - sv.addInstances(instances); - - vm.stopPrank(); - } - - // Tests `addInstances()` from the owner with duplicates - function test_addInstances_duplicates() external { - // Create instances to add - address[] memory instances = new address[](2); - instances[0] = Alice; - instances[1] = Alice; // invalid as duplicate instance - - // `addInstances()` - vm.expectRevert(SgxVerifierBase.SGX_ALREADY_ATTESTED.selector); - sv.addInstances(instances); - } - - function test_addInstancesByOwner_WithoutOwnerRole() external { - address[] memory _instances = new address[](3); - _instances[0] = SGX_X_0; - _instances[1] = SGX_Y; - _instances[2] = SGX_Z; - - vm.expectRevert(); - vm.prank(Bob, Bob); - sv.addInstances(_instances); - } - - function test_deleteInstancesByOwner() external { - uint256[] memory _ids = new uint256[](1); - _ids[0] = 0; - - address instance; - (instance,) = sv.instances(0); - assertEq(instance, SGX_X_0); - - sv.deleteInstances(_ids); - - (instance,) = sv.instances(0); - assertEq(instance, address(0)); - } - - function test_registerInstanceWithAttestation() external { - V3Struct.ParsedV3QuoteStruct memory v3quote = - ParseV3QuoteBytes(address(pemCertChainLib), sampleQuote); - - vm.prank(Bob, Bob); - sv.registerInstance(v3quote); - } - - function test_registerInstanceTwiceWithSameAttestation() external { - V3Struct.ParsedV3QuoteStruct memory v3quote = - ParseV3QuoteBytes(address(pemCertChainLib), sampleQuote); - - vm.prank(Bob, Bob); - sv.registerInstance(v3quote); - - vm.expectRevert(SgxVerifierBase.SGX_ALREADY_ATTESTED.selector); - vm.prank(Carol, Carol); - sv.registerInstance(v3quote); - } - - // Test `verifyProof()` happy path - function test_verifyProof() external { - uint32 id = uint32(sv.nextInstanceId()); - - // `addInstances()` add an alice instance - address[] memory instances = new address[](1); - instances[0] = KNOWN_ADDRESS; - sv.addInstances(instances); - - vm.stopPrank(); - - // Caller should be TaikoL1 contract - vm.startPrank(address(L1)); - - // Context - IVerifier.Context memory ctx = IVerifier.Context({ - metaHash: bytes32("ab"), - blobHash: bytes32("cd"), - prover: KNOWN_ADDRESS, - msgSender: KNOWN_ADDRESS, - blockId: 10, - isContesting: false, - blobUsed: false - }); - - // Transition - TaikoData.Transition memory transition = TaikoData.Transition({ - parentHash: bytes32("12"), - blockHash: bytes32("34"), - stateRoot: bytes32("56"), - graffiti: bytes32("78") - }); - - // TierProof - address newInstance = address(0x33); - - uint64 chainId = L1.getConfig().chainId; - bytes32 signedHash = LibPublicInput.hashPublicInputs( - transition, address(sv), newInstance, ctx.prover, ctx.metaHash, chainId - ); - - (uint8 v, bytes32 r, bytes32 s) = vm.sign(KNOWN_ADDRESS_PRIV_KEY, signedHash); - bytes memory signature = abi.encodePacked(r, s, v); - - // bytes memory data = abi.encodePacked(id, newInstance, signature); -> comment out to avoid - // stack too deep. - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 100, data: abi.encodePacked(id, newInstance, signature) }); - - vm.warp(block.timestamp + 5); - - vm.expectEmit(true, true, true, true); - emit SgxVerifierBase.InstanceAdded(id, newInstance, KNOWN_ADDRESS, block.timestamp); - - // `verifyProof()` - sv.verifyProof(ctx, transition, proof); - - // Verification - (address instanceAddr, uint64 instanceAddedAt) = sv.instances(id); - assertEq(instanceAddr, newInstance, "Invalid instance address"); - assertEq(instanceAddedAt, block.timestamp, "Invalid instance addedAt"); - - vm.stopPrank(); - } - - // Test `verifyProof()` when contesting - function test_verifyProof_isContesting() external { - vm.startPrank(address(L1)); - - // Context - IVerifier.Context memory ctx = IVerifier.Context({ - metaHash: bytes32("ab"), - blobHash: bytes32("cd"), - prover: Alice, - msgSender: Alice, - blockId: 10, - isContesting: true, // skips all verification when true - blobUsed: false - }); - - // Transition - TaikoData.Transition memory transition = TaikoData.Transition({ - parentHash: bytes32("12"), - blockHash: bytes32("34"), - stateRoot: bytes32("56"), - graffiti: bytes32("78") - }); - - // TierProof - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: LibTiers.TIER_GUARDIAN, data: "" }); - - // `verifyProof()` - sv.verifyProof(ctx, transition, proof); - - vm.stopPrank(); - } - - // Test `verifyProof()` invalid proof length - function test_verifyProof_invalidProofLength() external { - vm.startPrank(address(L1)); - - // Context - IVerifier.Context memory ctx = IVerifier.Context({ - metaHash: bytes32("ab"), - blobHash: bytes32("cd"), - prover: Alice, - msgSender: Alice, - blockId: 10, - isContesting: false, - blobUsed: false - }); - - // Transition - TaikoData.Transition memory transition = TaikoData.Transition({ - parentHash: bytes32("12"), - blockHash: bytes32("34"), - stateRoot: bytes32("56"), - graffiti: bytes32("78") - }); - - // TierProof - TaikoData.TierProof memory proof = TaikoData.TierProof({ - tier: 0, - data: new bytes(80) // invalid length - }); - - // `verifyProof()` - vm.expectRevert(SgxVerifierBase.SGX_INVALID_PROOF.selector); - sv.verifyProof(ctx, transition, proof); - } - - // Test `verifyProof()` invalid signature - function test_verifyProof_invalidSignature() public { - vm.startPrank(address(L1)); - - // Context - IVerifier.Context memory ctx = IVerifier.Context({ - metaHash: bytes32("ab"), - blobHash: bytes32("cd"), - prover: Alice, - msgSender: Alice, - blockId: 10, - isContesting: false, - blobUsed: false - }); - - // Transition - TaikoData.Transition memory transition = TaikoData.Transition({ - parentHash: bytes32("12"), - blockHash: bytes32("34"), - stateRoot: bytes32("56"), - graffiti: bytes32("78") - }); - - // TierProof - uint32 id = 0; - address newInstance = address(0x33); - bytes memory signature = new bytes(65); // invalid length - bytes memory data = abi.encodePacked(id, newInstance, signature); - TaikoData.TierProof memory proof = TaikoData.TierProof({ tier: 0, data: data }); - - // `verifyProof()` - vm.expectRevert("ECDSA: invalid signature"); - sv.verifyProof(ctx, transition, proof); - - vm.stopPrank(); - } - - // Test `verifyProof()` invalid instance - function test_verifyProof_invalidInstance() public { - vm.startPrank(address(L1)); - - uint32 id = uint32(sv.nextInstanceId()); - - // Context - IVerifier.Context memory ctx = IVerifier.Context({ - metaHash: bytes32("ab"), - blobHash: bytes32("cd"), - prover: Alice, - msgSender: Alice, - blockId: 10, - isContesting: false, - blobUsed: false - }); - - // Transition - TaikoData.Transition memory transition = TaikoData.Transition({ - parentHash: bytes32("12"), - blockHash: bytes32("34"), - stateRoot: bytes32("56"), - graffiti: bytes32("78") - }); - - // TierProof - address newInstance = address(0x33); - - uint64 chainId = L1.getConfig().chainId; - bytes32 signedHash = LibPublicInput.hashPublicInputs( - transition, address(sv), newInstance, ctx.prover, ctx.metaHash, chainId - ); - - (uint8 v, bytes32 r, bytes32 s) = vm.sign(KNOWN_ADDRESS_PRIV_KEY, signedHash); - bytes memory signature = abi.encodePacked(r, s, v); - - bytes memory data = abi.encodePacked(id, newInstance, signature); - TaikoData.TierProof memory proof = TaikoData.TierProof({ tier: 0, data: data }); - - // `verifyProof()` - vm.expectRevert(SgxVerifierBase.SGX_INVALID_INSTANCE.selector); - sv.verifyProof(ctx, transition, proof); - - vm.stopPrank(); - } - - // Test `verifyBatchProof()` happy path - function test_verifyBatchProofs() public { - // setup instances - address newInstance = address(0x6Aa1108c1903E3AeF092FF46E4C506fD3ac567c0); - address[] memory instances = new address[](1); - instances[0] = newInstance; - uint256[] memory ids = sv.addInstances(instances); - console.log("Instance ID: ", ids[0]); - - vm.startPrank(address(L1)); - - // Context - IVerifier.ContextV2[] memory ctxs = new IVerifier.ContextV2[](2); - ctxs[0] = IVerifier.ContextV2({ - metaHash: 0x207b2833fb6d804612da24d8785b870a19c7a3f25fa4aaeb9799cd442d65b031, - blobHash: 0x01354e8725e60ad91b32ec4ab19158572a0a5b06b2d4d83f6269c9a7d068f49b, - prover: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - msgSender: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - blockId: 393_333, - isContesting: false, - blobUsed: true, - tran: TaikoData.Transition({ - parentHash: 0xce519622a374dc014c005d7857de26d952751a9067d3e23ffe14da247aa8a399, - blockHash: 0x941d557653da2214cbf3d30af8d9cadbc7b5f77b6c3e48bca548eba04eb9cd79, - stateRoot: 0x4203a2fd98d268d272acb24d91e25055a779b443ff3e732f2cee7abcf639b5e9, - graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 - }) - }); - ctxs[1] = IVerifier.ContextV2({ - metaHash: 0x946ba1a9c02fc2f01da49e31cb5be83c118193d0389987c6be616ce76426b44d, - blobHash: 0x01abac8c1fb54f87ff7b0cbf14259b9d5ee7a8de458c587dd6eda43ef8354b4f, - prover: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - msgSender: 0x70997970C51812dc3A010C7d01b50e0d17dc79C8, - blockId: 393_334, - isContesting: false, - blobUsed: true, - tran: TaikoData.Transition({ - parentHash: 0x941d557653da2214cbf3d30af8d9cadbc7b5f77b6c3e48bca548eba04eb9cd79, - blockHash: 0xc0dad38646ab264be30995b7b7fd02db65e7115126fb52bfad94c0fc9572287c, - stateRoot: 0x222061caab95b6bd0f8dd398088030979efbe56e282cd566f7abd77838558eb9, - graffiti: 0x8008500000000000000000000000000000000000000000000000000000000000 - }) - }); - - // TierProof - bytes memory data = - hex"000000016aa1108c1903e3aef092ff46e4c506fd3ac567c06aa1108c1903e3aef092ff46e4c506fd3ac567c0dda91ea274c36678a0680bae65216b40bd935e646b6364ea669a6de9b58e0cd11e1c1b86765f98ac5a3113fdc08296aa663378e8e2e44cf08db7a4ba6e5f00f21b"; - TaikoData.TierProof memory proof = TaikoData.TierProof({ tier: 0, data: data }); - - // `verifyProof()` - sv.verifyBatchProof(ctxs, proof); - - vm.stopPrank(); - } -} diff --git a/packages/protocol/test/layer1/verifiers/compose/ComposeVerifeir.t.sol b/packages/protocol/test/layer1/verifiers/compose/ComposeVerifeir.t.sol deleted file mode 100644 index 6a738475495..00000000000 --- a/packages/protocol/test/layer1/verifiers/compose/ComposeVerifeir.t.sol +++ /dev/null @@ -1,228 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer1/verifiers/compose/ComposeVerifier.sol"; -import "test/shared/TaikoTest.sol"; - -contract ComposeVerifierForTest is ComposeVerifier { - uint256 private threshold; - address[] private verifiers; - - function setThreshold(uint256 _threshold) external { - threshold = _threshold; - } - - function getSubVerifiersAndThreshold() - public - view - override - returns (address[] memory, uint256) - { - return (verifiers, threshold); - } - - function addSubVerifier(address _verifier) external { - verifiers.push(_verifier); - } - - function _getAddress(uint64, bytes32 _name) internal view override returns (address) { - if (_name == LibStrings.B_TAIKO) return msg.sender; - else return address(0); - } -} - -contract MockVerifier is IVerifier { - bool private shouldSucceed; - - constructor(bool _shouldSucceed) { - shouldSucceed = _shouldSucceed; - } - - function verifyProof( - Context calldata, - TaikoData.Transition calldata, - TaikoData.TierProof calldata - ) - external - view - override - { - if (!shouldSucceed) { - revert("MockVerifier: Verification failed"); - } - } - - function verifyBatchProof( - ContextV2[] calldata, - TaikoData.TierProof calldata - ) - external - pure - override - { - revert("NOT_IMPLEMENTED"); - } -} - -contract ComposeVerifierTest is TaikoTest { - IVerifier.Context private ctx; - TaikoData.Transition private tran; - - function test_composeVerifeir_invalid_subproof_length() public { - ComposeVerifierForTest composeVerifier = new ComposeVerifierForTest(); - address verifier1 = address(new MockVerifier(true)); - address verifier2 = address(new MockVerifier(true)); - address verifier3 = address(new MockVerifier(true)); - - composeVerifier.addSubVerifier(verifier1); - composeVerifier.addSubVerifier(verifier2); - composeVerifier.addSubVerifier(verifier3); - - ComposeVerifier.SubProof[] memory subProofs = new ComposeVerifier.SubProof[](2); - subProofs[0] = ComposeVerifier.SubProof(verifier1, ""); - subProofs[1] = ComposeVerifier.SubProof(verifier1, ""); - - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 1, data: abi.encode(subProofs) }); - - composeVerifier.setThreshold(1); - - vm.expectRevert(ComposeVerifier.CV_INVALID_SUBPROOF_LENGTH.selector); - composeVerifier.verifyProof(ctx, tran, proof); - } - - function test_composeVerifeir_1_outof_3() public { - ComposeVerifierForTest composeVerifier = new ComposeVerifierForTest(); - address verifier1 = address(new MockVerifier(true)); - address verifier2 = address(new MockVerifier(true)); - address verifier3 = address(new MockVerifier(true)); - - composeVerifier.addSubVerifier(verifier1); - composeVerifier.addSubVerifier(verifier2); - composeVerifier.addSubVerifier(verifier3); - - ComposeVerifier.SubProof[] memory subProofs = new ComposeVerifier.SubProof[](1); - subProofs[0] = ComposeVerifier.SubProof(verifier1, ""); - - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 1, data: abi.encode(subProofs) }); - - composeVerifier.setThreshold(1); - composeVerifier.verifyProof(ctx, tran, proof); - } - - function test_composeVerifeir_2_outof_3() public { - ComposeVerifierForTest composeVerifier = new ComposeVerifierForTest(); - address verifier1 = address(new MockVerifier(true)); - address verifier2 = address(new MockVerifier(true)); - address verifier3 = address(new MockVerifier(true)); - - composeVerifier.addSubVerifier(verifier1); - composeVerifier.addSubVerifier(verifier2); - composeVerifier.addSubVerifier(verifier3); - - ComposeVerifier.SubProof[] memory subProofs = new ComposeVerifier.SubProof[](2); - subProofs[0] = ComposeVerifier.SubProof(verifier1, ""); - subProofs[1] = ComposeVerifier.SubProof(verifier2, ""); - - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 1, data: abi.encode(subProofs) }); - - composeVerifier.setThreshold(2); - composeVerifier.verifyProof(ctx, tran, proof); - } - - function test_composeVerifeir_3_outof_3() public { - ComposeVerifierForTest composeVerifier = new ComposeVerifierForTest(); - address verifier1 = address(new MockVerifier(true)); - address verifier2 = address(new MockVerifier(true)); - address verifier3 = address(new MockVerifier(true)); - - composeVerifier.addSubVerifier(verifier1); - composeVerifier.addSubVerifier(verifier2); - composeVerifier.addSubVerifier(verifier3); - - ComposeVerifier.SubProof[] memory subProofs = new ComposeVerifier.SubProof[](3); - subProofs[0] = ComposeVerifier.SubProof(verifier1, ""); - subProofs[1] = ComposeVerifier.SubProof(verifier2, ""); - subProofs[2] = ComposeVerifier.SubProof(verifier3, ""); - - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 1, data: abi.encode(subProofs) }); - - composeVerifier.setThreshold(3); - composeVerifier.verifyProof(ctx, tran, proof); - } - - function test_composeVerifeir_subproof_failure() public { - ComposeVerifierForTest composeVerifier = new ComposeVerifierForTest(); - address verifier1 = address(new MockVerifier(true)); - address verifier2 = address(new MockVerifier(true)); - address verifier3 = address(new MockVerifier(false)); - - composeVerifier.addSubVerifier(verifier1); - composeVerifier.addSubVerifier(verifier2); - composeVerifier.addSubVerifier(verifier3); - - ComposeVerifier.SubProof[] memory subProofs = new ComposeVerifier.SubProof[](3); - subProofs[0] = ComposeVerifier.SubProof(verifier1, ""); - subProofs[1] = ComposeVerifier.SubProof(verifier2, ""); - subProofs[2] = ComposeVerifier.SubProof(verifier3, ""); - - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 1, data: abi.encode(subProofs) }); - - composeVerifier.setThreshold(3); - - // Expect the verification to fail because one sub proof is invalid - vm.expectRevert("MockVerifier: Verification failed"); - composeVerifier.verifyProof(ctx, tran, proof); - } - - function test_composeVerifeir_2_outof_3_duplicate_subproof() public { - ComposeVerifierForTest composeVerifier = new ComposeVerifierForTest(); - address verifier1 = address(new MockVerifier(true)); - address verifier2 = address(new MockVerifier(true)); - address verifier3 = address(new MockVerifier(true)); - - composeVerifier.addSubVerifier(verifier1); - composeVerifier.addSubVerifier(verifier2); - composeVerifier.addSubVerifier(verifier3); - - ComposeVerifier.SubProof[] memory subProofs = new ComposeVerifier.SubProof[](2); - subProofs[0] = ComposeVerifier.SubProof(verifier1, ""); - subProofs[1] = ComposeVerifier.SubProof(verifier1, ""); - - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 1, data: abi.encode(subProofs) }); - - composeVerifier.setThreshold(2); - vm.expectRevert(ComposeVerifier.CV_SUB_VERIFIER_NOT_FOUND.selector); - composeVerifier.verifyProof(ctx, tran, proof); - } - - function test_composeVerifeir_subproof_verifier_not_found() public { - ComposeVerifierForTest composeVerifier = new ComposeVerifierForTest(); - address verifier1 = address(new MockVerifier(true)); - address verifier2 = address(new MockVerifier(true)); - address verifier3 = address(new MockVerifier(true)); - - composeVerifier.addSubVerifier(verifier1); - composeVerifier.addSubVerifier(verifier2); - composeVerifier.addSubVerifier(verifier3); - - ComposeVerifier.SubProof[] memory subProofs = new ComposeVerifier.SubProof[](3); - subProofs[0] = ComposeVerifier.SubProof(verifier1, ""); - subProofs[1] = ComposeVerifier.SubProof(verifier2, ""); - subProofs[2] = ComposeVerifier.SubProof(address((123)), ""); - - TaikoData.TierProof memory proof = - TaikoData.TierProof({ tier: 1, data: abi.encode(subProofs) }); - - composeVerifier.setThreshold(3); - - // Expect the verification to fail because one sub proof is invalid - vm.expectRevert(ComposeVerifier.CV_SUB_VERIFIER_NOT_FOUND.selector); - composeVerifier.verifyProof(ctx, tran, proof); - } -} diff --git a/packages/protocol/test/layer2/DelegateOwner.t.sol b/packages/protocol/test/layer2/DelegateOwner.t.sol index 431219d9508..9977d22fdbc 100644 --- a/packages/protocol/test/layer2/DelegateOwner.t.sol +++ b/packages/protocol/test/layer2/DelegateOwner.t.sol @@ -1,221 +1,173 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "../shared/thirdparty/Multicall3.sol"; -import "./TaikoL2Test.sol"; - -contract Target is EssentialContract { - function init(address _owner) external initializer { - __Essential_init(_owner); +import "test/shared/helpers/EssentialContract_EmptyStub.sol"; +import "test/shared/thirdparty/Multicall3.sol"; +import "test/layer2/Layer2Test.sol"; + +contract TestDelegateOwner is Layer2Test { + // Contracts on Ethereum + address private eBridge = randAddress(); + + // Contracts on Taiko + Multicall3 private tMulticall; + SignalService private tSignalService; + Bridge private tBridge; + DelegateOwner private tDelegateOwner; + + function setUpOnEthereum() internal override { + register("bridge", eBridge); } -} - -contract TestDelegateOwner is TaikoL2Test { - address public owner; - address public remoteOwner; - Bridge public bridge; - SignalService public signalService; - AddressManager public addressManager; - DelegateOwner public delegateOwner; - Multicall3 public multicall; - - uint64 remoteChainId = uint64(block.chainid + 1); - address remoteBridge = vm.addr(0x2000); - - function setUp() public { - owner = vm.addr(0x1000); - vm.deal(owner, 100 ether); - - remoteOwner = vm.addr(0x2000); - - vm.startPrank(owner); - - multicall = new Multicall3(); - - addressManager = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }) - ); - - delegateOwner = DelegateOwner( - deployProxy({ - name: "delegate_owner", - impl: address(new DelegateOwner()), - data: abi.encodeCall( - DelegateOwner.init, - (remoteOwner, address(addressManager), remoteChainId, address(0)) - ), - registerTo: address(addressManager) - }) - ); - - signalService = SkipProofCheckSignal( - deployProxy({ - name: "signal_service", - impl: address(new SkipProofCheckSignal()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ); - bridge = Bridge( - payable( - deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ) - ); - - addressManager.setAddress(remoteChainId, "bridge", remoteBridge); - vm.stopPrank(); + function setUpOnTaiko() internal override { + tMulticall = new Multicall3(); + tDelegateOwner = deployDelegateOwner(eBridge, ethereumChainId); + tSignalService = deploySignalService(address(new SignalService_WithoutProofVerification())); + tBridge = deployBridge(address(new Bridge())); } - function test_delegate_owner_single_non_delegatecall() public { - Target target1 = Target( - deployProxy({ - name: "target1", - impl: address(new Target()), - data: abi.encodeCall(Target.init, (address(delegateOwner))) - }) - ); + function test_delegate_owner_single_non_delegatecall() public onTaiko { + vm.startPrank(deployer); + EssentialContract_EmptyStub stub1 = + _deployEssentialContract_EmptyStub("stub1", address(new EssentialContract_EmptyStub())); + vm.stopPrank(); bytes memory data = abi.encode( DelegateOwner.Call( uint64(0), - address(target1), + address(stub1), false, // CALL abi.encodeCall(EssentialContract.pause, ()) ) ); vm.expectRevert(DelegateOwner.DO_DRYRUN_SUCCEEDED.selector); - delegateOwner.dryrunInvocation(data); + tDelegateOwner.dryrunInvocation(data); IBridge.Message memory message; - message.from = remoteOwner; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.from = eBridge; + message.destChainId = taikoChainId; + message.srcChainId = ethereumChainId; message.destOwner = Bob; message.data = abi.encodeCall(DelegateOwner.onMessageInvocation, (data)); - message.to = address(delegateOwner); + message.to = address(tDelegateOwner); vm.prank(Bob); - bridge.processMessage(message, ""); + tBridge.processMessage(message, ""); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + bytes32 hash = tBridge.hashMessage(message); + assertTrue(tBridge.messageStatus(hash) == IBridge.Status.DONE); - assertEq(delegateOwner.nextTxId(), 1); - assertTrue(target1.paused()); + assertEq(tDelegateOwner.nextTxId(), 1); + assertTrue(stub1.paused()); } - function test_delegate_owner_single_non_delegatecall_self() public { - address delegateOwnerImpl2 = address(new DelegateOwner()); + function test_delegate_owner_single_non_delegatecall_self() public onTaiko { + address tDelegateOwnerImpl2 = address(new DelegateOwner()); bytes memory data = abi.encode( DelegateOwner.Call( uint64(0), - address(delegateOwner), + address(tDelegateOwner), false, // CALL - abi.encodeCall(UUPSUpgradeable.upgradeTo, (delegateOwnerImpl2)) + abi.encodeCall(UUPSUpgradeable.upgradeTo, (tDelegateOwnerImpl2)) ) ); vm.expectRevert(DelegateOwner.DO_DRYRUN_SUCCEEDED.selector); - delegateOwner.dryrunInvocation(data); + tDelegateOwner.dryrunInvocation(data); IBridge.Message memory message; - message.from = remoteOwner; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.from = eBridge; + message.destChainId = taikoChainId; + message.srcChainId = ethereumChainId; message.destOwner = Bob; message.data = abi.encodeCall(DelegateOwner.onMessageInvocation, (data)); - message.to = address(delegateOwner); + message.to = address(tDelegateOwner); vm.prank(Bob); - bridge.processMessage(message, ""); + tBridge.processMessage(message, ""); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + bytes32 hash = tBridge.hashMessage(message); + assertTrue(tBridge.messageStatus(hash) == IBridge.Status.DONE); - assertEq(delegateOwner.nextTxId(), 1); - assertEq(delegateOwner.impl(), delegateOwnerImpl2); + assertEq(tDelegateOwner.nextTxId(), 1); + assertEq(tDelegateOwner.impl(), tDelegateOwnerImpl2); } - function test_delegate_owner_delegate_multicall() public { - address impl1 = address(new Target()); - address impl2 = address(new Target()); + function test_delegate_owner_delegate_tMulticall() public onTaiko { + address tDelegateOwnerImpl2 = address(new DelegateOwner()); + address impl1 = address(new EssentialContract_EmptyStub()); + address impl2 = address(new EssentialContract_EmptyStub()); - address delegateOwnerImpl2 = address(new DelegateOwner()); - - Target target1 = Target( - deployProxy({ - name: "target1", - impl: impl1, - data: abi.encodeCall(Target.init, (address(delegateOwner))) - }) - ); - Target target2 = Target( - deployProxy({ - name: "target2", - impl: impl1, - data: abi.encodeCall(Target.init, (address(delegateOwner))) - }) - ); + vm.startPrank(deployer); + EssentialContract_EmptyStub stub1 = _deployEssentialContract_EmptyStub("stub1", impl1); + EssentialContract_EmptyStub stub2 = _deployEssentialContract_EmptyStub("stub2", impl2); + vm.stopPrank(); Multicall3.Call3[] memory calls = new Multicall3.Call3[](4); - calls[0].target = address(target1); + calls[0].target = address(stub1); calls[0].allowFailure = false; calls[0].callData = abi.encodeCall(EssentialContract.pause, ()); - calls[1].target = address(target2); + calls[1].target = address(stub2); calls[1].allowFailure = false; calls[1].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (impl2)); - calls[2].target = address(delegateOwner); + calls[2].target = address(tDelegateOwner); calls[2].allowFailure = false; - calls[2].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (delegateOwnerImpl2)); + calls[2].callData = abi.encodeCall(UUPSUpgradeable.upgradeTo, (tDelegateOwnerImpl2)); - calls[3].target = address(delegateOwner); + calls[3].target = address(tDelegateOwner); calls[3].allowFailure = false; calls[3].callData = abi.encodeCall(DelegateOwner.setAdmin, (David)); bytes memory data = abi.encode( DelegateOwner.Call( uint64(0), - address(multicall), + address(tMulticall), true, // DELEGATECALL abi.encodeCall(Multicall3.aggregate3, (calls)) ) ); vm.expectRevert(DelegateOwner.DO_DRYRUN_SUCCEEDED.selector); - delegateOwner.dryrunInvocation(data); + tDelegateOwner.dryrunInvocation(data); IBridge.Message memory message; - message.from = remoteOwner; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.from = eBridge; + message.destChainId = taikoChainId; + message.srcChainId = ethereumChainId; message.destOwner = Bob; message.data = abi.encodeCall(DelegateOwner.onMessageInvocation, (data)); - message.to = address(delegateOwner); + message.to = address(tDelegateOwner); vm.prank(Bob); - bridge.processMessage(message, ""); + tBridge.processMessage(message, ""); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + bytes32 hash = tBridge.hashMessage(message); + assertTrue(tBridge.messageStatus(hash) == IBridge.Status.DONE); - assertEq(delegateOwner.nextTxId(), 1); - assertTrue(target1.paused()); - assertEq(target2.impl(), impl2); - assertEq(delegateOwner.impl(), delegateOwnerImpl2); - assertEq(delegateOwner.admin(), David); + assertEq(tDelegateOwner.nextTxId(), 1); + assertTrue(stub1.paused()); + assertEq(stub2.impl(), impl2); + assertEq(tDelegateOwner.impl(), tDelegateOwnerImpl2); + assertEq(tDelegateOwner.admin(), David); + } + + function _deployEssentialContract_EmptyStub( + bytes32 name, + address impl + ) + private + returns (EssentialContract_EmptyStub) + { + return EssentialContract_EmptyStub( + deploy({ + name: name, + impl: impl, + data: abi.encodeCall(EssentialContract_EmptyStub.init, (address(tDelegateOwner))) + }) + ); } } diff --git a/packages/protocol/test/layer2/Layer2Test.sol b/packages/protocol/test/layer2/Layer2Test.sol new file mode 100644 index 00000000000..fb27409920a --- /dev/null +++ b/packages/protocol/test/layer2/Layer2Test.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/layer2/DelegateOwner.sol"; +import "src/layer2/based/LibEIP1559.sol"; +import "src/layer2/based/TaikoL2.sol"; +import "test/layer2/LibL2Signer.sol"; +import "test/shared/CommonTest.sol"; + +abstract contract Layer2Test is CommonTest { + function deployTaikoL2(address taikoL2Impl, uint64 l1ChainId) internal returns (TaikoL2) { + return TaikoL2( + deploy({ + name: "taiko", + impl: taikoL2Impl, + data: abi.encodeCall(TaikoL2.init, (address(0), address(resolver), l1ChainId, 0)) + }) + ); + } + + function deployDelegateOwner( + address remoteOwner, + uint64 remoteChainId + ) + internal + returns (DelegateOwner) + { + return DelegateOwner( + deploy({ + name: "delegate_owner", + impl: address(new DelegateOwner()), + data: abi.encodeCall( + DelegateOwner.init, (remoteOwner, address(resolver), remoteChainId, address(0)) + ) + }) + ); + } +} diff --git a/packages/protocol/test/layer2/LibEIP1559.t.sol b/packages/protocol/test/layer2/LibEIP1559.t.sol index 31368b2e494..6f7142eb9f3 100644 --- a/packages/protocol/test/layer2/LibEIP1559.t.sol +++ b/packages/protocol/test/layer2/LibEIP1559.t.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL2Test.sol"; +import "./Layer2Test.sol"; -contract TestLibEIP1559 is TaikoL2Test { +contract TestLibEIP1559 is Layer2Test { using LibMath for uint256; function test_ethQty() external { diff --git a/packages/protocol/test/layer2/LibL2Signer.sol b/packages/protocol/test/layer2/LibL2Signer.sol index 42cfc4e8734..2d5f50708c9 100644 --- a/packages/protocol/test/layer2/LibL2Signer.sol +++ b/packages/protocol/test/layer2/LibL2Signer.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "../shared/thirdparty/LibUint512Math.sol"; +import "test/shared/thirdparty/LibUint512Math.sol"; /// @title LibL2Signer /// @notice This contract allows for signing operations required on Taiko L2. diff --git a/packages/protocol/test/layer2/TaikoL2.t.sol b/packages/protocol/test/layer2/TaikoL2.t.sol index e312af8ecf7..4c127306d79 100644 --- a/packages/protocol/test/layer2/TaikoL2.t.sol +++ b/packages/protocol/test/layer2/TaikoL2.t.sol @@ -1,84 +1,59 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./TaikoL2Test.sol"; +import "./Layer2Test.sol"; +import "./helpers/TaikoL2_NoBaseFeeCheck.sol"; -contract TaikoL2ForTest is TaikoL2 { - function skipFeeCheck() public pure override returns (bool) { - return true; - } -} - -contract TaikoL2Tests is TaikoL2Test { - using SafeCast for uint256; - - uint64 public constant L1_CHAIN_ID = 12_345; +contract TestTaikoL2 is Layer2Test { uint32 public constant BLOCK_GAS_LIMIT = 30_000_000; - address public addressManager; uint64 public anchorBlockId; - TaikoL2ForTest public L2; + TaikoL2 public taikoL2; + SignalService public signalService; - function setUp() public { - addressManager = deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }); - - SignalService ss = SignalService( - deployProxy({ + function setUpOnTaiko() internal override { + signalService = SignalService( + deploy({ name: "signal_service", impl: address(new SignalService()), - data: abi.encodeCall(SignalService.init, (address(0), addressManager)), - registerTo: addressManager + data: abi.encodeCall(SignalService.init, (address(0), address(resolver))) }) ); - L2 = TaikoL2ForTest( - payable( - deployProxy({ - name: "taiko", - impl: address(new TaikoL2ForTest()), - data: abi.encodeCall(TaikoL2.init, (address(0), addressManager, L1_CHAIN_ID, 0)), - registerTo: addressManager - }) - ) - ); + taikoL2 = deployTaikoL2(address(new TaikoL2_NoBaseFeeCheck()), ethereumChainId); - ss.authorize(address(L2), true); - vm.roll(block.number + 1); - vm.warp(block.timestamp + 30); - vm.deal(address(L2), 100 ether); + signalService.authorize(address(taikoL2), true); + mineOneBlockAndWrap(30 seconds); + vm.deal(address(taikoL2), 100 ether); } // calling anchor in the same block more than once should fail - function test_L2_AnchorTx_revert_in_same_block() external { + function test_L2_AnchorTx_revert_in_same_block() external onTaiko { vm.fee(1); - vm.prank(L2.GOLDEN_TOUCH_ADDRESS()); + vm.prank(taikoL2.GOLDEN_TOUCH_ADDRESS()); _anchorV2(BLOCK_GAS_LIMIT); - vm.prank(L2.GOLDEN_TOUCH_ADDRESS()); + vm.prank(taikoL2.GOLDEN_TOUCH_ADDRESS()); vm.expectRevert(TaikoL2.L2_PUBLIC_INPUT_HASH_MISMATCH.selector); _anchorV2(BLOCK_GAS_LIMIT); } // calling anchor in the same block more than once should fail - function test_L2_AnchorTx_revert_from_wrong_signer() external { + function test_L2_AnchorTx_revert_from_wrong_signer() external onTaiko { vm.fee(1); vm.expectRevert(TaikoL2.L2_INVALID_SENDER.selector); _anchorV2(BLOCK_GAS_LIMIT); } - function test_L2_AnchorTx_signing(bytes32 digest) external { + function test_L2_AnchorTx_signing(bytes32 digest) external onTaiko { (uint8 v, uint256 r, uint256 s) = LibL2Signer.signAnchor(digest, uint8(1)); address signer = ecrecover(digest, v + 27, bytes32(r), bytes32(s)); - assertEq(signer, L2.GOLDEN_TOUCH_ADDRESS()); + assertEq(signer, taikoL2.GOLDEN_TOUCH_ADDRESS()); (v, r, s) = LibL2Signer.signAnchor(digest, uint8(2)); signer = ecrecover(digest, v + 27, bytes32(r), bytes32(s)); - assertEq(signer, L2.GOLDEN_TOUCH_ADDRESS()); + assertEq(signer, taikoL2.GOLDEN_TOUCH_ADDRESS()); vm.expectRevert(LibL2Signer.L2_INVALID_GOLDEN_TOUCH_K.selector); LibL2Signer.signAnchor(digest, uint8(0)); @@ -87,20 +62,20 @@ contract TaikoL2Tests is TaikoL2Test { LibL2Signer.signAnchor(digest, uint8(3)); } - function test_L2_withdraw() external { - vm.prank(L2.owner(), L2.owner()); - L2.withdraw(address(0), Alice); - assertEq(address(L2).balance, 0 ether); + function test_L2_withdraw() external onTaiko { + vm.prank(taikoL2.owner()); + taikoL2.withdraw(address(0), Alice); + assertEq(address(taikoL2).balance, 0 ether); assertEq(Alice.balance, 100 ether); // Random EOA cannot call withdraw - vm.expectRevert(AddressResolver.RESOLVER_DENIED.selector); + vm.expectRevert(EssentialContract.ACCESS_DENIED.selector); vm.prank(Alice, Alice); - L2.withdraw(address(0), Alice); + taikoL2.withdraw(address(0), Alice); } - function test_L2_getBlockHash() external { - assertEq(L2.getBlockHash(uint64(1000)), 0); + function test_L2_getBlockHash() external onTaiko { + assertEq(taikoL2.getBlockHash(uint64(1000)), 0); } /// forge-config: layer2.fuzz.runs = 2000 @@ -114,6 +89,7 @@ contract TaikoL2Tests is TaikoL2Test { uint8 _sharingPctg ) external + onTaiko { LibSharedData.BaseFeeConfig memory baseFeeConfig = LibSharedData.BaseFeeConfig({ adjustmentQuotient: _adjustmentQuotient, @@ -123,7 +99,7 @@ contract TaikoL2Tests is TaikoL2Test { maxGasIssuancePerBlock: _maxGasIssuancePerBlock }); - (uint256 basefee_,,) = L2.getBasefeeV2(_parentGasUsed, baseFeeConfig); + (uint256 basefee_,,) = taikoL2.getBasefeeV2(_parentGasUsed, baseFeeConfig); assertTrue(basefee_ != 0, "basefee is 0"); } @@ -138,6 +114,7 @@ contract TaikoL2Tests is TaikoL2Test { uint8 _sharingPctg ) external + onTaiko { if (_parentGasUsed == 0) _parentGasUsed = 1; if (_gasIssuancePerSecond == 0) _gasIssuancePerSecond = 1; @@ -153,21 +130,22 @@ contract TaikoL2Tests is TaikoL2Test { }); bytes32 anchorStateRoot = bytes32(uint256(1)); - vm.prank(L2.GOLDEN_TOUCH_ADDRESS()); - L2.anchorV2(++anchorBlockId, anchorStateRoot, _parentGasUsed, baseFeeConfig); + vm.prank(taikoL2.GOLDEN_TOUCH_ADDRESS()); + taikoL2.anchorV2(++anchorBlockId, anchorStateRoot, _parentGasUsed, baseFeeConfig); - (uint256 basefee, uint64 newGasTarget,) = L2.getBasefeeV2(_parentGasUsed, baseFeeConfig); + (uint256 basefee, uint64 newGasTarget,) = + taikoL2.getBasefeeV2(_parentGasUsed, baseFeeConfig); assertTrue(basefee != 0, "basefee is 0"); - assertEq(newGasTarget, L2.parentGasTarget()); + assertEq(newGasTarget, taikoL2.parentGasTarget()); // change the gas issuance to change the gas target baseFeeConfig.gasIssuancePerSecond += 1; - (basefee, newGasTarget,) = L2.getBasefeeV2(_parentGasUsed, baseFeeConfig); + (basefee, newGasTarget,) = taikoL2.getBasefeeV2(_parentGasUsed, baseFeeConfig); assertTrue(basefee != 0, "basefee is 0"); - assertTrue(newGasTarget != L2.parentGasTarget()); + assertTrue(newGasTarget != taikoL2.parentGasTarget()); } function _anchorV2(uint32 parentGasUsed) private { @@ -179,6 +157,6 @@ contract TaikoL2Tests is TaikoL2Test { minGasExcess: 1_340_000_000, maxGasIssuancePerBlock: 600_000_000 // two minutes }); - L2.anchorV2(++anchorBlockId, anchorStateRoot, parentGasUsed, baseFeeConfig); + taikoL2.anchorV2(++anchorBlockId, anchorStateRoot, parentGasUsed, baseFeeConfig); } } diff --git a/packages/protocol/test/layer2/TaikoL2Test.sol b/packages/protocol/test/layer2/TaikoL2Test.sol deleted file mode 100644 index a57ad6c00d7..00000000000 --- a/packages/protocol/test/layer2/TaikoL2Test.sol +++ /dev/null @@ -1,10 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/layer2/DelegateOwner.sol"; -import "src/layer2/based/LibEIP1559.sol"; -import "src/layer2/based/TaikoL2.sol"; -import "test/layer2/LibL2Signer.sol"; -import "test/shared/TaikoTest.sol"; - -abstract contract TaikoL2Test is TaikoTest { } diff --git a/packages/protocol/test/layer2/helpers/TaikoL2_NoBaseFeeCheck.sol b/packages/protocol/test/layer2/helpers/TaikoL2_NoBaseFeeCheck.sol new file mode 100644 index 00000000000..598e3690ff5 --- /dev/null +++ b/packages/protocol/test/layer2/helpers/TaikoL2_NoBaseFeeCheck.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/layer2/based/TaikoL2.sol"; + +contract TaikoL2_NoBaseFeeCheck is TaikoL2 { + function skipFeeCheck() public pure override returns (bool) { + return true; + } +} diff --git a/packages/protocol/test/shared/CommonTest.sol b/packages/protocol/test/shared/CommonTest.sol new file mode 100644 index 00000000000..2b7a18d8640 --- /dev/null +++ b/packages/protocol/test/shared/CommonTest.sol @@ -0,0 +1,251 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "forge-std/src/Test.sol"; +import "forge-std/src/console2.sol"; +import "forge-std/src/Script.sol"; + +import "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import "@openzeppelin/contracts/utils/Strings.sol"; +import "@optimism/packages/contracts-bedrock/src/EAS/Common.sol"; + +import "src/shared/common/DefaultResolver.sol"; +import "src/shared/tokenvault/BridgedERC20V2.sol"; +import "src/shared/tokenvault/BridgedERC721.sol"; +import "src/shared/tokenvault/BridgedERC1155.sol"; +import "src/shared/tokenvault/ERC20Vault.sol"; +import "src/shared/tokenvault/ERC721Vault.sol"; +import "src/shared/tokenvault/ERC1155Vault.sol"; +import "src/shared/bridge/Bridge.sol"; +import "src/shared/bridge/QuotaManager.sol"; +import "src/layer1/token/TaikoToken.sol"; +import "test/shared/helpers/SignalService_WithoutProofVerification.sol"; + +abstract contract CommonTest is Test, Script { + uint256 private _seed = 0x12345678; + address internal Alice = vm.addr(0x1); + address internal Bob = vm.addr(0x2); + address internal Carol = vm.addr(0x3); + address internal David = vm.addr(0x4); + address internal Emma = vm.addr(0x5); + address internal Frank = randAddress(); + address internal Grace = randAddress(); + address internal Henry = randAddress(); + address internal Isabella = randAddress(); + address internal James = randAddress(); + address internal Katherine = randAddress(); + address internal Liam = randAddress(); + address internal Mia = randAddress(); + address internal Noah = randAddress(); + address internal Olivia = randAddress(); + address internal Patrick = randAddress(); + address internal Quinn = randAddress(); + address internal Rachel = randAddress(); + address internal Samuel = randAddress(); + address internal Taylor = randAddress(); + address internal Ulysses = randAddress(); + address internal Victoria = randAddress(); + address internal William = randAddress(); + address internal Xavier = randAddress(); + address internal Yasmine = randAddress(); + address internal Zachary = randAddress(); + + address internal deployer = msg.sender; + DefaultResolver internal resolver; + uint64 ethereumChainId; + uint64 taikoChainId; + + modifier onEthereum() { + vm.chainId(ethereumChainId); + _; + } + + modifier onTaiko() { + vm.chainId(taikoChainId); + _; + vm.chainId(ethereumChainId); + } + + modifier transactBy(address transactor) { + vm.deal(transactor, 100 ether); + vm.startPrank(transactor); + + _; + vm.stopPrank(); + } + + function setUp() public virtual { + console2.log("deployer: ", deployer); + vm.deal(deployer, 100 ether); + vm.startPrank(deployer); + + ethereumChainId = uint64(block.chainid); + taikoChainId = ethereumChainId + 10_000; + + resolver = deployDefaultResolver(); + + setUpOnEthereum(); + + vm.chainId(taikoChainId); + setUpOnTaiko(); + vm.chainId(ethereumChainId); + vm.stopPrank(); + } + + function setUpOnEthereum() internal virtual { } + function setUpOnTaiko() internal virtual { } + + function randAddress() internal returns (address) { + bytes32 randomHash = keccak256(abi.encodePacked("address", _seed++)); + return address(bytes20(randomHash)); + } + + function randBytes32() internal returns (bytes32) { + return keccak256(abi.encodePacked("bytes32", _seed++)); + } + + function mineOneBlockAndWrap(uint256 time) internal { + vm.roll(block.number + 1); + vm.warp(block.timestamp + time); + } + + function register(bytes32 name, address addr) internal { + if (name != "") { + resolver.registerAddress(block.chainid, name, addr); + console2.log(">", string.concat("'", bytes32ToString(name), "'")); + console2.log(" addr :", addr); + console2.log(" chain id:", block.chainid); + } + } + + function deploy( + bytes32 name, + address impl, + bytes memory data + ) + internal + returns (address proxy) + { + proxy = address(new ERC1967Proxy(impl, data)); + string memory _name = Strings.toString(uint256(name)); + vm.writeJson( + vm.serializeAddress("deployment", _name, proxy), + string.concat(vm.projectRoot(), "/deployments/deploy_l1.json") + ); + + console2.log(">", string.concat("'", bytes32ToString(name), "'")); + console2.log(" proxy :", proxy); + console2.log(" impl :", impl); + console2.log(" owner :", OwnableUpgradeable(proxy).owner()); + console2.log(" chain id:", block.chainid); + if (name != "" && resolver != IResolver(address(0))) { + console2.log(" resolver:", address(resolver)); + resolver.registerAddress(block.chainid, name, proxy); + } + } + + function deployDefaultResolver() internal returns (DefaultResolver) { + return DefaultResolver( + deploy({ + name: "resolver", + impl: address(new DefaultResolver()), + data: abi.encodeCall(DefaultResolver.init, (address(0))) + }) + ); + } + + function deploySignalService(address signalServiceImpl) internal returns (SignalService) { + return SignalService( + deploy({ + name: "signal_service", + impl: signalServiceImpl, + data: abi.encodeCall(SignalService.init, (address(0), address(resolver))) + }) + ); + } + + function deployTaikoToken() internal returns (TaikoToken) { + return TaikoToken( + deploy({ + name: "taiko_token", + impl: address(new TaikoToken()), + data: abi.encodeCall(TaikoToken.init, (address(0), address(this))) + }) + ); + } + + function deployBridgedERC20( + address srcToken, + uint256 _ethereumChainId, + uint8 decimals, + string memory symbol, + string memory name + ) + internal + returns (BridgedERC20) + { + return BridgedERC20( + deploy({ + name: "erc20_token", + impl: address(new BridgedERC20()), + data: abi.encodeCall( + BridgedERC20.init, + (address(0), address(resolver), srcToken, _ethereumChainId, decimals, symbol, name) + ) + }) + ); + } + + function deployBridge(address bridgeImpl) internal returns (Bridge) { + return Bridge( + deploy({ + name: "bridge", + impl: bridgeImpl, + data: abi.encodeCall(Bridge.init, (address(0), address(resolver))) + }) + ); + } + + function deployQuotaManager() internal returns (QuotaManager) { + return QuotaManager( + deploy({ + name: "quota_manager", + impl: address(new QuotaManager()), + data: abi.encodeCall(QuotaManager.init, (address(0), address(resolver), 24 hours)) + }) + ); + } + + function deployERC20Vault() internal returns (ERC20Vault) { + return ERC20Vault( + deploy({ + name: "erc20_vault", + impl: address(new ERC20Vault()), + data: abi.encodeCall(ERC20Vault.init, (address(0), address(resolver))) + }) + ); + } + + function deployERC721Vault() internal returns (ERC721Vault) { + return ERC721Vault( + deploy({ + name: "erc721_vault", + impl: address(new ERC721Vault()), + data: abi.encodeCall(ERC721Vault.init, (address(0), address(resolver))) + }) + ); + } + + function deployERC1155Vault() internal returns (ERC1155Vault) { + return ERC1155Vault( + deploy({ + name: "erc1155_vault", + impl: address(new ERC1155Vault()), + data: abi.encodeCall(ERC1155Vault.init, (address(0), address(resolver))) + }) + ); + } +} diff --git a/packages/protocol/test/shared/DeployCapability.sol b/packages/protocol/test/shared/DeployCapability.sol deleted file mode 100644 index fd2a8681bcd..00000000000 --- a/packages/protocol/test/shared/DeployCapability.sol +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.8.24; - -import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; - -import "forge-std/src/console2.sol"; -import "forge-std/src/Script.sol"; - -import "src/shared/common/AddressManager.sol"; - -/// @title DeployCapability -abstract contract DeployCapability is Script { - error ADDRESS_NULL(); - - function deployProxy( - string memory name, - address impl, - bytes memory data, - address registerTo - ) - internal - returns (address proxy) - { - proxy = address(new ERC1967Proxy(impl, data)); - - if (registerTo != address(0)) { - AddressManager(registerTo).setAddress( - uint64(block.chainid), bytes32(bytes(name)), proxy - ); - } - - console2.log(">", name, "@", registerTo); - console2.log(" proxy :", proxy); - console2.log(" impl :", impl); - console2.log(" owner :", OwnableUpgradeable(proxy).owner()); - console2.log(" msg.sender :", msg.sender); - console2.log(" this :", address(this)); - - vm.writeJson( - vm.serializeAddress("deployment", name, proxy), - string.concat(vm.projectRoot(), "/deployments/deploy_l1.json") - ); - } - - function deployProxy( - string memory name, - address impl, - bytes memory data - ) - internal - returns (address proxy) - { - return deployProxy(name, impl, data, address(0)); - } - - function register(address registerTo, string memory name, address addr) internal { - register(registerTo, name, addr, uint64(block.chainid)); - } - - function register( - address registerTo, - string memory name, - address addr, - uint64 chainId - ) - internal - { - if (registerTo == address(0)) revert ADDRESS_NULL(); - if (addr == address(0)) revert ADDRESS_NULL(); - AddressManager(registerTo).setAddress(chainId, bytes32(bytes(name)), addr); - console2.log("> ", name, "@", registerTo); - console2.log("\t addr : ", addr); - } - - function copyRegister(address registerTo, address readFrom, string memory name) internal { - if (registerTo == address(0)) revert ADDRESS_NULL(); - if (readFrom == address(0)) revert ADDRESS_NULL(); - - register({ - registerTo: registerTo, - name: name, - addr: AddressManager(readFrom).getAddress(uint64(block.chainid), bytes32(bytes(name))), - chainId: uint64(block.chainid) - }); - } -} diff --git a/packages/protocol/test/shared/HelperContracts.sol b/packages/protocol/test/shared/HelperContracts.sol deleted file mode 100644 index 769b7a5fed0..00000000000 --- a/packages/protocol/test/shared/HelperContracts.sol +++ /dev/null @@ -1,51 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "src/shared/bridge/Bridge.sol"; -import "src/shared/signal/SignalService.sol"; - -contract BadReceiver { - receive() external payable { - revert("can not send to this contract"); - } - - fallback() external payable { - revert("can not send to this contract"); - } - - function transfer() public pure { - revert("this fails"); - } -} - -contract GoodReceiver is IMessageInvocable { - receive() external payable { } - - function onMessageInvocation(bytes calldata data) public payable { - address addr = abi.decode(data, (address)); - payable(addr).transfer(address(this).balance / 2); - } -} - -// NonNftContract -contract NonNftContract { - uint256 dummyData; - - constructor(uint256 _dummyData) { - dummyData = _dummyData; - } -} - -contract SkipProofCheckSignal is SignalService { - function proveSignalReceived( - uint64, /*srcChainId*/ - address, /*app*/ - bytes32, /*signal*/ - bytes calldata /*proof*/ - ) - public - pure - override - returns (uint256) - { } -} diff --git a/packages/protocol/test/shared/TaikoTest.sol b/packages/protocol/test/shared/TaikoTest.sol deleted file mode 100644 index a71bb75ae8f..00000000000 --- a/packages/protocol/test/shared/TaikoTest.sol +++ /dev/null @@ -1,66 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "forge-std/src/Test.sol"; - -import "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; - -import "src/shared/tokenvault/BridgedERC20V2.sol"; -import "src/shared/tokenvault/BridgedERC721.sol"; -import "src/shared/tokenvault/BridgedERC1155.sol"; -import "src/shared/tokenvault/ERC20Vault.sol"; -import "src/shared/tokenvault/ERC721Vault.sol"; -import "src/shared/tokenvault/ERC1155Vault.sol"; -import "./token/FreeMintERC20.sol"; -import "./token/RegularERC20.sol"; -import "./token/MayFailFreeMintERC20.sol"; -import "./DeployCapability.sol"; -import "./HelperContracts.sol"; - -abstract contract TaikoTest is Test, DeployCapability { - uint256 private _seed = 0x12345678; - address internal Alice = vm.addr(0x1); - address internal Bob = vm.addr(0x2); - address internal Carol = vm.addr(0x3); - address internal David = vm.addr(0x4); - address internal Emma = vm.addr(0x5); - address internal Frank = randAddress(); - address internal Grace = randAddress(); - address internal Henry = randAddress(); - address internal Isabella = randAddress(); - address internal James = randAddress(); - address internal Katherine = randAddress(); - address internal Liam = randAddress(); - address internal Mia = randAddress(); - address internal Noah = randAddress(); - address internal Olivia = randAddress(); - address internal Patrick = randAddress(); - address internal Quinn = randAddress(); - address internal Rachel = randAddress(); - address internal Samuel = randAddress(); - address internal Taylor = randAddress(); - address internal Ulysses = randAddress(); - address internal Victoria = randAddress(); - address internal William = randAddress(); - address internal Xavier = randAddress(); - address internal Yasmine = randAddress(); - address internal Zachary = randAddress(); - - function randAddress() internal returns (address) { - bytes32 randomHash = keccak256(abi.encodePacked("address", _seed++)); - return address(bytes20(randomHash)); - } - - function randBytes32() internal returns (bytes32) { - return keccak256(abi.encodePacked("bytes32", _seed++)); - } - - function strToBytes32(string memory input) internal pure returns (bytes32 result) { - require(bytes(input).length <= 32, "String too long"); - // Copy the string's bytes directly into the bytes32 variable - assembly { - result := mload(add(input, 32)) - } - } -} diff --git a/packages/protocol/test/shared/bridge/Bridge.t.sol b/packages/protocol/test/shared/bridge/Bridge.t.sol deleted file mode 100644 index 9406a70ce1c..00000000000 --- a/packages/protocol/test/shared/bridge/Bridge.t.sol +++ /dev/null @@ -1,623 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "../TaikoTest.sol"; - -// A contract which is not our ErcXXXTokenVault -// Which in such case, the sent funds are still recoverable, but not via the -// onMessageRecall() but Bridge will send it back -contract UntrustedSendMessageRelayer { - function sendMessage( - address bridge, - IBridge.Message memory message, - uint256 message_value - ) - public - returns (bytes32 msgHash, IBridge.Message memory updatedMessage) - { - return IBridge(bridge).sendMessage{ value: message_value }(message); - } -} - -// A malicious contract that attempts to exhaust gas -contract MaliciousContract2 { - fallback() external payable { - while (true) { } // infinite loop - } -} - -// Non malicious contract that does not exhaust gas -contract NonMaliciousContract1 { - fallback() external payable { } -} - -contract BridgeTest is TaikoTest { - AddressManager addressManager; - BadReceiver badReceiver; - GoodReceiver goodReceiver; - Bridge bridge; - Bridge destChainBridge; - SignalService signalService; - SkipProofCheckSignal mockProofSignalService; - UntrustedSendMessageRelayer untrustedSenderContract; - - NonMaliciousContract1 nonmaliciousContract1; - MaliciousContract2 maliciousContract2; - - address mockDAO = randAddress(); //as "real" L1 owner - - uint64 destChainId = 19_389; - - function setUp() public { - vm.startPrank(Alice); - vm.deal(Alice, 100 ether); - - addressManager = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }) - ); - - bridge = Bridge( - payable( - deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ) - ); - - destChainBridge = Bridge( - payable( - deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), address(addressManager))) - }) - ) - ); - - // "Deploy" on L2 only - uint64 l1ChainId = uint64(block.chainid); - vm.chainId(destChainId); - - vm.chainId(l1ChainId); - - mockProofSignalService = SkipProofCheckSignal( - deployProxy({ - name: "signal_service", - impl: address(new SkipProofCheckSignal()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ); - - signalService = SignalService( - deployProxy({ - name: "signal_service", - impl: address(new SignalService()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))) - }) - ); - - vm.deal(address(destChainBridge), 100 ether); - - untrustedSenderContract = new UntrustedSendMessageRelayer(); - vm.deal(address(untrustedSenderContract), 10 ether); - - register( - address(addressManager), "signal_service", address(mockProofSignalService), destChainId - ); - - register(address(addressManager), "bridge", address(destChainBridge), destChainId); - - register(address(addressManager), "taiko", address(uint160(123)), destChainId); - - register(address(addressManager), "bridge_watchdog", address(uint160(123)), destChainId); - - vm.stopPrank(); - } - - function test_Bridge_send_ether_to_to_with_value() public { - IBridge.Message memory message = IBridge.Message({ - id: 0, - from: address(bridge), - srcChainId: uint64(block.chainid), - destChainId: destChainId, - srcOwner: Alice, - destOwner: Alice, - to: Alice, - value: 10_000, - fee: 1000, - gasLimit: 1_000_000, - data: "" - }); - // Mocking proof - but obviously it needs to be created in prod - // corresponding to the message - bytes memory proof = hex"00"; - - bytes32 msgHash = destChainBridge.hashMessage(message); - - vm.chainId(destChainId); - vm.prank(Bob, Bob); - destChainBridge.processMessage(message, proof); - - IBridge.Status status = destChainBridge.messageStatus(msgHash); - - assertEq(status == IBridge.Status.DONE, true); - // Alice has 100 ether + 1000 wei balance, because we did not use the - // 'sendMessage' - // since we mocking the proof, so therefore the 1000 wei - // deduction/transfer did not happen - assertTrue(Alice.balance >= 100 ether + 10_000); - assertTrue(Alice.balance <= 100 ether + 10_000 + 1000); - assertTrue(Bob.balance >= 0 && Bob.balance <= 1000); - } - - function test_Bridge_send_ether_to_contract_with_value_simple() public { - goodReceiver = new GoodReceiver(); - - IBridge.Message memory message = IBridge.Message({ - id: 0, - from: address(bridge), - srcChainId: uint64(block.chainid), - destChainId: destChainId, - srcOwner: Alice, - destOwner: Alice, - to: address(goodReceiver), - value: 10_000, - fee: 1000, - gasLimit: 1_000_000, - data: "" - }); - // Mocking proof - but obviously it needs to be created in prod - // corresponding to the message - bytes memory proof = hex"00"; - - bytes32 msgHash = destChainBridge.hashMessage(message); - - vm.chainId(destChainId); - - vm.prank(Bob, Bob); - destChainBridge.processMessage(message, proof); - - IBridge.Status status = destChainBridge.messageStatus(msgHash); - - assertEq(status == IBridge.Status.DONE, true); - - // Bob (relayer) and goodContract has 1000 wei balance - assertEq(address(goodReceiver).balance, 10_000); - console2.log("Bob.balance:", Bob.balance); - assertTrue(Bob.balance >= 0 && Bob.balance <= 1000); - } - - function test_Bridge_send_ether_to_contract_with_value_and_message_data() public { - goodReceiver = new GoodReceiver(); - - IBridge.Message memory message = IBridge.Message({ - id: 0, - from: address(bridge), - srcChainId: uint64(block.chainid), - destChainId: destChainId, - srcOwner: Alice, - destOwner: Alice, - to: address(goodReceiver), - value: 1000, - fee: 1000, - gasLimit: 1_000_000, - data: abi.encodeCall(GoodReceiver.onMessageInvocation, abi.encode(Carol)) - }); - // Mocking proof - but obviously it needs to be created in prod - // corresponding to the message - bytes memory proof = hex"00"; - - bytes32 msgHash = destChainBridge.hashMessage(message); - - vm.chainId(destChainId); - - vm.prank(Bob, Bob); - destChainBridge.processMessage(message, proof); - - IBridge.Status status = destChainBridge.messageStatus(msgHash); - - assertEq(status == IBridge.Status.DONE, true); - - // Carol and goodContract has 500 wei balance - assertEq(address(goodReceiver).balance, 500); - assertEq(Carol.balance, 500); - } - - function test_Bridge_send_message_ether_reverts_if_value_doesnt_match_expected() public { - // uint256 amount = 1 wei; - IBridge.Message memory message = newMessage({ - owner: Alice, - to: Alice, - value: 0, - gasLimit: 1_000_000, - fee: 1_000_000, - destChain: destChainId - }); - - vm.expectRevert(Bridge.B_INVALID_VALUE.selector); - bridge.sendMessage(message); - } - - function test_Bridge_send_message_ether_reverts_when_owner_is_zero_address() public { - uint256 amount = 1 wei; - IBridge.Message memory message = newMessage({ - owner: address(0), - to: Alice, - value: 0, - gasLimit: 0, - fee: 0, - destChain: destChainId - }); - - vm.expectRevert(EssentialContract.ZERO_ADDRESS.selector); - bridge.sendMessage{ value: amount }(message); - } - - function test_Bridge_send_message_ether_reverts_when_dest_chain_is_not_enabled() public { - uint256 amount = 1 wei; - IBridge.Message memory message = newMessage({ - owner: Alice, - to: Alice, - value: 0, - gasLimit: 0, - fee: 0, - destChain: destChainId + 1 - }); - - vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); - bridge.sendMessage{ value: amount }(message); - } - - function test_Bridge_send_message_ether_reverts_when_dest_chain_same_as_block_chainid() - public - { - uint256 amount = 1 wei; - IBridge.Message memory message = newMessage({ - owner: Alice, - to: Alice, - value: 0, - gasLimit: 0, - fee: 0, - destChain: uint64(block.chainid) - }); - - vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); - bridge.sendMessage{ value: amount }(message); - } - - function test_Bridge_send_message_ether_with_no_processing_fee() public { - uint256 amount = 0 wei; - IBridge.Message memory message = newMessage({ - owner: Alice, - to: Alice, - value: 0, - gasLimit: 0, - fee: 0, - destChain: destChainId - }); - - (, IBridge.Message memory _message) = bridge.sendMessage{ value: amount }(message); - assertEq(bridge.isMessageSent(_message), true); - } - - function test_Bridge_send_message_ether_with_processing_fee() public { - uint256 amount = 0 wei; - uint64 fee = 1_000_000 wei; - IBridge.Message memory message = newMessage({ - owner: Alice, - to: Alice, - value: 0, - gasLimit: 1_000_000, - fee: fee, - destChain: destChainId - }); - - (, IBridge.Message memory _message) = bridge.sendMessage{ value: amount + fee }(message); - assertEq(bridge.isMessageSent(_message), true); - } - - function test_Bridge_recall_message_ether() public { - uint256 amount = 1 ether; - uint64 fee = 0 wei; - IBridge.Message memory message = newMessage({ - owner: Alice, - to: Alice, - value: amount, - gasLimit: 0, - fee: fee, - destChain: destChainId - }); - - uint256 starterBalanceVault = address(bridge).balance; - uint256 starterBalanceAlice = Alice.balance; - - vm.prank(Alice, Alice); - (, IBridge.Message memory _message) = bridge.sendMessage{ value: amount + fee }(message); - assertEq(bridge.isMessageSent(_message), true); - - assertEq(address(bridge).balance, (starterBalanceVault + amount + fee)); - assertEq(Alice.balance, (starterBalanceAlice - (amount + fee))); - bridge.recallMessage(message, ""); - - assertEq(address(bridge).balance, (starterBalanceVault + fee)); - assertEq(Alice.balance, (starterBalanceAlice - fee)); - } - - function test_Bridge_recall_message_but_not_supports_recall_interface() public { - // In this test we expect that the 'message value is still refundable, - // just not via - // ERCXXTokenVault (message.from) but directly from the Bridge - - uint256 amount = 1 ether; - uint64 fee = 0 wei; - IBridge.Message memory message = newMessage({ - owner: Alice, - to: Alice, - value: amount, - gasLimit: 0, - fee: fee, - destChain: destChainId - }); - - uint256 starterBalanceVault = address(bridge).balance; - - (, message) = untrustedSenderContract.sendMessage(address(bridge), message, amount + fee); - - assertEq(address(bridge).balance, (starterBalanceVault + amount + fee)); - - bridge.recallMessage(message, ""); - - assertEq(address(bridge).balance, (starterBalanceVault + fee)); - } - - function test_Bridge_send_message_ether_with_processing_fee_invalid_amount() public { - uint256 amount = 0 wei; - uint64 fee = 1_000_000 wei; - IBridge.Message memory message = newMessage({ - owner: Alice, - to: Alice, - value: 0, - gasLimit: 1_000_000, - fee: fee, - destChain: destChainId - }); - - vm.expectRevert(Bridge.B_INVALID_VALUE.selector); - bridge.sendMessage{ value: amount }(message); - } - - // test with a known good merkle proof / message since we cant generate - // proofs via rpc - // in foundry - function test_Bridge_process_message() public { - // This predefined successful process message call fails now - // since we modified the iBridge.Message struct and cut out - // depositValue - vm.startPrank(Alice); - (IBridge.Message memory message, bytes memory proof) = - setUpPredefinedSuccessfulProcessMessageCall(); - - bytes32 msgHash = destChainBridge.hashMessage(message); - - destChainBridge.processMessage(message, proof); - - IBridge.Status status = destChainBridge.messageStatus(msgHash); - - assertEq(status == IBridge.Status.DONE, true); - } - - // test with a known good merkle proof / message since we cant generate - // proofs via rpc - // in foundry - function test_Bridge_retry_message_and_end_up_in_failed_status() public { - vm.startPrank(Alice); - (IBridge.Message memory message, bytes memory proof) = - setUpPredefinedSuccessfulProcessMessageCall(); - - // etch bad receiver at the to address, so it fails. - vm.etch(message.to, address(badReceiver).code); - - bytes32 msgHash = destChainBridge.hashMessage(message); - - destChainBridge.processMessage(message, proof); - - IBridge.Status status = destChainBridge.messageStatus(msgHash); - - assertEq(status == IBridge.Status.RETRIABLE, true); - - vm.stopPrank(); - - vm.prank(message.destOwner); - vm.expectRevert(Bridge.B_RETRY_FAILED.selector); - destChainBridge.retryMessage(message, false); - - vm.prank(message.destOwner); - destChainBridge.retryMessage(message, true); - IBridge.Status postRetryStatus = destChainBridge.messageStatus(msgHash); - assertEq(postRetryStatus == IBridge.Status.FAILED, true); - } - - function test_Bridge_fail_message() public { - vm.startPrank(Alice); - (IBridge.Message memory message, bytes memory proof) = - setUpPredefinedSuccessfulProcessMessageCall(); - - // etch bad receiver at the to address, so it fails. - vm.etch(message.to, address(badReceiver).code); - - bytes32 msgHash = destChainBridge.hashMessage(message); - - destChainBridge.processMessage(message, proof); - - IBridge.Status status = destChainBridge.messageStatus(msgHash); - - assertEq(status == IBridge.Status.RETRIABLE, true); - - vm.stopPrank(); - - vm.prank(message.destOwner); - destChainBridge.failMessage(message); - IBridge.Status postRetryStatus = destChainBridge.messageStatus(msgHash); - assertEq(postRetryStatus == IBridge.Status.FAILED, true); - } - - function test_processMessage_InvokeMessageCall_DoS1() public { - nonmaliciousContract1 = new NonMaliciousContract1(); - - IBridge.Message memory message = IBridge.Message({ - id: 0, - from: address(this), - srcChainId: uint64(block.chainid), - destChainId: destChainId, - srcOwner: Alice, - destOwner: Alice, - to: address(nonmaliciousContract1), - value: 1000, - fee: 1000, - gasLimit: 1_000_000, - data: "" - }); - - bytes memory proof = hex"00"; - bytes32 msgHash = destChainBridge.hashMessage(message); - vm.chainId(destChainId); - vm.prank(Bob, Bob); - - destChainBridge.processMessage(message, proof); - - IBridge.Status status = destChainBridge.messageStatus(msgHash); - assertEq(status == IBridge.Status.DONE, true); // test pass check - } - - function test_processMessage_InvokeMessageCall_DoS2_testfail() public { - maliciousContract2 = new MaliciousContract2(); - - IBridge.Message memory message = IBridge.Message({ - id: 0, - from: address(this), - srcChainId: uint64(block.chainid), - destChainId: destChainId, - srcOwner: Alice, - destOwner: Alice, - to: address(maliciousContract2), - value: 1000, - fee: 1000, - gasLimit: 1_000_000, - data: "" - }); - - bytes memory proof = hex"00"; - bytes32 msgHash = destChainBridge.hashMessage(message); - vm.chainId(destChainId); - vm.prank(Bob, Bob); - - destChainBridge.processMessage(message, proof); - - IBridge.Status status = destChainBridge.messageStatus(msgHash); - assertEq(status == IBridge.Status.RETRIABLE, true); //Test fail check - } - - function retry_message_reverts_when_status_non_retriable() public { - IBridge.Message memory message = newMessage({ - owner: Alice, - to: Alice, - value: 0, - gasLimit: 10_000, - fee: 1, - destChain: destChainId - }); - - vm.expectRevert(Bridge.B_INVALID_STATUS.selector); - destChainBridge.retryMessage(message, true); - } - - function retry_message_reverts_when_last_attempt_and_message_is_not_owner() public { - vm.startPrank(Alice); - IBridge.Message memory message = newMessage({ - owner: Bob, - to: Alice, - value: 0, - gasLimit: 10_000, - fee: 1, - destChain: destChainId - }); - - vm.expectRevert(Bridge.B_PERMISSION_DENIED.selector); - destChainBridge.retryMessage(message, true); - } - - function setUpPredefinedSuccessfulProcessMessageCall() - internal - returns (IBridge.Message memory, bytes memory) - { - badReceiver = new BadReceiver(); - - uint64 dest = 1337; - addressManager.setAddress(1336, "bridge", 0x564540a26Fb667306b3aBdCB4ead35BEb88698ab); - - addressManager.setAddress(dest, "bridge", address(destChainBridge)); - - vm.deal(address(bridge), 100 ether); - - addressManager.setAddress(dest, "signal_service", address(mockProofSignalService)); - - vm.deal(address(destChainBridge), 1 ether); - - vm.chainId(dest); - - // known message that corresponds with below proof. - IBridge.Message memory message = IBridge.Message({ - id: 0, - from: 0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39, - srcChainId: 1336, - destChainId: dest, - srcOwner: 0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39, - destOwner: 0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39, - to: 0x200708D76eB1B69761c23821809d53F65049939e, - value: 1000, - fee: 1000, - gasLimit: 1_000_000, - data: "" - }); - - bytes memory proof = - hex"0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003e0f7ff3b519ec113138509a5b1b6f54761cebc6891bc0ba4f904b89688b1ef8e051dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d493470000000000000000000000000000000000000000000000000000000000000000a85358ff57974db8c9ce2ecabe743d44133f9d11e5da97e386111073f1a2f92c345bd00c2ef9db5726d84c184af67fdbad0be00921eb1dcbca674c427abb5c3ebda7d1e94e5b2b3d5e6a54c9a42423b1746afa4b264e7139877c0523c3397ec4000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000002000800002000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000001000040000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000001500000000000000000000000000000000000000000000000000000000009bbf55000000000000000000000000000000000000000000000000000000000001d4fb0000000000000000000000000000000000000000000000000000000064435d130000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d2e85500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061d883010a1a846765746888676f312e31382e38856c696e75780000000000000015b1ca61fbe1aa968ab60a461913aa40046b5357162466a4134d195647c14dd7488dd438abb39d6574e7d9d752fa2381bbd9dc780efc3fcc66af5285ebcb117b010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dbf8d9b8b3f8b18080a04fc5f13ab2f9ba0c2da88b0151ab0e7cf4d85d08cca45ccd923c6ab76323eb28a02b70a98baa2507beffe8c266006cae52064dccf4fd1998af774ab3399029b38380808080a07394a09684ef3b2c87e9e2a753eb4ac78e2047b980e16d2e2133aee78946370d8080a0f4984a11f61a2921456141df88de6e1a710d28681b91af794c5a721e47839cd78080a09248167635e6f0eb40f782a6bbd237174104259b6af88b3c52086214098f0e2c8080a3e2a03ecd5e1f251bf1676a367f6b16e92ffe6b2638b4a27b3d31870d25442bd59ef4010000000000"; - - return (message, proof); - } - - function newMessage( - address owner, - address to, - uint256 value, - uint32 gasLimit, - uint64 fee, - uint64 destChain - ) - internal - view - returns (IBridge.Message memory) - { - return IBridge.Message({ - srcOwner: owner, - destOwner: owner, - destChainId: destChain, - to: to, - value: value, - fee: fee, - id: 0, // placeholder, will be overwritten - from: owner, // placeholder, will be overwritten - srcChainId: uint64(block.chainid), // will be overwritten - gasLimit: gasLimit, - data: "" - }); - } -} diff --git a/packages/protocol/test/shared/bridge/Bridge1.t.sol b/packages/protocol/test/shared/bridge/Bridge1.t.sol new file mode 100644 index 00000000000..9b2a8645547 --- /dev/null +++ b/packages/protocol/test/shared/bridge/Bridge1.t.sol @@ -0,0 +1,438 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "test/shared/bridge/helpers/MessageReceiver_SendingHalfEtherBalance.sol"; +import "../CommonTest.sol"; + +// A contract which is not our registered ERCXXXVault. In such case, the sent funds are still +// recoverable, but not via the onMessageRecall() but Bridge will send it back +contract UnregisteredVault { + function sendMessage( + address bridge, + IBridge.Message memory message, + uint256 message_value + ) + public + returns (bytes32 msgHash, IBridge.Message memory updatedMessage) + { + return IBridge(bridge).sendMessage{ value: message_value }(message); + } +} + +contract EmptyContract_WithFallback { + fallback() external payable { } +} + +contract EmptyContract_WithInfiniteFallback { + fallback() external payable { + while (true) { } // infinite loop + } +} + +contract TestBridge1 is CommonTest { + // Contracts on Ethereum + MessageReceiver_SendingHalfEtherBalance private eMessageReceiver; + SignalService private eSignalService; + Bridge private eBridge; + + // Contracts on Taiko + SignalService private tSignalService; + Bridge private tBridge; + + function setUpOnEthereum() internal override { + eMessageReceiver = new MessageReceiver_SendingHalfEtherBalance(); + eBridge = deployBridge(address(new Bridge())); + eSignalService = deploySignalService(address(new SignalService_WithoutProofVerification())); + + vm.deal(Alice, 100 ether); + } + + function setUpOnTaiko() internal override { + tSignalService = deploySignalService(address(new SignalService_WithoutProofVerification())); + tBridge = deployBridge(address(new Bridge())); + vm.deal(address(tBridge), 100 ether); + } + + function test_bridge1_send_ether_to_to_with_value() public { + IBridge.Message memory message = IBridge.Message({ + id: 0, + from: address(eBridge), + srcChainId: ethereumChainId, + destChainId: taikoChainId, + srcOwner: Alice, + destOwner: Alice, + to: Alice, + value: 10_000, + fee: 1000, + gasLimit: 1_000_000, + data: "" + }); + // Mocking proof - but obviously it needs to be created in prod + // corresponding to the message + bytes memory proof = hex"00"; + + bytes32 msgHash = tBridge.hashMessage(message); + + vm.chainId(taikoChainId); + vm.prank(Bob); + tBridge.processMessage(message, proof); + + IBridge.Status status = tBridge.messageStatus(msgHash); + + assertEq(status == IBridge.Status.DONE, true); + // Alice has 100 ether + 1000 wei balance, because we did not use the + // 'sendMessage' + // since we mocking the proof, so therefore the 1000 wei + // deduction/transfer did not happen + assertTrue(Alice.balance >= 100 ether + 10_000); + assertTrue(Alice.balance <= 100 ether + 10_000 + 1000); + assertTrue(Bob.balance >= 0 && Bob.balance <= 1000); + } + + function test_bridge1_send_ether_to_contract_with_value_simple() public { + IBridge.Message memory message = IBridge.Message({ + id: 0, + from: address(eBridge), + srcChainId: ethereumChainId, + destChainId: taikoChainId, + srcOwner: Alice, + destOwner: Alice, + to: address(eMessageReceiver), + value: 10_000, + fee: 1000, + gasLimit: 1_000_000, + data: "" + }); + // Mocking proof - but obviously it needs to be created in prod + // corresponding to the message + bytes memory proof = hex"00"; + + bytes32 msgHash = tBridge.hashMessage(message); + + vm.chainId(taikoChainId); + vm.prank(Bob); + tBridge.processMessage(message, proof); + + IBridge.Status status = tBridge.messageStatus(msgHash); + + assertEq(status == IBridge.Status.DONE, true); + + // Bob (relayer) and goodContract has 1000 wei balance + assertEq(address(eMessageReceiver).balance, 10_000); + console2.log("Bob.balance:", Bob.balance); + assertTrue(Bob.balance >= 0 && Bob.balance <= 1000); + } + + function test_bridge1_send_ether_to_contract_with_value_and_message_data() public { + IBridge.Message memory message = IBridge.Message({ + id: 0, + from: address(eBridge), + srcChainId: ethereumChainId, + destChainId: taikoChainId, + srcOwner: Alice, + destOwner: Alice, + to: address(eMessageReceiver), + value: 1000, + fee: 1000, + gasLimit: 1_000_000, + data: abi.encodeCall( + MessageReceiver_SendingHalfEtherBalance.onMessageInvocation, abi.encode(Carol) + ) + }); + // Mocking proof - but obviously it needs to be created in prod + // corresponding to the message + bytes memory proof = hex"00"; + + bytes32 msgHash = tBridge.hashMessage(message); + + vm.chainId(taikoChainId); + vm.prank(Bob); + tBridge.processMessage(message, proof); + + IBridge.Status status = tBridge.messageStatus(msgHash); + + assertEq(status == IBridge.Status.DONE, true); + + // Carol and goodContract has 500 wei balance + assertEq(address(eMessageReceiver).balance, 500); + assertEq(Carol.balance, 500); + } + + function test_bridge1_send_message_ether_reverts_if_value_doesnt_match_expected() public { + // uint256 amount = 1 wei; + IBridge.Message memory message = newMessage({ + owner: Alice, + to: Alice, + value: 0, + gasLimit: 1_000_000, + fee: 1_000_000, + destChain: taikoChainId + }); + + vm.expectRevert(Bridge.B_INVALID_VALUE.selector); + eBridge.sendMessage(message); + } + + function test_bridge1_send_message_ether_reverts_when_owner_is_zero_address() public { + uint256 amount = 1 wei; + IBridge.Message memory message = newMessage({ + owner: address(0), + to: Alice, + value: 0, + gasLimit: 0, + fee: 0, + destChain: taikoChainId + }); + + vm.expectRevert(EssentialContract.ZERO_ADDRESS.selector); + eBridge.sendMessage{ value: amount }(message); + } + + function test_bridge1_send_message_ether_reverts_when_dest_chain_is_not_enabled() public { + uint256 amount = 1 wei; + IBridge.Message memory message = newMessage({ + owner: Alice, + to: Alice, + value: 0, + gasLimit: 0, + fee: 0, + destChain: taikoChainId + 1 + }); + + vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); + eBridge.sendMessage{ value: amount }(message); + } + + function test_bridge1_send_message_ether_reverts_when_dest_chain_same_as_block_chainid() + public + { + uint256 amount = 1 wei; + IBridge.Message memory message = newMessage({ + owner: Alice, + to: Alice, + value: 0, + gasLimit: 0, + fee: 0, + destChain: ethereumChainId + }); + + vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); + eBridge.sendMessage{ value: amount }(message); + } + + function test_bridge1_send_message_ether_with_no_processing_fee() public { + uint256 amount = 0 wei; + IBridge.Message memory message = newMessage({ + owner: Alice, + to: Alice, + value: 0, + gasLimit: 0, + fee: 0, + destChain: taikoChainId + }); + + (, IBridge.Message memory _message) = eBridge.sendMessage{ value: amount }(message); + assertEq(eBridge.isMessageSent(_message), true); + } + + function test_bridge1_send_message_ether_with_processing_fee() public { + uint256 amount = 0 wei; + uint64 fee = 1_000_000 wei; + IBridge.Message memory message = newMessage({ + owner: Alice, + to: Alice, + value: 0, + gasLimit: 1_000_000, + fee: fee, + destChain: taikoChainId + }); + + (, IBridge.Message memory _message) = eBridge.sendMessage{ value: amount + fee }(message); + assertEq(eBridge.isMessageSent(_message), true); + } + + function test_bridge1_recall_message_ether() public { + uint256 amount = 1 ether; + uint64 fee = 0 wei; + IBridge.Message memory message = newMessage({ + owner: Alice, + to: Alice, + value: amount, + gasLimit: 0, + fee: fee, + destChain: taikoChainId + }); + + uint256 starterBalanceVault = address(eBridge).balance; + uint256 starterBalanceAlice = Alice.balance; + + vm.prank(Alice); + (, IBridge.Message memory _message) = eBridge.sendMessage{ value: amount + fee }(message); + assertEq(eBridge.isMessageSent(_message), true); + + assertEq(address(eBridge).balance, (starterBalanceVault + amount + fee)); + assertEq(Alice.balance, (starterBalanceAlice - (amount + fee))); + eBridge.recallMessage(message, ""); + + assertEq(address(eBridge).balance, (starterBalanceVault + fee)); + assertEq(Alice.balance, (starterBalanceAlice - fee)); + } + + function test_bridge1_recall_message_but_not_supports_recall_interface() public { + // In this test we expect that the 'message value is still refundable, + // just not via + // ERCXXTokenVault (message.from) but directly from the Bridge + + uint256 amount = 1 ether; + uint64 fee = 0 wei; + IBridge.Message memory message = newMessage({ + owner: Alice, + to: Alice, + value: amount, + gasLimit: 0, + fee: fee, + destChain: taikoChainId + }); + + uint256 starterBalanceVault = address(eBridge).balance; + + UnregisteredVault unregisteredVault = new UnregisteredVault(); + vm.deal(address(unregisteredVault), 10 ether); + + (, message) = unregisteredVault.sendMessage(address(eBridge), message, amount + fee); + + assertEq(address(eBridge).balance, (starterBalanceVault + amount + fee)); + + eBridge.recallMessage(message, ""); + + assertEq(address(eBridge).balance, (starterBalanceVault + fee)); + } + + function test_bridge1_send_message_ether_with_processing_fee_invalid_amount() public { + uint256 amount = 0 wei; + uint64 fee = 1_000_000 wei; + IBridge.Message memory message = newMessage({ + owner: Alice, + to: Alice, + value: 0, + gasLimit: 1_000_000, + fee: fee, + destChain: taikoChainId + }); + + vm.expectRevert(Bridge.B_INVALID_VALUE.selector); + eBridge.sendMessage{ value: amount }(message); + } + + function test_processMessage_InvokeMessageCall_DoS1() public { + EmptyContract_WithFallback to = new EmptyContract_WithFallback(); + + IBridge.Message memory message = IBridge.Message({ + id: 0, + from: address(this), + srcChainId: ethereumChainId, + destChainId: taikoChainId, + srcOwner: Alice, + destOwner: Alice, + to: address(to), + value: 1000, + fee: 1000, + gasLimit: 1_000_000, + data: "" + }); + + bytes memory proof = hex"00"; + bytes32 msgHash = tBridge.hashMessage(message); + vm.chainId(taikoChainId); + vm.prank(Bob); + + tBridge.processMessage(message, proof); + + IBridge.Status status = tBridge.messageStatus(msgHash); + assertEq(status == IBridge.Status.DONE, true); // test pass check + } + + function test_processMessage_InvokeMessageCall_DoS2_testfail() public { + EmptyContract_WithInfiniteFallback to = new EmptyContract_WithInfiniteFallback(); + + IBridge.Message memory message = IBridge.Message({ + id: 0, + from: address(this), + srcChainId: ethereumChainId, + destChainId: taikoChainId, + srcOwner: Alice, + destOwner: Alice, + to: address(to), + value: 1000, + fee: 1000, + gasLimit: 1_000_000, + data: "" + }); + + bytes memory proof = hex"00"; + bytes32 msgHash = tBridge.hashMessage(message); + vm.chainId(taikoChainId); + vm.prank(Bob); + + tBridge.processMessage(message, proof); + + IBridge.Status status = tBridge.messageStatus(msgHash); + assertEq(status == IBridge.Status.RETRIABLE, true); //Test fail check + } + + function retry_message_reverts_when_status_non_retriable() public { + IBridge.Message memory message = newMessage({ + owner: Alice, + to: Alice, + value: 0, + gasLimit: 10_000, + fee: 1, + destChain: taikoChainId + }); + + vm.expectRevert(Bridge.B_INVALID_STATUS.selector); + tBridge.retryMessage(message, true); + } + + function retry_message_reverts_when_last_attempt_and_message_is_not_owner() public { + vm.startPrank(Alice); + IBridge.Message memory message = newMessage({ + owner: Bob, + to: Alice, + value: 0, + gasLimit: 10_000, + fee: 1, + destChain: taikoChainId + }); + + vm.expectRevert(Bridge.B_PERMISSION_DENIED.selector); + tBridge.retryMessage(message, true); + } + + function newMessage( + address owner, + address to, + uint256 value, + uint32 gasLimit, + uint64 fee, + uint64 destChain + ) + internal + view + returns (IBridge.Message memory) + { + return IBridge.Message({ + srcOwner: owner, + destOwner: owner, + destChainId: destChain, + to: to, + value: value, + fee: fee, + id: 0, // placeholder, will be overwritten + from: owner, // placeholder, will be overwritten + srcChainId: ethereumChainId, // will be overwritten + gasLimit: gasLimit, + data: "" + }); + } +} diff --git a/packages/protocol/test/shared/bridge/Bridge2.t.sol b/packages/protocol/test/shared/bridge/Bridge2.t.sol deleted file mode 100644 index 95ffe3075b7..00000000000 --- a/packages/protocol/test/shared/bridge/Bridge2.t.sol +++ /dev/null @@ -1,85 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "../TaikoTest.sol"; - -contract BridgeTest2 is TaikoTest { - bytes public constant fakeProof = ""; - - address public owner; - uint64 public remoteChainId; - address public remoteBridge; - - AddressManager public addressManager; - SignalService public signalService; - Bridge public bridge; - - modifier transactedBy(address addr) { - vm.deal(addr, 100 ether); - vm.startPrank(addr); - - _; - vm.stopPrank(); - } - - modifier assertSameTotalBalance() { - uint256 totalBalance = getBalanceForAccounts(); - _; - uint256 totalBalance2 = getBalanceForAccounts(); - assertEq(totalBalance2, totalBalance); - assertEq(address(signalService).balance, 0); - } - - modifier dealEther(address addr) { - vm.deal(addr, 100 ether); - _; - } - - function setUp() public { - owner = vm.addr(0x1000); - vm.deal(owner, 100 ether); - - remoteChainId = uint64(block.chainid + 1); - remoteBridge = vm.addr(0x2000); - - vm.startPrank(owner); - - addressManager = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }) - ); - - signalService = SkipProofCheckSignal( - deployProxy({ - name: "signal_service", - impl: address(new SkipProofCheckSignal()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ); - - bridge = Bridge( - payable( - deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ) - ); - - vm.deal(address(bridge), 10_000 ether); - - addressManager.setAddress(remoteChainId, "bridge", remoteBridge); - vm.stopPrank(); - } - - function getBalanceForAccounts() public view returns (uint256) { - return Alice.balance + Bob.balance + Carol.balance + David.balance + address(bridge).balance - + owner.balance; - } -} diff --git a/packages/protocol/test/shared/bridge/Bridge2_failMessage.t.sol b/packages/protocol/test/shared/bridge/Bridge2_failMessage.t.sol index c677c76daa2..a1d563c038d 100644 --- a/packages/protocol/test/shared/bridge/Bridge2_failMessage.t.sol +++ b/packages/protocol/test/shared/bridge/Bridge2_failMessage.t.sol @@ -1,17 +1,17 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./Bridge2.t.sol"; +import "./TestBridge2Base.sol"; -contract BridgeTest2_failMessage is BridgeTest2 { +contract TestBridge2_failMessage is TestBridge2Base { function test_bridge2_failMessage_not_by_destOwner() public - transactedBy(Carol) + transactBy(Carol) assertSameTotalBalance { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 1_000_000; message.fee = 1000; message.value = 2 ether; @@ -19,7 +19,7 @@ contract BridgeTest2_failMessage is BridgeTest2 { message.to = Bob; vm.expectRevert(Bridge.B_PERMISSION_DENIED.selector); - bridge.failMessage(message); + eBridge.failMessage(message); } function test_bridge2_failMessage_by_destOwner__message_retriable() @@ -30,43 +30,43 @@ contract BridgeTest2_failMessage is BridgeTest2 { { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.fee = 0; message.value = 2 ether; message.destOwner = Alice; message.to = David; - message.gasLimit = bridge.getMessageMinGasLimit(0) - 1; + message.gasLimit = eBridge.getMessageMinGasLimit(0) - 1; vm.expectRevert(Bridge.B_INVALID_STATUS.selector); vm.prank(Alice); - bridge.failMessage(message); + eBridge.failMessage(message); vm.prank(Carol); - bridge.processMessage(message, fakeProof); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.RETRIABLE); + eBridge.processMessage(message, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.RETRIABLE); vm.prank(Alice); - bridge.failMessage(message); - hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.FAILED); + eBridge.failMessage(message); + hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.FAILED); vm.expectRevert(Bridge.B_INVALID_STATUS.selector); vm.prank(Alice); - bridge.failMessage(message); + eBridge.failMessage(message); } function test_bridge2_failMessage_by_destOwner__message_processed() public - transactedBy(Alice) + transactBy(Alice) assertSameTotalBalance { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 0; message.fee = 1_000_000; @@ -74,11 +74,11 @@ contract BridgeTest2_failMessage is BridgeTest2 { message.destOwner = Alice; message.to = David; - bridge.processMessage(message, fakeProof); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + eBridge.processMessage(message, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); vm.expectRevert(Bridge.B_INVALID_STATUS.selector); - bridge.failMessage(message); + eBridge.failMessage(message); } } diff --git a/packages/protocol/test/shared/bridge/Bridge2_processMessage.t.sol b/packages/protocol/test/shared/bridge/Bridge2_processMessage.t.sol index 5c3ed60b746..ad64c9eb5c4 100644 --- a/packages/protocol/test/shared/bridge/Bridge2_processMessage.t.sol +++ b/packages/protocol/test/shared/bridge/Bridge2_processMessage.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./Bridge2.t.sol"; +import "./TestBridge2Base.sol"; contract Target is IMessageInvocable { uint256 public receivedEther; @@ -39,85 +39,85 @@ contract AlwaysAvailableQuotaManager is IQuotaManager { function consumeQuota(address, uint256) external pure { } } -contract BridgeTest2_processMessage is BridgeTest2 { +contract TestBridge2_processMessage is TestBridge2Base { function test_bridge2_processMessage_basic() public dealEther(Alice) assertSameTotalBalance { vm.startPrank(Alice); IBridge.Message memory message; vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); - message.destChainId = uint64(block.chainid); + message.destChainId = ethereumChainId; vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); - message.srcChainId = uint64(block.chainid); + message.srcChainId = ethereumChainId; vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); - message.srcChainId = remoteChainId + 1; + message.srcChainId = taikoChainId + 1; vm.expectRevert(Bridge.B_PERMISSION_DENIED.selector); - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); - message.srcChainId = remoteChainId; - vm.expectRevert(); // RESOLVER_ZERO_ADDR src bridge not registered - bridge.processMessage(message, fakeProof); + message.srcChainId = taikoChainId; + vm.expectRevert(Bridge.B_PERMISSION_DENIED.selector); + eBridge.processMessage(message, FAKE_PROOF); message.gasLimit = 1_000_000; - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.NEW); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.NEW); - bridge.processMessage(message, fakeProof); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + eBridge.processMessage(message, FAKE_PROOF); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); vm.stopPrank(); - vm.prank(owner); - addressManager.setAddress(message.srcChainId, "bridge", address(0)); + vm.prank(deployer); + resolver.registerAddress(message.srcChainId, "bridge", address(0)); vm.startPrank(Alice); message.id += 1; - vm.expectRevert(); // RESOLVER_ZERO_ADDR src bridge not registered - bridge.processMessage(message, fakeProof); + vm.expectRevert(IResolver.RESOLVED_TO_ZERO_ADDRESS.selector); + eBridge.processMessage(message, FAKE_PROOF); vm.stopPrank(); } function test_bridge2_processMessage__special_to_address__0_fee__nonezero_gaslimit() public - transactedBy(Carol) + transactBy(Carol) assertSameTotalBalance { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 1_000_000; message.fee = 0; message.value = 2 ether; vm.expectRevert(LibAddress.ETH_TRANSFER_FAILED.selector); - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); message.destOwner = Alice; uint256 aliceBalance = Alice.balance; - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); assertEq(Alice.balance, aliceBalance + 2 ether); - message.to = address(bridge); + message.to = address(eBridge); aliceBalance = Alice.balance; - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); assertEq(Alice.balance, aliceBalance + 2 ether); - message.to = address(signalService); + message.to = address(eSignalService); aliceBalance = Alice.balance; - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); assertEq(Alice.balance, aliceBalance + 2 ether); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); } function test_bridge2_processMessage__special_to_address__0_fee__0_gaslimit() @@ -130,32 +130,32 @@ contract BridgeTest2_processMessage is BridgeTest2 { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 0; message.fee = 0; message.value = 2 ether; vm.expectRevert(Bridge.B_PERMISSION_DENIED.selector); - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); message.destOwner = Alice; uint256 aliceBalance = Alice.balance; - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); assertEq(Alice.balance, aliceBalance + 2 ether); - message.to = address(bridge); + message.to = address(eBridge); aliceBalance = Alice.balance; - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); assertEq(Alice.balance, aliceBalance + 2 ether); - message.to = address(signalService); + message.to = address(eSignalService); aliceBalance = Alice.balance; - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); assertEq(Alice.balance, aliceBalance + 2 ether); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); vm.stopPrank(); @@ -163,21 +163,21 @@ contract BridgeTest2_processMessage is BridgeTest2 { vm.prank(Bob); vm.expectRevert(Bridge.B_PERMISSION_DENIED.selector); - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); - hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.NEW); + hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.NEW); } function test_bridge2_processMessage__special_to_address__nonezero_fee__nonezero_gaslimit() public - transactedBy(Alice) + transactBy(Alice) assertSameTotalBalance { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 1; message.fee = 5_000_000; @@ -187,32 +187,32 @@ contract BridgeTest2_processMessage is BridgeTest2 { uint256 bobBalance = Bob.balance; uint256 aliceBalance = Alice.balance; - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); assertEq(Bob.balance, bobBalance + 2 ether); assertEq(Alice.balance, aliceBalance + 5_000_000); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); message.gasLimit = 10_000_000; bobBalance = Bob.balance; aliceBalance = Alice.balance; - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); assertTrue(Bob.balance > bobBalance + 2 ether); assertTrue(Alice.balance < aliceBalance + 5_000_000); } function test_bridge2_processMessage__special_to_address__nonezero_fee__0_gaslimit() public - transactedBy(Alice) + transactBy(Alice) assertSameTotalBalance { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 0; message.fee = 5_000_000; @@ -221,23 +221,23 @@ contract BridgeTest2_processMessage is BridgeTest2 { uint256 aliceBalance = Alice.balance; - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); assertEq(Alice.balance, aliceBalance + 2 ether + 5_000_000); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); } function test_bridge2_processMessage__eoa_address__0_fee__nonezero_gaslimit() public - transactedBy(Carol) + transactBy(Carol) assertSameTotalBalance { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 1_000_000; message.fee = 0; @@ -248,9 +248,9 @@ contract BridgeTest2_processMessage is BridgeTest2 { uint256 aliceBalance = Alice.balance; uint256 davidBalance = David.balance; - bridge.processMessage(message, fakeProof); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + eBridge.processMessage(message, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); assertEq(Alice.balance, aliceBalance); assertEq(David.balance, davidBalance + 2 ether); @@ -258,13 +258,13 @@ contract BridgeTest2_processMessage is BridgeTest2 { function test_bridge2_processMessage__eoa_to_address__0_fee__0_gaslimit() public - transactedBy(Alice) + transactBy(Alice) assertSameTotalBalance { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 0; message.fee = 0; @@ -274,22 +274,22 @@ contract BridgeTest2_processMessage is BridgeTest2 { uint256 davidBalance = David.balance; - bridge.processMessage(message, fakeProof); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + eBridge.processMessage(message, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); assertEq(David.balance, davidBalance + 2 ether); } function test_bridge2_processMessage__eoa_to_address__nonezero_fee__nonezero_gaslimit() public - transactedBy(Carol) + transactBy(Carol) assertSameTotalBalance { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 1_000_000; message.fee = 5_000_000; @@ -300,9 +300,9 @@ contract BridgeTest2_processMessage is BridgeTest2 { uint256 aliceBalance = Alice.balance; uint256 davidBalance = David.balance; - bridge.processMessage(message, fakeProof); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + eBridge.processMessage(message, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); assertEq(David.balance, davidBalance + 2 ether); assertTrue(Alice.balance > aliceBalance); @@ -311,13 +311,13 @@ contract BridgeTest2_processMessage is BridgeTest2 { function test_bridge2_processMessage__eoa_to_address__nonezero_fee__0_gaslimit() public - transactedBy(Alice) + transactBy(Alice) assertSameTotalBalance { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 0; message.fee = 1_000_000; @@ -327,21 +327,21 @@ contract BridgeTest2_processMessage is BridgeTest2 { uint256 davidBalance = David.balance; - bridge.processMessage(message, fakeProof); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + eBridge.processMessage(message, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); assertEq(David.balance, davidBalance + 2 ether); } - function test_bridge2_processMessage__special_invocation() public transactedBy(Carol) { - Target target = new Target(bridge); + function test_bridge2_processMessage__special_invocation() public transactBy(Carol) { + Target target = new Target(eBridge); uint256 totalBalance = getBalanceForAccounts() + address(target).balance; IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 1_000_000; message.fee = 0; @@ -351,16 +351,16 @@ contract BridgeTest2_processMessage is BridgeTest2 { message.data = abi.encodeCall(Target.anotherFunc, ("")); uint256 aliceBalance = Alice.balance; - bridge.processMessage(message, fakeProof); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + eBridge.processMessage(message, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); assertEq(Alice.balance, aliceBalance + 2 ether); assertEq(target.receivedEther(), 0 ether); message.data = "1"; - bridge.processMessage(message, fakeProof); - hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + eBridge.processMessage(message, FAKE_PROOF); + hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); assertEq(target.receivedEther(), 2 ether); (bytes32 msgHash, address from, uint64 srcChainId) = target.ctx(); @@ -371,16 +371,16 @@ contract BridgeTest2_processMessage is BridgeTest2 { message.to = Bob; message.data = "something else"; - bridge.processMessage(message, fakeProof); - hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + eBridge.processMessage(message, FAKE_PROOF); + hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); assertEq(Bob.balance, 2 ether); message.to = address(target); message.data = abi.encodeCall(Target.onMessageInvocation, ("")); - bridge.processMessage(message, fakeProof); - hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + eBridge.processMessage(message, FAKE_PROOF); + hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); assertEq(target.receivedEther(), 4 ether); (msgHash, from, srcChainId) = target.ctx(); @@ -398,16 +398,14 @@ contract BridgeTest2_processMessage is BridgeTest2 { dealEther(Alice) assertSameTotalBalance { - vm.startPrank(owner); - addressManager.setAddress( - uint64(block.chainid), "quota_manager", address(new OutOfQuotaManager()) - ); + vm.startPrank(deployer); + resolver.registerAddress(ethereumChainId, "quota_manager", address(new OutOfQuotaManager())); vm.stopPrank(); IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.gasLimit = 1_000_000; message.fee = 5_000_000; @@ -417,11 +415,11 @@ contract BridgeTest2_processMessage is BridgeTest2 { vm.prank(Bob); vm.expectRevert(Bridge.B_OUT_OF_ETH_QUOTA.selector); - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); vm.prank(Alice); vm.expectRevert(Bridge.B_OUT_OF_ETH_QUOTA.selector); - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); } function test_bridge2_processMessage_and_retryMessage_malicious_way() @@ -430,16 +428,14 @@ contract BridgeTest2_processMessage is BridgeTest2 { dealEther(Alice) assertSameTotalBalance { - vm.startPrank(owner); - addressManager.setAddress( - uint64(block.chainid), "quota_manager", address(new OutOfQuotaManager()) - ); + vm.startPrank(deployer); + resolver.registerAddress(ethereumChainId, "quota_manager", address(new OutOfQuotaManager())); vm.stopPrank(); IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; bytes32 hashOfMaliciousMessage = 0x3c6e0b8a9c15224b7f0a1e5f4c8f7683d5a0a4e32a34c6c7c7e1f4d9a9d9f6b4; @@ -447,11 +443,11 @@ contract BridgeTest2_processMessage is BridgeTest2 { message.fee = 5_000_000; message.value = 2 ether; message.destOwner = Alice; - message.to = address(bridge); + message.to = address(eBridge); message.data = abi.encodeWithSignature("sendSignal(bytes32)", hashOfMaliciousMessage); vm.prank(Alice); vm.expectRevert(Bridge.B_OUT_OF_ETH_QUOTA.selector); - bridge.processMessage(message, fakeProof); + eBridge.processMessage(message, FAKE_PROOF); } } diff --git a/packages/protocol/test/shared/bridge/Bridge2_recallMessage.t.sol b/packages/protocol/test/shared/bridge/Bridge2_recallMessage.t.sol index d45331ce74e..933e49882ea 100644 --- a/packages/protocol/test/shared/bridge/Bridge2_recallMessage.t.sol +++ b/packages/protocol/test/shared/bridge/Bridge2_recallMessage.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./Bridge2.t.sol"; +import "./TestBridge2Base.sol"; contract TestRecallableSender is IRecallableSender, IERC165 { IBridge private bridge; @@ -21,41 +21,41 @@ contract TestRecallableSender is IRecallableSender, IERC165 { } } -contract BridgeTest2_recallMessage is BridgeTest2 { - function test_bridge2_recallMessage_basic() public transactedBy(Carol) assertSameTotalBalance { +contract TestBridge2_recallMessage is TestBridge2Base { + function test_bridge2_recallMessage_basic() public transactBy(Carol) assertSameTotalBalance { IBridge.Message memory message; message.srcOwner = Alice; message.destOwner = Bob; - message.destChainId = remoteChainId; + message.destChainId = taikoChainId; message.value = 1 ether; vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); - bridge.recallMessage(message, fakeProof); + eBridge.recallMessage(message, FAKE_PROOF); - message.srcChainId = uint64(block.chainid); + message.srcChainId = ethereumChainId; vm.expectRevert(Bridge.B_MESSAGE_NOT_SENT.selector); - bridge.recallMessage(message, fakeProof); + eBridge.recallMessage(message, FAKE_PROOF); uint256 aliceBalance = Alice.balance; uint256 carolBalance = Carol.balance; - uint256 bridgeBalance = address(bridge).balance; + uint256 bridgeBalance = address(eBridge).balance; - (, IBridge.Message memory m) = bridge.sendMessage{ value: 1 ether }(message); + (, IBridge.Message memory m) = eBridge.sendMessage{ value: 1 ether }(message); assertEq(Alice.balance, aliceBalance); assertEq(Carol.balance, carolBalance - 1 ether); - assertEq(address(bridge).balance, bridgeBalance + 1 ether); + assertEq(address(eBridge).balance, bridgeBalance + 1 ether); - bridge.recallMessage(m, fakeProof); - bytes32 hash = bridge.hashMessage(m); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.RECALLED); + eBridge.recallMessage(m, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(m); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.RECALLED); assertEq(Alice.balance, aliceBalance + 1 ether); assertEq(Carol.balance, carolBalance - 1 ether); - assertEq(address(bridge).balance, bridgeBalance); + assertEq(address(eBridge).balance, bridgeBalance); // recall the same message again vm.expectRevert(Bridge.B_INVALID_STATUS.selector); - bridge.recallMessage(m, fakeProof); + eBridge.recallMessage(m, FAKE_PROOF); } function test_bridge2_recallMessage_missing_local_signal_service() @@ -66,23 +66,23 @@ contract BridgeTest2_recallMessage is BridgeTest2 { IBridge.Message memory message; message.srcOwner = Alice; message.destOwner = Bob; - message.destChainId = remoteChainId; + message.destChainId = taikoChainId; message.value = 1 ether; - message.srcChainId = uint64(block.chainid); + message.srcChainId = ethereumChainId; vm.prank(Carol); - (, IBridge.Message memory m) = bridge.sendMessage{ value: 1 ether }(message); + (, IBridge.Message memory m) = eBridge.sendMessage{ value: 1 ether }(message); - vm.prank(owner); - addressManager.setAddress(uint64(block.chainid), "signal_service", address(0)); + vm.prank(deployer); + register("signal_service", address(0)); vm.prank(Carol); vm.expectRevert(); - bridge.recallMessage(m, fakeProof); + eBridge.recallMessage(m, FAKE_PROOF); } function test_bridge2_recallMessage_callable_sender() public dealEther(Carol) { - TestRecallableSender callableSender = new TestRecallableSender(bridge); + TestRecallableSender callableSender = new TestRecallableSender(eBridge); vm.deal(address(callableSender), 100 ether); uint256 totalBalance = getBalanceForAccounts() + address(callableSender).balance; @@ -90,22 +90,22 @@ contract BridgeTest2_recallMessage is BridgeTest2 { IBridge.Message memory message; message.srcOwner = Alice; message.destOwner = Bob; - message.destChainId = remoteChainId; + message.destChainId = taikoChainId; message.value = 1 ether; - message.srcChainId = uint64(block.chainid); + message.srcChainId = ethereumChainId; vm.prank(address(callableSender)); - (bytes32 mhash, IBridge.Message memory m) = bridge.sendMessage{ value: 1 ether }(message); + (bytes32 mhash, IBridge.Message memory m) = eBridge.sendMessage{ value: 1 ether }(message); vm.prank(address(callableSender)); - bridge.recallMessage(m, fakeProof); - bytes32 hash = bridge.hashMessage(m); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.RECALLED); + eBridge.recallMessage(m, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(m); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.RECALLED); (bytes32 msgHash, address from, uint64 srcChainId) = callableSender.ctx(); assertEq(msgHash, mhash); - assertEq(from, address(bridge)); - assertEq(srcChainId, block.chainid); + assertEq(from, address(eBridge)); + assertEq(srcChainId, ethereumChainId); uint256 totalBalance2 = getBalanceForAccounts() + address(callableSender).balance; assertEq(totalBalance2, totalBalance); diff --git a/packages/protocol/test/shared/bridge/Bridge2_retryMessage.t.sol b/packages/protocol/test/shared/bridge/Bridge2_retryMessage.t.sol index ab4c8a65213..c05ae9629ae 100644 --- a/packages/protocol/test/shared/bridge/Bridge2_retryMessage.t.sol +++ b/packages/protocol/test/shared/bridge/Bridge2_retryMessage.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./Bridge2.t.sol"; +import "./TestBridge2Base.sol"; contract Target is IMessageInvocable { bool public toFail; @@ -15,7 +15,7 @@ contract Target is IMessageInvocable { } } -contract BridgeTest2_retryMessage is BridgeTest2 { +contract TestBridge2_retryMessage is TestBridge2Base { function test_bridge2_retryMessage_1() public dealEther(Alice) @@ -27,8 +27,8 @@ contract BridgeTest2_retryMessage is BridgeTest2 { IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.fee = 0; message.value = 2 ether; @@ -38,27 +38,27 @@ contract BridgeTest2_retryMessage is BridgeTest2 { message.gasLimit = 1_000_000; vm.prank(Carol); - bridge.processMessage(message, fakeProof); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.RETRIABLE); + eBridge.processMessage(message, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.RETRIABLE); vm.expectRevert(Bridge.B_PERMISSION_DENIED.selector); vm.prank(Carol); - bridge.retryMessage(message, true); + eBridge.retryMessage(message, true); vm.expectRevert(Bridge.B_RETRY_FAILED.selector); vm.prank(Carol); - bridge.retryMessage(message, false); + eBridge.retryMessage(message, false); vm.expectRevert(Bridge.B_RETRY_FAILED.selector); vm.prank(Alice); - bridge.retryMessage(message, false); + eBridge.retryMessage(message, false); vm.prank(Alice); - bridge.retryMessage(message, true); + eBridge.retryMessage(message, true); - hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.FAILED); + hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.FAILED); } function test_bridge2_retryMessage_2() public dealEther(Alice) dealEther(Carol) { @@ -68,8 +68,8 @@ contract BridgeTest2_retryMessage is BridgeTest2 { uint256 totalBalance = getBalanceForAccounts() + address(target).balance; IBridge.Message memory message; - message.destChainId = uint64(block.chainid); - message.srcChainId = remoteChainId; + message.destChainId = ethereumChainId; + message.srcChainId = taikoChainId; message.fee = 0; message.value = 2 ether; @@ -79,17 +79,17 @@ contract BridgeTest2_retryMessage is BridgeTest2 { message.gasLimit = 1_000_000; vm.prank(Carol); - bridge.processMessage(message, fakeProof); - bytes32 hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.RETRIABLE); + eBridge.processMessage(message, FAKE_PROOF); + bytes32 hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.RETRIABLE); target.setToFail(false); vm.prank(Alice); - bridge.retryMessage(message, false); + eBridge.retryMessage(message, false); - hash = bridge.hashMessage(message); - assertTrue(bridge.messageStatus(hash) == IBridge.Status.DONE); + hash = eBridge.hashMessage(message); + assertTrue(eBridge.messageStatus(hash) == IBridge.Status.DONE); uint256 totalBalance2 = getBalanceForAccounts() + address(target).balance; assertEq(totalBalance2, totalBalance); diff --git a/packages/protocol/test/shared/bridge/Bridge2_sendMessage.t.sol b/packages/protocol/test/shared/bridge/Bridge2_sendMessage.t.sol index 5310f242a49..3f39c2c78c6 100644 --- a/packages/protocol/test/shared/bridge/Bridge2_sendMessage.t.sol +++ b/packages/protocol/test/shared/bridge/Bridge2_sendMessage.t.sol @@ -1,39 +1,39 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "./Bridge2.t.sol"; +import "./TestBridge2Base.sol"; -contract BridgeTest2_sendMessage is BridgeTest2 { +contract TestBridge2_sendMessage is TestBridge2Base { function test_bridge2_sendMessage_invalid_message() public - transactedBy(Carol) + transactBy(Carol) assertSameTotalBalance { // init an all-zero message IBridge.Message memory message; vm.expectRevert(EssentialContract.ZERO_ADDRESS.selector); - bridge.sendMessage(message); + eBridge.sendMessage(message); message.srcOwner = Alice; vm.expectRevert(EssentialContract.ZERO_ADDRESS.selector); - bridge.sendMessage(message); + eBridge.sendMessage(message); message.destOwner = Bob; vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); - bridge.sendMessage(message); + eBridge.sendMessage(message); - message.destChainId = remoteChainId + 1; + message.destChainId = taikoChainId + 1; vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); - bridge.sendMessage(message); + eBridge.sendMessage(message); - message.destChainId = uint64(block.chainid); + message.destChainId = ethereumChainId; vm.expectRevert(Bridge.B_INVALID_CHAINID.selector); - bridge.sendMessage(message); + eBridge.sendMessage(message); - // an bridge has been registered for remoteChainId - message.destChainId = remoteChainId; - bridge.sendMessage(message); // id = 0 + // an bridge has been registered for destChainId + message.destChainId = taikoChainId; + eBridge.sendMessage(message); // id = 0 message.value = 10_000_000; message.gasLimit = 20_000_000; @@ -41,13 +41,14 @@ contract BridgeTest2_sendMessage is BridgeTest2 { vm.expectRevert(Bridge.B_INVALID_VALUE.selector); message.data = "hello"; - bridge.sendMessage(message); + eBridge.sendMessage(message); - (bytes32 mhash, IBridge.Message memory m) = bridge.sendMessage{ value: 40_000_000 }(message); + (bytes32 mhash, IBridge.Message memory m) = + eBridge.sendMessage{ value: 40_000_000 }(message); assertEq(m.id, 1); assertEq(m.srcOwner, Alice); // Not Carol - assertEq(m.srcChainId, block.chainid); - assertEq(mhash, bridge.hashMessage(m)); + assertEq(m.srcChainId, ethereumChainId); + assertEq(mhash, eBridge.hashMessage(m)); m.id = 0; m.from = address(0); @@ -55,7 +56,7 @@ contract BridgeTest2_sendMessage is BridgeTest2 { assertEq(keccak256(abi.encode(message)), keccak256(abi.encode(m))); (bytes32 mhash2, IBridge.Message memory m2) = - bridge.sendMessage{ value: 40_000_000 }(message); + eBridge.sendMessage{ value: 40_000_000 }(message); assertEq(m2.id, 2); assertTrue(mhash2 != mhash); @@ -63,36 +64,36 @@ contract BridgeTest2_sendMessage is BridgeTest2 { function test_bridge2_sendMessage_invocationGasLimit() public - transactedBy(Carol) + transactBy(Carol) assertSameTotalBalance { IBridge.Message memory message; message.srcOwner = Alice; message.destOwner = Bob; - message.destChainId = remoteChainId; + message.destChainId = taikoChainId; message.fee = 1; vm.expectRevert(Bridge.B_INVALID_FEE.selector); - bridge.sendMessage(message); + eBridge.sendMessage(message); - uint32 minGasLimit = bridge.getMessageMinGasLimit(message.data.length); + uint32 minGasLimit = eBridge.getMessageMinGasLimit(message.data.length); console2.log("minGasLimit:", minGasLimit); message.gasLimit = minGasLimit - 1; vm.expectRevert(Bridge.B_INVALID_GAS_LIMIT.selector); - bridge.sendMessage(message); + eBridge.sendMessage(message); message.gasLimit = minGasLimit; vm.expectRevert(Bridge.B_INVALID_GAS_LIMIT.selector); - bridge.sendMessage(message); + eBridge.sendMessage(message); message.gasLimit = minGasLimit + 1; vm.expectRevert(Bridge.B_INVALID_VALUE.selector); - bridge.sendMessage(message); + eBridge.sendMessage(message); - bridge.sendMessage{ value: message.fee }(message); + eBridge.sendMessage{ value: message.fee }(message); message.fee = 0; - bridge.sendMessage(message); + eBridge.sendMessage(message); } function test_bridge2_sendMessage_missing_local_signal_service() @@ -103,16 +104,16 @@ contract BridgeTest2_sendMessage is BridgeTest2 { IBridge.Message memory message; message.srcOwner = Alice; message.destOwner = Bob; - message.destChainId = remoteChainId; + message.destChainId = taikoChainId; vm.prank(Alice); - bridge.sendMessage(message); + eBridge.sendMessage(message); - vm.prank(owner); - addressManager.setAddress(uint64(block.chainid), "signal_service", address(0)); + vm.prank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", address(0)); vm.prank(Alice); vm.expectRevert(); - bridge.sendMessage(message); + eBridge.sendMessage(message); } } diff --git a/packages/protocol/test/shared/bridge/QuotaManager.t.sol b/packages/protocol/test/shared/bridge/QuotaManager.t.sol index fa44f0cc9e6..6a1bf9a54d9 100644 --- a/packages/protocol/test/shared/bridge/QuotaManager.t.sol +++ b/packages/protocol/test/shared/bridge/QuotaManager.t.sol @@ -1,39 +1,16 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "../TaikoTest.sol"; +import "../CommonTest.sol"; -contract QuotaManagerTest is TaikoTest { - AddressManager public am; - QuotaManager public qm; +contract TestQuotaManager is CommonTest { + // Contracts on Ethereum + QuotaManager private qm; + address private bridge = randAddress(); - address bridge = vm.addr(0x100); - - function setUp() public { - vm.startPrank(Alice); // The owner - vm.deal(Alice, 100 ether); - - am = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }) - ); - - am.setAddress(uint64(block.chainid), LibStrings.B_BRIDGE, bridge); - - qm = QuotaManager( - payable( - deployProxy({ - name: "quota_manager", - impl: address(new QuotaManager()), - data: abi.encodeCall(QuotaManager.init, (address(0), address(am), 24 hours)) - }) - ) - ); - - vm.stopPrank(); + function setUpOnEthereum() internal override { + qm = deployQuotaManager(); + register("bridge", bridge); } function test_quota_manager_consume_configged() public { @@ -43,11 +20,11 @@ contract QuotaManagerTest is TaikoTest { vm.expectRevert(); qm.updateQuota(Ether, 10 ether); - vm.prank(Alice); + vm.prank(deployer); qm.updateQuota(Ether, 10 ether); assertEq(qm.availableQuota(address(0), 0), 10 ether); - vm.expectRevert(AddressResolver.RESOLVER_DENIED.selector); + vm.expectRevert(EssentialContract.ACCESS_DENIED.selector); qm.consumeQuota(Ether, 5 ether); vm.prank(bridge); diff --git a/packages/protocol/test/shared/bridge/TestBridge2Base.sol b/packages/protocol/test/shared/bridge/TestBridge2Base.sol new file mode 100644 index 00000000000..50359e8f184 --- /dev/null +++ b/packages/protocol/test/shared/bridge/TestBridge2Base.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "../CommonTest.sol"; +import "test/shared/bridge/helpers/MessageReceiver_SendingHalfEtherBalance.sol"; + +contract TestBridge2Base is CommonTest { + bytes internal constant FAKE_PROOF = ""; + + // Contracts on Ethereum + SignalService internal eSignalService; + Bridge internal eBridge; + + // Contracts on Taiko + address internal tBridge = randAddress(); + + modifier assertSameTotalBalance() { + uint256 totalBalance = getBalanceForAccounts(); + _; + uint256 totalBalance2 = getBalanceForAccounts(); + assertEq(totalBalance2, totalBalance); + assertEq(address(eSignalService).balance, 0); + } + + modifier dealEther(address addr) { + vm.deal(addr, 100 ether); + _; + } + + function setUpOnEthereum() internal override { + eSignalService = deploySignalService(address(new SignalService_WithoutProofVerification())); + eBridge = deployBridge(address(new Bridge())); + vm.deal(address(eBridge), 10_000 ether); + } + + function setUpOnTaiko() internal override { + register("bridge", tBridge); + } + + function getBalanceForAccounts() public view returns (uint256) { + return Alice.balance + Bob.balance + Carol.balance + David.balance + + address(eBridge).balance + deployer.balance; + } +} diff --git a/packages/protocol/test/shared/bridge/helpers/MessageReceiver_SendingHalfEtherBalance.sol b/packages/protocol/test/shared/bridge/helpers/MessageReceiver_SendingHalfEtherBalance.sol new file mode 100644 index 00000000000..3e39d19bb4b --- /dev/null +++ b/packages/protocol/test/shared/bridge/helpers/MessageReceiver_SendingHalfEtherBalance.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/shared/bridge/Bridge.sol"; +import "src/shared/signal/SignalService.sol"; + +contract MessageReceiver_SendingHalfEtherBalance is IMessageInvocable { + receive() external payable { } + + function onMessageInvocation(bytes calldata data) public payable { + address addr = abi.decode(data, (address)); + payable(addr).transfer(address(this).balance / 2); + } +} diff --git a/packages/protocol/test/shared/common/AddressManager.t.sol b/packages/protocol/test/shared/common/AddressManager.t.sol deleted file mode 100644 index 94e64b5c836..00000000000 --- a/packages/protocol/test/shared/common/AddressManager.t.sol +++ /dev/null @@ -1,52 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "../TaikoTest.sol"; - -/// @author Kirk Baird -contract TestAddressManager is TaikoTest { - function deployTaikoL1() internal override returns (TaikoL1) { - return - TaikoL1(payable(deployProxy({ name: "taiko", impl: address(new TaikoL1()), data: "" }))); - } - - function setUp() public override { - // Call the TaikoL1TestBase setUp() - super.setUp(); - } - - function test_setAddress() external { - uint64 chainid = 1; - bytes32 name = bytes32(bytes("Bob")); - address newAddress = Bob; - // logs - vm.expectEmit(address(addressManager)); - emit AddressManager.AddressSet(chainid, name, newAddress, address(0)); - - // call `setAddress()` - addressManager.setAddress(chainid, name, newAddress); - - // validation - assertEq(addressManager.getAddress(chainid, name), Bob, "should return Bob address"); - } - - function test_setAddress_callerNotOwner() external { - vm.startPrank(Alice); - - uint64 chainid = 1; - bytes32 name = bytes32(bytes("Bob")); - address newAddress = Bob; - - // call `setAddress()` - vm.expectRevert("Ownable: caller is not the owner"); - addressManager.setAddress(chainid, name, newAddress); - } - - function test_getAddress() external { - assertEq( - addressManager.getAddress(uint64(block.chainid), bytes32(bytes("taiko"))), - address(L1), - "expected address should be TaikoL1" - ); - } -} diff --git a/packages/protocol/test/shared/common/AddressResolver.t.sol b/packages/protocol/test/shared/common/AddressResolver.t.sol deleted file mode 100644 index b416c950db2..00000000000 --- a/packages/protocol/test/shared/common/AddressResolver.t.sol +++ /dev/null @@ -1,50 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "../TaikoTest.sol"; - -/// @author Kirk Baird -contract TestAddressResolver is TaikoTest { - function deployTaikoL1() internal override returns (TaikoL1) { - return - TaikoL1(payable(deployProxy({ name: "taiko", impl: address(new TaikoL1()), data: "" }))); - } - - function setUp() public override { - // Call the TaikoL1TestBase setUp() - super.setUp(); - } - - function test_resolve() external { - assertEq( - bridge.resolve(uint64(block.chainid), bytes32(bytes("tier_guardian")), false), - address(gp), - "wrong guardianVerifier address" - ); - - assertEq( - bridge.resolve(uint64(block.chainid), bytes32(bytes("tier_sgx")), false), - address(sv), - " wrong sgxVerifier address" - ); - } - - // Tests `resolve()` revert on zero address - function test_resolve_revertZeroAddress() external { - bytes32 name = bytes32(bytes("signal_service")); - vm.expectRevert( - abi.encodeWithSelector(AddressResolver.RESOLVER_ZERO_ADDR.selector, 666, name) - ); - - bridge.resolve(uint64(666), name, false); - } - - // Tests `resolve()` successfully return zero address - function test_resolve_returnZeroAddress() external { - assertEq( - bridge.resolve(uint64(123), bytes32(bytes("taiko")), true), - address(0), - " should return address(0)" - ); - } -} diff --git a/packages/protocol/test/shared/common/DefaultResolver.t.sol b/packages/protocol/test/shared/common/DefaultResolver.t.sol new file mode 100644 index 00000000000..9f02a6af574 --- /dev/null +++ b/packages/protocol/test/shared/common/DefaultResolver.t.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "../CommonTest.sol"; + +/// @author Kirk Baird +/// @author Daniel Wang +contract TestDefaultResolver is CommonTest { + uint256 internal constant chainId = 123; + + function test_DefaultResolver_registerAddress() external transactBy(deployer) { + vm.expectEmit(address(resolver)); + emit DefaultResolver.AddressRegistered(chainId, "Friend", Bob, address(0)); + resolver.registerAddress(chainId, "Friend", Bob); + + assertEq(resolver.resolve(chainId, "Friend", false), Bob, "should return Bob address"); + assertEq(resolver.resolve(chainId, "Friend", true), Bob, "should return Bob address"); + + vm.expectEmit(address(resolver)); + emit DefaultResolver.AddressRegistered(chainId, "Friend", Alice, Bob); + resolver.registerAddress(chainId, "Friend", Alice); + + assertEq(resolver.resolve(chainId, "Friend", false), Alice, "should return Alice address"); + assertEq(resolver.resolve(chainId, "Friend", true), Alice, "should return Alice address"); + } + + function test_DefaultResolver_registerAddress_callerNotOwner() external transactBy(Alice) { + vm.expectRevert("Ownable: caller is not the owner"); + resolver.registerAddress(chainId, "Stranger", Bob); + } + + function test_DefaultResolver_getAddress_unregistered_address() external { + vm.expectRevert(IResolver.RESOLVED_TO_ZERO_ADDRESS.selector); + resolver.resolve(chainId, "Enemy", false); + + assertEq(resolver.resolve(chainId, "Enemy", true), address(0), "should return 0 address"); + } +} diff --git a/packages/protocol/test/shared/common/EssentialContract.t.sol b/packages/protocol/test/shared/common/EssentialContract.t.sol index dc9d90eeae3..4e38b2cf50c 100644 --- a/packages/protocol/test/shared/common/EssentialContract.t.sol +++ b/packages/protocol/test/shared/common/EssentialContract.t.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "../TaikoTest.sol"; +import "../CommonTest.sol"; contract Target1 is EssentialContract { uint256 public count; @@ -26,7 +26,7 @@ contract Target2 is Target1 { } } -contract TestEssentialContract is TaikoTest { +contract TestEssentialContract is CommonTest { function test_essential_behind_1967_proxy() external { bytes memory data = abi.encodeCall(Target1.init, (address(0))); vm.startPrank(Alice); diff --git a/packages/protocol/test/shared/common/LibAddress.t.sol b/packages/protocol/test/shared/common/LibAddress.t.sol deleted file mode 100644 index b575c56e171..00000000000 --- a/packages/protocol/test/shared/common/LibAddress.t.sol +++ /dev/null @@ -1,132 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "../TaikoTest.sol"; -import "src/shared/common/LibAddress.sol"; - -contract CalldataReceiver { - // Returns success - function returnSuccess() public pure returns (bool) { - return true; - } - - function supportsInterface(bytes4 interfaceId) external pure returns (bool result) { - if (interfaceId == 0x10101010) { - result = true; - } - } - - // Reverts - receive() external payable { - revert(); - } - - fallback() external payable { - revert(); - } -} - -/// @notice The reason we call LibAddress.sendEther this way is - and not directly inside of a -/// test_sendEther() because this way the coverage adds up if you call functions against initiated -/// contracts, so basically it is a workaround making the library test 'count' towards the coverage. -/// @dev The EtherSenderContract in live environment is the Bridge. -contract EtherSenderContract { - function sendEther( - address _to, - uint256 _amount, - uint256 _gasLimit, - bytes memory _calldata - ) - public - returns (bool success_) - { - success_ = LibAddress.sendEther(_to, _amount, _gasLimit, _calldata); - } - - function sendEtherAndVerify(address _to, uint256 _amount, uint256 _gasLimit) public { - LibAddress.sendEtherAndVerify(_to, _amount, _gasLimit); - } - - function sendEtherAndVerify(address _to, uint256 _amount) public { - LibAddress.sendEtherAndVerify(_to, _amount); - } - - function supportsInterface( - address _addr, - bytes4 _interfaceId - ) - public - view - returns (bool result) - { - return LibAddress.supportsInterface(_addr, _interfaceId); - } -} - -contract TestLibAddress is TaikoTest { - EtherSenderContract bridge; - CalldataReceiver calledContract; - - function setUp() public virtual { - bridge = new EtherSenderContract(); - vm.deal(address(bridge), 1 ether); - - calledContract = new CalldataReceiver(); - } - - function test_sendEther() public { - uint256 balanceBefore = Alice.balance; - bridge.sendEther((Alice), 0.5 ether, 2300, ""); - assertEq(Alice.balance, balanceBefore + 0.5 ether); - - // Cannot send to address(0) - vm.expectRevert(LibAddress.ETH_TRANSFER_FAILED.selector); - bridge.sendEther(address(0), 0.5 ether, 2300, ""); - } - - function test_sendEther_with_calldata() public { - bytes memory functionCalldata = abi.encodeCall(CalldataReceiver.returnSuccess, ()); - - bool success = bridge.sendEther(address(calledContract), 0, 230_000, functionCalldata); - - assertEq(success, true); - - // No input argument so it will fall to the fallback. - bytes memory wrongfunctionCalldata = - abi.encodeWithSelector(IERC165Upgradeable.supportsInterface.selector, 10); - success = bridge.sendEther(address(calledContract), 0, 230_000, wrongfunctionCalldata); - - assertEq(success, false); - } - - function test_sendEtherAndVerify() public { - uint256 balanceBefore = Alice.balance; - bridge.sendEtherAndVerify(Alice, 0.5 ether, 2300); - assertEq(Alice.balance, balanceBefore + 0.5 ether); - - // Send 0 ether is also possible - bridge.sendEtherAndVerify(Alice, 0, 2300); - - // If sending fails, call reverts - vm.expectRevert(LibAddress.ETH_TRANSFER_FAILED.selector); - bridge.sendEtherAndVerify(address(calledContract), 0.1 ether, 2300); - - //Call sendEtherAndVerify without the gasLimit - bridge.sendEtherAndVerify(Alice, 0.5 ether); - assertEq(Alice.balance, balanceBefore + 1 ether); - } - - function test_supportsInterface() public { - bool doesSupport = bridge.supportsInterface(Alice, 0x10101010); - - assertEq(doesSupport, false); - - doesSupport = bridge.supportsInterface(address(bridge), 0x10101010); - - assertEq(doesSupport, false); - - doesSupport = bridge.supportsInterface(address(calledContract), 0x10101010); - - assertEq(doesSupport, true); - } -} diff --git a/packages/protocol/test/shared/helpers/CanSayHelloWorld.sol b/packages/protocol/test/shared/helpers/CanSayHelloWorld.sol new file mode 100644 index 00000000000..fc74c02146f --- /dev/null +++ b/packages/protocol/test/shared/helpers/CanSayHelloWorld.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.24; + +abstract contract CanSayHelloWorld { + function helloWorld() public pure returns (string memory) { + return "helloworld"; + } +} diff --git a/packages/protocol/test/shared/helpers/EssentialContract_EmptyStub.sol b/packages/protocol/test/shared/helpers/EssentialContract_EmptyStub.sol new file mode 100644 index 00000000000..1272ada8c9d --- /dev/null +++ b/packages/protocol/test/shared/helpers/EssentialContract_EmptyStub.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/shared/common/EssentialContract.sol"; + +contract EssentialContract_EmptyStub is EssentialContract { + function init(address _owner) external initializer { + __Essential_init(_owner); + } +} diff --git a/packages/protocol/test/shared/token/FreeMintERC20.sol b/packages/protocol/test/shared/helpers/FreeMintERC20Token.sol similarity index 78% rename from packages/protocol/test/shared/token/FreeMintERC20.sol rename to packages/protocol/test/shared/helpers/FreeMintERC20Token.sol index 96e02962edc..18d1f8e60d1 100644 --- a/packages/protocol/test/shared/token/FreeMintERC20.sol +++ b/packages/protocol/test/shared/helpers/FreeMintERC20Token.sol @@ -5,17 +5,13 @@ import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; // An ERC20 Token with a mint function anyone can call, for free, to receive // 5 tokens. -contract FreeMintERC20 is ERC20 { +contract FreeMintERC20Token is ERC20 { mapping(address minter => bool hasMinted) public minters; - error HasMinted(); - constructor(string memory name, string memory symbol) ERC20(name, symbol) { } function mint(address to) public { - if (minters[to]) { - revert HasMinted(); - } + require(!minters[to], "minted already"); minters[to] = true; _mint(to, 50 * (10 ** decimals())); diff --git a/packages/protocol/test/shared/helpers/FreeMintERC20Token_With50PctgMintAndTransferFailure.sol b/packages/protocol/test/shared/helpers/FreeMintERC20Token_With50PctgMintAndTransferFailure.sol new file mode 100644 index 00000000000..455cc056567 --- /dev/null +++ b/packages/protocol/test/shared/helpers/FreeMintERC20Token_With50PctgMintAndTransferFailure.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "./FreeMintERC20Token.sol"; + +// An ERC20 token for testing the Taiko Bridge on testnets. +// This token has 50% of failure on transfers so we can +// test the bridge's error handling. +contract FreeMintERC20Token_With50PctgMintAndTransferFailure is FreeMintERC20Token { + modifier mayFail() { + require(block.number % 2 != 0, "random failure"); + _; + } + + constructor(string memory name, string memory symbol) FreeMintERC20Token(name, symbol) { } + + function transfer(address to, uint256 amount) public override mayFail returns (bool) { + return ERC20.transfer(to, amount); + } + + function transferFrom( + address from, + address to, + uint256 amount + ) + public + override + mayFail + returns (bool) + { + return ERC20.transferFrom(from, to, amount); + } +} diff --git a/packages/protocol/test/shared/helpers/FreeMintERC721Token.sol b/packages/protocol/test/shared/helpers/FreeMintERC721Token.sol new file mode 100644 index 00000000000..b7a499ac5df --- /dev/null +++ b/packages/protocol/test/shared/helpers/FreeMintERC721Token.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; + +contract FreeMintERC721Token is ERC721 { + string _baseTokenURI; + uint256 minted; + + constructor(string memory baseURI) ERC721("TT", "TT") { + _baseTokenURI = baseURI; + } + + function _baseURI() internal view virtual override returns (string memory) { + return _baseTokenURI; + } + + function mint(uint256 amount) public { + for (uint256 i; i < amount; ++i) { + _safeMint(msg.sender, minted + i); + } + minted += amount; + } +} diff --git a/packages/protocol/test/shared/token/RegularERC20.sol b/packages/protocol/test/shared/helpers/RegularERC20.sol similarity index 100% rename from packages/protocol/test/shared/token/RegularERC20.sol rename to packages/protocol/test/shared/helpers/RegularERC20.sol diff --git a/packages/protocol/test/shared/helpers/SignalService_WithoutProofVerification.sol b/packages/protocol/test/shared/helpers/SignalService_WithoutProofVerification.sol new file mode 100644 index 00000000000..0cd6e5d7699 --- /dev/null +++ b/packages/protocol/test/shared/helpers/SignalService_WithoutProofVerification.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/shared/signal/SignalService.sol"; + +contract SignalService_WithoutProofVerification is SignalService { + function proveSignalReceived( + uint64, /*srcChainId*/ + address, /*app*/ + bytes32, /*signal*/ + bytes calldata /*proof*/ + ) + public + pure + override + returns (uint256) + { } + + function _verifyHopProof( + uint64, /*chainId*/ + address, /*app*/ + bytes32, /*signal*/ + bytes32, /*value*/ + HopProof memory, /*hop*/ + address /*relay*/ + ) + internal + pure + override + returns (bytes32) + { + // Skip verifying the merkle proof entirely + return bytes32(uint256(789)); + } +} diff --git a/packages/protocol/test/shared/libs/LibAddress.h.sol b/packages/protocol/test/shared/libs/LibAddress.h.sol new file mode 100644 index 00000000000..863b8fde166 --- /dev/null +++ b/packages/protocol/test/shared/libs/LibAddress.h.sol @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "src/shared/libs/LibAddress.sol"; +import "../CommonTest.sol"; + +// TODO: delete or beter name these contracts? +contract CalldataReceiver { + // Returns success + function returnSuccess() public pure returns (bool) { + return true; + } + + function supportsInterface(bytes4 interfaceId) external pure returns (bool result) { + if (interfaceId == 0x10101010) { + result = true; + } + } + + // Reverts + receive() external payable { + revert(); + } + + fallback() external payable { + revert(); + } +} + +/// @notice The reason we call LibAddress.sendEther this way is - and not directly inside of a +/// test_sendEther() because this way the coverage adds up if you call functions against initiated +/// contracts, so basically it is a workaround making the library test 'count' towards the coverage. +/// @dev The EtherSenderContract in live environment is the Bridge. +contract EtherSenderContract { + function sendEther( + address _to, + uint256 _amount, + uint256 _gasLimit, + bytes memory _calldata + ) + public + returns (bool success_) + { + success_ = LibAddress.sendEther(_to, _amount, _gasLimit, _calldata); + } + + function sendEtherAndVerify(address _to, uint256 _amount, uint256 _gasLimit) public { + LibAddress.sendEtherAndVerify(_to, _amount, _gasLimit); + } + + function sendEtherAndVerify(address _to, uint256 _amount) public { + LibAddress.sendEtherAndVerify(_to, _amount); + } + + function supportsInterface( + address _addr, + bytes4 _interfaceId + ) + public + view + returns (bool result) + { + return LibAddress.supportsInterface(_addr, _interfaceId); + } +} diff --git a/packages/protocol/test/shared/libs/LibAddress.t.sol b/packages/protocol/test/shared/libs/LibAddress.t.sol new file mode 100644 index 00000000000..ae814ab08f1 --- /dev/null +++ b/packages/protocol/test/shared/libs/LibAddress.t.sol @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "./LibAddress.h.sol"; + +contract TestLibAddress is CommonTest { + EtherSenderContract bridge; + CalldataReceiver calledContract; + + function setUpOnEthereum() internal override { + bridge = new EtherSenderContract(); + vm.deal(address(bridge), 1 ether); + + calledContract = new CalldataReceiver(); + } + + function test_sendEther() public { + uint256 balanceBefore = deployer.balance; + bridge.sendEther((deployer), 0.5 ether, 2300, ""); + assertEq(deployer.balance, balanceBefore + 0.5 ether); + + // Cannot send to address(0) + vm.expectRevert(LibAddress.ETH_TRANSFER_FAILED.selector); + bridge.sendEther(address(0), 0.5 ether, 2300, ""); + } + + function test_sendEther_with_calldata() public { + bytes memory functionCalldata = abi.encodeCall(CalldataReceiver.returnSuccess, ()); + + bool success = bridge.sendEther(address(calledContract), 0, 230_000, functionCalldata); + + assertEq(success, true); + + // No input argument so it will fall to the fallback. + bytes memory wrongfunctionCalldata = + abi.encodeWithSelector(IERC165Upgradeable.supportsInterface.selector, 10); + success = bridge.sendEther(address(calledContract), 0, 230_000, wrongfunctionCalldata); + + assertEq(success, false); + } + + function test_sendEtherAndVerify() public { + uint256 balanceBefore = deployer.balance; + bridge.sendEtherAndVerify(deployer, 0.5 ether, 2300); + assertEq(deployer.balance, balanceBefore + 0.5 ether); + + // Send 0 ether is also possible + bridge.sendEtherAndVerify(deployer, 0, 2300); + + // If sending fails, call reverts + vm.expectRevert(LibAddress.ETH_TRANSFER_FAILED.selector); + bridge.sendEtherAndVerify(address(calledContract), 0.1 ether, 2300); + + //Call sendEtherAndVerify without the gasLimit + bridge.sendEtherAndVerify(deployer, 0.5 ether); + assertEq(deployer.balance, balanceBefore + 1 ether); + } + + function test_supportsInterface() public { + bool doesSupport = bridge.supportsInterface(deployer, 0x10101010); + + assertEq(doesSupport, false); + + doesSupport = bridge.supportsInterface(address(bridge), 0x10101010); + + assertEq(doesSupport, false); + + doesSupport = bridge.supportsInterface(address(calledContract), 0x10101010); + + assertEq(doesSupport, true); + } +} diff --git a/packages/protocol/test/shared/common/LibTrieProof.t.sol b/packages/protocol/test/shared/libs/LibTrieProof.t.sol similarity index 99% rename from packages/protocol/test/shared/common/LibTrieProof.t.sol rename to packages/protocol/test/shared/libs/LibTrieProof.t.sol index 08f5d59c309..f4e3ee02930 100644 --- a/packages/protocol/test/shared/common/LibTrieProof.t.sol +++ b/packages/protocol/test/shared/libs/LibTrieProof.t.sol @@ -1,10 +1,10 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "src/shared/common/LibTrieProof.sol"; -import "../TaikoTest.sol"; +import "src/shared/libs/LibTrieProof.sol"; +import "../CommonTest.sol"; -contract TestLibTrieProof is TaikoTest { +contract TestLibTrieProof is CommonTest { function test_verifyMerkleProof() public { // Not needed for now, but leave it as is. //uint64 chainId = 11_155_111; // Created the proofs on a deployed Sepolia diff --git a/packages/protocol/test/shared/signal/SignalService.t.sol b/packages/protocol/test/shared/signal/SignalService.t.sol index 289d35fc60e..a5ad3c44189 100644 --- a/packages/protocol/test/shared/signal/SignalService.t.sol +++ b/packages/protocol/test/shared/signal/SignalService.t.sol @@ -1,10 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "../TaikoTest.sol"; -import "forge-std/src/console2.sol"; +import "../CommonTest.sol"; -contract MockSignalService is SignalService { +contract SignalServiceNoHopCheck is SignalService { function _verifyHopProof( uint64, /*chainId*/ address, /*app*/ @@ -23,47 +22,19 @@ contract MockSignalService is SignalService { } } -contract TestSignalService is TaikoTest { - AddressManager addressManager; - MockSignalService signalService; - SignalService realSignalService; - uint64 public destChainId = 7; - address taiko; +contract TestSignalService is CommonTest { + SignalService private mockSignalService; + SignalService private signalService; + address private taiko = randAddress(); - function setUp() public { - vm.startPrank(Alice); - vm.deal(Alice, 1 ether); - vm.deal(Bob, 1 ether); - - addressManager = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))), - registerTo: address(addressManager) - }) - ); + function setUpOnEthereum() internal override { + mockSignalService = deploySignalService(address(new SignalServiceNoHopCheck())); + mockSignalService.authorize(taiko, true); - signalService = MockSignalService( - deployProxy({ - name: "signal_service", - impl: address(new MockSignalService()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))) - }) - ); - - realSignalService = SignalService( - deployProxy({ - name: "signal_service", - impl: address(new SignalService()), - data: abi.encodeCall(SignalService.init, (Alice, address(addressManager))) - }) - ); + signalService = deploySignalService(address(new SignalService())); + signalService.authorize(deployer, true); - taiko = randAddress(); - signalService.authorize(taiko, true); - realSignalService.authorize(Alice, true); - vm.stopPrank(); + vm.deal(Bob, 1 ether); } function test_real_signal() public { @@ -76,38 +47,38 @@ contract TestSignalService is TaikoTest { address srcSignalService = 0x604C61d6618AaCdF7a7A2Fe4c42E35Ecba32AE75; address srcBridge = 0xde5B0e8a8034eF30a8b71d78e658C85dFE3FC657; - vm.prank(Alice); - addressManager.setAddress(32_382, "signal_service", srcSignalService); + vm.prank(deployer); + resolver.registerAddress(32_382, "signal_service", srcSignalService); bytes32 stateRoot = hex"7a889e6436fc1cde7827f75217adf5371afb14cc56860e6d9032ba5e28214819"; uint64 blockId = 5570; - vm.prank(Alice); - realSignalService.syncChainData(32_382, LibStrings.H_STATE_ROOT, blockId, stateRoot); + vm.prank(deployer); + signalService.syncChainData(32_382, LibStrings.H_STATE_ROOT, blockId, stateRoot); - realSignalService.proveSignalReceived(32_382, srcBridge, msgHash, proof); + signalService.proveSignalReceived(32_382, srcBridge, msgHash, proof); } function test_SignalService_sendSignal_revert() public { vm.expectRevert(EssentialContract.ZERO_VALUE.selector); - signalService.sendSignal(0); + mockSignalService.sendSignal(0); } function test_SignalService_isSignalSent_revert() public { bytes32 signal = bytes32(uint256(1)); vm.expectRevert(EssentialContract.ZERO_ADDRESS.selector); - signalService.isSignalSent(address(0), signal); + mockSignalService.isSignalSent(address(0), signal); signal = bytes32(uint256(0)); vm.expectRevert(EssentialContract.ZERO_VALUE.selector); - signalService.isSignalSent(Alice, signal); + mockSignalService.isSignalSent(deployer, signal); } function test_SignalService_sendSignal_isSignalSent() public { - vm.startPrank(Alice); + vm.startPrank(deployer); bytes32 signal = bytes32(uint256(1)); - signalService.sendSignal(signal); + mockSignalService.sendSignal(signal); - assertTrue(signalService.isSignalSent(Alice, signal)); + assertTrue(mockSignalService.isSignalSent(deployer, signal)); } function test_SignalService_proveSignalReceived_revert_invalid_chainid_or_signal() public { @@ -115,7 +86,7 @@ contract TestSignalService is TaikoTest { // app being address(0) will revert vm.expectRevert(EssentialContract.ZERO_ADDRESS.selector); - signalService.proveSignalReceived({ + mockSignalService.proveSignalReceived({ _chainId: 1, _app: address(0), _signal: randBytes32(), @@ -124,8 +95,8 @@ contract TestSignalService is TaikoTest { // signal being 0 will revert vm.expectRevert(EssentialContract.ZERO_VALUE.selector); - signalService.proveSignalReceived({ - _chainId: uint64(block.chainid), + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: 0, _proof: abi.encode(proofs) @@ -135,7 +106,7 @@ contract TestSignalService is TaikoTest { function test_SignalService_proveSignalReceived_revert_malformat_proof() public { // "undecodable proof" is not decodeable into SignalService.HopProof[] memory vm.expectRevert(); - signalService.proveSignalReceived({ + mockSignalService.proveSignalReceived({ _chainId: 0, _app: randAddress(), _signal: randBytes32(), @@ -146,23 +117,12 @@ contract TestSignalService is TaikoTest { function test_SignalService_proveSignalReceived_revert_src_signal_service_not_registered() public { - uint64 srcChainId = uint64(block.chainid - 1); - - // Did not call the following, so revert with RESOLVER_ZERO_ADDR - // vm.prank(Alice); - // addressManager.setAddress(srcChainId, "signal_service", randAddress()); - + uint64 someChainId = 12_345; SignalService.HopProof[] memory proofs = new SignalService.HopProof[](1); - vm.expectRevert( - abi.encodeWithSelector( - AddressResolver.RESOLVER_ZERO_ADDR.selector, - srcChainId, - strToBytes32("signal_service") - ) - ); - signalService.proveSignalReceived({ - _chainId: srcChainId, + vm.expectRevert(IResolver.RESOLVED_TO_ZERO_ADDRESS.selector); + mockSignalService.proveSignalReceived({ + _chainId: someChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -170,17 +130,15 @@ contract TestSignalService is TaikoTest { } function test_SignalService_proveSignalReceived_revert_zero_size_proof() public { - uint64 srcChainId = uint64(block.chainid - 1); - - vm.prank(Alice); - addressManager.setAddress(srcChainId, "signal_service", randAddress()); + vm.prank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", randAddress()); // proofs.length must > 0 in order not to revert SignalService.HopProof[] memory proofs = new SignalService.HopProof[](0); vm.expectRevert(SignalService.SS_EMPTY_PROOF.selector); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -188,20 +146,18 @@ contract TestSignalService is TaikoTest { } function test_SignalService_proveSignalReceived_revert_last_hop_incorrect_chainid() public { - uint64 srcChainId = uint64(block.chainid - 1); - - vm.prank(Alice); - addressManager.setAddress(srcChainId, "signal_service", randAddress()); + vm.prank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", randAddress()); SignalService.HopProof[] memory proofs = new SignalService.HopProof[](1); - // proofs[0].chainId must be block.chainid in order not to revert - proofs[0].chainId = uint64(block.chainid + 1); + // proofs[0].chainId must be ethereumChainId in order not to revert + proofs[0].chainId = ethereumChainId + 1; proofs[0].blockId = 1; vm.expectRevert(SignalService.SS_INVALID_LAST_HOP_CHAINID.selector); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -209,20 +165,18 @@ contract TestSignalService is TaikoTest { } function test_SignalService_proveSignalReceived_revert_mid_hop_incorrect_chainid() public { - uint64 srcChainId = uint64(block.chainid - 1); - - vm.prank(Alice); - addressManager.setAddress(srcChainId, "signal_service", randAddress()); + vm.prank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", randAddress()); SignalService.HopProof[] memory proofs = new SignalService.HopProof[](2); - // proofs[0].chainId must NOT be block.chainid in order not to revert - proofs[0].chainId = uint64(block.chainid); + // proofs[0].chainId must NOT be ethereumChainId in order not to revert + proofs[0].chainId = ethereumChainId; proofs[0].blockId = 1; vm.expectRevert(SignalService.SS_INVALID_MID_HOP_CHAINID.selector); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -230,27 +184,19 @@ contract TestSignalService is TaikoTest { } function test_SignalService_proveSignalReceived_revert_mid_hop_not_registered() public { - uint64 srcChainId = uint64(block.chainid + 1); - - vm.prank(Alice); - addressManager.setAddress(srcChainId, "signal_service", randAddress()); + vm.prank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", randAddress()); SignalService.HopProof[] memory proofs = new SignalService.HopProof[](2); - // proofs[0].chainId must NOT be block.chainid in order not to revert - proofs[0].chainId = srcChainId + 1; + // proofs[0].chainId must NOT be ethereumChainId in order not to revert + proofs[0].chainId = ethereumChainId + 1; proofs[0].blockId = 1; - vm.expectRevert( - abi.encodeWithSelector( - AddressResolver.RESOLVER_ZERO_ADDR.selector, - proofs[0].chainId, - strToBytes32("signal_service") - ) - ); + vm.expectRevert(IResolver.RESOLVED_TO_ZERO_ADDRESS.selector); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -258,14 +204,12 @@ contract TestSignalService is TaikoTest { } function test_SignalService_proveSignalReceived_local_chaindata_not_found() public { - uint64 srcChainId = uint64(block.chainid + 1); - - vm.prank(Alice); - addressManager.setAddress(srcChainId, "signal_service", randAddress()); + vm.prank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", randAddress()); SignalService.HopProof[] memory proofs = new SignalService.HopProof[](1); - proofs[0].chainId = uint64(block.chainid); + proofs[0].chainId = ethereumChainId; proofs[0].blockId = 1; // the proof is a storage proof @@ -273,8 +217,8 @@ contract TestSignalService is TaikoTest { proofs[0].storageProof = new bytes[](10); vm.expectRevert(SignalService.SS_SIGNAL_NOT_FOUND.selector); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -284,8 +228,8 @@ contract TestSignalService is TaikoTest { proofs[0].accountProof = new bytes[](1); vm.expectRevert(SignalService.SS_SIGNAL_NOT_FOUND.selector); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -293,14 +237,12 @@ contract TestSignalService is TaikoTest { } function test_SignalService_proveSignalReceived_one_hop_cache_signal_root() public { - uint64 srcChainId = uint64(block.chainid + 1); - - vm.prank(Alice); - addressManager.setAddress(srcChainId, "signal_service", randAddress()); + vm.prank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", randAddress()); SignalService.HopProof[] memory proofs = new SignalService.HopProof[](1); - proofs[0].chainId = uint64(block.chainid); + proofs[0].chainId = ethereumChainId; proofs[0].blockId = 1; proofs[0].rootHash = randBytes32(); @@ -309,8 +251,8 @@ contract TestSignalService is TaikoTest { proofs[0].storageProof = new bytes[](10); vm.expectRevert(SignalService.SS_SIGNAL_NOT_FOUND.selector); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -318,35 +260,33 @@ contract TestSignalService is TaikoTest { // relay the signal root vm.prank(taiko); - signalService.syncChainData( - srcChainId, LibStrings.H_SIGNAL_ROOT, proofs[0].blockId, proofs[0].rootHash + mockSignalService.syncChainData( + ethereumChainId, LibStrings.H_SIGNAL_ROOT, proofs[0].blockId, proofs[0].rootHash ); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) }); - vm.prank(Alice); - signalService.authorize(taiko, false); + vm.prank(deployer); + mockSignalService.authorize(taiko, false); vm.expectRevert(SignalService.SS_UNAUTHORIZED.selector); vm.prank(taiko); - signalService.syncChainData( - srcChainId, LibStrings.H_SIGNAL_ROOT, proofs[0].blockId, proofs[0].rootHash + mockSignalService.syncChainData( + ethereumChainId, LibStrings.H_SIGNAL_ROOT, proofs[0].blockId, proofs[0].rootHash ); } function test_SignalService_proveSignalReceived_one_hop_state_root() public { - uint64 srcChainId = uint64(block.chainid + 1); - - vm.prank(Alice); - addressManager.setAddress(srcChainId, "signal_service", randAddress()); + vm.prank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", randAddress()); SignalService.HopProof[] memory proofs = new SignalService.HopProof[](1); - proofs[0].chainId = uint64(block.chainid); + proofs[0].chainId = ethereumChainId; proofs[0].blockId = 1; proofs[0].rootHash = randBytes32(); @@ -355,8 +295,8 @@ contract TestSignalService is TaikoTest { proofs[0].storageProof = new bytes[](10); vm.expectRevert(SignalService.SS_SIGNAL_NOT_FOUND.selector); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -364,91 +304,83 @@ contract TestSignalService is TaikoTest { // relay the state root vm.prank(taiko); - signalService.syncChainData( - srcChainId, LibStrings.H_STATE_ROOT, proofs[0].blockId, proofs[0].rootHash + mockSignalService.syncChainData( + ethereumChainId, LibStrings.H_STATE_ROOT, proofs[0].blockId, proofs[0].rootHash ); // Should not revert - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) }); assertEq( - signalService.isChainDataSynced( - srcChainId, LibStrings.H_SIGNAL_ROOT, proofs[0].blockId, bytes32(uint256(789)) + mockSignalService.isChainDataSynced( + ethereumChainId, LibStrings.H_SIGNAL_ROOT, proofs[0].blockId, bytes32(uint256(789)) ), false ); } function test_SignalService_proveSignalReceived_multiple_hops_no_caching() public { - uint64 srcChainId = uint64(block.chainid + 1); - - vm.prank(Alice); - addressManager.setAddress(srcChainId, "signal_service", randAddress()); + vm.prank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", randAddress()); SignalService.HopProof[] memory proofs = new SignalService.HopProof[](3); // first hop with full merkle proof - proofs[0].chainId = uint64(block.chainid + 2); + proofs[0].chainId = ethereumChainId + 2; proofs[0].blockId = 1; proofs[0].rootHash = randBytes32(); proofs[0].accountProof = new bytes[](1); proofs[0].storageProof = new bytes[](10); // second hop with storage merkle proof - proofs[1].chainId = uint64(block.chainid + 3); + proofs[1].chainId = ethereumChainId + 3; proofs[1].blockId = 2; proofs[1].rootHash = randBytes32(); proofs[1].accountProof = new bytes[](0); proofs[1].storageProof = new bytes[](10); // third/last hop with full merkle proof - proofs[2].chainId = uint64(block.chainid); + proofs[2].chainId = ethereumChainId; proofs[2].blockId = 3; proofs[2].rootHash = randBytes32(); proofs[2].accountProof = new bytes[](1); proofs[2].storageProof = new bytes[](10); - // expect RESOLVER_ZERO_ADDR - vm.expectRevert( - abi.encodeWithSelector( - AddressResolver.RESOLVER_ZERO_ADDR.selector, - proofs[0].chainId, - strToBytes32("signal_service") - ) - ); - signalService.proveSignalReceived({ - _chainId: srcChainId, + // expect RESOLVED_TO_ZERO_ADDRESS + vm.expectRevert(IResolver.RESOLVED_TO_ZERO_ADDRESS.selector); + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) }); // Add two trusted hop relayers - vm.startPrank(Alice); - addressManager.setAddress(proofs[0].chainId, "signal_service", randAddress() /*relay1*/ ); - addressManager.setAddress(proofs[1].chainId, "signal_service", randAddress() /*relay2*/ ); + vm.startPrank(deployer); + resolver.registerAddress(proofs[0].chainId, "signal_service", randAddress() /*relay1*/ ); + resolver.registerAddress(proofs[1].chainId, "signal_service", randAddress() /*relay2*/ ); vm.stopPrank(); vm.expectRevert(SignalService.SS_SIGNAL_NOT_FOUND.selector); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) }); vm.prank(taiko); - signalService.syncChainData( + mockSignalService.syncChainData( proofs[1].chainId, LibStrings.H_STATE_ROOT, proofs[2].blockId, proofs[2].rootHash ); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -456,15 +388,13 @@ contract TestSignalService is TaikoTest { } function test_SignalService_proveSignalReceived_revert_with_a_loop() public { - uint64 srcChainId = uint64(block.chainid + 1); - - vm.prank(Alice); - addressManager.setAddress(srcChainId, "signal_service", randAddress()); + vm.prank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", randAddress()); SignalService.HopProof[] memory proofs = new SignalService.HopProof[](3); // first hop with full merkle proof - proofs[0].chainId = uint64(block.chainid + 2); + proofs[0].chainId = ethereumChainId + 2; proofs[0].blockId = 1; proofs[0].rootHash = randBytes32(); proofs[0].accountProof = new bytes[](1); @@ -478,26 +408,26 @@ contract TestSignalService is TaikoTest { proofs[1].storageProof = new bytes[](10); // third/last hop with full merkle proof - proofs[2].chainId = uint64(block.chainid); + proofs[2].chainId = ethereumChainId; proofs[2].blockId = 3; proofs[2].rootHash = randBytes32(); proofs[2].accountProof = new bytes[](1); proofs[2].storageProof = new bytes[](10); // Add two trusted hop relayers - vm.startPrank(Alice); - addressManager.setAddress(proofs[0].chainId, "signal_service", randAddress() /*relay1*/ ); - addressManager.setAddress(proofs[1].chainId, "signal_service", randAddress() /*relay2*/ ); + vm.startPrank(deployer); + resolver.registerAddress(proofs[0].chainId, "signal_service", randAddress() /*relay1*/ ); + resolver.registerAddress(proofs[1].chainId, "signal_service", randAddress() /*relay2*/ ); vm.stopPrank(); vm.prank(taiko); - signalService.syncChainData( + mockSignalService.syncChainData( proofs[1].chainId, LibStrings.H_STATE_ROOT, proofs[2].blockId, proofs[2].rootHash ); vm.expectRevert(SignalService.SS_INVALID_HOPS_WITH_LOOP.selector); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) @@ -505,8 +435,8 @@ contract TestSignalService is TaikoTest { } function test_SignalService_proveSignalReceived_multiple_hops_caching() public { - uint64 srcChainId = uint64(block.chainid + 1); - uint64 nextChainId = srcChainId + 100; + uint64 someChainId = ethereumChainId + 1; + uint64 nextChainId = someChainId + 100; SignalService.HopProof[] memory proofs = new SignalService.HopProof[](9); @@ -575,7 +505,7 @@ contract TestSignalService is TaikoTest { proofs[7].cacheOption = ISignalService.CacheOption.CACHE_BOTH; // last hop, 9: full merkle proof, CACHE_BOTH - proofs[8].chainId = uint64(block.chainid); + proofs[8].chainId = ethereumChainId; proofs[8].blockId = 9; proofs[8].rootHash = randBytes32(); proofs[8].accountProof = new bytes[](1); @@ -583,29 +513,27 @@ contract TestSignalService is TaikoTest { proofs[8].cacheOption = ISignalService.CacheOption.CACHE_BOTH; // Add two trusted hop relayers - vm.startPrank(Alice); - addressManager.setAddress(srcChainId, "signal_service", randAddress()); + vm.startPrank(deployer); + resolver.registerAddress(ethereumChainId, "signal_service", randAddress()); for (uint256 i; i < proofs.length; ++i) { - addressManager.setAddress( - proofs[i].chainId, "signal_service", randAddress() /*relay1*/ - ); + resolver.registerAddress(proofs[i].chainId, "signal_service", randAddress() /*relay1*/ ); } vm.stopPrank(); vm.prank(taiko); - signalService.syncChainData( + mockSignalService.syncChainData( proofs[7].chainId, LibStrings.H_STATE_ROOT, proofs[8].blockId, proofs[8].rootHash ); - signalService.proveSignalReceived({ - _chainId: srcChainId, + mockSignalService.proveSignalReceived({ + _chainId: ethereumChainId, _app: randAddress(), _signal: randBytes32(), _proof: abi.encode(proofs) }); // hop 1: full merkle proof, CACHE_NOTHING - _verifyCache(srcChainId, proofs[0].blockId, proofs[0].rootHash, false, false); + _verifyCache(ethereumChainId, proofs[0].blockId, proofs[0].rootHash, false, false); // hop 2: full merkle proof, CACHE_STATE_ROOT _verifyCache(proofs[0].chainId, proofs[1].blockId, proofs[1].rootHash, true, false); // hop 3: full merkle proof, CACHE_SIGNAL_ROOT @@ -635,12 +563,14 @@ contract TestSignalService is TaikoTest { private { assertEq( - signalService.isChainDataSynced(chainId, LibStrings.H_STATE_ROOT, blockId, stateRoot), + mockSignalService.isChainDataSynced( + chainId, LibStrings.H_STATE_ROOT, blockId, stateRoot + ), stateRootCached ); assertEq( - signalService.isChainDataSynced( + mockSignalService.isChainDataSynced( chainId, LibStrings.H_SIGNAL_ROOT, blockId, bytes32(uint256(789)) ), signalRootCached diff --git a/packages/protocol/test/shared/token/MayFailFreeMintERC20.sol b/packages/protocol/test/shared/token/MayFailFreeMintERC20.sol deleted file mode 100644 index 4fe4e76501a..00000000000 --- a/packages/protocol/test/shared/token/MayFailFreeMintERC20.sol +++ /dev/null @@ -1,50 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.24; - -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -// An ERC20 token for testing the Taiko Bridge on testnets. -// This token has 50% of failure on transfers so we can -// test the bridge's error handling. -contract MayFailFreeMintERC20 is ERC20 { - mapping(address minter => bool hasMinted) public minters; - - error HasMinted(); - error Failed(); - - constructor(string memory name, string memory symbol) ERC20(name, symbol) { } - - function mint(address to) public { - if (minters[msg.sender]) { - revert HasMinted(); - } - - minters[msg.sender] = true; - _mint(to, 50 * (10 ** decimals())); - } - - function transfer(address to, uint256 amount) public override returns (bool) { - _mayFail(); - return ERC20.transfer(to, amount); - } - - function transferFrom( - address from, - address to, - uint256 amount - ) - public - override - returns (bool) - { - _mayFail(); - return ERC20.transferFrom(from, to, amount); - } - - // Have a 50% change of failure. - function _mayFail() private view { - if (block.number % 2 == 0) { - revert Failed(); - } - } -} diff --git a/packages/protocol/test/shared/tokenvault/BridgedERC20V2.t.sol b/packages/protocol/test/shared/tokenvault/BridgedERC20V2.t.sol index 9d07025e40b..93746f0961d 100644 --- a/packages/protocol/test/shared/tokenvault/BridgedERC20V2.t.sol +++ b/packages/protocol/test/shared/tokenvault/BridgedERC20V2.t.sol @@ -1,25 +1,19 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "../TaikoTest.sol"; +import "../CommonTest.sol"; -contract TestBridgedERC20 is TaikoTest { - address manager; - address vault = randAddress(); - address owner = randAddress(); +contract TestBridgedERC20V2 is CommonTest { + address private vault = randAddress(); - function setUp() public { - manager = deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }); - - register(manager, "erc20_vault", vault); + function setUpOnEthereum() internal override { + register("erc20_vault", vault); } function test_20Vault_migration__change_migration_status() public { - BridgedERC20 btoken = deployBridgedToken("FOO"); + vm.startPrank(deployer); + BridgedERC20V2 btoken = deployBridgedToken("FOO"); + vm.stopPrank(); vm.expectRevert(); btoken.changeMigrationStatus(Emma, false); @@ -38,25 +32,31 @@ contract TestBridgedERC20 is TaikoTest { function test_20Vault_migration___only_vault_can_min__but_cannot_burn_when_migration_off() public { - BridgedERC20 btoken = deployBridgedToken("BAR"); + vm.startPrank(deployer); + BridgedERC20V2 btoken = deployBridgedToken("BAR"); + vm.stopPrank(); + // only erc20_vault can brun and mint - vm.prank(vault, vault); + vm.prank(vault); btoken.mint(Bob, 1000); - //Vault cannot burn only if it owns the tokens + + // Vault cannot burn only if it owns the tokens vm.expectRevert(); - vm.prank(Bob, Bob); + vm.prank(Bob); btoken.burn(600); + assertEq(btoken.balanceOf(Bob), 1000); - vm.stopPrank(); // Owner can burn/mint - vm.prank(owner, owner); + vm.prank(deployer); btoken.mint(Bob, 1000); } function test_20Vault_migration__old_to_new() public { - BridgedERC20 oldToken = deployBridgedToken("OLD"); - BridgedERC20 newToken = deployBridgedToken("NEW"); + vm.startPrank(deployer); + BridgedERC20V2 oldToken = deployBridgedToken("OLD"); + BridgedERC20V2 newToken = deployBridgedToken("NEW"); + vm.stopPrank(); vm.startPrank(vault); oldToken.mint(Bob, 100); @@ -72,7 +72,7 @@ contract TestBridgedERC20 is TaikoTest { vm.expectRevert(); oldToken.mint(Bob, 10); - vm.prank(owner); + vm.prank(deployer); vm.expectRevert(); oldToken.mint(Bob, 10); @@ -92,7 +92,7 @@ contract TestBridgedERC20 is TaikoTest { vm.expectRevert(); newToken.mint(Bob, 10); - vm.prank(owner); + vm.prank(deployer); newToken.mint(Bob, 10); vm.prank(vault); @@ -120,19 +120,18 @@ contract TestBridgedERC20 is TaikoTest { assertEq(newToken.balanceOf(Bob), 210); } - function deployBridgedToken(string memory name) internal returns (BridgedERC20) { + function deployBridgedToken(bytes32 name) internal returns (BridgedERC20V2) { address srcToken = randAddress(); - uint256 srcChainId = 1000; uint8 srcDecimals = 11; - return BridgedERC20( - deployProxy({ - name: "bridged_token1", + string memory _name = bytes32ToString(name); + return BridgedERC20V2( + deploy({ + name: name, impl: address(new BridgedERC20V2()), data: abi.encodeCall( - BridgedERC20.init, - (owner, address(manager), srcToken, srcChainId, srcDecimals, name, name) - ), - registerTo: manager + BridgedERC20V2.init, + (deployer, address(resolver), srcToken, taikoChainId, srcDecimals, _name, _name) + ) }) ); } diff --git a/packages/protocol/test/shared/tokenvault/ERC1155Vault.h.sol b/packages/protocol/test/shared/tokenvault/ERC1155Vault.h.sol new file mode 100644 index 00000000000..9f4435fe2f2 --- /dev/null +++ b/packages/protocol/test/shared/tokenvault/ERC1155Vault.h.sol @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol"; +import "../CommonTest.sol"; +import "../helpers/CanSayHelloWorld.sol"; + +contract FreeMintERC1155Token is ERC1155 { + constructor(string memory baseURI) ERC1155(baseURI) { } + + function mint(uint256 tokenId, uint256 amount) public { + _mint(msg.sender, tokenId, amount, ""); + } +} + +contract BridgedERC1155_WithHelloWorld is BridgedERC1155, CanSayHelloWorld { } + +// PrankDestBridge lets us simulate a transaction to the ERC1155Vault +// from a named Bridge, without having to test/run through the real Bridge code, +// outside the scope of the unit tests in the ERC1155Vault. +contract PrankDestBridge { + ERC1155Vault destERC1155Vault; + + struct BridgeContext { + bytes32 msgHash; + address sender; + uint64 srcChainId; + } + + BridgeContext ctx; + + constructor(ERC1155Vault _srcVault) { + destERC1155Vault = _srcVault; + } + + function setERC1155Vault(address addr) public { + destERC1155Vault = ERC1155Vault(addr); + } + + function sendMessage(IBridge.Message memory message) + external + payable + returns (bytes32 msgHash, IBridge.Message memory _message) + { + // Dummy return value + return (keccak256(abi.encode(message.id)), _message); + } + + function context() public view returns (BridgeContext memory) { + return ctx; + } + + function sendReceiveERC1155ToERC1155Vault( + BaseNFTVault.CanonicalNFT calldata ctoken, + address from, + address to, + uint256[] memory tokenIds, + uint256[] memory amounts, + bytes32 msgHash, + address srcChainERC1155Vault, + uint64 srcChainId, + uint256 mockLibInvokeMsgValue + ) + public + { + ctx.sender = srcChainERC1155Vault; + ctx.msgHash = msgHash; + ctx.srcChainId = srcChainId; + + // We need this in order to 'mock' the LibBridgeInvoke's + // (success,retVal) = + // message.to.call{ value: message.value, gas: gasLimit + // }(message.data); + // The problem (with foundry) is that this way it is not able to deploy + // a contract + // most probably due to some deployment address nonce issue. (Seems a + // known issue). + destERC1155Vault.onMessageInvocation{ value: mockLibInvokeMsgValue }( + abi.encode(ctoken, from, to, tokenIds, amounts) + ); + + ctx.sender = address(0); + ctx.msgHash = bytes32(0); + ctx.srcChainId = 0; + } +} diff --git a/packages/protocol/test/shared/tokenvault/ERC1155Vault.t.sol b/packages/protocol/test/shared/tokenvault/ERC1155Vault.t.sol index 6c28e585e7d..0bb1baa8668 100644 --- a/packages/protocol/test/shared/tokenvault/ERC1155Vault.t.sol +++ b/packages/protocol/test/shared/tokenvault/ERC1155Vault.t.sol @@ -1,230 +1,62 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol"; -import "../TaikoTest.sol"; +import "./ERC1155Vault.h.sol"; -contract TestTokenERC1155 is ERC1155 { - constructor(string memory baseURI) ERC1155(baseURI) { } - - function mint(uint256 tokenId, uint256 amount) public { - _mint(msg.sender, tokenId, amount, ""); - } -} - -// PrankDestBridge lets us simulate a transaction to the ERC1155Vault -// from a named Bridge, without having to test/run through the real Bridge code, -// outside the scope of the unit tests in the ERC1155Vault. -contract PrankDestBridge { - ERC1155Vault destERC1155Vault; - - struct BridgeContext { - bytes32 msgHash; - address sender; - uint64 srcChainId; - } - - BridgeContext ctx; - - constructor(ERC1155Vault _erc1155Vault) { - destERC1155Vault = _erc1155Vault; - } - - function setERC1155Vault(address addr) public { - destERC1155Vault = ERC1155Vault(addr); - } +contract TestERC1155Vault is CommonTest { + uint32 private constant GAS_LIMIT = 2_000_000; - function sendMessage(IBridge.Message memory message) - external - payable - returns (bytes32 msgHash, IBridge.Message memory _message) - { - // Dummy return value - return (keccak256(abi.encode(message.id)), _message); - } + // Contracts on Ethereum + FreeMintERC1155Token private eERC1155Token; + SignalService private eSignalService; + Bridge private eBridge; + ERC1155Vault private eVault; - function context() public view returns (BridgeContext memory) { - return ctx; - } + // Contracts on Taiko + SignalService private tSignalService; + PrankDestBridge private tBridge; + ERC1155Vault private tVault; - function sendReceiveERC1155ToERC1155Vault( - BaseNFTVault.CanonicalNFT calldata ctoken, - address from, - address to, - uint256[] memory tokenIds, - uint256[] memory amounts, - bytes32 msgHash, - address srcChainERC1155Vault, - uint64 srcChainId, - uint256 mockLibInvokeMsgValue - ) - public - { - ctx.sender = srcChainERC1155Vault; - ctx.msgHash = msgHash; - ctx.srcChainId = srcChainId; - - // We need this in order to 'mock' the LibBridgeInvoke's - // (success,retVal) = - // message.to.call{ value: message.value, gas: gasLimit - // }(message.data); - // The problem (with foundry) is that this way it is not able to deploy - // a contract - // most probably due to some deployment address nonce issue. (Seems a - // known issue). - destERC1155Vault.onMessageInvocation{ value: mockLibInvokeMsgValue }( - abi.encode(ctoken, from, to, tokenIds, amounts) - ); + function setUpOnEthereum() internal override { + eERC1155Token = new FreeMintERC1155Token("http://example.host.com/"); - ctx.sender = address(0); - ctx.msgHash = bytes32(0); - ctx.srcChainId = 0; - } -} + eSignalService = deploySignalService(address(new SignalService_WithoutProofVerification())); + eBridge = deployBridge(address(new Bridge())); + eVault = deployERC1155Vault(); -contract UpdatedBridgedERC1155 is BridgedERC1155 { - function helloWorld() public pure returns (string memory) { - return "helloworld"; - } -} + register("bridged_erc1155", address(new BridgedERC1155())); -contract ERC1155VaultTest is TaikoTest { - uint32 private constant GAS_LIMIT = 2_000_000; - AddressManager addressManager; - BadReceiver badReceiver; - Bridge bridge; - Bridge destChainBridge; - PrankDestBridge destChainIdBridge; - SkipProofCheckSignal mockProofSignalService; - ERC1155Vault erc1155Vault; - ERC1155Vault destChainErc1155Vault; - TestTokenERC1155 ctoken1155; - SignalService signalService; - uint64 destChainId = 19_389; - - function setUp() public { - vm.startPrank(Carol); + vm.deal(address(eBridge), 100 ether); vm.deal(Alice, 100 ether); - vm.deal(Carol, 100 ether); vm.deal(Bob, 100 ether); - addressManager = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }) - ); - - bridge = Bridge( - payable( - deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ) - ); - - destChainBridge = Bridge( - payable( - deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ) - ); - - signalService = SignalService( - deployProxy({ - name: "signal_service", - impl: address(new SignalService()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))) - }) - ); - - erc1155Vault = ERC1155Vault( - deployProxy({ - name: "erc1155_vault", - impl: address(new ERC1155Vault()), - data: abi.encodeCall(ERC1155Vault.init, (address(0), address(addressManager))) - }) - ); - - destChainErc1155Vault = ERC1155Vault( - deployProxy({ - name: "erc1155_vault", - impl: address(new ERC1155Vault()), - data: abi.encodeCall(ERC1155Vault.init, (address(0), address(addressManager))) - }) - ); - - destChainIdBridge = new PrankDestBridge(destChainErc1155Vault); - vm.deal(address(destChainIdBridge), 100 ether); - - mockProofSignalService = SkipProofCheckSignal( - deployProxy({ - name: "signal_service", - impl: address(new SkipProofCheckSignal()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))) - }) - ); - - addressManager.setAddress( - uint64(block.chainid), "signal_service", address(mockProofSignalService) - ); - - addressManager.setAddress(destChainId, "signal_service", address(mockProofSignalService)); - - addressManager.setAddress(uint64(block.chainid), "bridge", address(bridge)); - - addressManager.setAddress(destChainId, "bridge", address(destChainIdBridge)); - - addressManager.setAddress(uint64(block.chainid), "erc1155_vault", address(erc1155Vault)); - - addressManager.setAddress(destChainId, "erc1155_vault", address(destChainErc1155Vault)); + } - // Below 2-2 registrations (mock) are needed bc of - // LibBridgeRecall.sol's - // resolve address - addressManager.setAddress(destChainId, "erc721_vault", address(mockProofSignalService)); - addressManager.setAddress(destChainId, "erc20_vault", address(mockProofSignalService)); - addressManager.setAddress( - uint64(block.chainid), "erc721_vault", address(mockProofSignalService) - ); - addressManager.setAddress( - uint64(block.chainid), "erc20_vault", address(mockProofSignalService) - ); + function setUpOnTaiko() internal override { + tVault = deployERC1155Vault(); + tBridge = new PrankDestBridge(tVault); + tSignalService = deploySignalService(address(new SignalService_WithoutProofVerification())); - vm.deal(address(bridge), 100 ether); + register("bridge", address(tBridge)); + register("bridged_erc1155", address(new BridgedERC1155())); - address bridgedERC1155 = address(new BridgedERC1155()); + vm.deal(address(tBridge), 100 ether); + } - addressManager.setAddress(destChainId, "bridged_erc1155", bridgedERC1155); - addressManager.setAddress(uint64(block.chainid), "bridged_erc1155", bridgedERC1155); + function setUp() public override { + super.setUp(); - ctoken1155 = new TestTokenERC1155("http://example.host.com/"); + vm.startPrank(Alice); + eERC1155Token.mint(1, 10); + eERC1155Token.mint(2, 10); vm.stopPrank(); - vm.startPrank(Alice, Alice); - ctoken1155.mint(1, 10); - ctoken1155.mint(2, 10); - - vm.stopPrank(); - } - - function getPreDeterminedDataBytes() internal pure returns (bytes memory) { - return - hex"20b8155900000000000000000000000000000000000000000000000000000000000000a00000000000000000000000007e5f4552091a69125d5dfcb7b8c2659029395bdf0000000000000000000000007e5f4552091a69125d5dfcb7b8c2659029395bdf000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000007a690000000000000000000000007935de70183a080242a58f64637a8e7f15349b63000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"; } function test_1155Vault_sendToken_1155() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -233,28 +65,28 @@ contract ERC1155VaultTest is TaikoTest { amounts[0] = 2; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ctoken1155.balanceOf(Alice, 1), 8); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2); + assertEq(eERC1155Token.balanceOf(Alice, 1), 8); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 2); } function test_1155Vault_sendToken_with_invalid_token_address_1155() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -263,19 +95,19 @@ contract ERC1155VaultTest is TaikoTest { amounts[0] = 2; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, address(0), Alice, GAS_LIMIT, address(0), GAS_LIMIT, tokenIds, amounts + taikoChainId, address(0), Alice, GAS_LIMIT, address(0), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); + vm.prank(Alice); vm.expectRevert(BaseNFTVault.VAULT_INVALID_TOKEN.selector); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); } function test_1155Vault_sendToken_with_0_tokens_1155() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -284,29 +116,29 @@ contract ERC1155VaultTest is TaikoTest { amounts[0] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); + vm.prank(Alice); vm.expectRevert(BaseNFTVault.VAULT_INVALID_AMOUNT.selector); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); } function test_1155Vault_receiveTokens_from_newly_deployed_bridged_contract_on_destination_chain_1155( ) public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -315,47 +147,38 @@ contract ERC1155VaultTest is TaikoTest { amounts[0] = 2; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ctoken1155.balanceOf(Alice, 1), 8); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2); + assertEq(eERC1155Token.balanceOf(Alice, 1), 8); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 2); amounts[0] = 2; BaseNFTVault.CanonicalNFT memory ctoken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(ctoken1155), + chainId: ethereumChainId, + addr: address(eERC1155Token), symbol: "", name: "" }); - uint64 srcChainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC1155ToERC1155Vault( - ctoken, - Alice, - Alice, - tokenIds, - amounts, - bytes32(0), - address(erc1155Vault), - srcChainId, - 0 + tBridge.sendReceiveERC1155ToERC1155Vault( + ctoken, Alice, Alice, tokenIds, amounts, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc1155Vault.canonicalToBridged(srcChainId, address(ctoken1155)); + tVault.canonicalToBridged(ethereumChainId, address(eERC1155Token)); // Alice bridged over 2 items assertEq(ERC1155(deployedContract).balanceOf(Alice, 1), 2); @@ -364,11 +187,11 @@ contract ERC1155VaultTest is TaikoTest { function test_1155Vault_receiveTokens_but_mint_not_deploy_if_bridged_second_time_1155() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -377,99 +200,81 @@ contract ERC1155VaultTest is TaikoTest { amounts[0] = 2; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ctoken1155.balanceOf(Alice, 1), 8); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2); + assertEq(eERC1155Token.balanceOf(Alice, 1), 8); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 2); BaseNFTVault.CanonicalNFT memory ctoken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(ctoken1155), + chainId: ethereumChainId, + addr: address(eERC1155Token), symbol: "", name: "" }); - uint64 srcChainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC1155ToERC1155Vault( - ctoken, - Alice, - Alice, - tokenIds, - amounts, - bytes32(0), - address(erc1155Vault), - srcChainId, - 0 + tBridge.sendReceiveERC1155ToERC1155Vault( + ctoken, Alice, Alice, tokenIds, amounts, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc1155Vault.canonicalToBridged(srcChainId, address(ctoken1155)); + tVault.canonicalToBridged(ethereumChainId, address(eERC1155Token)); // Alice bridged over 2 items assertEq(ERC1155(deployedContract).balanceOf(Alice, 1), 2); // Change back to 'L1' - vm.chainId(srcChainId); + vm.chainId(ethereumChainId); tokenIds[0] = 1; amounts[0] = 1; sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ctoken1155.balanceOf(Alice, 1), 7); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 3); + assertEq(eERC1155Token.balanceOf(Alice, 1), 7); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 3); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC1155ToERC1155Vault( - ctoken, - Alice, - Alice, - tokenIds, - amounts, - bytes32(0), - address(erc1155Vault), - srcChainId, - 0 + tBridge.sendReceiveERC1155ToERC1155Vault( + ctoken, Alice, Alice, tokenIds, amounts, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged - address bridgedContract = - destChainErc1155Vault.canonicalToBridged(srcChainId, address(ctoken1155)); + address bridgedContract = tVault.canonicalToBridged(ethereumChainId, address(eERC1155Token)); assertEq(bridgedContract, deployedContract); } function test_1155Vault_receiveTokens_erc1155_with_ether_to_dave() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -480,47 +285,46 @@ contract ERC1155VaultTest is TaikoTest { uint256 etherValue = 0.1 ether; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), David, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc1155Vault.sendToken{ value: etherValue }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: etherValue }(sendOpts); - assertEq(ctoken1155.balanceOf(Alice, 1), 8); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2); + assertEq(eERC1155Token.balanceOf(Alice, 1), 8); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 2); amounts[0] = 2; BaseNFTVault.CanonicalNFT memory ctoken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(ctoken1155), + chainId: ethereumChainId, + addr: address(eERC1155Token), symbol: "", name: "" }); - uint64 srcChainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC1155ToERC1155Vault( + tBridge.sendReceiveERC1155ToERC1155Vault( ctoken, Alice, David, tokenIds, amounts, bytes32(0), - address(erc1155Vault), - srcChainId, + address(eVault), + ethereumChainId, etherValue ); // Query canonicalToBridged address deployedContract = - destChainErc1155Vault.canonicalToBridged(srcChainId, address(ctoken1155)); + tVault.canonicalToBridged(ethereumChainId, address(eERC1155Token)); // Alice bridged over 2 items and etherValue to David assertEq(ERC1155(deployedContract).balanceOf(David, 1), 2); @@ -528,11 +332,11 @@ contract ERC1155VaultTest is TaikoTest { } function test_1155Vault_onMessageRecalled_1155() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -541,38 +345,38 @@ contract ERC1155VaultTest is TaikoTest { amounts[0] = 2; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - IBridge.Message memory message = erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + IBridge.Message memory message = eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ctoken1155.balanceOf(Alice, 1), 8); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2); + assertEq(eERC1155Token.balanceOf(Alice, 1), 8); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 2); - bridge.recallMessage(message, bytes("")); + eBridge.recallMessage(message, bytes("")); - // Alice got back her NFTs, and vault has 0 - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + // // Alice got back her NFTs, and vault has 0 + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); } function test_1155Vault_receiveTokens_multiple_1155() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); - assertEq(ctoken1155.balanceOf(Alice, 2), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 2), 0); + assertEq(eERC1155Token.balanceOf(Alice, 2), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 2), 0); uint256[] memory tokenIds = new uint256[](2); tokenIds[0] = 1; @@ -583,49 +387,40 @@ contract ERC1155VaultTest is TaikoTest { amounts[1] = 5; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ctoken1155.balanceOf(Alice, 1), 8); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2); + assertEq(eERC1155Token.balanceOf(Alice, 1), 8); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 2); - assertEq(ctoken1155.balanceOf(Alice, 2), 5); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 2), 5); + assertEq(eERC1155Token.balanceOf(Alice, 2), 5); + assertEq(eERC1155Token.balanceOf(address(eVault), 2), 5); BaseNFTVault.CanonicalNFT memory ctoken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(ctoken1155), + chainId: ethereumChainId, + addr: address(eERC1155Token), symbol: "", name: "" }); - uint64 srcChainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC1155ToERC1155Vault( - ctoken, - Alice, - Alice, - tokenIds, - amounts, - bytes32(0), - address(erc1155Vault), - srcChainId, - 0 + tBridge.sendReceiveERC1155ToERC1155Vault( + ctoken, Alice, Alice, tokenIds, amounts, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc1155Vault.canonicalToBridged(srcChainId, address(ctoken1155)); + tVault.canonicalToBridged(ethereumChainId, address(eERC1155Token)); // Alice bridged over 2 items assertEq(ERC1155(deployedContract).balanceOf(Alice, 1), 2); @@ -633,11 +428,11 @@ contract ERC1155VaultTest is TaikoTest { } function test_1155Vault_bridge_back_but_owner_is_different_now_1155() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -646,64 +441,63 @@ contract ERC1155VaultTest is TaikoTest { amounts[0] = 1; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 1); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 1); // This canonicalToken is basically need to be exact same as the // sendToken() puts together // - here is just mocking putting it together. BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(ctoken1155), + chainId: ethereumChainId, + addr: address(eERC1155Token), symbol: "TT", name: "TT" }); - uint64 chainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC1155ToERC1155Vault( + tBridge.sendReceiveERC1155ToERC1155Vault( canonicalToken, Alice, Alice, tokenIds, amounts, bytes32(0), - address(erc1155Vault), - chainId, + address(eVault), + ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc1155Vault.canonicalToBridged(chainId, address(ctoken1155)); + tVault.canonicalToBridged(ethereumChainId, address(eERC1155Token)); // Alice bridged over 1 from tokenId 1 assertEq(ERC1155(deployedContract).balanceOf(Alice, 1), 1); // Transfer the asset to Bob, and Bob can receive it back on canonical // chain - vm.prank(Alice, Alice); + vm.prank(Alice); ERC1155(deployedContract).safeTransferFrom(Alice, Bob, 1, 1, ""); assertEq(ERC1155(deployedContract).balanceOf(Bob, 1), 1); assertEq(ERC1155(deployedContract).balanceOf(Alice, 1), 0); - vm.prank(Bob, Bob); - ERC1155(deployedContract).setApprovalForAll(address(destChainErc1155Vault), true); + vm.prank(Bob); + ERC1155(deployedContract).setApprovalForAll(address(tVault), true); sendOpts = BaseNFTVault.BridgeTransferOp( - chainId, + ethereumChainId, address(0), Bob, GAS_LIMIT, @@ -713,41 +507,41 @@ contract ERC1155VaultTest is TaikoTest { amounts ); - vm.prank(Bob, Bob); - destChainErc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Bob); + tVault.sendToken{ value: GAS_LIMIT }(sendOpts); - vm.chainId(chainId); + vm.chainId(ethereumChainId); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 1); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 1); - destChainIdBridge.setERC1155Vault(address(erc1155Vault)); + tBridge.setERC1155Vault(address(eVault)); - vm.prank(Carol, Carol); - addressManager.setAddress(uint64(block.chainid), "bridge", address(destChainIdBridge)); + vm.prank(deployer); + register("bridge", address(tBridge)); - destChainIdBridge.sendReceiveERC1155ToERC1155Vault( + tBridge.sendReceiveERC1155ToERC1155Vault( canonicalToken, Bob, Bob, tokenIds, amounts, bytes32(0), - address(erc1155Vault), - chainId, + address(eVault), + ethereumChainId, 0 ); - assertEq(ctoken1155.balanceOf(Bob, 1), 1); + assertEq(eERC1155Token.balanceOf(Bob, 1), 1); } function test_1155Vault_bridge_back_but_original_owner_cannot_claim_it_anymore_if_sold_1155() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -756,64 +550,63 @@ contract ERC1155VaultTest is TaikoTest { amounts[0] = 1; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 1); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 1); // This canonicalToken is basically need to be exact same as the // sendToken() puts together // - here is just mocking putting it together. BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(ctoken1155), + chainId: ethereumChainId, + addr: address(eERC1155Token), symbol: "TT", name: "TT" }); - uint64 chainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC1155ToERC1155Vault( + tBridge.sendReceiveERC1155ToERC1155Vault( canonicalToken, Alice, Alice, tokenIds, amounts, bytes32(0), - address(erc1155Vault), - chainId, + address(eVault), + ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc1155Vault.canonicalToBridged(chainId, address(ctoken1155)); + tVault.canonicalToBridged(ethereumChainId, address(eERC1155Token)); // Alice bridged over 1 from tokenId 1 assertEq(ERC1155(deployedContract).balanceOf(Alice, 1), 1); // Transfer the asset to Bob, and Bob can receive it back on canonical // chain - vm.prank(Alice, Alice); + vm.prank(Alice); ERC1155(deployedContract).safeTransferFrom(Alice, Bob, 1, 1, ""); assertEq(ERC1155(deployedContract).balanceOf(Bob, 1), 1); assertEq(ERC1155(deployedContract).balanceOf(Alice, 1), 0); - vm.prank(Bob, Bob); - ERC1155(deployedContract).setApprovalForAll(address(destChainErc1155Vault), true); + vm.prank(Bob); + ERC1155(deployedContract).setApprovalForAll(address(tVault), true); sendOpts = BaseNFTVault.BridgeTransferOp( - chainId, + ethereumChainId, address(0), Alice, GAS_LIMIT, @@ -823,17 +616,17 @@ contract ERC1155VaultTest is TaikoTest { amounts ); - vm.prank(Alice, Alice); + vm.prank(Alice); vm.expectRevert("ERC1155: caller is not token owner or approved"); - destChainErc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + tVault.sendToken{ value: GAS_LIMIT }(sendOpts); } function test_1155Vault_upgrade_bridged_tokens_1155() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -842,69 +635,60 @@ contract ERC1155VaultTest is TaikoTest { amounts[0] = 2; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ctoken1155.balanceOf(Alice, 1), 8); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2); + assertEq(eERC1155Token.balanceOf(Alice, 1), 8); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 2); BaseNFTVault.CanonicalNFT memory ctoken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(ctoken1155), + chainId: ethereumChainId, + addr: address(eERC1155Token), symbol: "", name: "" }); - uint64 srcChainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC1155ToERC1155Vault( - ctoken, - Alice, - Alice, - tokenIds, - amounts, - bytes32(0), - address(erc1155Vault), - srcChainId, - 0 + tBridge.sendReceiveERC1155ToERC1155Vault( + ctoken, Alice, Alice, tokenIds, amounts, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc1155Vault.canonicalToBridged(srcChainId, address(ctoken1155)); + tVault.canonicalToBridged(ethereumChainId, address(eERC1155Token)); - try UpdatedBridgedERC1155(deployedContract).helloWorld() { + try BridgedERC1155_WithHelloWorld(deployedContract).helloWorld() { fail(); } catch { } // Upgrade the implementation of that contract // so that it supports now the 'helloWorld' call - UpdatedBridgedERC1155 newBridgedContract = new UpdatedBridgedERC1155(); - vm.prank(Carol, Carol); + BridgedERC1155_WithHelloWorld newBridgedContract = new BridgedERC1155_WithHelloWorld(); + vm.prank(deployer); BridgedERC1155(payable(deployedContract)).upgradeTo(address(newBridgedContract)); - try UpdatedBridgedERC1155(deployedContract).helloWorld() { } + try CanSayHelloWorld(deployedContract).helloWorld() { } catch { fail(); } } function test_1155Vault_shall_not_be_able_to_burn_arbitrarily() public { - vm.prank(Alice, Alice); - ctoken1155.setApprovalForAll(address(erc1155Vault), true); + vm.prank(Alice); + eERC1155Token.setApprovalForAll(address(eVault), true); - assertEq(ctoken1155.balanceOf(Alice, 1), 10); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 0); + assertEq(eERC1155Token.balanceOf(Alice, 1), 10); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 0); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -913,53 +697,52 @@ contract ERC1155VaultTest is TaikoTest { amounts[0] = 1; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(ctoken1155), + address(eERC1155Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 1); + assertEq(eERC1155Token.balanceOf(address(eVault), 1), 1); // This canonicalToken is basically need to be exact same as the // sendToken() puts together // - here is just mocking putting it together. BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(ctoken1155), + chainId: ethereumChainId, + addr: address(eERC1155Token), symbol: "TT", name: "TT" }); - uint64 chainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC1155ToERC1155Vault( + tBridge.sendReceiveERC1155ToERC1155Vault( canonicalToken, Alice, Alice, tokenIds, amounts, bytes32(0), - address(erc1155Vault), - chainId, + address(eVault), + ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc1155Vault.canonicalToBridged(chainId, address(ctoken1155)); + tVault.canonicalToBridged(ethereumChainId, address(eERC1155Token)); // Alice bridged over 1 from tokenId 1 assertEq(ERC1155(deployedContract).balanceOf(Alice, 1), 1); sendOpts = BaseNFTVault.BridgeTransferOp( - chainId, + ethereumChainId, address(0), Alice, GAS_LIMIT, @@ -970,19 +753,19 @@ contract ERC1155VaultTest is TaikoTest { ); // Alice hasn't approved the vault yet! - vm.prank(Alice, Alice); + vm.prank(Alice); vm.expectRevert("ERC1155: caller is not token owner or approved"); - destChainErc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + tVault.sendToken{ value: GAS_LIMIT }(sendOpts); // Also Vault cannot burn tokens it does not own (even if the priv key compromised) - vm.prank(address(destChainErc1155Vault), address(destChainErc1155Vault)); + vm.prank(address(tVault)); vm.expectRevert("ERC1155: burn amount exceeds balance"); BridgedERC1155(deployedContract).burn(1, 20); // After setApprovalForAll() ERC1155Vault can transfer and burn - vm.prank(Alice, Alice); - ERC1155(deployedContract).setApprovalForAll(address(destChainErc1155Vault), true); - vm.prank(Alice, Alice); - destChainErc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + ERC1155(deployedContract).setApprovalForAll(address(tVault), true); + vm.prank(Alice); + tVault.sendToken{ value: GAS_LIMIT }(sendOpts); } } diff --git a/packages/protocol/test/shared/tokenvault/ERC20Vault.h.sol b/packages/protocol/test/shared/tokenvault/ERC20Vault.h.sol new file mode 100644 index 00000000000..d32d5f5bbcc --- /dev/null +++ b/packages/protocol/test/shared/tokenvault/ERC20Vault.h.sol @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "../CommonTest.sol"; +import "../helpers/CanSayHelloWorld.sol"; + +contract BridgedERC20V2_WithHelloWorld is BridgedERC20V2, CanSayHelloWorld { } + +// PrankDestBridge lets us simulate a transaction to the ERC20Vault +// from a named Bridge, without having to test/run through the real Bridge code, +// outside the scope of the unit tests in the ERC20Vault. +contract PrankDestBridge { + ERC20Vault destERC20Vault; + TContext ctx; + + struct TContext { + bytes32 msgHash; // messageHash + address sender; + uint64 srcChainId; + } + + constructor(ERC20Vault _erc20Vault) { + destERC20Vault = _erc20Vault; + } + + function setERC20Vault(address addr) public { + destERC20Vault = ERC20Vault(addr); + } + + function context() public view returns (TContext memory) { + return ctx; + } + + function sendReceiveERC20ToERC20Vault( + ERC20Vault.CanonicalERC20 calldata canonicalToken, + address from, + address to, + uint64 amount, + bytes32 msgHash, + address srcChainERC20Vault, + uint64 srcChainId, + uint256 mockLibInvokeMsgValue + ) + public + { + ctx.sender = srcChainERC20Vault; + ctx.msgHash = msgHash; + ctx.srcChainId = srcChainId; + + // We need this in order to 'mock' the LibBridgeInvoke's + // (success,retVal) = + // message.to.call{ value: message.value, gas: gasLimit + // }(message.data); + // The problem (with foundry) is that this way it is not able to deploy + // a contract most probably due to some deployment address nonce issue. (Seems a known + // issue). + destERC20Vault.onMessageInvocation{ value: mockLibInvokeMsgValue }( + abi.encode(canonicalToken, from, to, amount) + ); + + ctx.sender = address(0); + ctx.msgHash = bytes32(0); + ctx.srcChainId = 0; + } +} diff --git a/packages/protocol/test/shared/tokenvault/ERC20Vault.t.sol b/packages/protocol/test/shared/tokenvault/ERC20Vault.t.sol index 1f8804a84f8..e7ecf26c44f 100644 --- a/packages/protocol/test/shared/tokenvault/ERC20Vault.t.sol +++ b/packages/protocol/test/shared/tokenvault/ERC20Vault.t.sol @@ -1,224 +1,63 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "../TaikoTest.sol"; - -// PrankDestBridge lets us simulate a transaction to the ERC20Vault -// from a named Bridge, without having to test/run through the real Bridge code, -// outside the scope of the unit tests in the ERC20Vault. -contract PrankDestBridge { - ERC20Vault destERC20Vault; - TContext ctx; - - struct TContext { - bytes32 msgHash; // messageHash - address sender; - uint64 srcChainId; - } - - constructor(ERC20Vault _erc20Vault) { - destERC20Vault = _erc20Vault; - } - - function setERC20Vault(address addr) public { - destERC20Vault = ERC20Vault(addr); - } - - function context() public view returns (TContext memory) { - return ctx; - } - - function sendReceiveERC20ToERC20Vault( - ERC20Vault.CanonicalERC20 calldata canonicalToken, - address from, - address to, - uint64 amount, - bytes32 msgHash, - address srcChainERC20Vault, - uint64 srcChainId, - uint256 mockLibInvokeMsgValue - ) - public - { - ctx.sender = srcChainERC20Vault; - ctx.msgHash = msgHash; - ctx.srcChainId = srcChainId; - - // We need this in order to 'mock' the LibBridgeInvoke's - // (success,retVal) = - // message.to.call{ value: message.value, gas: gasLimit - // }(message.data); - // The problem (with foundry) is that this way it is not able to deploy - // a contract most probably due to some deployment address nonce issue. (Seems a known - // issue). - destERC20Vault.onMessageInvocation{ value: mockLibInvokeMsgValue }( - abi.encode(canonicalToken, from, to, amount) - ); +import "./ERC20Vault.h.sol"; +import "../helpers/FreeMintERC20Token.sol"; + +contract TestERC20Vault is CommonTest { + // Contracts on Ethereum + SignalService private eSignalService; + Bridge private eBridge; + ERC20Vault private eVault; + FreeMintERC20Token private eERC20Token1; + FreeMintERC20Token private eERC20Token2; + + // Contracts on Taiko + SignalService private tSignalService; + PrankDestBridge private tBridge; + ERC20Vault private tVault; + BridgedERC20 private tUSDC; + BridgedERC20 private tUSDT; + BridgedERC20 private tStETH; + + function setUpOnEthereum() internal override { + eSignalService = deploySignalService(address(new SignalService_WithoutProofVerification())); + eBridge = deployBridge(address(new Bridge())); + eVault = deployERC20Vault(); + + eERC20Token1 = new FreeMintERC20Token("ERC20", "ERC20"); + eERC20Token1.mint(Alice); + + eERC20Token2 = new FreeMintERC20Token("", "123456abcdefgh"); + eERC20Token2.mint(Alice); + + register("bridged_erc20", address(new BridgedERC20())); - ctx.sender = address(0); - ctx.msgHash = bytes32(0); - ctx.srcChainId = 0; - } -} - -contract UpdatedBridgedERC20 is BridgedERC20V2 { - function helloWorld() public pure returns (string memory) { - return "helloworld"; - } -} - -contract TestERC20Vault is TaikoTest { - TaikoToken tko; - AddressManager addressManager; - Bridge bridge; - ERC20Vault erc20Vault; - ERC20Vault destChainIdERC20Vault; - PrankDestBridge destChainIdBridge; - SkipProofCheckSignal mockProofSignalService; - FreeMintERC20 erc20; - FreeMintERC20 weirdNamedToken; - uint64 destChainId = 7; - uint64 srcChainId = uint64(block.chainid); - - BridgedERC20 usdc; - BridgedERC20 usdt; - BridgedERC20 stETH; - - function setUp() public { - vm.startPrank(Carol); vm.deal(Alice, 1 ether); - vm.deal(Carol, 1 ether); vm.deal(Bob, 1 ether); + } - addressManager = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }) - ); - - tko = TaikoToken( - deployProxy({ - name: "taiko_token", - impl: address(new TaikoToken()), - data: abi.encodeCall(TaikoToken.init, (address(0), address(this))) - }) - ); - - addressManager.setAddress(uint64(block.chainid), "taiko_token", address(tko)); - - erc20Vault = ERC20Vault( - deployProxy({ - name: "erc20_vault", - impl: address(new ERC20Vault()), - data: abi.encodeCall(ERC20Vault.init, (address(0), address(addressManager))) - }) - ); - - destChainIdERC20Vault = ERC20Vault( - deployProxy({ - name: "erc20_vault", - impl: address(new ERC20Vault()), - data: abi.encodeCall(ERC20Vault.init, (address(0), address(addressManager))) - }) - ); - - erc20 = new FreeMintERC20("ERC20", "ERC20"); - erc20.mint(Alice); - - weirdNamedToken = new FreeMintERC20("", "123456abcdefgh"); - weirdNamedToken.mint(Alice); - - bridge = Bridge( - payable( - deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ) - ); - - destChainIdBridge = new PrankDestBridge(erc20Vault); - vm.deal(address(destChainIdBridge), 100 ether); - - mockProofSignalService = SkipProofCheckSignal( - deployProxy({ - name: "signal_service", - impl: address(new SkipProofCheckSignal()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))) - }) - ); - - addressManager.setAddress( - uint64(block.chainid), "signal_service", address(mockProofSignalService) - ); - - addressManager.setAddress(destChainId, "signal_service", address(mockProofSignalService)); - - addressManager.setAddress(uint64(block.chainid), "erc20_vault", address(erc20Vault)); - - addressManager.setAddress(destChainId, "erc20_vault", address(destChainIdERC20Vault)); - - addressManager.setAddress(destChainId, "bridge", address(destChainIdBridge)); - - address bridgedERC20 = address(new BridgedERC20()); - - addressManager.setAddress(destChainId, "bridged_erc20", bridgedERC20); - - addressManager.setAddress(uint64(block.chainid), "bridged_erc20", bridgedERC20); + function setUpOnTaiko() internal override { + tSignalService = deploySignalService(address(new SignalService_WithoutProofVerification())); + tVault = deployERC20Vault(); + tBridge = new PrankDestBridge(eVault); - usdc = BridgedERC20( - deployProxy({ - name: "usdc", - impl: address(new BridgedERC20()), - data: abi.encodeCall( - BridgedERC20.init, - (address(0), address(addressManager), randAddress(), 100, 18, "USDC", "USDC coin") - ) - }) - ); + register("bridge", address(tBridge)); + register("bridged_erc20", address(new BridgedERC20())); - usdt = BridgedERC20( - deployProxy({ - name: "usdt", - impl: address(new BridgedERC20()), - data: abi.encodeCall( - BridgedERC20.init, - (address(0), address(addressManager), randAddress(), 100, 18, "USDT", "USDT coin") - ) - }) - ); + tUSDC = deployBridgedERC20(randAddress(), 100, 18, "USDC", "USDC coin"); + tUSDT = deployBridgedERC20(randAddress(), 100, 18, "USDT", "USDT coin"); + tStETH = deployBridgedERC20(randAddress(), 100, 18, "tStETH", "Lido Staked ETH"); - stETH = BridgedERC20( - deployProxy({ - name: "stETH", - impl: address(new BridgedERC20()), - data: abi.encodeCall( - BridgedERC20.init, - ( - address(0), - address(addressManager), - randAddress(), - 100, - 18, - "stETH", - "Lido Staked ETH" - ) - ) - }) - ); - vm.stopPrank(); + vm.deal(address(tBridge), 100 ether); } function test_20Vault_send_erc20_revert_if_allowance_not_set() public { vm.startPrank(Alice); vm.expectRevert(BaseVault.VAULT_INSUFFICIENT_FEE.selector); - erc20Vault.sendToken( + eVault.sendToken( ERC20Vault.BridgeTransferOp( - destChainId, address(0), Bob, 1, address(erc20), 1_000_000, 1 wei + taikoChainId, address(0), Bob, 1, address(eERC20Token1), 1_000_000, 1 wei ) ); } @@ -227,34 +66,34 @@ contract TestERC20Vault is TaikoTest { vm.startPrank(Alice); uint64 amount = 2 wei; - erc20.approve(address(erc20Vault), amount); + eERC20Token1.approve(address(eVault), amount); - uint256 aliceBalanceBefore = erc20.balanceOf(Alice); - uint256 erc20VaultBalanceBefore = erc20.balanceOf(address(erc20Vault)); + uint256 aliceBalanceBefore = eERC20Token1.balanceOf(Alice); + uint256 eVaultBalanceBefore = eERC20Token1.balanceOf(address(eVault)); - erc20Vault.sendToken( + eVault.sendToken( ERC20Vault.BridgeTransferOp( - destChainId, address(0), Bob, 0, address(erc20), 1_000_000, amount + taikoChainId, address(0), Bob, 0, address(eERC20Token1), 1_000_000, amount ) ); - uint256 aliceBalanceAfter = erc20.balanceOf(Alice); - uint256 erc20VaultBalanceAfter = erc20.balanceOf(address(erc20Vault)); + uint256 aliceBalanceAfter = eERC20Token1.balanceOf(Alice); + uint256 eVaultBalanceAfter = eERC20Token1.balanceOf(address(eVault)); assertEq(aliceBalanceBefore - aliceBalanceAfter, amount); - assertEq(erc20VaultBalanceAfter - erc20VaultBalanceBefore, amount); + assertEq(eVaultBalanceAfter - eVaultBalanceBefore, amount); } function test_20Vault_send_erc20_processing_fee_reverts_if_msg_value_too_low() public { vm.startPrank(Alice); uint64 amount = 2 wei; - erc20.approve(address(erc20Vault), amount); + eERC20Token1.approve(address(eVault), amount); vm.expectRevert(); - erc20Vault.sendToken( + eVault.sendToken( ERC20Vault.BridgeTransferOp( - destChainId, address(0), Bob, amount - 1, address(erc20), 1_000_000, amount + taikoChainId, address(0), Bob, amount - 1, address(eERC20Token1), 1_000_000, amount ) ); } @@ -263,28 +102,28 @@ contract TestERC20Vault is TaikoTest { vm.startPrank(Alice); uint64 amount = 2 wei; - erc20.approve(address(erc20Vault), amount); + eERC20Token1.approve(address(eVault), amount); - uint256 aliceBalanceBefore = erc20.balanceOf(Alice); - uint256 erc20VaultBalanceBefore = erc20.balanceOf(address(erc20Vault)); + uint256 aliceBalanceBefore = eERC20Token1.balanceOf(Alice); + uint256 eVaultBalanceBefore = eERC20Token1.balanceOf(address(eVault)); - erc20Vault.sendToken{ value: amount }( + eVault.sendToken{ value: amount }( ERC20Vault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Bob, amount - 1, - address(erc20), + address(eERC20Token1), 1_000_000, amount - 1 // value: (msg.value - fee) ) ); - uint256 aliceBalanceAfter = erc20.balanceOf(Alice); - uint256 erc20VaultBalanceAfter = erc20.balanceOf(address(erc20Vault)); + uint256 aliceBalanceAfter = eERC20Token1.balanceOf(Alice); + uint256 eVaultBalanceAfter = eERC20Token1.balanceOf(address(eVault)); assertEq(aliceBalanceBefore - aliceBalanceAfter, 1); - assertEq(erc20VaultBalanceAfter - erc20VaultBalanceBefore, 1); + assertEq(eVaultBalanceAfter - eVaultBalanceBefore, 1); } function test_20Vault_send_erc20_reverts_invalid_amount() public { @@ -293,9 +132,9 @@ contract TestERC20Vault is TaikoTest { uint64 amount = 0; vm.expectRevert(ERC20Vault.VAULT_INVALID_AMOUNT.selector); - erc20Vault.sendToken( + eVault.sendToken( ERC20Vault.BridgeTransferOp( - destChainId, address(0), Bob, 0, address(erc20), 1_000_000, amount + taikoChainId, address(0), Bob, 0, address(eERC20Token1), 1_000_000, amount ) ); } @@ -306,9 +145,9 @@ contract TestERC20Vault is TaikoTest { uint64 amount = 1; vm.expectRevert(ERC20Vault.VAULT_INVALID_TOKEN.selector); - erc20Vault.sendToken( + eVault.sendToken( ERC20Vault.BridgeTransferOp( - destChainId, address(0), Bob, 0, address(0), 1_000_000, amount + taikoChainId, address(0), Bob, 0, address(0), 1_000_000, amount ) ); } @@ -318,63 +157,63 @@ contract TestERC20Vault is TaikoTest { { vm.startPrank(Alice); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - erc20.mint(address(erc20Vault)); + eERC20Token1.mint(address(eVault)); uint64 amount = 1; address to = Bob; - uint256 erc20VaultBalanceBefore = erc20.balanceOf(address(erc20Vault)); - uint256 toBalanceBefore = erc20.balanceOf(to); + uint256 eVaultBalanceBefore = eERC20Token1.balanceOf(address(eVault)); + uint256 toBalanceBefore = eERC20Token1.balanceOf(to); - destChainIdBridge.sendReceiveERC20ToERC20Vault( - erc20ToCanonicalERC20(destChainId), + tBridge.sendReceiveERC20ToERC20Vault( + erc20ToCanonicalERC20(taikoChainId), Alice, to, amount, bytes32(0), - address(erc20Vault), - srcChainId, + address(eVault), + ethereumChainId, 0 ); - uint256 erc20VaultBalanceAfter = erc20.balanceOf(address(erc20Vault)); - assertEq(erc20VaultBalanceBefore - erc20VaultBalanceAfter, amount); + uint256 eVaultBalanceAfter = eERC20Token1.balanceOf(address(eVault)); + assertEq(eVaultBalanceBefore - eVaultBalanceAfter, amount); - uint256 toBalanceAfter = erc20.balanceOf(to); + uint256 toBalanceAfter = eERC20Token1.balanceOf(to); assertEq(toBalanceAfter - toBalanceBefore, amount); } - function test_20Vault_receiveTokens_erc20_with_ether_to_dave() public { + function test_20Vault_receiveERC20Token1s_erc20_with_ether_to_dave() public { vm.startPrank(Alice); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - erc20.mint(address(erc20Vault)); + eERC20Token1.mint(address(eVault)); uint64 amount = 1; uint256 etherAmount = 0.1 ether; address to = David; - uint256 erc20VaultBalanceBefore = erc20.balanceOf(address(erc20Vault)); - uint256 toBalanceBefore = erc20.balanceOf(to); + uint256 eVaultBalanceBefore = eERC20Token1.balanceOf(address(eVault)); + uint256 toBalanceBefore = eERC20Token1.balanceOf(to); - destChainIdBridge.sendReceiveERC20ToERC20Vault( - erc20ToCanonicalERC20(destChainId), + tBridge.sendReceiveERC20ToERC20Vault( + erc20ToCanonicalERC20(taikoChainId), Alice, to, amount, bytes32(0), - address(erc20Vault), - srcChainId, + address(eVault), + ethereumChainId, etherAmount ); - uint256 erc20VaultBalanceAfter = erc20.balanceOf(address(erc20Vault)); - assertEq(erc20VaultBalanceBefore - erc20VaultBalanceAfter, amount); + uint256 eVaultBalanceAfter = eERC20Token1.balanceOf(address(eVault)); + assertEq(eVaultBalanceBefore - eVaultBalanceAfter, amount); - uint256 toBalanceAfter = erc20.balanceOf(to); + uint256 toBalanceAfter = eERC20Token1.balanceOf(to); assertEq(toBalanceAfter - toBalanceBefore, amount); assertEq(David.balance, etherAmount); } @@ -385,29 +224,29 @@ contract TestERC20Vault is TaikoTest { { vm.startPrank(Alice); - vm.chainId(destChainId); + vm.chainId(taikoChainId); uint64 amount = 1; - destChainIdBridge.setERC20Vault(address(destChainIdERC20Vault)); + tBridge.setERC20Vault(address(tVault)); address bridgedAddressBefore = - destChainIdERC20Vault.canonicalToBridged(srcChainId, address(erc20)); + tVault.canonicalToBridged(ethereumChainId, address(eERC20Token1)); assertEq(bridgedAddressBefore == address(0), true); - destChainIdBridge.sendReceiveERC20ToERC20Vault( - erc20ToCanonicalERC20(srcChainId), + tBridge.sendReceiveERC20ToERC20Vault( + erc20ToCanonicalERC20(ethereumChainId), Alice, Bob, amount, bytes32(0), - address(erc20Vault), - srcChainId, + address(eVault), + ethereumChainId, 0 ); address bridgedAddressAfter = - destChainIdERC20Vault.canonicalToBridged(srcChainId, address(erc20)); + tVault.canonicalToBridged(ethereumChainId, address(eERC20Token1)); assertEq(bridgedAddressAfter != address(0), true); BridgedERC20 bridgedERC20 = BridgedERC20(bridgedAddressAfter); @@ -423,52 +262,52 @@ contract TestERC20Vault is TaikoTest { { return ERC20Vault.CanonicalERC20({ chainId: chainId, - addr: address(erc20), - decimals: erc20.decimals(), - symbol: erc20.symbol(), - name: erc20.name() + addr: address(eERC20Token1), + decimals: eERC20Token1.decimals(), + symbol: eERC20Token1.symbol(), + name: eERC20Token1.name() }); } function noNameErc20(uint64 chainId) internal view returns (ERC20Vault.CanonicalERC20 memory) { return ERC20Vault.CanonicalERC20({ chainId: chainId, - addr: address(weirdNamedToken), - decimals: weirdNamedToken.decimals(), - symbol: weirdNamedToken.symbol(), - name: weirdNamedToken.name() + addr: address(eERC20Token2), + decimals: eERC20Token2.decimals(), + symbol: eERC20Token2.symbol(), + name: eERC20Token2.name() }); } function test_20Vault_upgrade_bridged_tokens_20() public { vm.startPrank(Alice); - vm.chainId(destChainId); + vm.chainId(taikoChainId); uint64 amount = 1; - destChainIdBridge.setERC20Vault(address(destChainIdERC20Vault)); + tBridge.setERC20Vault(address(tVault)); address bridgedAddressBefore = - destChainIdERC20Vault.canonicalToBridged(srcChainId, address(erc20)); + tVault.canonicalToBridged(ethereumChainId, address(eERC20Token1)); assertEq(bridgedAddressBefore == address(0), true); - destChainIdBridge.sendReceiveERC20ToERC20Vault( - erc20ToCanonicalERC20(srcChainId), + tBridge.sendReceiveERC20ToERC20Vault( + erc20ToCanonicalERC20(ethereumChainId), Alice, Bob, amount, bytes32(0), - address(erc20Vault), - srcChainId, + address(eVault), + ethereumChainId, 0 ); address bridgedAddressAfter = - destChainIdERC20Vault.canonicalToBridged(srcChainId, address(erc20)); + tVault.canonicalToBridged(ethereumChainId, address(eERC20Token1)); assertEq(bridgedAddressAfter != address(0), true); - try UpdatedBridgedERC20(bridgedAddressAfter).helloWorld() { + try CanSayHelloWorld(bridgedAddressAfter).helloWorld() { fail(); } catch { // It should not yet support this function call @@ -476,13 +315,13 @@ contract TestERC20Vault is TaikoTest { // Upgrade the implementation of that contract // so that it supports now the 'helloWorld' call - UpdatedBridgedERC20 newBridgedContract = new UpdatedBridgedERC20(); + BridgedERC20V2_WithHelloWorld newBridgedContract = new BridgedERC20V2_WithHelloWorld(); vm.stopPrank(); - vm.prank(Carol, Carol); + vm.prank(deployer); BridgedERC20(payable(bridgedAddressAfter)).upgradeTo(address(newBridgedContract)); - vm.prank(Alice, Alice); - try UpdatedBridgedERC20(bridgedAddressAfter).helloWorld() { + vm.prank(Alice); + try CanSayHelloWorld(bridgedAddressAfter).helloWorld() { // It should support now this function call } catch { fail(); @@ -493,32 +332,32 @@ contract TestERC20Vault is TaikoTest { vm.startPrank(Alice); uint64 amount = 2 wei; - erc20.approve(address(erc20Vault), amount); + eERC20Token1.approve(address(eVault), amount); - uint256 aliceBalanceBefore = erc20.balanceOf(Alice); - uint256 erc20VaultBalanceBefore = erc20.balanceOf(address(erc20Vault)); + uint256 aliceBalanceBefore = eERC20Token1.balanceOf(Alice); + uint256 eVaultBalanceBefore = eERC20Token1.balanceOf(address(eVault)); - IBridge.Message memory _messageToSimulateFail = erc20Vault.sendToken( + IBridge.Message memory _messageToSimulateFail = eVault.sendToken( ERC20Vault.BridgeTransferOp( - destChainId, address(0), Bob, 0, address(erc20), 1_000_000, amount + taikoChainId, address(0), Bob, 0, address(eERC20Token1), 1_000_000, amount ) ); - uint256 aliceBalanceAfter = erc20.balanceOf(Alice); - uint256 erc20VaultBalanceAfter = erc20.balanceOf(address(erc20Vault)); + uint256 aliceBalanceAfter = eERC20Token1.balanceOf(Alice); + uint256 eVaultBalanceAfter = eERC20Token1.balanceOf(address(eVault)); assertEq(aliceBalanceBefore - aliceBalanceAfter, amount); - assertEq(erc20VaultBalanceAfter - erc20VaultBalanceBefore, amount); + assertEq(eVaultBalanceAfter - eVaultBalanceBefore, amount); // No need to imitate that it is failed because we have a mock SignalService - bridge.recallMessage(_messageToSimulateFail, bytes("")); + eBridge.recallMessage(_messageToSimulateFail, bytes("")); - uint256 aliceBalanceAfterRecall = erc20.balanceOf(Alice); - uint256 erc20VaultBalanceAfterRecall = erc20.balanceOf(address(erc20Vault)); + uint256 aliceBalanceAfterRecall = eERC20Token1.balanceOf(Alice); + uint256 eVaultBalanceAfterRecall = eERC20Token1.balanceOf(address(eVault)); // Release -> original balance assertEq(aliceBalanceAfterRecall, aliceBalanceBefore); - assertEq(erc20VaultBalanceAfterRecall, erc20VaultBalanceBefore); + assertEq(eVaultBalanceAfterRecall, eVaultBalanceBefore); } function test_20Vault_change_bridged_token() public { @@ -527,61 +366,61 @@ contract TestERC20Vault is TaikoTest { vm.warp(block.timestamp + 91 days); - vm.startPrank(Carol); + vm.startPrank(deployer); - erc20Vault.changeBridgedToken( + eVault.changeBridgedToken( ERC20Vault.CanonicalERC20({ chainId: 1, - addr: address(erc20), + addr: address(eERC20Token1), decimals: 18, symbol: "ERC20TT", name: "ERC20 Test token" }), - address(usdc) + address(tUSDC) ); - assertEq(erc20Vault.canonicalToBridged(1, address(erc20)), address(usdc)); + assertEq(eVault.canonicalToBridged(1, address(eERC20Token1)), address(tUSDC)); vm.expectRevert(ERC20Vault.VAULT_LAST_MIGRATION_TOO_CLOSE.selector); - erc20Vault.changeBridgedToken( + eVault.changeBridgedToken( ERC20Vault.CanonicalERC20({ chainId: 1, - addr: address(erc20), + addr: address(eERC20Token1), decimals: 18, symbol: "ERC20TT", name: "ERC20 Test token" }), - address(usdt) + address(tUSDT) ); vm.warp(block.timestamp + 91 days); vm.expectRevert(ERC20Vault.VAULT_CTOKEN_MISMATCH.selector); - erc20Vault.changeBridgedToken( + eVault.changeBridgedToken( ERC20Vault.CanonicalERC20({ chainId: 1, - addr: address(erc20), + addr: address(eERC20Token1), decimals: 18, symbol: "ERC20TT_WRONG_NAME", name: "ERC20 Test token" }), - address(usdt) + address(tUSDT) ); - erc20Vault.changeBridgedToken( + eVault.changeBridgedToken( ERC20Vault.CanonicalERC20({ chainId: 1, - addr: address(erc20), + addr: address(eERC20Token1), decimals: 18, symbol: "ERC20TT", name: "ERC20 Test token" }), - address(usdt) + address(tUSDT) ); - assertEq(erc20Vault.canonicalToBridged(1, address(erc20)), address(usdt)); + assertEq(eVault.canonicalToBridged(1, address(eERC20Token1)), address(tUSDT)); - erc20Vault.changeBridgedToken( + eVault.changeBridgedToken( ERC20Vault.CanonicalERC20({ chainId: 1, addr: canonicalRandomToken, @@ -589,48 +428,48 @@ contract TestERC20Vault is TaikoTest { symbol: "ERC20TT2", name: "ERC20 Test token2" }), - address(stETH) + address(tStETH) ); vm.warp(block.timestamp + 91 days); - // usdc is already blacklisted! + // tUSDC is already blacklisted! vm.expectRevert(ERC20Vault.VAULT_BTOKEN_BLACKLISTED.selector); - erc20Vault.changeBridgedToken( + eVault.changeBridgedToken( ERC20Vault.CanonicalERC20({ chainId: 1, - addr: address(erc20), + addr: address(eERC20Token1), decimals: 18, symbol: "ERC20TT", name: "ERC20 Test token" }), - address(usdc) + address(tUSDC) ); // invalid btoken vm.expectRevert(ERC20Vault.VAULT_INVALID_CTOKEN.selector); - erc20Vault.changeBridgedToken( + eVault.changeBridgedToken( ERC20Vault.CanonicalERC20({ - chainId: uint64(block.chainid), - addr: address(erc20), + chainId: ethereumChainId, + addr: address(eERC20Token1), decimals: 18, symbol: "ERC20TT", name: "ERC20 Test token" }), - address(usdc) + address(tUSDC) ); - // We cannot use stETH for erc20 (as it is used in connection with another token) + // We cannot use tStETH for erc20 (as it is used in connection with another token) vm.expectRevert(ERC20Vault.VAULT_INVALID_NEW_BTOKEN.selector); - erc20Vault.changeBridgedToken( + eVault.changeBridgedToken( ERC20Vault.CanonicalERC20({ chainId: 1, - addr: address(erc20), + addr: address(eERC20Token1), decimals: 18, symbol: "ERC20TT", name: "ERC20 Test token" }), - address(stETH) + address(tStETH) ); vm.stopPrank(); @@ -640,9 +479,9 @@ contract TestERC20Vault is TaikoTest { vm.startPrank(Alice); (, bytes memory symbolData) = - address(weirdNamedToken).staticcall(abi.encodeCall(INameSymbol.symbol, ())); + address(eERC20Token2).staticcall(abi.encodeCall(INameSymbol.symbol, ())); (, bytes memory nameData) = - address(weirdNamedToken).staticcall(abi.encodeCall(INameSymbol.name, ())); + address(eERC20Token2).staticcall(abi.encodeCall(INameSymbol.name, ())); string memory decodedSymbol = LibBytes.toString(symbolData); string memory decodedName = LibBytes.toString(nameData); @@ -656,25 +495,25 @@ contract TestERC20Vault is TaikoTest { function test_20Vault_deploy_erc20_with_no_name() public { vm.startPrank(Alice); - vm.chainId(destChainId); + vm.chainId(taikoChainId); uint64 amount = 1; - destChainIdBridge.setERC20Vault(address(destChainIdERC20Vault)); + tBridge.setERC20Vault(address(tVault)); address bridgedAddressBefore = - destChainIdERC20Vault.canonicalToBridged(srcChainId, address(erc20)); + tVault.canonicalToBridged(ethereumChainId, address(eERC20Token1)); assertEq(bridgedAddressBefore == address(0), true); // Token with empty name succeeds - destChainIdBridge.sendReceiveERC20ToERC20Vault( - noNameErc20(srcChainId), + tBridge.sendReceiveERC20ToERC20Vault( + noNameErc20(ethereumChainId), Alice, Bob, amount, bytes32(0), - address(erc20Vault), - srcChainId, + address(eVault), + ethereumChainId, 0 ); } diff --git a/packages/protocol/test/shared/tokenvault/ERC721Vault.h.sol b/packages/protocol/test/shared/tokenvault/ERC721Vault.h.sol new file mode 100644 index 00000000000..6670dc3961e --- /dev/null +++ b/packages/protocol/test/shared/tokenvault/ERC721Vault.h.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +import "../CommonTest.sol"; +import "../helpers/CanSayHelloWorld.sol"; + +contract BridgedERC721_WithHelloWorld is BridgedERC721, CanSayHelloWorld { } + +// PrankDestBridge lets us simulate a transaction to the vault +// from a named Bridge, without having to test/run through the real Bridge code, +// outside the scope of the unit tests in the vault. +contract PrankDestBridge { + ERC721Vault destVault; + + struct BridgeContext { + bytes32 msgHash; + address sender; + uint64 chainId; + } + + BridgeContext ctx; + + constructor(ERC721Vault _vault) { + destVault = _vault; + } + + function setERC721Vault(address addr) public { + destVault = ERC721Vault(addr); + } + + function sendMessage(IBridge.Message memory message) + external + payable + returns (bytes32 msgHash, IBridge.Message memory _message) + { + // Dummy return value + return (keccak256(abi.encode(message.id)), _message); + } + + function context() public view returns (BridgeContext memory) { + return ctx; + } + + function sendReceiveERC721ToERC721Vault( + BaseNFTVault.CanonicalNFT calldata canonicalToken, + address from, + address to, + uint256[] memory tokenIds, + bytes32 msgHash, + address srcVault, + uint64 chainId, + uint256 mockLibInvokeMsgValue + ) + public + { + ctx.sender = srcVault; + ctx.msgHash = msgHash; + ctx.chainId = chainId; + + // We need this in order to 'mock' the LibBridgeInvoke's + // (success,retVal) = + // message.to.call{ value: message.value, gas: gasLimit + // }(message.data); + // The problem (with foundry) is that this way it is not able to deploy + // a contract + // most probably due to some deployment address nonce issue. (Seems a + // known issue). + destVault.onMessageInvocation{ value: mockLibInvokeMsgValue }( + abi.encode(canonicalToken, from, to, tokenIds) + ); + + ctx.sender = address(0); + ctx.msgHash = bytes32(0); + ctx.chainId = 0; + } +} diff --git a/packages/protocol/test/shared/tokenvault/ERC721Vault.t.sol b/packages/protocol/test/shared/tokenvault/ERC721Vault.t.sol index 0ef70957687..6ec4cbed753 100644 --- a/packages/protocol/test/shared/tokenvault/ERC721Vault.t.sol +++ b/packages/protocol/test/shared/tokenvault/ERC721Vault.t.sol @@ -1,238 +1,57 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.24; -import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; -import "../TaikoTest.sol"; +import "../helpers/FreeMintERC721Token.sol"; +import "./ERC721Vault.h.sol"; -contract TestTokenERC721 is ERC721 { - string _baseTokenURI; - uint256 minted; - - constructor(string memory baseURI) ERC721("TT", "TT") { - setBaseURI(baseURI); - } - - function setBaseURI(string memory baseURI) internal { - _baseTokenURI = baseURI; - } - - function _baseURI() internal view virtual override returns (string memory) { - return _baseTokenURI; - } - - function mint(uint256 amount) public { - for (uint256 i; i < amount; ++i) { - _safeMint(msg.sender, minted + i); - } - minted += amount; - } -} - -// PrankDestBridge lets us simulate a transaction to the erc721Vault -// from a named Bridge, without having to test/run through the real Bridge code, -// outside the scope of the unit tests in the erc721Vault. -contract PrankDestBridge { - ERC721Vault destERC721Vault; - - struct BridgeContext { - bytes32 msgHash; - address sender; - uint64 chainId; - } - - BridgeContext ctx; - - constructor(ERC721Vault _erc721Vault) { - destERC721Vault = _erc721Vault; - } - - function setERC721Vault(address addr) public { - destERC721Vault = ERC721Vault(addr); - } +contract TestERC721Vault is CommonTest { + uint32 private constant GAS_LIMIT = 2_000_000; - function sendMessage(IBridge.Message memory message) - external - payable - returns (bytes32 msgHash, IBridge.Message memory _message) - { - // Dummy return value - return (keccak256(abi.encode(message.id)), _message); - } + // Contracts on Ethereum + ERC721Vault private eVault; + Bridge private eBridge; + FreeMintERC721Token private eFreeMintERC721Token; - function context() public view returns (BridgeContext memory) { - return ctx; - } + // Contracts on Taiko + ERC721Vault private tVault; + PrankDestBridge private tBridge; - function sendReceiveERC721ToERC721Vault( - BaseNFTVault.CanonicalNFT calldata canonicalToken, - address from, - address to, - uint256[] memory tokenIds, - bytes32 msgHash, - address srcChainerc721Vault, - uint64 chainId, - uint256 mockLibInvokeMsgValue - ) - public - { - ctx.sender = srcChainerc721Vault; - ctx.msgHash = msgHash; - ctx.chainId = chainId; - - // We need this in order to 'mock' the LibBridgeInvoke's - // (success,retVal) = - // message.to.call{ value: message.value, gas: gasLimit - // }(message.data); - // The problem (with foundry) is that this way it is not able to deploy - // a contract - // most probably due to some deployment address nonce issue. (Seems a - // known issue). - destERC721Vault.onMessageInvocation{ value: mockLibInvokeMsgValue }( - abi.encode(canonicalToken, from, to, tokenIds) - ); - - ctx.sender = address(0); - ctx.msgHash = bytes32(0); - ctx.chainId = 0; - } -} - -contract UpdatedBridgedERC721 is BridgedERC721 { - function helloWorld() public pure returns (string memory) { - return "helloworld"; - } -} + function setUpOnEthereum() internal override { + deploySignalService(address(new SignalService_WithoutProofVerification())); + eBridge = deployBridge(address(new Bridge())); + eVault = deployERC721Vault(); -contract ERC721VaultTest is TaikoTest { - uint32 private constant GAS_LIMIT = 2_000_000; + register("bridged_erc721", address(new BridgedERC721())); - AddressManager addressManager; - BadReceiver badReceiver; - Bridge bridge; - Bridge destChainBridge; - PrankDestBridge destChainIdBridge; - SkipProofCheckSignal mockProofSignalService; - ERC721Vault erc721Vault; - ERC721Vault destChainErc721Vault; - TestTokenERC721 canonicalToken721; - SignalService signalService; - uint64 destChainId = 19_389; - - function setUp() public { - vm.startPrank(Carol); vm.deal(Alice, 100 ether); - vm.deal(Carol, 100 ether); vm.deal(Bob, 100 ether); + } - addressManager = AddressManager( - deployProxy({ - name: "address_manager", - impl: address(new AddressManager()), - data: abi.encodeCall(AddressManager.init, (address(0))) - }) - ); - - bridge = Bridge( - payable( - deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ) - ); - - destChainBridge = Bridge( - payable( - deployProxy({ - name: "bridge", - impl: address(new Bridge()), - data: abi.encodeCall(Bridge.init, (address(0), address(addressManager))), - registerTo: address(addressManager) - }) - ) - ); - - signalService = SignalService( - deployProxy({ - name: "signal_service", - impl: address(new SignalService()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))) - }) - ); - - erc721Vault = ERC721Vault( - deployProxy({ - name: "erc721_vault", - impl: address(new ERC721Vault()), - data: abi.encodeCall(ERC721Vault.init, (address(0), address(addressManager))) - }) - ); - - destChainErc721Vault = ERC721Vault( - deployProxy({ - name: "erc721_vault", - impl: address(new ERC721Vault()), - data: abi.encodeCall(ERC721Vault.init, (address(0), address(addressManager))) - }) - ); - - destChainIdBridge = new PrankDestBridge(destChainErc721Vault); - vm.deal(address(destChainIdBridge), 100 ether); - - mockProofSignalService = SkipProofCheckSignal( - deployProxy({ - name: "signal_service", - impl: address(new SkipProofCheckSignal()), - data: abi.encodeCall(SignalService.init, (address(0), address(addressManager))) - }) - ); - - addressManager.setAddress( - uint64(block.chainid), "signal_service", address(mockProofSignalService) - ); - - addressManager.setAddress(destChainId, "signal_service", address(mockProofSignalService)); - - addressManager.setAddress(uint64(block.chainid), "bridge", address(bridge)); - - addressManager.setAddress(destChainId, "bridge", address(destChainIdBridge)); - - addressManager.setAddress(uint64(block.chainid), "erc721_vault", address(erc721Vault)); - - addressManager.setAddress(destChainId, "erc721_vault", address(destChainErc721Vault)); - // Below 2-2 registrations (mock) are needed bc of - // LibBridgeRecall.sol's - // resolve address - addressManager.setAddress(destChainId, "erc1155_vault", address(erc721Vault)); - addressManager.setAddress(destChainId, "erc20_vault", address(erc721Vault)); - addressManager.setAddress(uint64(block.chainid), "erc1155_vault", address(erc721Vault)); - addressManager.setAddress(uint64(block.chainid), "erc20_vault", address(erc721Vault)); + function setUpOnTaiko() internal override { + deploySignalService(address(new SignalService_WithoutProofVerification())); + tVault = deployERC721Vault(); + tBridge = new PrankDestBridge(tVault); - address bridgedERC721 = address(new BridgedERC721()); + register("bridge", address(tBridge)); + register("bridged_erc721", address(new BridgedERC721())); - addressManager.setAddress(destChainId, "bridged_erc721", bridgedERC721); - addressManager.setAddress(uint64(block.chainid), "bridged_erc721", bridgedERC721); + vm.deal(address(tBridge), 100 ether); + } - vm.stopPrank(); + function setUp() public override { + super.setUp(); vm.startPrank(Alice); - canonicalToken721 = new TestTokenERC721("http://example.host.com/"); - canonicalToken721.mint(10); + eFreeMintERC721Token = new FreeMintERC721Token("http://example.host.com/"); + eFreeMintERC721Token.mint(10); vm.stopPrank(); } - function getPreDeterminedDataBytes() internal pure returns (bytes memory) { - return - hex"a9976baf00000000000000000000000000000000000000000000000000000000000000800000000000000000000000007e5f4552091a69125d5dfcb7b8c2659029395bdf0000000000000000000000007e5f4552091a69125d5dfcb7b8c2659029395bdf00000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000f2e246bb76df876cef8b38ae84130f4f55de395b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000254540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002545400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001"; - } - function test_721Vault_sendToken_721() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -241,26 +60,26 @@ contract ERC721VaultTest is TaikoTest { amounts[0] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts // With ERC721 still need to specify 1 ); - vm.prank(Alice, Alice); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(ERC721(canonicalToken721).ownerOf(1), address(erc721Vault)); + assertEq(ERC721(eFreeMintERC721Token).ownerOf(1), address(eVault)); } function test_721Vault_sendToken_with_invalid_token_address() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -269,18 +88,18 @@ contract ERC721VaultTest is TaikoTest { amounts[0] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, address(0), Alice, GAS_LIMIT, address(0), GAS_LIMIT, tokenIds, amounts + taikoChainId, address(0), Alice, GAS_LIMIT, address(0), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); + vm.prank(Alice); vm.expectRevert(BaseNFTVault.VAULT_INVALID_TOKEN.selector); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); } function test_721Vault_sendToken_with_1_tokens_but_erc721_amount_1_invalid() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -288,28 +107,28 @@ contract ERC721VaultTest is TaikoTest { uint256[] memory amounts = new uint256[](1); amounts[0] = 1; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); + vm.prank(Alice); vm.expectRevert(BaseNFTVault.VAULT_INVALID_AMOUNT.selector); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); } - function test_721Vault_receiveTokens_from_newly_deployed_bridged_contract_on_destination_chain_721( + function test_721Vault_receiveFreeMintERC721Tokens_from_newly_deployed_bridged_contract_on_destination_chain_721( ) public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -318,49 +137,51 @@ contract ERC721VaultTest is TaikoTest { amounts[0] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(canonicalToken721.ownerOf(1), address(erc721Vault)); + assertEq(eFreeMintERC721Token.ownerOf(1), address(eVault)); BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(canonicalToken721), + chainId: ethereumChainId, + addr: address(eFreeMintERC721Token), symbol: "TT", name: "TT" }); - uint64 chainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC721ToERC721Vault( - canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(erc721Vault), chainId, 0 + tBridge.sendReceiveERC721ToERC721Vault( + canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc721Vault.canonicalToBridged(chainId, address(canonicalToken721)); + tVault.canonicalToBridged(ethereumChainId, address(eFreeMintERC721Token)); // Alice bridged over tokenId 1 assertEq(ERC721(deployedContract).ownerOf(1), Alice); } - function test_721Vault_receiveTokens_but_mint_not_deploy_if_bridged_second_time_721() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 2); + function test_721Vault_receiveFreeMintERC721Tokens_but_mint_not_deploy_if_bridged_second_time_721( + ) + public + { + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 2); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -369,84 +190,83 @@ contract ERC721VaultTest is TaikoTest { amounts[0] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(canonicalToken721.ownerOf(1), address(erc721Vault)); + assertEq(eFreeMintERC721Token.ownerOf(1), address(eVault)); // This canonicalToken is basically need to be exact same as the // sendToken() puts together // - here is just mocking putting it together. BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(canonicalToken721), + chainId: ethereumChainId, + addr: address(eFreeMintERC721Token), symbol: "TT", name: "TT" }); - uint64 chainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC721ToERC721Vault( - canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(erc721Vault), chainId, 0 + tBridge.sendReceiveERC721ToERC721Vault( + canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc721Vault.canonicalToBridged(chainId, address(canonicalToken721)); + tVault.canonicalToBridged(ethereumChainId, address(eFreeMintERC721Token)); // Alice bridged over tokenId 1 assertEq(ERC721(deployedContract).ownerOf(1), Alice); // Change back to 'L1' - vm.chainId(chainId); + vm.chainId(ethereumChainId); tokenIds[0] = 2; amounts[0] = 0; sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(canonicalToken721.ownerOf(2), address(erc721Vault)); + assertEq(eFreeMintERC721Token.ownerOf(2), address(eVault)); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC721ToERC721Vault( - canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(erc721Vault), chainId, 0 + tBridge.sendReceiveERC721ToERC721Vault( + canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address bridgedContract = - destChainErc721Vault.canonicalToBridged(chainId, address(canonicalToken721)); + tVault.canonicalToBridged(ethereumChainId, address(eFreeMintERC721Token)); assertEq(bridgedContract, deployedContract); } - function test_721Vault_receiveTokens_erc721_with_ether_to_dave() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); + function test_721Vault_receiveFreeMintERC721Tokens_erc721_with_ether_to_dave() public { + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -456,44 +276,43 @@ contract ERC721VaultTest is TaikoTest { uint256 etherValue = 0.1 ether; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), David, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc721Vault.sendToken{ value: etherValue }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: etherValue }(sendOpts); - assertEq(canonicalToken721.ownerOf(1), address(erc721Vault)); + assertEq(eFreeMintERC721Token.ownerOf(1), address(eVault)); BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(canonicalToken721), + chainId: ethereumChainId, + addr: address(eFreeMintERC721Token), symbol: "TT", name: "TT" }); - uint64 chainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC721ToERC721Vault( + tBridge.sendReceiveERC721ToERC721Vault( canonicalToken, Alice, David, tokenIds, bytes32(0), - address(erc721Vault), - chainId, + address(eVault), + ethereumChainId, etherValue ); // Query canonicalToBridged address deployedContract = - destChainErc721Vault.canonicalToBridged(chainId, address(canonicalToken721)); + tVault.canonicalToBridged(ethereumChainId, address(eFreeMintERC721Token)); // Alice bridged over tokenId 1 and etherValue to David assertEq(ERC721(deployedContract).ownerOf(1), David); @@ -501,10 +320,10 @@ contract ERC721VaultTest is TaikoTest { } function test_721Vault_onMessageRecalled_721() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -513,35 +332,35 @@ contract ERC721VaultTest is TaikoTest { amounts[0] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - IBridge.Message memory message = erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + IBridge.Message memory message = eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(canonicalToken721.ownerOf(1), address(erc721Vault)); + assertEq(eFreeMintERC721Token.ownerOf(1), address(eVault)); - bridge.recallMessage(message, bytes("")); + eBridge.recallMessage(message, bytes("")); // Alice got back her NFT - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); } - function test_721Vault_receiveTokens_multiple_721() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 2); + function test_721Vault_receiveFreeMintERC721Tokens_multiple_721() public { + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 2); - assertEq(canonicalToken721.ownerOf(1), Alice); - assertEq(canonicalToken721.ownerOf(2), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(2), Alice); uint256[] memory tokenIds = new uint256[](2); tokenIds[0] = 1; @@ -552,38 +371,37 @@ contract ERC721VaultTest is TaikoTest { amounts[1] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(canonicalToken721.ownerOf(1), address(erc721Vault)); - assertEq(canonicalToken721.ownerOf(2), address(erc721Vault)); + assertEq(eFreeMintERC721Token.ownerOf(1), address(eVault)); + assertEq(eFreeMintERC721Token.ownerOf(2), address(eVault)); BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(canonicalToken721), + chainId: ethereumChainId, + addr: address(eFreeMintERC721Token), symbol: "TT", name: "TT" }); - uint64 srcChainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC721ToERC721Vault( - canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(erc721Vault), srcChainId, 0 + tBridge.sendReceiveERC721ToERC721Vault( + canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc721Vault.canonicalToBridged(srcChainId, address(canonicalToken721)); + tVault.canonicalToBridged(ethereumChainId, address(eFreeMintERC721Token)); // Alice bridged over tokenId 1 assertEq(ERC721(deployedContract).ownerOf(1), Alice); @@ -591,12 +409,12 @@ contract ERC721VaultTest is TaikoTest { } function test_721Vault_bridge_back_but_owner_is_different_now_721() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 2); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 2); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -605,56 +423,55 @@ contract ERC721VaultTest is TaikoTest { amounts[0] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(canonicalToken721.ownerOf(1), address(erc721Vault)); + assertEq(eFreeMintERC721Token.ownerOf(1), address(eVault)); // This canonicalToken is basically need to be exact same as the // sendToken() puts together // - here is just mocking putting it together. BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(canonicalToken721), + chainId: ethereumChainId, + addr: address(eFreeMintERC721Token), symbol: "TT", name: "TT" }); - uint64 chainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC721ToERC721Vault( - canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(erc721Vault), chainId, 0 + tBridge.sendReceiveERC721ToERC721Vault( + canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc721Vault.canonicalToBridged(chainId, address(canonicalToken721)); + tVault.canonicalToBridged(ethereumChainId, address(eFreeMintERC721Token)); // Alice bridged over tokenId 1 assertEq(ERC721(deployedContract).ownerOf(1), Alice); // Transfer the asset to Bob, and Bob can receive it back on canonical // chain - vm.prank(Alice, Alice); + vm.prank(Alice); ERC721(deployedContract).transferFrom(Alice, Bob, 1); assertEq(ERC721(deployedContract).ownerOf(1), Bob); - vm.prank(Bob, Bob); - ERC721(deployedContract).approve(address(destChainErc721Vault), 1); + vm.prank(Bob); + ERC721(deployedContract).approve(address(tVault), 1); sendOpts = BaseNFTVault.BridgeTransferOp( - chainId, + ethereumChainId, address(0), Bob, GAS_LIMIT, @@ -664,34 +481,34 @@ contract ERC721VaultTest is TaikoTest { amounts ); - vm.prank(Bob, Bob); - destChainErc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Bob); + tVault.sendToken{ value: GAS_LIMIT }(sendOpts); - vm.chainId(chainId); + vm.chainId(ethereumChainId); - assertEq(ERC721(canonicalToken721).ownerOf(1), address(erc721Vault)); + assertEq(ERC721(eFreeMintERC721Token).ownerOf(1), address(eVault)); - destChainIdBridge.setERC721Vault(address(erc721Vault)); + tBridge.setERC721Vault(address(eVault)); - vm.prank(Carol, Carol); - addressManager.setAddress(uint64(block.chainid), "bridge", address(destChainIdBridge)); + vm.prank(deployer); + register("bridge", address(tBridge)); - destChainIdBridge.sendReceiveERC721ToERC721Vault( - canonicalToken, Bob, Bob, tokenIds, bytes32(0), address(erc721Vault), chainId, 0 + tBridge.sendReceiveERC721ToERC721Vault( + canonicalToken, Bob, Bob, tokenIds, bytes32(0), address(eVault), ethereumChainId, 0 ); - assertEq(canonicalToken721.ownerOf(1), Bob); + assertEq(eFreeMintERC721Token.ownerOf(1), Bob); } function test_721Vault_bridge_back_but_original_owner_cannot_claim_it_anymore_if_sold_721() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 2); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 2); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -700,57 +517,56 @@ contract ERC721VaultTest is TaikoTest { amounts[0] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(canonicalToken721.ownerOf(1), address(erc721Vault)); + assertEq(eFreeMintERC721Token.ownerOf(1), address(eVault)); // This canonicalToken is basically need to be exact same as the // sendToken() puts together // - here is just mocking putting it together. BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(canonicalToken721), + chainId: ethereumChainId, + addr: address(eFreeMintERC721Token), symbol: "TT", name: "TT" }); - uint64 chainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC721ToERC721Vault( - canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(erc721Vault), chainId, 0 + tBridge.sendReceiveERC721ToERC721Vault( + canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc721Vault.canonicalToBridged(chainId, address(canonicalToken721)); + tVault.canonicalToBridged(ethereumChainId, address(eFreeMintERC721Token)); // Alice bridged over tokenId 1 assertEq(ERC721(deployedContract).ownerOf(1), Alice); // Transfer the asset to Bob, and Bob can receive it back on canonical // chain - vm.prank(Alice, Alice); + vm.prank(Alice); ERC721(deployedContract).transferFrom(Alice, Bob, 1); assertEq(ERC721(deployedContract).ownerOf(1), Bob); - vm.prank(Bob, Bob); - ERC721(deployedContract).approve(address(destChainErc721Vault), 1); + vm.prank(Bob); + ERC721(deployedContract).approve(address(tVault), 1); // Alice puts together a malicious bridging back message sendOpts = BaseNFTVault.BridgeTransferOp( - chainId, + ethereumChainId, address(0), Alice, GAS_LIMIT, @@ -760,18 +576,18 @@ contract ERC721VaultTest is TaikoTest { amounts ); - vm.prank(Alice, Alice); + vm.prank(Alice); vm.expectRevert("ERC721: transfer from incorrect owner"); - destChainErc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + tVault.sendToken{ value: GAS_LIMIT }(sendOpts); } function test_721Vault_upgrade_bridged_tokens_721() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 2); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 2); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -780,42 +596,41 @@ contract ERC721VaultTest is TaikoTest { amounts[0] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(canonicalToken721.ownerOf(1), address(erc721Vault)); + assertEq(eFreeMintERC721Token.ownerOf(1), address(eVault)); // This canonicalToken is basically need to be exact same as the // sendToken() puts together // - here is just mocking putting it together. BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(canonicalToken721), + chainId: ethereumChainId, + addr: address(eFreeMintERC721Token), symbol: "TT", name: "TT" }); - uint64 chainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC721ToERC721Vault( - canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(erc721Vault), chainId, 0 + tBridge.sendReceiveERC721ToERC721Vault( + canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc721Vault.canonicalToBridged(chainId, address(canonicalToken721)); + tVault.canonicalToBridged(ethereumChainId, address(eFreeMintERC721Token)); - try UpdatedBridgedERC721(deployedContract).helloWorld() { + try BridgedERC721_WithHelloWorld(deployedContract).helloWorld() { fail(); } catch { // It should not yet support this function call @@ -823,11 +638,11 @@ contract ERC721VaultTest is TaikoTest { // Upgrade the implementation of that contract // so that it supports now the 'helloWorld' call - UpdatedBridgedERC721 newBridgedContract = new UpdatedBridgedERC721(); - vm.prank(Carol, Carol); + BridgedERC721_WithHelloWorld newBridgedContract = new BridgedERC721_WithHelloWorld(); + vm.prank(deployer); BridgedERC721(payable(deployedContract)).upgradeTo(address(newBridgedContract)); - try UpdatedBridgedERC721(deployedContract).helloWorld() { + try CanSayHelloWorld(deployedContract).helloWorld() { // It should support now this function call } catch { fail(); @@ -835,12 +650,12 @@ contract ERC721VaultTest is TaikoTest { } function test_721Vault_shall_not_be_able_to_burn_arbitrarily() public { - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 1); - vm.prank(Alice, Alice); - canonicalToken721.approve(address(erc721Vault), 2); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 1); + vm.prank(Alice); + eFreeMintERC721Token.approve(address(eVault), 2); - assertEq(canonicalToken721.ownerOf(1), Alice); + assertEq(eFreeMintERC721Token.ownerOf(1), Alice); uint256[] memory tokenIds = new uint256[](1); tokenIds[0] = 1; @@ -849,47 +664,46 @@ contract ERC721VaultTest is TaikoTest { amounts[0] = 0; BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp( - destChainId, + taikoChainId, address(0), Alice, GAS_LIMIT, - address(canonicalToken721), + address(eFreeMintERC721Token), GAS_LIMIT, tokenIds, amounts ); - vm.prank(Alice, Alice); - erc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + eVault.sendToken{ value: GAS_LIMIT }(sendOpts); - assertEq(canonicalToken721.ownerOf(1), address(erc721Vault)); + assertEq(eFreeMintERC721Token.ownerOf(1), address(eVault)); // This canonicalToken is basically need to be exact same as the // sendToken() puts together // - here is just mocking putting it together. BaseNFTVault.CanonicalNFT memory canonicalToken = BaseNFTVault.CanonicalNFT({ - chainId: 31_337, - addr: address(canonicalToken721), + chainId: ethereumChainId, + addr: address(eFreeMintERC721Token), symbol: "TT", name: "TT" }); - uint64 chainId = uint64(block.chainid); - vm.chainId(destChainId); + vm.chainId(taikoChainId); - destChainIdBridge.sendReceiveERC721ToERC721Vault( - canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(erc721Vault), chainId, 0 + tBridge.sendReceiveERC721ToERC721Vault( + canonicalToken, Alice, Alice, tokenIds, bytes32(0), address(eVault), ethereumChainId, 0 ); // Query canonicalToBridged address deployedContract = - destChainErc721Vault.canonicalToBridged(chainId, address(canonicalToken721)); + tVault.canonicalToBridged(ethereumChainId, address(eFreeMintERC721Token)); // Alice bridged over tokenId 1 assertEq(ERC721(deployedContract).ownerOf(1), Alice); // Alice tries to bridge back message sendOpts = BaseNFTVault.BridgeTransferOp( - chainId, + ethereumChainId, address(0), Alice, GAS_LIMIT, @@ -900,19 +714,19 @@ contract ERC721VaultTest is TaikoTest { ); // Alice hasn't approved the vault yet! - vm.prank(Alice, Alice); + vm.prank(Alice); vm.expectRevert("ERC721: caller is not token owner or approved"); - destChainErc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + tVault.sendToken{ value: GAS_LIMIT }(sendOpts); // Also Vault cannot burn tokens it does not own (even if the priv key compromised) - vm.prank(address(destChainErc721Vault), address(destChainErc721Vault)); + vm.prank(address(tVault)); vm.expectRevert(BridgedERC721.BTOKEN_INVALID_BURN.selector); BridgedERC721(deployedContract).burn(1); // After approve() ERC721Vault can transfer and burn - vm.prank(Alice, Alice); - ERC721(deployedContract).approve(address(destChainErc721Vault), 1); - vm.prank(Alice, Alice); - destChainErc721Vault.sendToken{ value: GAS_LIMIT }(sendOpts); + vm.prank(Alice); + ERC721(deployedContract).approve(address(tVault), 1); + vm.prank(Alice); + tVault.sendToken{ value: GAS_LIMIT }(sendOpts); } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f454ab0343e..c616c1d2d86 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '9.0' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -21,28 +21,28 @@ importers: dependencies: '@moralisweb3/common-evm-utils': specifier: ^2.26.1 - version: 2.26.2(debug@4.3.4) + version: 2.26.1(debug@4.3.4) '@wagmi/connectors': specifier: ^4.3.1 - version: 4.3.10(vnbhrjghrun7rfuxsawo7otej4) + version: 4.3.3(@wagmi/core@2.9.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.9.31) '@wagmi/core': specifier: ^2.8.1 - version: 2.10.2(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + version: 2.9.1(react@18.3.1)(typescript@5.4.5)(viem@2.9.31) '@walletconnect/ethereum-provider': specifier: ^2.12.2 - version: 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) + version: 2.12.2(react@18.3.1) '@walletconnect/modal': specifier: ^2.6.2 - version: 2.6.2(@types/react@18.3.5)(react@18.2.0) + version: 2.6.2(react@18.3.1) '@web3modal/wagmi': specifier: ^4.1.11 - version: 4.1.11(@types/react@18.3.5)(@wagmi/connectors@4.3.10(vnbhrjghrun7rfuxsawo7otej4))(@wagmi/core@2.10.2(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8)) + version: 4.1.11(@wagmi/connectors@4.3.3)(@wagmi/core@2.9.1)(react@18.3.1)(viem@2.9.31) '@zerodevx/svelte-toast': specifier: ^0.9.5 - version: 0.9.5(svelte@4.2.17) + version: 0.9.5(svelte@4.2.15) axios: specifier: ^1.6.7 - version: 1.6.7(debug@4.3.4) + version: 1.6.8(debug@4.3.4) buffer: specifier: ^6.0.3 version: 6.0.3 @@ -54,29 +54,29 @@ importers: version: 3.3.0 moralis: specifier: ^2.26.1 - version: 2.26.2(debug@4.3.4) + version: 2.26.1(debug@4.3.4) object-hash: specifier: ^3.0.0 version: 3.0.0 svelte-i18n: specifier: ^4.0.0 - version: 4.0.0(svelte@4.2.17) + version: 4.0.0(svelte@4.2.15) viem: specifier: ^2.9.29 - version: 2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 2.9.31(typescript@5.4.5) devDependencies: '@playwright/test': specifier: ^1.43.1 version: 1.43.1 '@sveltejs/adapter-auto': specifier: ^3.2.0 - version: 3.2.0(@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2))) + version: 3.2.0(@sveltejs/kit@2.5.22) '@sveltejs/kit': specifier: ^2.5.21 - version: 2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + version: 2.5.22(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.11) '@sveltejs/vite-plugin-svelte': specifier: ^3.1.0 - version: 3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + version: 3.1.0(svelte@4.2.15)(vite@5.2.11) '@types/debug': specifier: ^4.1.12 version: 4.1.12 @@ -85,49 +85,49 @@ importers: version: 3.0.6 '@typescript-eslint/eslint-plugin': specifier: ^7.8.0 - version: 7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0)(typescript@5.4.3) + version: 7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.8.0 - version: 7.9.0(eslint@8.56.0)(typescript@5.4.3) + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) '@vitest/coverage-v8': specifier: ^1.4.0 - version: 1.4.0(vitest@1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2)) + version: 1.6.0(vitest@1.6.0) '@wagmi/cli': specifier: ^2.1.4 - version: 2.1.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10) + version: 2.1.4(typescript@5.4.5) abitype: specifier: ^1.0.2 - version: 1.0.2(typescript@5.4.3)(zod@3.23.8) + version: 1.0.2(typescript@5.4.5) ajv: specifier: ^8.12.0 - version: 8.12.0 + version: 8.13.0 autoprefixer: specifier: ^10.4.18 - version: 10.4.18(postcss@8.4.38) + version: 10.4.19(postcss@8.4.38) daisyui: specifier: ^4.10.3 - version: 4.11.1(postcss@8.4.38) + version: 4.10.5(postcss@8.4.38) dotenv: specifier: ^16.4.5 version: 16.4.5 eslint: specifier: ^8.56.0 - version: 8.56.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-plugin-simple-import-sort: specifier: ^12.0.0 - version: 12.0.0(eslint@8.56.0) + version: 12.1.0(eslint@8.57.0) eslint-plugin-svelte: specifier: ^2.38.0 - version: 2.38.0(eslint@8.56.0)(svelte@4.2.17)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) + version: 2.38.0(eslint@8.57.0)(svelte@4.2.15) ethereum-address: specifier: ^0.0.4 version: 0.0.4 jsdom: specifier: ^24.0.0 - version: 24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 24.0.0 lokijs: specifier: ^1.5.12 version: 1.5.12 @@ -139,16 +139,16 @@ importers: version: 3.2.5 prettier-plugin-svelte: specifier: ^3.2.3 - version: 3.2.3(prettier@3.2.5)(svelte@4.2.17) + version: 3.2.3(prettier@3.2.5)(svelte@4.2.15) svelte: specifier: ^4.2.15 - version: 4.2.17 + version: 4.2.15 svelte-check: specifier: ^3.7.1 - version: 3.7.1(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)))(postcss@8.4.38)(svelte@4.2.17) + version: 3.7.1(@babel/core@7.25.2)(postcss@8.4.38)(svelte@4.2.15) tailwindcss: specifier: ^3.4.3 - version: 3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) + version: 3.4.3 ts-morph: specifier: ^19.0.0 version: 19.0.0 @@ -157,22 +157,22 @@ importers: version: 2.6.2 typescript: specifier: ^5.4.3 - version: 5.4.3 + version: 5.4.5 vite: specifier: ^5.2.10 - version: 5.2.11(@types/node@20.12.7)(terser@5.27.2) + version: 5.2.11(@types/node@20.12.8) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.3)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + version: 4.3.2(typescript@5.4.5)(vite@5.2.11) vitest: specifier: ^1.5.3 - version: 1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2) + version: 1.6.0(jsdom@24.0.0) vitest-fetch-mock: specifier: ^0.2.2 - version: 0.2.2(encoding@0.1.13)(vitest@1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2)) + version: 0.2.2(vitest@1.6.0) vitest-mock-extended: specifier: 1.3.1 - version: 1.3.1(typescript@5.4.3)(vitest@1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2)) + version: 1.3.1(typescript@5.4.5)(vitest@1.6.0) packages/docs-site: dependencies: @@ -181,13 +181,13 @@ importers: version: 0.8.3(prettier@3.2.5)(typescript@5.4.5) '@astrojs/starlight': specifier: ^0.25.0 - version: 0.25.5(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)) + version: 0.25.3(astro@4.13.1) astro: specifier: ^4.11.5 - version: 4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5) + version: 4.13.1(typescript@5.4.5) astro-og-canvas: specifier: ^0.5.0 - version: 0.5.0(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)) + version: 0.5.0(astro@4.13.1) canvaskit-wasm: specifier: ^0.39.1 version: 0.39.1 @@ -196,10 +196,10 @@ importers: version: 0.33.3 starlight-links-validator: specifier: ^0.8.0 - version: 0.8.0(@astrojs/starlight@0.25.5(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)))(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)) + version: 0.8.0(@astrojs/starlight@0.25.3)(astro@4.13.1) starlight-openapi: specifier: ^0.6.3 - version: 0.6.3(@astrojs/markdown-remark@5.2.0)(@astrojs/starlight@0.25.5(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)))(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5))(openapi-types@12.1.3) + version: 0.6.3(@astrojs/markdown-remark@5.2.0)(@astrojs/starlight@0.25.3)(astro@4.13.1)(openapi-types@12.1.3) typescript: specifier: ^5.4.5 version: 5.4.5 @@ -214,56 +214,56 @@ importers: dependencies: '@wagmi/core': specifier: ^2.8.0 - version: 2.8.0(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@6.0.3)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8) + version: 2.9.1(react@18.3.1)(typescript@5.4.5)(viem@2.9.31) axios: specifier: ^1.6.7 - version: 1.6.7(debug@4.3.4) + version: 1.6.8(debug@4.3.4) debug: specifier: ^4.3.4 version: 4.3.4 svelte-i18n: specifier: ^4.0.0 - version: 4.0.0(svelte@4.2.13) + version: 4.0.0(svelte@4.2.15) viem: specifier: ^2.9.29 - version: 2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@6.0.3)(zod@3.23.8) + version: 2.9.31(typescript@5.4.5) devDependencies: '@playwright/test': specifier: ^1.43.1 version: 1.43.1 '@sveltejs/adapter-auto': specifier: ^3.2.0 - version: 3.2.0(@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2))) + version: 3.2.0(@sveltejs/kit@2.5.22) '@sveltejs/kit': specifier: ^2.5.21 - version: 2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)) + version: 2.5.22(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@4.5.3) '@sveltejs/vite-plugin-svelte': specifier: ^3.1.0 - version: 3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)) + version: 3.1.0(svelte@4.2.15)(vite@4.5.3) '@tailwindcss/nesting': specifier: 0.0.0-insiders.565cd3e version: 0.0.0-insiders.565cd3e(postcss@8.4.38) '@typescript-eslint/eslint-plugin': specifier: ^7.4.0 - version: 7.4.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0)(typescript@5.4.3) + version: 7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.7.0 - version: 7.7.0(eslint@8.56.0)(typescript@5.4.3) + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) autoprefixer: specifier: ^10.4.18 - version: 10.4.18(postcss@8.4.38) + version: 10.4.19(postcss@8.4.38) daisyui: specifier: ^4.10.1 - version: 4.10.1(postcss@8.4.38) + version: 4.10.5(postcss@8.4.38) eslint: specifier: ^8.56.0 - version: 8.56.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-plugin-svelte: specifier: ^2.38.0 - version: 2.38.0(eslint@8.56.0)(svelte@4.2.13)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) + version: 2.38.0(eslint@8.57.0)(svelte@4.2.15) postcss: specifier: ^8.4.38 version: 8.4.38 @@ -272,43 +272,43 @@ importers: version: 16.1.0(postcss@8.4.38) postcss-nesting: specifier: ^12.1.0 - version: 12.1.0(postcss@8.4.38) + version: 12.1.2(postcss@8.4.38) prettier: specifier: ^3.2.5 version: 3.2.5 prettier-plugin-svelte: specifier: ^3.2.2 - version: 3.2.2(prettier@3.2.5)(svelte@4.2.13) + version: 3.2.3(prettier@3.2.5)(svelte@4.2.15) svelte: specifier: ^4.2.13 - version: 4.2.13 + version: 4.2.15 svelte-check: specifier: ^3.7.1 - version: 3.7.1(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)))(postcss@8.4.38)(svelte@4.2.13) + version: 3.7.1(@babel/core@7.25.2)(postcss@8.4.38)(svelte@4.2.15) tailwindcss: specifier: ^3.4.3 - version: 3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) + version: 3.4.3 tslib: specifier: ^2.6.2 version: 2.6.2 typescript: specifier: ^5.4.3 - version: 5.4.3 + version: 5.4.5 vite: specifier: ^4.5.3 - version: 4.5.3(@types/node@20.12.7)(terser@5.27.2) + version: 4.5.3 vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.3)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)) + version: 4.3.2(typescript@5.4.5)(vite@4.5.3) vitest: specifier: ^1.5.0 - version: 1.5.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.27.2) + version: 1.6.0(jsdom@24.0.0) packages/monitors: devDependencies: '@openzeppelin/defender-as-code': specifier: ^3.0.1 - version: 3.0.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core@1.10.4(encoding@0.1.13))(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) + version: 3.0.1(web3-core-helpers@1.10.3)(web3-core@1.10.4)(web3-utils@1.10.4)(web3@1.10.4) serverless: specifier: 4.4.3 version: 4.4.3 @@ -341,65 +341,65 @@ importers: version: 16.4.5 ds-test: specifier: github:dapphub/ds-test#e282159d5170298eb2455a6c05280ab5a73a4ef0 - version: https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0 + version: github.com/dapphub/ds-test/e282159d5170298eb2455a6c05280ab5a73a4ef0 forge-std: specifier: github:foundry-rs/forge-std - version: https://codeload.github.com/foundry-rs/forge-std/tar.gz/8f24d6b04c92975e0795b5868aa0d783251cdeaa + version: github.com/foundry-rs/forge-std/0e7097750918380d84dd3cfdef595bee74dabb70 ipfs-http-client: specifier: ^60.0.1 - version: 60.0.1(encoding@0.1.13) + version: 60.0.1 merkletreejs: specifier: ^0.4.0 version: 0.4.0 murky: specifier: github:dmfxyz/murky - version: https://codeload.github.com/dmfxyz/murky/tar.gz/5feccd1253d7da820f7cccccdedf64471025455d + version: github.com/dmfxyz/murky/5feccd1253d7da820f7cccccdedf64471025455d p256-verifier: specifier: github:taikoxyz/p256-verifier#v0.1.0 - version: p256-verifier#v0.1.0@https://codeload.github.com/taikoxyz/p256-verifier/tar.gz/6ef45b117642786b08a37b4c37c6a6ce151166da + version: github.com/taikoxyz/p256-verifier/6ef45b117642786b08a37b4c37c6a6ce151166da sharp: specifier: ^0.33.3 version: 0.33.3 solady: specifier: github:Vectorized/solady#v0.0.167 - version: https://codeload.github.com/Vectorized/solady/tar.gz/de0f336d2033d04e0f77c923d639c7fbffd48b6d + version: github.com/Vectorized/solady/de0f336d2033d04e0f77c923d639c7fbffd48b6d solidity-stringutils: specifier: github:Arachnid/solidity-stringutils - version: https://codeload.github.com/Arachnid/solidity-stringutils/tar.gz/4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461 + version: github.com/Arachnid/solidity-stringutils/4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461 devDependencies: '@types/node': specifier: ^20.11.30 - version: 20.12.7 + version: 20.12.8 '@typescript-eslint/eslint-plugin': specifier: ^7.4.0 - version: 7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0)(typescript@5.4.5) + version: 7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.7.0 - version: 7.9.0(eslint@8.56.0)(typescript@5.4.5) + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: specifier: ^8.51.0 - version: 8.56.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-config-standard: specifier: ^17.1.0 - version: 17.1.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0))(eslint-plugin-n@16.6.2(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0) + version: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) eslint-plugin-import: specifier: ^2.28.1 - version: 2.29.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@7.8.0)(eslint@8.57.0) eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@8.56.0) + version: 11.1.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.1.3 - version: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@8.56.0))(eslint@8.56.0)(prettier@3.2.5) + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) eslint-plugin-promise: specifier: ^6.1.1 - version: 6.1.1(eslint@8.56.0) + version: 6.1.1(eslint@8.57.0) ethers: specifier: ^5.7.2 - version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 5.7.2 solc: specifier: 0.8.24 version: 0.8.24 @@ -408,7 +408,7 @@ importers: version: 4.5.4(typescript@5.4.5) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) + version: 10.9.2(@types/node@20.12.8)(typescript@5.4.5) typescript: specifier: ^5.2.2 version: 5.4.5 @@ -423,80 +423,80 @@ importers: version: 4.9.6 ds-test: specifier: github:dapphub/ds-test#e282159d5170298eb2455a6c05280ab5a73a4ef0 - version: https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0 + version: github.com/dapphub/ds-test/e282159d5170298eb2455a6c05280ab5a73a4ef0 eigenlayer-contracts: specifier: github:Layr-labs/eigenlayer-contracts#dev - version: https://codeload.github.com/Layr-labs/eigenlayer-contracts/tar.gz/30040aa273edeefe83333fa9183a0a26a84cebf0(hardhat@2.22.13(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3))(typescript@5.4.3)(utf-8-validate@5.0.10)) + version: github.com/Layr-labs/eigenlayer-contracts/957eb2dd437d0434e5e316e5925f0f8efac41f14(hardhat@2.22.15) eigenlayer-middleware: specifier: github:layr-Labs/eigenlayer-middleware#mainnet - version: https://codeload.github.com/layr-Labs/eigenlayer-middleware/tar.gz/7d49b5181b09198ed275783453aa082bb3766990 + version: github.com/layr-Labs/eigenlayer-middleware/7d49b5181b09198ed275783453aa082bb3766990 forge-std: specifier: github:foundry-rs/forge-std#v1.7.5 - version: https://codeload.github.com/foundry-rs/forge-std/tar.gz/36c303b7ffdd842d06b1ec2744c9b9b5fb3083f3 + version: github.com/foundry-rs/forge-std/36c303b7ffdd842d06b1ec2744c9b9b5fb3083f3 merkletreejs: specifier: ^0.4.0 version: 0.4.0 optimism: specifier: github:ethereum-optimism/optimism#v1.8.0 - version: https://codeload.github.com/ethereum-optimism/optimism/tar.gz/ab3a54febb36398539fd3b849c222b7e70169dc8 + version: github.com/ethereum-optimism/optimism/ab3a54febb36398539fd3b849c222b7e70169dc8 p256-verifier: specifier: github:taikoxyz/p256-verifier#v0.1.0 - version: p256-verifier#v0.1.0@https://codeload.github.com/taikoxyz/p256-verifier/tar.gz/6ef45b117642786b08a37b4c37c6a6ce151166da + version: github.com/taikoxyz/p256-verifier/6ef45b117642786b08a37b4c37c6a6ce151166da risc0-ethereum: specifier: github:risc0/risc0-ethereum#v1.1.2 - version: risc0-ethereum#v1.1.2@https://codeload.github.com/risc0/risc0-ethereum/tar.gz/b8a14213d92fff07dacda993804e7edb7946ca58 + version: github.com/risc0/risc0-ethereum/b8a14213d92fff07dacda993804e7edb7946ca58 solady: specifier: github:Vectorized/solady#v0.0.231 - version: https://codeload.github.com/Vectorized/solady/tar.gz/a12a2575c899a328c1bafdada632dabbff27cf6b + version: github.com/Vectorized/solady/a12a2575c899a328c1bafdada632dabbff27cf6b sp1-contracts: specifier: github:succinctlabs/sp1-contracts#v3.0.0 - version: sp1-contracts#v3.0.0@https://codeload.github.com/succinctlabs/sp1-contracts/tar.gz/1c4acaeab86789995ae5c6baced66f81e4a57f4d + version: github.com/succinctlabs/sp1-contracts/1c4acaeab86789995ae5c6baced66f81e4a57f4d devDependencies: '@types/node': specifier: ^20.11.30 - version: 20.12.7 + version: 20.12.8 '@typescript-eslint/eslint-plugin': specifier: ^7.4.0 - version: 7.4.0(@typescript-eslint/parser@7.7.0(eslint@8.55.0)(typescript@5.4.3))(eslint@8.55.0)(typescript@5.4.3) + version: 7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.7.0 - version: 7.7.0(eslint@8.55.0)(typescript@5.4.3) + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: specifier: ^8.51.0 - version: 8.55.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.55.0) + version: 9.1.0(eslint@8.57.0) eslint-config-standard: specifier: ^17.1.0 - version: 17.1.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@7.7.0(eslint@8.55.0)(typescript@5.4.3))(eslint@8.55.0))(eslint-plugin-n@16.6.2(eslint@8.55.0))(eslint-plugin-promise@6.1.1(eslint@8.55.0))(eslint@8.55.0) + version: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) eslint-plugin-import: specifier: ^2.28.1 - version: 2.29.0(@typescript-eslint/parser@7.7.0(eslint@8.55.0)(typescript@5.4.3))(eslint@8.55.0) + version: 2.29.1(@typescript-eslint/parser@7.8.0)(eslint@8.57.0) eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@8.55.0) + version: 11.1.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.1.3 - version: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@8.55.0))(eslint@8.55.0)(prettier@3.2.5) + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) eslint-plugin-promise: specifier: ^6.1.1 - version: 6.1.1(eslint@8.55.0) + version: 6.1.1(eslint@8.57.0) ethers: specifier: ^5.7.2 - version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 5.7.2 solc: specifier: 0.8.24 version: 0.8.24 solhint: specifier: ^5.0.3 - version: 5.0.3(typescript@5.4.3) + version: 5.0.3(typescript@5.4.5) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.12.7)(typescript@5.4.3) + version: 10.9.2(@types/node@20.12.8)(typescript@5.4.5) typescript: specifier: ^5.2.2 - version: 5.4.3 + version: 5.4.5 packages/relayer: {} @@ -507,34 +507,34 @@ importers: version: 1.0.6 '@wagmi/cli': specifier: ^2.1.8 - version: 2.1.15(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10) + version: 2.1.15(typescript@5.4.5) '@wagmi/connectors': specifier: ^5.0.6 - version: 5.1.10(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(@wagmi/core@2.13.5(@types/react@18.3.5)(react@18.2.0)(typescript@5.4.5)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + version: 5.1.2(@wagmi/core@2.13.1)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.18.8) '@wagmi/core': specifier: ^2.10.4 - version: 2.13.5(@types/react@18.3.5)(react@18.2.0)(typescript@5.4.5)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)) + version: 2.13.1(react@18.3.1)(typescript@5.4.5)(viem@2.18.8) '@web3modal/common': specifier: ^5.0.11 - version: 5.1.8 + version: 5.0.11 '@web3modal/ui': specifier: ^4.2.2 version: 4.2.3 '@web3modal/wagmi': specifier: ^4.2.2 - version: 4.2.3(hoyagxhmve75vyxjsj4tjya6zm) + version: 4.2.3(@wagmi/connectors@5.1.2)(@wagmi/core@2.13.1)(react@18.3.1)(viem@2.18.8) '@zerodevx/svelte-toast': specifier: ^0.9.5 - version: 0.9.5(svelte@4.2.17) + version: 0.9.5(svelte@4.2.15) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) daisyui: specifier: ^4.10.1 - version: 4.11.1(postcss@8.4.38) + version: 4.12.10(postcss@8.4.38) dayjs: specifier: ^1.11.10 - version: 1.11.10 + version: 1.11.11 debug: specifier: ^4.3.4 version: 4.3.4 @@ -546,26 +546,26 @@ importers: version: 8.4.38 tailwindcss: specifier: ^3.4.3 - version: 3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) + version: 3.4.3 viem: specifier: ^2.13.1 - version: 2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) + version: 2.18.8(typescript@5.4.5)(zod@3.23.6) devDependencies: '@chromatic-com/storybook': specifier: ^1.3.1 - version: 1.9.0(react@18.2.0) + version: 1.6.1(react@18.3.1) '@playwright/test': specifier: ^1.28.1 version: 1.43.1 '@sveltejs/adapter-auto': specifier: ^3.0.0 - version: 3.2.0(@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2))) + version: 3.2.0(@sveltejs/kit@2.5.22) '@sveltejs/kit': specifier: ^2.5.21 - version: 2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + version: 2.5.22(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.11) '@sveltejs/vite-plugin-svelte': specifier: ^3.0.0 - version: 3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + version: 3.1.0(svelte@4.2.15)(vite@5.2.11) '@taiko/ui-lib': specifier: workspace:* version: link:../ui-lib @@ -577,13 +577,13 @@ importers: version: 29.5.12 '@types/node': specifier: ^20.12.7 - version: 20.12.7 + version: 20.12.8 '@typescript-eslint/eslint-plugin': specifier: ^7.0.0 - version: 7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0)(typescript@5.4.5) + version: 7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.0.0 - version: 7.9.0(eslint@8.56.0)(typescript@5.4.5) + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) convert-csv-to-json: specifier: ^2.44.0 version: 2.46.0 @@ -592,19 +592,19 @@ importers: version: 16.4.5 eslint: specifier: ^8.56.0 - version: 8.56.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-plugin-simple-import-sort: specifier: ^12.0.0 - version: 12.0.0(eslint@8.56.0) + version: 12.1.0(eslint@8.57.0) eslint-plugin-storybook: specifier: ^0.8.0 - version: 0.8.0(eslint@8.56.0)(typescript@5.4.5) + version: 0.8.0(eslint@8.57.0)(typescript@5.4.5) eslint-plugin-svelte: specifier: ^2.38.0 - version: 2.38.0(eslint@8.56.0)(svelte@4.2.17)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) + version: 2.38.0(eslint@8.57.0)(svelte@4.2.15) p-map: specifier: ^7.0.2 version: 7.0.2 @@ -613,25 +613,25 @@ importers: version: 3.2.5 prettier-plugin-svelte: specifier: ^3.1.2 - version: 3.2.3(prettier@3.2.5)(svelte@4.2.17) + version: 3.2.3(prettier@3.2.5)(svelte@4.2.15) raw-body: specifier: ^2.5.2 version: 2.5.2 svelte: specifier: ^4.2.7 - version: 4.2.17 + version: 4.2.15 svelte-check: specifier: ^3.7.1 - version: 3.7.1(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.38)(svelte@4.2.17) + version: 3.7.1(@babel/core@7.25.2)(postcss@8.4.38)(svelte@4.2.15) svelte-copy: specifier: ^1.4.2 - version: 1.4.2(svelte@4.2.17) + version: 1.4.2(svelte@4.2.15) svelte-i18n: specifier: ^4.0.0 - version: 4.0.0(svelte@4.2.17) + version: 4.0.0(svelte@4.2.15) svelte-scrolling: specifier: ^1.4.0 - version: 1.4.0(svelte@4.2.17) + version: 1.4.0(svelte@4.2.15) tailwindcss-image-rendering: specifier: ^1.0.2 version: 1.0.2 @@ -643,13 +643,13 @@ importers: version: 5.4.5 vite: specifier: ^5.0.3 - version: 5.2.11(@types/node@20.12.7)(terser@5.27.2) + version: 5.2.11(@types/node@20.12.8) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + version: 4.3.2(typescript@5.4.5)(vite@5.2.11) vitest: specifier: ^1.2.0 - version: 1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2) + version: 1.6.0(@types/node@20.12.8) which: specifier: ^4.0.0 version: 4.0.0 @@ -664,65 +664,65 @@ importers: version: 4.9.6 ds-test: specifier: github:dapphub/ds-test#e282159d5170298eb2455a6c05280ab5a73a4ef0 - version: https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0 + version: github.com/dapphub/ds-test/e282159d5170298eb2455a6c05280ab5a73a4ef0 forge-std: specifier: github:foundry-rs/forge-std#v1.7.5 - version: https://codeload.github.com/foundry-rs/forge-std/tar.gz/36c303b7ffdd842d06b1ec2744c9b9b5fb3083f3 + version: github.com/foundry-rs/forge-std/36c303b7ffdd842d06b1ec2744c9b9b5fb3083f3 merkletreejs: specifier: ^0.4.0 version: 0.4.0 p256-verifier: specifier: github:taikoxyz/p256-verifier#v0.1.0 - version: p256-verifier#v0.1.0@https://codeload.github.com/taikoxyz/p256-verifier/tar.gz/6ef45b117642786b08a37b4c37c6a6ce151166da + version: github.com/taikoxyz/p256-verifier/6ef45b117642786b08a37b4c37c6a6ce151166da solady: specifier: github:Vectorized/solady#v0.0.167 - version: https://codeload.github.com/Vectorized/solady/tar.gz/de0f336d2033d04e0f77c923d639c7fbffd48b6d + version: github.com/Vectorized/solady/de0f336d2033d04e0f77c923d639c7fbffd48b6d devDependencies: '@types/node': specifier: ^20.11.30 - version: 20.12.7 + version: 20.12.8 '@typescript-eslint/eslint-plugin': specifier: ^7.4.0 - version: 7.4.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0)(typescript@5.4.3) + version: 7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.7.0 - version: 7.7.0(eslint@8.56.0)(typescript@5.4.3) + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) eslint: specifier: ^8.51.0 - version: 8.56.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-config-standard: specifier: ^17.1.0 - version: 17.1.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0))(eslint-plugin-n@16.6.2(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0) + version: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0) eslint-plugin-import: specifier: ^2.28.1 - version: 2.29.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@7.8.0)(eslint@8.57.0) eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@8.56.0) + version: 11.1.0(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.1.3 - version: 5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@8.56.0))(eslint@8.56.0)(prettier@3.2.5) + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) eslint-plugin-promise: specifier: ^6.1.1 - version: 6.1.1(eslint@8.56.0) + version: 6.1.1(eslint@8.57.0) ethers: specifier: ^5.7.2 - version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 5.7.2 solc: specifier: 0.8.24 version: 0.8.24 solhint: specifier: ^4.5.4 - version: 4.5.4(typescript@5.4.3) + version: 4.5.4(typescript@5.4.5) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.12.7)(typescript@5.4.3) + version: 10.9.2(@types/node@20.12.8)(typescript@5.4.5) typescript: specifier: ^5.2.2 - version: 5.4.3 + version: 5.4.5 packages/taiko-client: {} @@ -736,34 +736,34 @@ importers: version: link:../ui-lib '@wagmi/cli': specifier: ^2.1.4 - version: 2.1.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10) + version: 2.1.4(typescript@5.4.5) '@wagmi/connectors': specifier: ^4.1.18 - version: 4.1.18(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(@wagmi/core@2.8.0(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + version: 4.3.3(@wagmi/core@2.9.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.18.8) '@wagmi/core': specifier: ^2.8.0 - version: 2.8.0(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + version: 2.9.1(react@18.3.1)(typescript@5.4.5)(viem@2.18.8) '@web3modal/common': specifier: ^5.0.11 - version: 5.1.8 + version: 5.0.11 '@web3modal/ui': specifier: ^4.1.1 version: 4.1.11 '@web3modal/wagmi': specifier: ^4.1.1 - version: 4.1.11(7bejpi3a2bqeihrssz3xbwxki4) + version: 4.1.11(@wagmi/connectors@4.3.3)(@wagmi/core@2.9.1)(react@18.3.1)(viem@2.18.8) '@zerodevx/svelte-toast': specifier: ^0.9.5 - version: 0.9.5(svelte@4.2.13) + version: 0.9.5(svelte@4.2.15) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) daisyui: specifier: ^4.10.1 - version: 4.10.1(postcss@8.4.38) + version: 4.10.5(postcss@8.4.38) dayjs: specifier: ^1.11.10 - version: 1.11.10 + version: 1.11.11 debug: specifier: ^4.3.4 version: 4.3.4 @@ -775,26 +775,26 @@ importers: version: 8.4.38 tailwindcss: specifier: ^3.4.3 - version: 3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) + version: 3.4.3 viem: specifier: ^2.15.1 - version: 2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) + version: 2.18.8(typescript@5.4.5)(zod@3.23.6) devDependencies: '@chromatic-com/storybook': specifier: ^1.3.1 - version: 1.3.3(react@18.2.0) + version: 1.3.3(react@18.3.1) '@playwright/test': specifier: ^1.28.1 version: 1.43.1 '@sveltejs/adapter-auto': specifier: ^3.0.0 - version: 3.2.0(@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2))) + version: 3.2.0(@sveltejs/kit@2.5.22) '@sveltejs/kit': specifier: ^2.5.21 - version: 2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)) + version: 2.5.22(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.11) '@sveltejs/vite-plugin-svelte': specifier: ^3.1.0 - version: 3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)) + version: 3.1.0(svelte@4.2.15)(vite@5.2.11) '@types/eslint': specifier: ^8.56.0 version: 8.56.10 @@ -803,13 +803,13 @@ importers: version: 29.5.12 '@types/node': specifier: ^20.12.7 - version: 20.12.7 + version: 20.12.8 '@typescript-eslint/eslint-plugin': specifier: ^7.0.0 - version: 7.4.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0)(typescript@5.4.3) + version: 7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.0.0 - version: 7.7.0(eslint@8.56.0)(typescript@5.4.3) + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) convert-csv-to-json: specifier: ^2.44.0 version: 2.46.0 @@ -818,19 +818,19 @@ importers: version: 16.4.5 eslint: specifier: ^8.56.0 - version: 8.56.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-plugin-simple-import-sort: specifier: ^12.0.0 - version: 12.0.0(eslint@8.56.0) + version: 12.1.0(eslint@8.57.0) eslint-plugin-storybook: specifier: ^0.8.0 - version: 0.8.0(eslint@8.56.0)(typescript@5.4.3) + version: 0.8.0(eslint@8.57.0)(typescript@5.4.5) eslint-plugin-svelte: specifier: ^2.38.0 - version: 2.38.0(eslint@8.56.0)(svelte@4.2.13)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) + version: 2.38.0(eslint@8.57.0)(svelte@4.2.15) p-map: specifier: ^7.0.2 version: 7.0.2 @@ -839,25 +839,25 @@ importers: version: 3.2.5 prettier-plugin-svelte: specifier: ^3.1.2 - version: 3.2.2(prettier@3.2.5)(svelte@4.2.13) + version: 3.2.3(prettier@3.2.5)(svelte@4.2.15) raw-body: specifier: ^2.5.2 version: 2.5.2 svelte: specifier: ^4.2.7 - version: 4.2.13 + version: 4.2.15 svelte-check: specifier: ^3.7.1 - version: 3.7.1(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)))(postcss@8.4.38)(svelte@4.2.13) + version: 3.7.1(@babel/core@7.25.2)(postcss@8.4.38)(svelte@4.2.15) svelte-copy: specifier: ^1.4.2 - version: 1.4.2(svelte@4.2.13) + version: 1.4.2(svelte@4.2.15) svelte-i18n: specifier: ^4.0.0 - version: 4.0.0(svelte@4.2.13) + version: 4.0.0(svelte@4.2.15) svelte-scrolling: specifier: ^1.4.0 - version: 1.4.0(svelte@4.2.13) + version: 1.4.0(svelte@4.2.15) tailwindcss-image-rendering: specifier: ^1.0.2 version: 1.0.2 @@ -866,16 +866,16 @@ importers: version: 2.6.2 typescript: specifier: ^5.0.0 - version: 5.4.3 + version: 5.4.5 vite: specifier: ^5.0.3 - version: 5.1.3(@types/node@20.12.7)(terser@5.27.2) + version: 5.2.11(@types/node@20.12.8) vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.3)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)) + version: 4.3.2(typescript@5.4.5)(vite@5.2.11) vitest: specifier: ^1.2.0 - version: 1.5.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2) + version: 1.6.0(@types/node@20.12.8) which: specifier: ^4.0.0 version: 4.0.0 @@ -884,98 +884,98 @@ importers: dependencies: daisyui: specifier: ^4.11.1 - version: 4.11.1(postcss@8.4.47) + version: 4.12.10(postcss@8.4.41) tailwindcss-image-rendering: specifier: ^1.0.2 version: 1.0.2 devDependencies: '@chromatic-com/storybook': specifier: ^1.3.4 - version: 1.9.0(react@18.2.0) + version: 1.6.1(react@18.3.1) '@playwright/test': specifier: ^1.28.1 version: 1.43.1 '@storybook/addon-essentials': specifier: ^8.0.10 - version: 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + version: 8.2.7(storybook@8.2.7) '@storybook/addon-interactions': specifier: ^8.0.10 - version: 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + version: 8.2.7(storybook@8.2.7)(vitest@1.6.0) '@storybook/addon-links': specifier: ^8.0.10 - version: 8.3.0(react@18.2.0)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + version: 8.2.7(react@18.3.1)(storybook@8.2.7) '@storybook/addon-themes': specifier: ^8.1.1 - version: 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + version: 8.2.7(storybook@8.2.7) '@storybook/blocks': specifier: ^8.0.10 - version: 8.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + version: 8.2.7(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.7) '@storybook/svelte': specifier: ^8.0.10 - version: 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(svelte@4.2.17) + version: 8.2.7(storybook@8.2.7)(svelte@4.2.15) '@storybook/sveltekit': specifier: ^8.0.10 - version: 8.3.0(@babel/core@7.25.2)(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.47)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(svelte@4.2.17)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + version: 8.2.7(@babel/core@7.24.5)(@sveltejs/vite-plugin-svelte@3.1.0)(postcss@8.4.41)(storybook@8.2.7)(svelte@4.2.15)(typescript@5.4.5)(vite@5.2.11) '@storybook/test': specifier: ^8.0.10 - version: 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + version: 8.2.7(storybook@8.2.7)(vitest@1.6.0) '@sveltejs/adapter-auto': specifier: ^3.0.0 - version: 3.2.0(@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2))) + version: 3.2.0(@sveltejs/kit@2.5.22) '@sveltejs/kit': specifier: ^2.5.21 - version: 2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + version: 2.5.22(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.11) '@sveltejs/package': specifier: ^2.0.0 - version: 2.3.5(svelte@4.2.17)(typescript@5.4.5) + version: 2.3.2(svelte@4.2.15)(typescript@5.4.5) '@sveltejs/vite-plugin-svelte': specifier: ^3.0.0 - version: 3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + version: 3.1.0(svelte@4.2.15)(vite@5.2.11) '@types/eslint': specifier: ^8.56.0 version: 8.56.10 '@typescript-eslint/eslint-plugin': specifier: ^7.0.0 - version: 7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0)(typescript@5.4.5) + version: 7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.0.0 - version: 7.9.0(eslint@8.56.0)(typescript@5.4.5) + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) autoprefixer: specifier: ^10.4.19 - version: 10.4.19(postcss@8.4.47) + version: 10.4.19(postcss@8.4.41) eslint: specifier: ^8.56.0 - version: 8.56.0 + version: 8.57.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@8.57.0) eslint-plugin-storybook: specifier: ^0.8.0 - version: 0.8.0(eslint@8.56.0)(typescript@5.4.5) + version: 0.8.0(eslint@8.57.0)(typescript@5.4.5) eslint-plugin-svelte: specifier: ^2.35.1 - version: 2.38.0(eslint@8.56.0)(svelte@4.2.17)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) + version: 2.38.0(eslint@8.57.0)(svelte@4.2.15) prettier: specifier: ^3.1.1 version: 3.2.5 prettier-plugin-svelte: specifier: ^3.1.2 - version: 3.2.3(prettier@3.2.5)(svelte@4.2.17) + version: 3.2.3(prettier@3.2.5)(svelte@4.2.15) publint: specifier: ^0.1.9 version: 0.1.16 storybook: specifier: ^8.0.10 - version: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + version: 8.2.7 svelte: specifier: ^4.2.7 - version: 4.2.17 + version: 4.2.15 svelte-check: specifier: ^3.6.0 - version: 3.7.1(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.47)(svelte@4.2.17) + version: 3.7.1(@babel/core@7.24.5)(postcss@8.4.41)(svelte@4.2.15) tailwindcss: specifier: ^3.4.3 - version: 3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) + version: 3.4.3 tslib: specifier: ^2.4.1 version: 2.6.2 @@ -984,55 +984,71 @@ importers: version: 5.4.5 vite: specifier: ^5.0.11 - version: 5.2.11(@types/node@20.12.7)(terser@5.27.2) + version: 5.2.11(@types/node@20.12.8) vitest: specifier: ^1.2.0 - version: 1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.27.2) + version: 1.6.0(jsdom@24.0.0) packages: - '@aashutoshrathi/word-wrap@1.2.6': - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - - '@adobe/css-tools@4.4.0': + /@adobe/css-tools@4.4.0: resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} + dev: true - '@adraffy/ens-normalize@1.10.0': + /@adraffy/ens-normalize@1.10.0: resolution: {integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==} - '@adraffy/ens-normalize@1.10.1': + /@adraffy/ens-normalize@1.10.1: resolution: {integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==} + dev: true - '@alloc/quick-lru@5.2.0': + /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@ampproject/remapping@2.2.1': - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 - '@apidevtools/openapi-schemas@2.1.0': + /@apidevtools/openapi-schemas@2.1.0: resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} engines: {node: '>=10'} + dev: false - '@apidevtools/swagger-methods@3.0.2': + /@apidevtools/swagger-methods@3.0.2: resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} + dev: false - '@astrojs/check@0.8.3': + /@astrojs/check@0.8.3(prettier@3.2.5)(typescript@5.4.5): resolution: {integrity: sha512-ajcSe+ezX5jCc3dreQlWzbknzXgSGnDETNe3C1mawUOtGpO4t5z2YGaD0y+wzB84lmgPWaWZa0fKSPwLq/wUHw==} hasBin: true peerDependencies: typescript: ^5.0.0 + dependencies: + '@astrojs/language-server': 2.13.1(prettier@3.2.5)(typescript@5.4.5) + chokidar: 3.6.0 + fast-glob: 3.3.2 + kleur: 4.1.5 + typescript: 5.4.5 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + dev: false - '@astrojs/compiler@2.10.3': - resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} + /@astrojs/compiler@2.10.1: + resolution: {integrity: sha512-XmM4j6BjvOVMag2xELq0JuG2yKOW8wgIu6dvb9BsjbGYmnvoStJn/pqEzVqc1EBszf2xYT7onIkftIOUz9AwrQ==} + dev: false - '@astrojs/internal-helpers@0.4.1': + /@astrojs/internal-helpers@0.4.1: resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} + dev: false - '@astrojs/language-server@2.14.2': - resolution: {integrity: sha512-daUJ/+/2pPF3eGG4tVdXKyw0tabUDrJKwLzU8VTuNhEHIn3VZAIES6VT3+mX0lmKcMiKM8/bjZdfY+fPfmnsMA==} + /@astrojs/language-server@2.13.1(prettier@3.2.5)(typescript@5.4.5): + resolution: {integrity: sha512-Cl9ynfnge6+MaCpehYn7w9WrAE+sVS7onhxhMzCdqzPtIt/Yo5zIaiGZdu4QgvmOV/mdNBZCZgaTpAIeGjWwsQ==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -1042,201 +1058,775 @@ packages: optional: true prettier-plugin-astro: optional: true + dependencies: + '@astrojs/compiler': 2.10.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@volar/kit': 2.4.0-alpha.18(typescript@5.4.5) + '@volar/language-core': 2.4.0-alpha.18 + '@volar/language-server': 2.4.0-alpha.18 + '@volar/language-service': 2.4.0-alpha.18 + '@volar/typescript': 2.4.0-alpha.18 + fast-glob: 3.3.2 + muggle-string: 0.4.1 + prettier: 3.2.5 + volar-service-css: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-emmet: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-html: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-prettier: 0.0.59(@volar/language-service@2.4.0-alpha.18)(prettier@3.2.5) + volar-service-typescript: 0.0.59(@volar/language-service@2.4.0-alpha.18) + volar-service-typescript-twoslash-queries: 0.0.59(@volar/language-service@2.4.0-alpha.18) + vscode-html-languageservice: 5.2.0 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript + dev: false - '@astrojs/markdown-remark@5.2.0': + /@astrojs/markdown-remark@5.2.0: resolution: {integrity: sha512-vWGM24KZXz11jR3JO+oqYU3T2qpuOi4uGivJ9SQLCAI01+vEkHC60YJMRvHPc+hwd60F7euNs1PeOEixIIiNQw==} + dependencies: + '@astrojs/prism': 3.1.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.1 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.0 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + remark-smartypants: 3.0.2 + shiki: 1.12.1 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.2 + transitivePeerDependencies: + - supports-color + dev: false - '@astrojs/mdx@3.1.6': - resolution: {integrity: sha512-YCEIvNgoQG3oVhe9codH4TX6zjvkl7KGla19yZO5RCnvjv2d9zyrfWqJ98I6/m18PbEY3k8Wjvha0IIf5eZ2sQ==} + /@astrojs/mdx@3.1.3(astro@4.13.1): + resolution: {integrity: sha512-hOM4dMM4RfJI254d3p/AnOZuk2VyKszRtuY5FBm+Xc4XdhIpGrR56OXMNEcWchtwz4HQyPe/eJSgvBjSROcQIQ==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} peerDependencies: astro: ^4.8.0 + dependencies: + '@astrojs/markdown-remark': 5.2.0 + '@mdx-js/mdx': 3.0.1 + acorn: 8.12.1 + astro: 4.13.1(typescript@5.4.5) + es-module-lexer: 1.5.4 + estree-util-visit: 2.0.0 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + hast-util-to-html: 9.0.1 + kleur: 4.1.5 + rehype-raw: 7.0.0 + remark-gfm: 4.0.0 + remark-smartypants: 3.0.2 + source-map: 0.7.4 + unist-util-visit: 5.0.0 + vfile: 6.0.2 + transitivePeerDependencies: + - supports-color + dev: false - '@astrojs/prism@3.1.0': + /@astrojs/prism@3.1.0: resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + dependencies: + prismjs: 1.29.0 + dev: false - '@astrojs/sitemap@3.1.6': + /@astrojs/sitemap@3.1.6: resolution: {integrity: sha512-1Qp2NvAzVImqA6y+LubKi1DVhve/hXXgFvB0szxiipzh7BvtuKe4oJJ9dXSqaubaTkt4nMa6dv6RCCAYeB6xaQ==} + dependencies: + sitemap: 7.1.2 + stream-replace-string: 2.0.0 + zod: 3.23.8 + dev: false - '@astrojs/starlight@0.25.5': - resolution: {integrity: sha512-JQsfoqRUX/HBpOW8LWPdiIxcfXZ5HOvi4Dz4Ez61U99hDyX3Ix2Q+pmsek1sH5R1MHWx/wlki2VPEqidtKXyiQ==} + /@astrojs/starlight@0.25.3(astro@4.13.1): + resolution: {integrity: sha512-XNpGbZ54ungtzen4wQkPXn50D1ZquB51paWrZftA0jWxUkj4b/pP8PijAFrGFypydhvu7Dhl0DjD07lrnSSUhQ==} peerDependencies: astro: ^4.8.6 + dependencies: + '@astrojs/mdx': 3.1.3(astro@4.13.1) + '@astrojs/sitemap': 3.1.6 + '@pagefind/default-ui': 1.1.0 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + astro: 4.13.1(typescript@5.4.5) + astro-expressive-code: 0.35.3(astro@4.13.1) + bcp-47: 2.1.0 + hast-util-from-html: 2.0.1 + hast-util-select: 6.0.2 + hast-util-to-string: 3.0.0 + hastscript: 9.0.0 + mdast-util-directive: 3.0.0 + mdast-util-to-markdown: 2.1.0 + mdast-util-to-string: 4.0.0 + pagefind: 1.1.0 + rehype: 13.0.1 + rehype-format: 5.0.0 + remark-directive: 3.0.0 + unified: 11.0.4 + unist-util-visit: 5.0.0 + vfile: 6.0.1 + transitivePeerDependencies: + - supports-color + dev: false - '@astrojs/telemetry@3.1.0': + /@astrojs/telemetry@3.1.0: resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + dependencies: + ci-info: 4.0.0 + debug: 4.3.6(supports-color@8.1.1) + dlv: 1.1.3 + dset: 3.1.3 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: false - '@astrojs/yaml2ts@0.2.1': - resolution: {integrity: sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==} - - '@aws-crypto/crc32@3.0.0': + /@aws-crypto/crc32@3.0.0: resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.577.0 + tslib: 1.14.1 + dev: false - '@aws-crypto/crc32c@3.0.0': + /@aws-crypto/crc32c@3.0.0: resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.577.0 + tslib: 1.14.1 + dev: false - '@aws-crypto/ie11-detection@3.0.0': + /@aws-crypto/ie11-detection@3.0.0: resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} + dependencies: + tslib: 1.14.1 + dev: false - '@aws-crypto/sha1-browser@3.0.0': + /@aws-crypto/sha1-browser@3.0.0: resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==} + dependencies: + '@aws-crypto/ie11-detection': 3.0.0 + '@aws-crypto/supports-web-crypto': 3.0.0 + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-locate-window': 3.568.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + dev: false - '@aws-crypto/sha256-browser@3.0.0': + /@aws-crypto/sha256-browser@3.0.0: resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} + dependencies: + '@aws-crypto/ie11-detection': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-crypto/supports-web-crypto': 3.0.0 + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-locate-window': 3.568.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + dev: false - '@aws-crypto/sha256-js@1.2.2': + /@aws-crypto/sha256-js@1.2.2: resolution: {integrity: sha512-Nr1QJIbW/afYYGzYvrF70LtaHrIRtd4TNAglX8BvlfxJLZ45SAmueIKYl5tWoNBPzp65ymXGFK0Bb1vZUpuc9g==} + dependencies: + '@aws-crypto/util': 1.2.2 + '@aws-sdk/types': 3.577.0 + tslib: 1.14.1 + dev: true - '@aws-crypto/sha256-js@3.0.0': + /@aws-crypto/sha256-js@3.0.0: resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.577.0 + tslib: 1.14.1 + dev: false - '@aws-crypto/supports-web-crypto@3.0.0': + /@aws-crypto/supports-web-crypto@3.0.0: resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} + dependencies: + tslib: 1.14.1 + dev: false - '@aws-crypto/util@1.2.2': + /@aws-crypto/util@1.2.2: resolution: {integrity: sha512-H8PjG5WJ4wz0UXAFXeJjWCW1vkvIJ3qUUD+rGRwJ2/hj+xT58Qle2MTql/2MGzkU+1JLAFuR6aJpLAjHwhmwwg==} + dependencies: + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + dev: true - '@aws-crypto/util@3.0.0': + /@aws-crypto/util@3.0.0: resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} + dependencies: + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + dev: false - '@aws-sdk/client-s3@3.577.0': + /@aws-sdk/client-s3@3.577.0: resolution: {integrity: sha512-mQYXwn6E4Rwggn6teF6EIWJtK8jsKcxnPj2QVETkSmD8QaFLm4g/DgLPdamDE97UI8k1k0cmWqXcTOLIaZ7wQg==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-crypto/sha1-browser': 3.0.0 + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sso-oidc': 3.577.0(@aws-sdk/client-sts@3.577.0) + '@aws-sdk/client-sts': 3.577.0 + '@aws-sdk/core': 3.576.0 + '@aws-sdk/credential-provider-node': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0) + '@aws-sdk/middleware-bucket-endpoint': 3.577.0 + '@aws-sdk/middleware-expect-continue': 3.577.0 + '@aws-sdk/middleware-flexible-checksums': 3.577.0 + '@aws-sdk/middleware-host-header': 3.577.0 + '@aws-sdk/middleware-location-constraint': 3.577.0 + '@aws-sdk/middleware-logger': 3.577.0 + '@aws-sdk/middleware-recursion-detection': 3.577.0 + '@aws-sdk/middleware-sdk-s3': 3.577.0 + '@aws-sdk/middleware-signing': 3.577.0 + '@aws-sdk/middleware-ssec': 3.577.0 + '@aws-sdk/middleware-user-agent': 3.577.0 + '@aws-sdk/region-config-resolver': 3.577.0 + '@aws-sdk/signature-v4-multi-region': 3.577.0 + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-endpoints': 3.577.0 + '@aws-sdk/util-user-agent-browser': 3.577.0 + '@aws-sdk/util-user-agent-node': 3.577.0 + '@aws-sdk/xml-builder': 3.575.0 + '@smithy/config-resolver': 3.0.0 + '@smithy/core': 2.0.1 + '@smithy/eventstream-serde-browser': 3.0.0 + '@smithy/eventstream-serde-config-resolver': 3.0.0 + '@smithy/eventstream-serde-node': 3.0.0 + '@smithy/fetch-http-handler': 3.0.1 + '@smithy/hash-blob-browser': 3.0.0 + '@smithy/hash-node': 3.0.0 + '@smithy/hash-stream-node': 3.0.0 + '@smithy/invalid-dependency': 3.0.0 + '@smithy/md5-js': 3.0.0 + '@smithy/middleware-content-length': 3.0.0 + '@smithy/middleware-endpoint': 3.0.0 + '@smithy/middleware-retry': 3.0.1 + '@smithy/middleware-serde': 3.0.0 + '@smithy/middleware-stack': 3.0.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/node-http-handler': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/smithy-client': 3.0.1 + '@smithy/types': 3.0.0 + '@smithy/url-parser': 3.0.0 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.1 + '@smithy/util-defaults-mode-node': 3.0.1 + '@smithy/util-endpoints': 2.0.0 + '@smithy/util-retry': 3.0.0 + '@smithy/util-stream': 3.0.1 + '@smithy/util-utf8': 3.0.0 + '@smithy/util-waiter': 3.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false - '@aws-sdk/client-sso-oidc@3.577.0': + /@aws-sdk/client-sso-oidc@3.577.0(@aws-sdk/client-sts@3.577.0): resolution: {integrity: sha512-njmKSPDWueWWYVFpFcZ2P3fI6/pdQVDa0FgCyYZhOnJLgEHZIcBBg1AsnkVWacBuLopp9XVt2m+7hO6ugY1/1g==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.577.0 + '@aws-sdk/core': 3.576.0 + '@aws-sdk/credential-provider-node': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0) + '@aws-sdk/middleware-host-header': 3.577.0 + '@aws-sdk/middleware-logger': 3.577.0 + '@aws-sdk/middleware-recursion-detection': 3.577.0 + '@aws-sdk/middleware-user-agent': 3.577.0 + '@aws-sdk/region-config-resolver': 3.577.0 + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-endpoints': 3.577.0 + '@aws-sdk/util-user-agent-browser': 3.577.0 + '@aws-sdk/util-user-agent-node': 3.577.0 + '@smithy/config-resolver': 3.0.0 + '@smithy/core': 2.0.1 + '@smithy/fetch-http-handler': 3.0.1 + '@smithy/hash-node': 3.0.0 + '@smithy/invalid-dependency': 3.0.0 + '@smithy/middleware-content-length': 3.0.0 + '@smithy/middleware-endpoint': 3.0.0 + '@smithy/middleware-retry': 3.0.1 + '@smithy/middleware-serde': 3.0.0 + '@smithy/middleware-stack': 3.0.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/node-http-handler': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/smithy-client': 3.0.1 + '@smithy/types': 3.0.0 + '@smithy/url-parser': 3.0.0 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.1 + '@smithy/util-defaults-mode-node': 3.0.1 + '@smithy/util-endpoints': 2.0.0 + '@smithy/util-middleware': 3.0.0 + '@smithy/util-retry': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/client-sts' + - aws-crt + dev: false - '@aws-sdk/client-sso@3.577.0': + /@aws-sdk/client-sso@3.577.0: resolution: {integrity: sha512-BwujdXrydlk6UEyPmewm5GqG4nkQ6OVyRhS/SyZP/6UKSFv2/sf391Cmz0hN0itUTH1rR4XeLln8XCOtarkrzg==} engines: {node: '>=16.0.0'} - - '@aws-sdk/client-sts@3.577.0': - resolution: {integrity: sha512-509Kklimva1XVlhGbpTpeX3kOP6ORpm44twJxDHpa9TURbmoaxj7veWlnLCbDorxDTrbsDghvYZshvcLsojVpg==} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.576.0 + '@aws-sdk/middleware-host-header': 3.577.0 + '@aws-sdk/middleware-logger': 3.577.0 + '@aws-sdk/middleware-recursion-detection': 3.577.0 + '@aws-sdk/middleware-user-agent': 3.577.0 + '@aws-sdk/region-config-resolver': 3.577.0 + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-endpoints': 3.577.0 + '@aws-sdk/util-user-agent-browser': 3.577.0 + '@aws-sdk/util-user-agent-node': 3.577.0 + '@smithy/config-resolver': 3.0.0 + '@smithy/core': 2.0.1 + '@smithy/fetch-http-handler': 3.0.1 + '@smithy/hash-node': 3.0.0 + '@smithy/invalid-dependency': 3.0.0 + '@smithy/middleware-content-length': 3.0.0 + '@smithy/middleware-endpoint': 3.0.0 + '@smithy/middleware-retry': 3.0.1 + '@smithy/middleware-serde': 3.0.0 + '@smithy/middleware-stack': 3.0.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/node-http-handler': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/smithy-client': 3.0.1 + '@smithy/types': 3.0.0 + '@smithy/url-parser': 3.0.0 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.1 + '@smithy/util-defaults-mode-node': 3.0.1 + '@smithy/util-endpoints': 2.0.0 + '@smithy/util-middleware': 3.0.0 + '@smithy/util-retry': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false + + /@aws-sdk/client-sts@3.577.0: + resolution: {integrity: sha512-509Kklimva1XVlhGbpTpeX3kOP6ORpm44twJxDHpa9TURbmoaxj7veWlnLCbDorxDTrbsDghvYZshvcLsojVpg==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sso-oidc': 3.577.0(@aws-sdk/client-sts@3.577.0) + '@aws-sdk/core': 3.576.0 + '@aws-sdk/credential-provider-node': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0) + '@aws-sdk/middleware-host-header': 3.577.0 + '@aws-sdk/middleware-logger': 3.577.0 + '@aws-sdk/middleware-recursion-detection': 3.577.0 + '@aws-sdk/middleware-user-agent': 3.577.0 + '@aws-sdk/region-config-resolver': 3.577.0 + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-endpoints': 3.577.0 + '@aws-sdk/util-user-agent-browser': 3.577.0 + '@aws-sdk/util-user-agent-node': 3.577.0 + '@smithy/config-resolver': 3.0.0 + '@smithy/core': 2.0.1 + '@smithy/fetch-http-handler': 3.0.1 + '@smithy/hash-node': 3.0.0 + '@smithy/invalid-dependency': 3.0.0 + '@smithy/middleware-content-length': 3.0.0 + '@smithy/middleware-endpoint': 3.0.0 + '@smithy/middleware-retry': 3.0.1 + '@smithy/middleware-serde': 3.0.0 + '@smithy/middleware-stack': 3.0.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/node-http-handler': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/smithy-client': 3.0.1 + '@smithy/types': 3.0.0 + '@smithy/url-parser': 3.0.0 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.1 + '@smithy/util-defaults-mode-node': 3.0.1 + '@smithy/util-endpoints': 2.0.0 + '@smithy/util-middleware': 3.0.0 + '@smithy/util-retry': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: false - '@aws-sdk/core@3.576.0': + /@aws-sdk/core@3.576.0: resolution: {integrity: sha512-KDvDlbeipSTIf+ffKtTg1m419TK7s9mZSWC8bvuZ9qx6/sjQFOXIKOVqyuli6DnfxGbvRcwoRuY99OcCH1N/0w==} engines: {node: '>=16.0.0'} + dependencies: + '@smithy/core': 2.0.1 + '@smithy/protocol-http': 4.0.0 + '@smithy/signature-v4': 3.0.0 + '@smithy/smithy-client': 3.0.1 + '@smithy/types': 3.0.0 + fast-xml-parser: 4.2.5 + tslib: 2.6.2 + dev: false - '@aws-sdk/credential-provider-env@3.577.0': + /@aws-sdk/credential-provider-env@3.577.0: resolution: {integrity: sha512-Jxu255j0gToMGEiqufP8ZtKI8HW90lOLjwJ3LrdlD/NLsAY0tOQf1fWc53u28hWmmNGMxmCrL2p66IOgMDhDUw==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/property-provider': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/credential-provider-http@3.577.0': + /@aws-sdk/credential-provider-http@3.577.0: resolution: {integrity: sha512-n++yhCp67b9+ZRGEdY1jhamB5E/O+QsIDOPSuRmdaSGMCOd82oUEKPgIVEU1bkqxDsBxgiEWuvtfhK6sNiDS0A==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/fetch-http-handler': 3.0.1 + '@smithy/node-http-handler': 3.0.0 + '@smithy/property-provider': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/smithy-client': 3.0.1 + '@smithy/types': 3.0.0 + '@smithy/util-stream': 3.0.1 + tslib: 2.6.2 + dev: false - '@aws-sdk/credential-provider-ini@3.577.0': + /@aws-sdk/credential-provider-ini@3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0): resolution: {integrity: sha512-q7lHPtv6BjRvChUE3m0tIaEZKxPTaZ1B3lKxGYsFl3VLAu5N8yGCUKwuA1izf4ucT+LyKscVGqK6VDZx1ev3nw==} engines: {node: '>=16.0.0'} peerDependencies: '@aws-sdk/client-sts': ^3.577.0 + dependencies: + '@aws-sdk/client-sts': 3.577.0 + '@aws-sdk/credential-provider-env': 3.577.0 + '@aws-sdk/credential-provider-process': 3.577.0 + '@aws-sdk/credential-provider-sso': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0) + '@aws-sdk/credential-provider-web-identity': 3.577.0(@aws-sdk/client-sts@3.577.0) + '@aws-sdk/types': 3.577.0 + '@smithy/credential-provider-imds': 3.0.0 + '@smithy/property-provider': 3.0.0 + '@smithy/shared-ini-file-loader': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + dev: false - '@aws-sdk/credential-provider-node@3.577.0': + /@aws-sdk/credential-provider-node@3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0): resolution: {integrity: sha512-epZ1HOMsrXBNczc0HQpv0VMjqAEpc09DUA7Rg3gUJfn8umhML7A7bXnUyqPA+S54q397UYg1leQKdSn23OiwQQ==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/credential-provider-env': 3.577.0 + '@aws-sdk/credential-provider-http': 3.577.0 + '@aws-sdk/credential-provider-ini': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0) + '@aws-sdk/credential-provider-process': 3.577.0 + '@aws-sdk/credential-provider-sso': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0) + '@aws-sdk/credential-provider-web-identity': 3.577.0(@aws-sdk/client-sts@3.577.0) + '@aws-sdk/types': 3.577.0 + '@smithy/credential-provider-imds': 3.0.0 + '@smithy/property-provider': 3.0.0 + '@smithy/shared-ini-file-loader': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - '@aws-sdk/client-sts' + - aws-crt + dev: false - '@aws-sdk/credential-provider-process@3.577.0': + /@aws-sdk/credential-provider-process@3.577.0: resolution: {integrity: sha512-Gin6BWtOiXxIgITrJ3Nwc+Y2P1uVT6huYR4EcbA/DJUPWyO0n9y5UFLewPvVbLkRn15JeEqErBLUrHclkiOKtw==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/property-provider': 3.0.0 + '@smithy/shared-ini-file-loader': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/credential-provider-sso@3.577.0': + /@aws-sdk/credential-provider-sso@3.577.0(@aws-sdk/client-sso-oidc@3.577.0): resolution: {integrity: sha512-iVm5SQvS7EgZTJsRaqUOmDQpBQPPPat42SCbWFvFQOLrl8qewq8OP94hFS5w2mP62zngeYzqhJnDel79HXbxew==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/client-sso': 3.577.0 + '@aws-sdk/token-providers': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0) + '@aws-sdk/types': 3.577.0 + '@smithy/property-provider': 3.0.0 + '@smithy/shared-ini-file-loader': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + dev: false - '@aws-sdk/credential-provider-web-identity@3.577.0': + /@aws-sdk/credential-provider-web-identity@3.577.0(@aws-sdk/client-sts@3.577.0): resolution: {integrity: sha512-ZGHGNRaCtJJmszb9UTnC7izNCtRUttdPlLdMkh41KPS32vfdrBDHs1JrpbZijItRj1xKuOXsiYSXLAaHGcLh8Q==} engines: {node: '>=16.0.0'} peerDependencies: '@aws-sdk/client-sts': ^3.577.0 + dependencies: + '@aws-sdk/client-sts': 3.577.0 + '@aws-sdk/types': 3.577.0 + '@smithy/property-provider': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/lib-storage@3.578.0': + /@aws-sdk/lib-storage@3.578.0(@aws-sdk/client-s3@3.577.0): resolution: {integrity: sha512-SluLJrA/fG82UnE83Albh+gv48McmXkz17kmAMhhNswOxqHsklb5Vu5d/G0DUDAQdeC30sS/9Vhu2zAiJokunw==} engines: {node: '>=16.0.0'} peerDependencies: '@aws-sdk/client-s3': ^3.577.0 + dependencies: + '@aws-sdk/client-s3': 3.577.0 + '@smithy/abort-controller': 3.0.0 + '@smithy/middleware-endpoint': 3.0.0 + '@smithy/smithy-client': 3.0.1 + buffer: 5.6.0 + events: 3.3.0 + stream-browserify: 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-bucket-endpoint@3.577.0': + /@aws-sdk/middleware-bucket-endpoint@3.577.0: resolution: {integrity: sha512-twlkNX2VofM6kHXzDEiJOiYCc9tVABe5cbyxMArRWscIsCWG9mamPhC77ezG4XsN9dFEwVdxEYD5Crpm/5EUiw==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-arn-parser': 3.568.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-config-provider': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-expect-continue@3.577.0': + /@aws-sdk/middleware-expect-continue@3.577.0: resolution: {integrity: sha512-6dPp8Tv4F0of4un5IAyG6q++GrRrNQQ4P2NAMB1W0VO4JoEu1C8GievbbDLi88TFIFmtKpnHB0ODCzwnoe8JsA==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-flexible-checksums@3.577.0': + /@aws-sdk/middleware-flexible-checksums@3.577.0: resolution: {integrity: sha512-IHAUEipIfagjw92LV8SOSBiCF7ZnqfHcw14IkcZW2/mfrCy1Fh/k40MoS/t3Tro2tQ91rgQPwUoSgB/QCi2Org==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-crypto/crc32': 3.0.0 + '@aws-crypto/crc32c': 3.0.0 + '@aws-sdk/types': 3.577.0 + '@smithy/is-array-buffer': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-utf8': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-host-header@3.577.0': + /@aws-sdk/middleware-host-header@3.577.0: resolution: {integrity: sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-location-constraint@3.577.0': + /@aws-sdk/middleware-location-constraint@3.577.0: resolution: {integrity: sha512-DKPTD2D2s+t2QUo/IXYtVa/6Un8GZ+phSTBkyBNx2kfZz4Kwavhl/JJzSqTV3GfCXkVdFu7CrjoX7BZ6qWeTUA==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-logger@3.577.0': + /@aws-sdk/middleware-logger@3.577.0: resolution: {integrity: sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-recursion-detection@3.577.0': + /@aws-sdk/middleware-recursion-detection@3.577.0: resolution: {integrity: sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-sdk-s3@3.577.0': + /@aws-sdk/middleware-sdk-s3@3.577.0: resolution: {integrity: sha512-/t8Shvy6lGIRdTEKG6hA8xy+oon/CDF5H8Ksms/cd/uvIy/MYbNjOJ/Arwk8H5W6LB4DP/1O+tOzOpGx1MCufA==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-arn-parser': 3.568.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/signature-v4': 3.0.0 + '@smithy/smithy-client': 3.0.1 + '@smithy/types': 3.0.0 + '@smithy/util-config-provider': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-signing@3.577.0': + /@aws-sdk/middleware-signing@3.577.0: resolution: {integrity: sha512-QS/dh3+NqZbXtY0j/DZ867ogP413pG5cFGqBy9OeOhDMsolcwLrQbi0S0c621dc1QNq+er9ffaMhZ/aPkyXXIg==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/property-provider': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/signature-v4': 3.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-middleware': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-ssec@3.577.0': + /@aws-sdk/middleware-ssec@3.577.0: resolution: {integrity: sha512-i2BPJR+rp8xmRVIGc0h1kDRFcM2J9GnClqqpc+NLSjmYadlcg4mPklisz9HzwFVcRPJ5XcGf3U4BYs5G8+iTyg==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/middleware-user-agent@3.577.0': + /@aws-sdk/middleware-user-agent@3.577.0: resolution: {integrity: sha512-P55HAXgwmiHHpFx5JEPvOnAbfhN7v6sWv9PBQs+z2tC7QiBcPS0cdJR6PfV7J1n4VPK52/OnrK3l9VxdQ7Ms0g==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-endpoints': 3.577.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/region-config-resolver@3.577.0': + /@aws-sdk/region-config-resolver@3.577.0: resolution: {integrity: sha512-4ChCFACNwzqx/xjg3zgFcW8Ali6R9C95cFECKWT/7CUM1D0MGvkclSH2cLarmHCmJgU6onKkJroFtWp0kHhgyg==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/signature-v4-multi-region@3.577.0': + /@aws-sdk/signature-v4-multi-region@3.577.0: resolution: {integrity: sha512-mMykGRFBYmlDcMhdbhNM0z1JFUaYYZ8r9WV7Dd0T2PWELv2brSAjDAOBHdJLHObDMYRnM6H0/Y974qTl3icEcQ==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.577.0 + '@aws-sdk/types': 3.577.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/signature-v4': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/token-providers@3.577.0': + /@aws-sdk/token-providers@3.577.0(@aws-sdk/client-sso-oidc@3.577.0): resolution: {integrity: sha512-0CkIZpcC3DNQJQ1hDjm2bdSy/Xjs7Ny5YvSsacasGOkNfk+FdkiQy6N67bZX3Zbc9KIx+Nz4bu3iDeNSNplnnQ==} engines: {node: '>=16.0.0'} peerDependencies: '@aws-sdk/client-sso-oidc': ^3.577.0 - - '@aws-sdk/types@3.577.0': + dependencies: + '@aws-sdk/client-sso-oidc': 3.577.0(@aws-sdk/client-sts@3.577.0) + '@aws-sdk/types': 3.577.0 + '@smithy/property-provider': 3.0.0 + '@smithy/shared-ini-file-loader': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false + + /@aws-sdk/types@3.577.0: resolution: {integrity: sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==} engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + tslib: 2.6.2 - '@aws-sdk/util-arn-parser@3.568.0': + /@aws-sdk/util-arn-parser@3.568.0: resolution: {integrity: sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==} engines: {node: '>=16.0.0'} + dependencies: + tslib: 2.6.2 + dev: false - '@aws-sdk/util-endpoints@3.577.0': + /@aws-sdk/util-endpoints@3.577.0: resolution: {integrity: sha512-FjuUz1Kdy4Zly2q/c58tpdqHd6z7iOdU/caYzoc8jwgAHBDBbIJNQLCU9hXJnPV2M8pWxQDyIZsoVwtmvErPzw==} engines: {node: '>=16.0.0'} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/types': 3.0.0 + '@smithy/util-endpoints': 2.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/util-locate-window@3.568.0': + /@aws-sdk/util-locate-window@3.568.0: resolution: {integrity: sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==} engines: {node: '>=16.0.0'} + dependencies: + tslib: 2.6.2 + dev: false - '@aws-sdk/util-user-agent-browser@3.577.0': + /@aws-sdk/util-user-agent-browser@3.577.0: resolution: {integrity: sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==} + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/types': 3.0.0 + bowser: 2.11.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/util-user-agent-node@3.577.0': + /@aws-sdk/util-user-agent-node@3.577.0: resolution: {integrity: sha512-XqvtFjbSMtycZTWVwDe8DRWovuoMbA54nhUoZwVU6rW9OSD6NZWGR512BUGHFaWzW0Wg8++Dj10FrKTG2XtqfA==} engines: {node: '>=16.0.0'} peerDependencies: @@ -1244,13430 +1834,2418 @@ packages: peerDependenciesMeta: aws-crt: optional: true + dependencies: + '@aws-sdk/types': 3.577.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@aws-sdk/util-utf8-browser@3.259.0': + /@aws-sdk/util-utf8-browser@3.259.0: resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} + dependencies: + tslib: 2.6.2 - '@aws-sdk/xml-builder@3.575.0': + /@aws-sdk/xml-builder@3.575.0: resolution: {integrity: sha512-cWgAwmbFYNCFzPwxL705+lWps0F3ZvOckufd2KKoEZUmtpVw9/txUXNrPySUXSmRTSRhoatIMABNfStWR043bQ==} engines: {node: '>=16.0.0'} + dependencies: + '@smithy/types': 3.0.0 + tslib: 2.6.2 + dev: false - '@babel/code-frame@7.23.5': - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} - engines: {node: '>=6.9.0'} - - '@babel/code-frame@7.24.2': + /@babel/code-frame@7.24.2: resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.5 + picocolors: 1.0.0 - '@babel/code-frame@7.24.7': + /@babel/code-frame@7.24.7: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.24.7 + picocolors: 1.0.0 + + /@babel/compat-data@7.24.4: + resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} + engines: {node: '>=6.9.0'} + + /@babel/compat-data@7.25.2: + resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} + engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.4': - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + /@babel/core@7.24.5: + resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helpers': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/core@7.25.2': + /@babel/core@7.25.2: resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.7 + '@babel/generator': 7.25.0 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) + '@babel/helpers': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/template': 7.25.0 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + convert-source-map: 2.0.0 + debug: 4.3.6(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /@babel/generator@7.24.5: + resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + dev: true + + /@babel/generator@7.25.0: + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.25.2 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 - '@babel/generator@7.25.6': - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 - '@babel/helper-annotate-as-pure@7.24.7': + /@babel/helper-annotate-as-pure@7.24.7: resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.25.2 + dev: false - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.23.0 + lru-cache: 5.1.1 + semver: 6.3.1 - '@babel/helper-compilation-targets@7.25.2': + /@babel/helper-compilation-targets@7.25.2: resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.25.2 + '@babel/helper-validator-option': 7.24.8 + browserslist: 4.23.3 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.24.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.24.5 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.24.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.25.2) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.24.5 + semver: 6.3.1 + dev: false - '@babel/helper-create-class-features-plugin@7.23.10': - resolution: {integrity: sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==} + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.5): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true - '@babel/helper-create-regexp-features-plugin@7.22.15': + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.25.2): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: false + + /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.5): + resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/helper-define-polyfill-provider@0.5.0': - resolution: {integrity: sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==} + /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2): + resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: false - '@babel/helper-environment-visitor@7.22.20': + /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.23.0': + /@babel/helper-function-name@7.23.0: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/types': 7.24.5 - '@babel/helper-hoist-variables@7.22.5': + /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 - '@babel/helper-member-expression-to-functions@7.23.0': - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + /@babel/helper-member-expression-to-functions@7.24.5: + resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 - '@babel/helper-module-imports@7.22.15': - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + /@babel/helper-module-imports@7.24.3: + resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 - '@babel/helper-module-imports@7.24.7': + /@babel/helper-module-imports@7.24.7: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + transitivePeerDependencies: + - supports-color + + /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.24.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 + dev: true + + /@babel/helper-module-transforms@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.24.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 + dev: false - '@babel/helper-module-transforms@7.25.2': + /@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2): resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.24.7 + '@babel/helper-simple-access': 7.24.7 + '@babel/helper-validator-identifier': 7.24.7 + '@babel/traverse': 7.25.3 + transitivePeerDependencies: + - supports-color - '@babel/helper-optimise-call-expression@7.22.5': + /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 + + /@babel/helper-plugin-utils@7.24.5: + resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} + engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.8': + /@babel/helper-plugin-utils@7.24.8: resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} engines: {node: '>=6.9.0'} + dev: false + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.24.5 + dev: true - '@babel/helper-remap-async-to-generator@7.22.20': + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.25.2): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.24.5 + dev: false + + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.24.5 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true - '@babel/helper-replace-supers@7.22.20': - resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + /@babel/helper-replace-supers@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.24.5 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: false - '@babel/helper-simple-access@7.24.7': + /@babel/helper-simple-access@7.24.5: + resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 + + /@babel/helper-simple-access@7.24.7: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 + transitivePeerDependencies: + - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 - '@babel/helper-split-export-declaration@7.24.5': + /@babel/helper-split-export-declaration@7.24.5: resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.5 - '@babel/helper-string-parser@7.23.4': - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + /@babel/helper-string-parser@7.24.1: + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': + /@babel/helper-string-parser@7.24.8: resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.22.20': - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.5': + /@babel/helper-validator-identifier@7.24.5: resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': + /@babel/helper-validator-identifier@7.24.7: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.24.8: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.22.20': - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + /@babel/helper-wrap-function@7.24.5: + resolution: {integrity: sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.24.0 + '@babel/types': 7.24.5 - '@babel/helpers@7.25.6': - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + /@babel/helpers@7.24.5: + resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.5 + '@babel/types': 7.24.5 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/highlight@7.23.4': - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + /@babel/helpers@7.25.0: + resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.25.2 - '@babel/highlight@7.24.5': + /@babel/highlight@7.24.5: resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 - '@babel/highlight@7.24.7': + /@babel/highlight@7.24.7: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.24.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.0.0 - '@babel/parser@7.23.9': - resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.24.5': + /@babel/parser@7.24.5: resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.24.5 - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + /@babel/parser@7.25.3: + resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.25.2 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3': - resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3': - resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.13.0 + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7': - resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-proposal-async-generator-functions@7.20.7': - resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-proposal-class-properties@7.18.6': - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) + dev: true - '@babel/plugin-proposal-export-default-from@7.23.3': - resolution: {integrity: sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.25.2) + dev: false - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6': - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-numeric-separator@7.18.6': - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-object-rest-spread@7.20.7': - resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-optional-catch-binding@7.18.6': - resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-optional-chaining@7.21.0': - resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-export-default-from@7.23.3': - resolution: {integrity: sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-flow@7.23.3': - resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-assertions@7.23.3': - resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-attributes@7.23.3': - resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.25.2): + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + dev: false - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.2): + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.8 + dev: false - '@babel/plugin-syntax-typescript@7.23.3': - resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + /@babel/plugin-proposal-export-default-from@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-+0hrgGGV3xyYIjOrD/bUZk/iUwOIGuoANfRfVg1cPhYBxF+TIXSEcc42DqzBICmWsnAQ+SfKedY0bj8QD+LuMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.25.2) + dev: false - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-arrow-functions@7.23.3': - resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.25.2): + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead. peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-async-generator-functions@7.23.9': - resolution: {integrity: sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==} + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.25.2): + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-async-to-generator@7.23.3': - resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} + /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.25.2): + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-block-scoped-functions@7.23.3': - resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.25.2): + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.25.2 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-block-scoping@7.23.4': - resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.25.2): + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-class-properties@7.23.3': - resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} + /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.25.2): + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-class-static-block@7.23.4': - resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - - '@babel/plugin-transform-classes@7.23.8': - resolution: {integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==} + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + dev: true - '@babel/plugin-transform-computed-properties@7.23.3': - resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + dev: false - '@babel/plugin-transform-destructuring@7.23.3': - resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-dotall-regex@7.23.3': - resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-duplicate-keys@7.23.3': - resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-dynamic-import@7.23.4': - resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-exponentiation-operator@7.23.3': - resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.5): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-export-namespace-from@7.23.4': - resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-flow-strip-types@7.23.3': - resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-for-of@7.23.6': - resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-function-name@7.23.3': - resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} + /@babel/plugin-syntax-export-default-from@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-cNXSxv9eTkGUtd0PsNMK8Yx5xeScxfpWOUAxE+ZPAXXEcAMOC3fk7LRdXq5fvpra2pLx2p1YtkAhpUbB2SwaRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: false - '@babel/plugin-transform-json-strings@7.23.4': - resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-literals@7.23.3': - resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-logical-assignment-operators@7.23.4': - resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} + /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-member-expression-literals@7.23.3': - resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} + /@babel/plugin-syntax-flow@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-modules-amd@7.23.3': - resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} + /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-modules-commonjs@7.23.3': - resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} + /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-modules-systemjs@7.23.9': - resolution: {integrity: sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==} + /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-modules-umd@7.23.3': - resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} + /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5': - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-transform-new-target@7.23.3': - resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-nullish-coalescing-operator@7.23.4': - resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-numeric-separator@7.23.4': - resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-object-rest-spread@7.23.4': - resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-object-super@7.23.3': - resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-optional-catch-binding@7.23.4': - resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-optional-chaining@7.23.4': - resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + /@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2): + resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + dev: false - '@babel/plugin-transform-parameters@7.23.3': - resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-private-methods@7.23.3': - resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} - engines: {node: '>=6.9.0'} + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-private-property-in-object@7.23.4': - resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-property-literals@7.23.3': - resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-display-name@7.23.3': - resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-self@7.23.3': - resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-source@7.23.3': - resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.25.2': - resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-regenerator@7.23.3': - resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-reserved-words@7.23.3': - resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-runtime@7.23.9': - resolution: {integrity: sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-shorthand-properties@7.23.3': - resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-spread@7.23.3': - resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-sticky-regex@7.23.3': - resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-template-literals@7.23.3': - resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typeof-symbol@7.23.3': - resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-typescript@7.23.6': - resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-escapes@7.23.3': - resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-property-regex@7.23.3': - resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-regex@7.23.3': - resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-unicode-sets-regex@7.23.3': - resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/preset-env@7.23.9': - resolution: {integrity: sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-flow@7.23.3': - resolution: {integrity: sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - - '@babel/preset-typescript@7.23.3': - resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/register@7.23.7': - resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/regjsgen@0.8.0': - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - - '@babel/runtime@7.23.9': - resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.25.6': - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.23.9': - resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} - engines: {node: '>=6.9.0'} - - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - - '@chainsafe/is-ip@2.0.2': - resolution: {integrity: sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA==} - - '@chainsafe/netmask@2.0.0': - resolution: {integrity: sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==} - - '@changesets/apply-release-plan@7.0.5': - resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} - - '@changesets/assemble-release-plan@6.0.4': - resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} - - '@changesets/changelog-git@0.2.0': - resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} - - '@changesets/cli@2.27.8': - resolution: {integrity: sha512-gZNyh+LdSsI82wBSHLQ3QN5J30P4uHKJ4fXgoGwQxfXwYFTJzDdvIJasZn8rYQtmKhyQuiBj4SSnLuKlxKWq4w==} - hasBin: true - - '@changesets/config@3.0.3': - resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} - - '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - - '@changesets/get-dependents-graph@2.1.2': - resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} - - '@changesets/get-release-plan@4.0.4': - resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} - - '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - - '@changesets/git@3.0.1': - resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} - - '@changesets/logger@0.1.1': - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - - '@changesets/parse@0.4.0': - resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} - - '@changesets/pre@2.0.1': - resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} - - '@changesets/read@0.6.1': - resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} - - '@changesets/should-skip-package@0.1.1': - resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} - - '@changesets/types@4.1.0': - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - - '@changesets/types@6.0.0': - resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} - - '@changesets/write@0.3.2': - resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} - - '@chromatic-com/storybook@1.3.3': - resolution: {integrity: sha512-1y9r691T5vVGDZ0HY3YrCXUnvtrT2YrhDuvDZSvYSNUVpM/Imz6i1dnNMKb3eoI1qRsH55mI4zCt+Iq94NLedQ==} - engines: {node: '>=16.0.0', yarn: '>=1.22.18'} - - '@chromatic-com/storybook@1.9.0': - resolution: {integrity: sha512-vYQ+TcfktEE3GHnLZXHCzXF/sN9dw+KivH8a5cmPyd9YtQs7fZtHrEgsIjWpYycXiweKMo1Lm1RZsjxk8DH3rA==} - engines: {node: '>=16.0.0', yarn: '>=1.22.18'} - - '@coinbase/wallet-sdk@3.9.1': - resolution: {integrity: sha512-cGUE8wm1/cMI8irRMVOqbFWYcnNugqCtuy2lnnHfgloBg+GRLs9RsrkOUDMdv/StfUeeKhCDyYudsXXvcL1xIA==} - - '@coinbase/wallet-sdk@3.9.3': - resolution: {integrity: sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw==} - - '@coinbase/wallet-sdk@4.0.4': - resolution: {integrity: sha512-74c040CRnGhfRjr3ArnkAgud86erIqdkPHNt5HR1k9u97uTIZCJww9eGYT67Qf7gHPpGS/xW8Be1D4dvRm63FA==} - - '@colors/colors@1.5.0': - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@csstools/selector-resolve-nested@1.1.0': - resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss-selector-parser: ^6.0.13 - - '@csstools/selector-specificity@3.0.2': - resolution: {integrity: sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss-selector-parser: ^6.0.13 - - '@ctrl/tinycolor@4.1.0': - resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} - engines: {node: '>=14'} - - '@emmetio/abbreviation@2.3.3': - resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} - - '@emmetio/css-abbreviation@2.1.8': - resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} - - '@emmetio/css-parser@0.4.0': - resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} - - '@emmetio/html-matcher@1.3.0': - resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} - - '@emmetio/scanner@1.0.4': - resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} - - '@emmetio/stream-reader-utils@0.1.0': - resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} - - '@emmetio/stream-reader@2.2.0': - resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} - - '@emnapi/runtime@1.1.1': - resolution: {integrity: sha512-3bfqkzuR1KLx57nZfjr2NLnFOobvyS0aTszaEGCGqmYMVDRaGvgIZbjGSV/MHSSmLgQ/b9JFHQ5xm5WRZYd+XQ==} - - '@emotion/babel-plugin@11.11.0': - resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} - - '@emotion/cache@11.11.0': - resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} - - '@emotion/hash@0.9.1': - resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} - - '@emotion/is-prop-valid@1.2.1': - resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} - - '@emotion/memoize@0.8.1': - resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - - '@emotion/react@11.11.3': - resolution: {integrity: sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==} - peerDependencies: - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - - '@emotion/serialize@1.1.3': - resolution: {integrity: sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==} - - '@emotion/sheet@1.2.2': - resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} - - '@emotion/styled@11.11.0': - resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} - peerDependencies: - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - - '@emotion/unitless@0.8.1': - resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - - '@emotion/use-insertion-effect-with-fallbacks@1.0.1': - resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} - peerDependencies: - react: '>=16.8.0' - - '@emotion/utils@1.2.1': - resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} - - '@emotion/weak-memoize@0.3.1': - resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} - - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.21.3': - resolution: {integrity: sha512-yTgnwQpFVYfvvo4SvRFB0SwrW8YjOxEoT7wfMT7Ol5v7v5LDNvSGo67aExmxOb87nQNeWPVvaGBNfQ7BXcrZ9w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.21.3': - resolution: {integrity: sha512-c+ty9necz3zB1Y+d/N+mC6KVVkGUUOcm4ZmT5i/Fk5arOaY3i6CA3P5wo/7+XzV8cb4GrI/Zjp8NuOQ9Lfsosw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.21.3': - resolution: {integrity: sha512-bviJOLMgurLJtF1/mAoJLxDZDL6oU5/ztMHnJQRejbJrSc9FFu0QoUoFhvi6qSKJEw9y5oGyvr9fuDtzJ30rNQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.21.3': - resolution: {integrity: sha512-JReHfYCRK3FVX4Ra+y5EBH1b9e16TV2OxrPAvzMsGeES0X2Ndm9ImQRI4Ket757vhc5XBOuGperw63upesclRw==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.21.3': - resolution: {integrity: sha512-U3fuQ0xNiAkXOmQ6w5dKpEvXQRSpHOnbw7gEfHCRXPeTKW9sBzVck6C5Yneb8LfJm0l6le4NQfkNPnWMSlTFUQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.3': - resolution: {integrity: sha512-3m1CEB7F07s19wmaMNI2KANLcnaqryJxO1fXHUV5j1rWn+wMxdUYoPyO2TnAbfRZdi7ADRwJClmOwgT13qlP3Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.21.3': - resolution: {integrity: sha512-fsNAAl5pU6wmKHq91cHWQT0Fz0vtyE1JauMzKotrwqIKAswwP5cpHUCxZNSTuA/JlqtScq20/5KZ+TxQdovU/g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.3': - resolution: {integrity: sha512-tci+UJ4zP5EGF4rp8XlZIdq1q1a/1h9XuronfxTMCNBslpCtmk97Q/5qqy1Mu4zIc0yswN/yP/BLX+NTUC1bXA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.21.3': - resolution: {integrity: sha512-vvG6R5g5ieB4eCJBQevyDMb31LMHthLpXTc2IGkFnPWS/GzIFDnaYFp558O+XybTmYrVjxnryru7QRleJvmZ6Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.21.3': - resolution: {integrity: sha512-f6kz2QpSuyHHg01cDawj0vkyMwuIvN62UAguQfnNVzbge2uWLhA7TCXOn83DT0ZvyJmBI943MItgTovUob36SQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.21.3': - resolution: {integrity: sha512-HjCWhH7K96Na+66TacDLJmOI9R8iDWDDiqe17C7znGvvE4sW1ECt9ly0AJ3dJH62jHyVqW9xpxZEU1jKdt+29A==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.18.20': - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.21.3': - resolution: {integrity: sha512-BGpimEccmHBZRcAhdlRIxMp7x9PyJxUtj7apL2IuoG9VxvU/l/v1z015nFs7Si7tXUwEsvjc1rOJdZCn4QTU+Q==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.18.20': - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.21.3': - resolution: {integrity: sha512-5rMOWkp7FQGtAH3QJddP4w3s47iT20hwftqdm7b+loe95o8JU8ro3qZbhgMRy0VuFU0DizymF1pBKkn3YHWtsw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.18.20': - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.21.3': - resolution: {integrity: sha512-h0zj1ldel89V5sjPLo5H1SyMzp4VrgN1tPkN29TmjvO1/r0MuMRwJxL8QY05SmfsZRs6TF0c/IDH3u7XYYmbAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.18.20': - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.3': - resolution: {integrity: sha512-dkAKcTsTJ+CRX6bnO17qDJbLoW37npd5gSNtSzjYQr0svghLJYGYB0NF1SNcU1vDcjXLYS5pO4qOW4YbFama4A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.18.20': - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.21.3': - resolution: {integrity: sha512-vnD1YUkovEdnZWEuMmy2X2JmzsHQqPpZElXx6dxENcIwTu+Cu5ERax6+Ke1QsE814Zf3c6rxCfwQdCTQ7tPuXA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.18.20': - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.21.3': - resolution: {integrity: sha512-IOXOIm9WaK7plL2gMhsWJd+l2bfrhfilv0uPTptoRoSb2p09RghhQQp9YY6ZJhk/kqmeRt6siRdMSLLwzuT0KQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.18.20': - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.21.3': - resolution: {integrity: sha512-uTgCwsvQ5+vCQnqM//EfDSuomo2LhdWhFPS8VL8xKf+PKTCrcT/2kPPoWMTs22aB63MLdGMJiE3f1PHvCDmUOw==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.18.20': - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.21.3': - resolution: {integrity: sha512-vNAkR17Ub2MgEud2Wag/OE4HTSI6zlb291UYzHez/psiKarp0J8PKGDnAhMBcHFoOHMXHfExzmjMojJNbAStrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.18.20': - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.21.3': - resolution: {integrity: sha512-W8H9jlGiSBomkgmouaRoTXo49j4w4Kfbl6I1bIdO/vT0+0u4f20ko3ELzV3hPI6XV6JNBVX+8BC+ajHkvffIJA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.18.20': - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.21.3': - resolution: {integrity: sha512-EjEomwyLSCg8Ag3LDILIqYCZAq/y3diJ04PnqGRgq8/4O3VNlXyMd54j/saShaN4h5o5mivOjAzmU6C3X4v0xw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.18.20': - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.21.3': - resolution: {integrity: sha512-WGiE/GgbsEwR33++5rzjiYsKyHywE8QSZPF7Rfx9EBfK3Qn3xyR6IjyCr5Uk38Kg8fG4/2phN7sXp4NPWd3fcw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.18.20': - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.21.3': - resolution: {integrity: sha512-xRxC0jaJWDLYvcUvjQmHCJSfMrgmUuvsoXgDeU/wTorQ1ngDdUBuFtgY3W1Pc5sprGAvZBtWdJX7RPg/iZZUqA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@1.4.1': - resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.55.0': - resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.56.0': - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@ethereumjs/common@2.6.5': - resolution: {integrity: sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==} - - '@ethereumjs/common@3.2.0': - resolution: {integrity: sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==} - - '@ethereumjs/rlp@4.0.1': - resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} - engines: {node: '>=14'} - hasBin: true - - '@ethereumjs/tx@3.5.2': - resolution: {integrity: sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==} - - '@ethereumjs/tx@4.2.0': - resolution: {integrity: sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==} - engines: {node: '>=14'} - - '@ethereumjs/util@8.1.0': - resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} - engines: {node: '>=14'} - - '@ethersproject/abi@5.7.0': - resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} - - '@ethersproject/abstract-provider@5.7.0': - resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} - - '@ethersproject/abstract-signer@5.7.0': - resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} - - '@ethersproject/address@5.7.0': - resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} - - '@ethersproject/base64@5.7.0': - resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} - - '@ethersproject/basex@5.7.0': - resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==} - - '@ethersproject/bignumber@5.7.0': - resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} - - '@ethersproject/bytes@5.7.0': - resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} - - '@ethersproject/constants@5.7.0': - resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} - - '@ethersproject/contracts@5.7.0': - resolution: {integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==} - - '@ethersproject/hash@5.7.0': - resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} - - '@ethersproject/hdnode@5.7.0': - resolution: {integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==} - - '@ethersproject/json-wallets@5.7.0': - resolution: {integrity: sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==} - - '@ethersproject/keccak256@5.7.0': - resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} - - '@ethersproject/logger@5.7.0': - resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} - - '@ethersproject/networks@5.7.1': - resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} - - '@ethersproject/pbkdf2@5.7.0': - resolution: {integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==} - - '@ethersproject/properties@5.7.0': - resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} - - '@ethersproject/providers@5.7.2': - resolution: {integrity: sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==} - - '@ethersproject/random@5.7.0': - resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==} - - '@ethersproject/rlp@5.7.0': - resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} - - '@ethersproject/sha2@5.7.0': - resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} - - '@ethersproject/signing-key@5.7.0': - resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} - - '@ethersproject/solidity@5.7.0': - resolution: {integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==} - - '@ethersproject/strings@5.7.0': - resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} - - '@ethersproject/transactions@5.7.0': - resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} - - '@ethersproject/units@5.7.0': - resolution: {integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==} - - '@ethersproject/wallet@5.7.0': - resolution: {integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==} - - '@ethersproject/web@5.7.1': - resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} - - '@ethersproject/wordlists@5.7.0': - resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==} - - '@expressive-code/core@0.35.6': - resolution: {integrity: sha512-xGqCkmfkgT7lr/rvmfnYdDSeTdCSp1otAHgoFS6wNEeO7wGDPpxdosVqYiIcQ8CfWUABh/pGqWG90q+MV3824A==} - - '@expressive-code/plugin-frames@0.35.6': - resolution: {integrity: sha512-CqjSWjDJ3wabMJZfL9ZAzH5UAGKg7KWsf1TBzr4xvUbZvWoBtLA/TboBML0U1Ls8h/4TRCIvR4VEb8dv5+QG3w==} - - '@expressive-code/plugin-shiki@0.35.6': - resolution: {integrity: sha512-xm+hzi9BsmhkDUGuyAWIydOAWer7Cs9cj8FM0t4HXaQ+qCubprT6wJZSKUxuvFJIUsIOqk1xXFaJzGJGnWtKMg==} - - '@expressive-code/plugin-text-markers@0.35.6': - resolution: {integrity: sha512-/k9eWVZSCs+uEKHR++22Uu6eIbHWEciVHbIuD8frT8DlqTtHYaaiwHPncO6KFWnGDz5i/gL7oyl6XmOi/E6GVg==} - - '@fastify/busboy@2.1.0': - resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} - engines: {node: '>=14'} - - '@formatjs/ecma402-abstract@1.18.2': - resolution: {integrity: sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA==} - - '@formatjs/fast-memoize@2.2.0': - resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} - - '@formatjs/icu-messageformat-parser@2.7.6': - resolution: {integrity: sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA==} - - '@formatjs/icu-skeleton-parser@1.8.0': - resolution: {integrity: sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA==} - - '@formatjs/intl-localematcher@0.5.4': - resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==} - - '@hapi/hoek@9.3.0': - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - - '@hapi/topo@5.1.0': - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - - '@humanwhocodes/config-array@0.11.13': - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/config-array@0.9.5': - resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/momoa@2.0.4': - resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==} - engines: {node: '>=10.10.0'} - - '@humanwhocodes/object-schema@1.2.1': - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} - deprecated: Use @eslint/object-schema instead - - '@humanwhocodes/object-schema@2.0.1': - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} - deprecated: Use @eslint/object-schema instead - - '@humanwhocodes/object-schema@2.0.2': - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} - deprecated: Use @eslint/object-schema instead - - '@img/sharp-darwin-arm64@0.33.3': - resolution: {integrity: sha512-FaNiGX1MrOuJ3hxuNzWgsT/mg5OHG/Izh59WW2mk1UwYHUwtfbhk5QNKYZgxf0pLOhx9ctGiGa2OykD71vOnSw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.33.3': - resolution: {integrity: sha512-2QeSl7QDK9ru//YBT4sQkoq7L0EAJZA3rtV+v9p8xTKl4U1bUqTIaCnoC7Ctx2kCjQgwFXDasOtPTCT8eCTXvw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.0.2': - resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} - engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.0.2': - resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} - engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.0.2': - resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linux-arm@1.0.2': - resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm] - os: [linux] - - '@img/sharp-libvips-linux-s390x@1.0.2': - resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [s390x] - os: [linux] - - '@img/sharp-libvips-linux-x64@1.0.2': - resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': - resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-x64@1.0.2': - resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] - - '@img/sharp-linux-arm64@0.33.3': - resolution: {integrity: sha512-Zf+sF1jHZJKA6Gor9hoYG2ljr4wo9cY4twaxgFDvlG0Xz9V7sinsPp8pFd1XtlhTzYo0IhDbl3rK7P6MzHpnYA==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] - - '@img/sharp-linux-arm@0.33.3': - resolution: {integrity: sha512-Q7Ee3fFSC9P7vUSqVEF0zccJsZ8GiiCJYGWDdhEjdlOeS9/jdkyJ6sUSPj+bL8VuOYFSbofrW0t/86ceVhx32w==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm] - os: [linux] - - '@img/sharp-linux-s390x@0.33.3': - resolution: {integrity: sha512-vFk441DKRFepjhTEH20oBlFrHcLjPfI8B0pMIxGm3+yilKyYeHEVvrZhYFdqIseSclIqbQ3SnZMwEMWonY5XFA==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [s390x] - os: [linux] - - '@img/sharp-linux-x64@0.33.3': - resolution: {integrity: sha512-Q4I++herIJxJi+qmbySd072oDPRkCg/SClLEIDh5IL9h1zjhqjv82H0Seupd+q2m0yOfD+/fJnjSoDFtKiHu2g==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] - - '@img/sharp-linuxmusl-arm64@0.33.3': - resolution: {integrity: sha512-qnDccehRDXadhM9PM5hLvcPRYqyFCBN31kq+ErBSZtZlsAc1U4Z85xf/RXv1qolkdu+ibw64fUDaRdktxTNP9A==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [arm64] - os: [linux] - - '@img/sharp-linuxmusl-x64@0.33.3': - resolution: {integrity: sha512-Jhchim8kHWIU/GZ+9poHMWRcefeaxFIs9EBqf9KtcC14Ojk6qua7ghKiPs0sbeLbLj/2IGBtDcxHyjCdYWkk2w==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [linux] - - '@img/sharp-wasm32@0.33.3': - resolution: {integrity: sha512-68zivsdJ0koE96stdUfM+gmyaK/NcoSZK5dV5CAjES0FUXS9lchYt8LAB5rTbM7nlWtxaU/2GON0HVN6/ZYJAQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [wasm32] - - '@img/sharp-win32-ia32@0.33.3': - resolution: {integrity: sha512-CyimAduT2whQD8ER4Ux7exKrtfoaUiVr7HG0zZvO0XTFn2idUWljjxv58GxNTkFb8/J9Ub9AqITGkJD6ZginxQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-x64@0.33.3': - resolution: {integrity: sha512-viT4fUIDKnli3IfOephGnolMzhz5VaTvDRkYqtZxOMIoMQ4MrAziO7pT1nVnOt2FAm7qW5aa+CCc13aEY6Le0g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} - cpu: [x64] - os: [win32] - - '@ioredis/commands@1.2.0': - resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} - - '@ipld/dag-cbor@9.2.0': - resolution: {integrity: sha512-N14oMy0q4gM6OuZkIpisKe0JBSjf1Jb39VI+7jMLiWX9124u1Z3Fdj/Tag1NA0cVxxqWDh0CqsjcVfOKtelPDA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@ipld/dag-json@10.2.0': - resolution: {integrity: sha512-O9YLUrl3d3WbVz7v1WkajFkyfOLEe2Fep+wor4fgVe0ywxzrivrj437NiPcVyB+2EDdFn/Q7tCHFf8YVhDf8ZA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@ipld/dag-pb@4.1.0': - resolution: {integrity: sha512-LJU451Drqs5zjFm7jI4Hs3kHlilOqkjcSfPiQgVsZnWaYb2C7YdfhnclrVn/X+ucKejlU9BL3+gXFCZUXkMuCg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@isaacs/ttlcache@1.4.1': - resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} - engines: {node: '>=12'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/create-cache-key-function@29.7.0': - resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@26.6.2': - resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} - engines: {node: '>= 10.14.2'} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.3': - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.1.2': - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@jridgewell/source-map@0.3.5': - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@jsdevtools/ono@7.1.3': - resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} - - '@leichtgewicht/ip-codec@2.0.5': - resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} - - '@libp2p/interface-connection@4.0.0': - resolution: {integrity: sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@libp2p/interface-keychain@2.0.5': - resolution: {integrity: sha512-mb7QNgn9fIvC7CaJCi06GJ+a6DN6RVT9TmEi0NmedZGATeCArPeWWG7r7IfxNVXb9cVOOE1RzV1swK0ZxEJF9Q==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@libp2p/interface-peer-id@2.0.2': - resolution: {integrity: sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@libp2p/interface-peer-info@1.0.10': - resolution: {integrity: sha512-HQlo8NwQjMyamCHJrnILEZz+YwEOXCB2sIIw3slIrhVUYeYlTaia1R6d9umaAeLHa255Zmdm4qGH8rJLRqhCcg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@libp2p/interface-pubsub@3.0.7': - resolution: {integrity: sha512-+c74EVUBTfw2sx1GE/z/IjsYO6dhur+ukF0knAppeZsRQ1Kgg6K5R3eECtT28fC6dBWLjFpAvW/7QGfiDAL4RA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@libp2p/interface@1.3.0': - resolution: {integrity: sha512-K72Km0Co1Z+pXpggWuoAvUUbvwZYvjCcywrHj2Ym3jt2anTE3hzL4rlZrrkzA0YhNTRFRiZ04dnu6WMXT5/4+A==} - - '@libp2p/interfaces@3.3.2': - resolution: {integrity: sha512-p/M7plbrxLzuQchvNwww1Was7ZeGE2NaOFulMaZBYIihU8z3fhaV+a033OqnC/0NTX/yhfdNOG7znhYq3XoR/g==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@libp2p/logger@2.1.1': - resolution: {integrity: sha512-2UbzDPctg3cPupF6jrv6abQnAUTrbLybNOj0rmmrdGm1cN2HJ1o/hBu0sXuq4KF9P1h/eVRn1HIRbVIEKnEJrA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@libp2p/peer-id@2.0.4': - resolution: {integrity: sha512-gcOsN8Fbhj6izIK+ejiWsqiqKeJ2yWPapi/m55VjOvDa52/ptQzZszxQP8jUk93u36de92ATFXDfZR/Bi6eeUQ==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@lit-labs/ssr-dom-shim@1.2.0': - resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==} - - '@lit/reactive-element@1.6.3': - resolution: {integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==} - - '@lit/reactive-element@2.0.4': - resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} - - '@manypkg/find-root@1.1.0': - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} - - '@manypkg/get-packages@1.1.3': - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - - '@mdx-js/mdx@3.0.1': - resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} - - '@mdx-js/react@3.0.1': - resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} - peerDependencies: - '@types/react': '>=16' - react: '>=16' - - '@metamask/eth-json-rpc-provider@1.0.1': - resolution: {integrity: sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==} - engines: {node: '>=14.0.0'} - - '@metamask/eth-sig-util@4.0.1': - resolution: {integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==} - engines: {node: '>=12.0.0'} - - '@metamask/json-rpc-engine@7.3.2': - resolution: {integrity: sha512-dVjBPlni4CoiBpESVqrxh6k4OR14w6GRXKSSXHFuITjuhALE42gNCkXTpL4cjNeOBUgTba3eGe5EI8cyc2QLRg==} - engines: {node: '>=16.0.0'} - - '@metamask/json-rpc-engine@8.0.2': - resolution: {integrity: sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==} - engines: {node: '>=16.0.0'} - - '@metamask/json-rpc-middleware-stream@6.0.2': - resolution: {integrity: sha512-jtyx3PRfc1kqoLpYveIVQNwsxYKefc64/LCl9h9Da1m3nUKEvypbYuXSIwi237qvOjKmNHQKsDOZg6f4uBf62Q==} - engines: {node: '>=16.0.0'} - - '@metamask/json-rpc-middleware-stream@7.0.2': - resolution: {integrity: sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==} - engines: {node: '>=16.0.0'} - - '@metamask/object-multiplex@1.3.0': - resolution: {integrity: sha512-czcQeVYdSNtabd+NcYQnrM69MciiJyd1qvKH8WM2Id3C0ZiUUX5Xa/MK+/VUk633DBhVOwdNzAKIQ33lGyA+eQ==} - engines: {node: '>=12.0.0'} - - '@metamask/object-multiplex@2.0.0': - resolution: {integrity: sha512-+ItrieVZie3j2LfYE0QkdW3dsEMfMEp419IGx1zyeLqjRZ14iQUPRO0H6CGgfAAoC0x6k2PfCAGRwJUA9BMrqA==} - engines: {node: ^16.20 || ^18.16 || >=20} - - '@metamask/onboarding@1.0.1': - resolution: {integrity: sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==} - - '@metamask/post-message-stream@6.2.0': - resolution: {integrity: sha512-WunZ0bruClF862mvbKQGETn5SM0XKGmocPMQR1Ew6sYix9/FDzeoZnoI8RkXk01E+70FCdxhTE/r8kk5SFOuTw==} - engines: {node: '>=14.0.0'} - - '@metamask/providers@10.2.1': - resolution: {integrity: sha512-p2TXw2a1Nb8czntDGfeIYQnk4LLVbd5vlcb3GY//lylYlKdSqp+uUTegCvxiFblRDOT68jsY8Ib1VEEzVUOolA==} - engines: {node: '>=14.0.0'} - - '@metamask/providers@15.0.0': - resolution: {integrity: sha512-FXvL1NQNl6I7fMOJTfQYcBlBZ33vSlm6w80cMpmn8sJh0Lb7wcBpe02UwBsNlARnI+Qsr26XeDs6WHUHQh8CuA==} - engines: {node: ^18.18 || >=20} - - '@metamask/providers@16.1.0': - resolution: {integrity: sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==} - engines: {node: ^18.18 || >=20} - - '@metamask/rpc-errors@6.2.1': - resolution: {integrity: sha512-VTgWkjWLzb0nupkFl1duQi9Mk8TGT9rsdnQg6DeRrYEFxtFOh0IF8nAwxM/4GWqDl6uIB06lqUBgUrAVWl62Bw==} - engines: {node: '>=16.0.0'} - - '@metamask/safe-event-emitter@2.0.0': - resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} - - '@metamask/safe-event-emitter@3.1.1': - resolution: {integrity: sha512-ihb3B0T/wJm1eUuArYP4lCTSEoZsClHhuWyfo/kMX3m/odpqNcPfsz5O2A3NT7dXCAgWPGDQGPqygCpgeniKMw==} - engines: {node: '>=12.0.0'} - - '@metamask/sdk-communication-layer@0.14.3': - resolution: {integrity: sha512-yjSbj8y7fFbQXv2HBzUX6D9C8BimkCYP6BDV7hdw53W8b/GlYCtXVxUFajQ9tuO1xPTRjR/xt/dkdr2aCi6WGw==} - - '@metamask/sdk-communication-layer@0.20.2': - resolution: {integrity: sha512-TN+whYbCClFSkx52Ild1RcjoRyz8YZgwNvZeooIcZIvCfBM6U9W5273KGiY7WLc/oO4KKmFk17d7vMO4gNvhhw==} - peerDependencies: - cross-fetch: ^3.1.5 - eciesjs: ^0.3.16 - eventemitter2: ^6.4.7 - readable-stream: ^3.6.2 - socket.io-client: ^4.5.1 - - '@metamask/sdk-communication-layer@0.28.2': - resolution: {integrity: sha512-kGx6qgP482DecPILnIS38bgxIjNransR3/Jh5Lfg9BXJLaXpq/MEGrjHGnJHAqCyfRymnd5cgexHtXJvQtRWQA==} - peerDependencies: - cross-fetch: ^4.0.0 - eciesjs: ^0.3.16 - eventemitter2: ^6.4.7 - readable-stream: ^3.6.2 - socket.io-client: ^4.5.1 - - '@metamask/sdk-install-modal-web@0.14.1': - resolution: {integrity: sha512-emT8HKbnfVwGhPxyUfMja6DWzvtJvDEBQxqCVx93H0HsyrrOzOC43iGCAosslw6o5h7gOfRKLqWmK8V7jQAS2Q==} - - '@metamask/sdk-install-modal-web@0.20.2': - resolution: {integrity: sha512-0QiaZhV15AGdN1zU2jfTI32eC3YkwEpzDfR9+oiZ9bd2G72c6lYBhTsmDGUd01aP6A+bqJR5PjI8Wh2AWtoLeA==} - peerDependencies: - i18next: 22.5.1 - react: ^18.2.0 - react-dom: ^18.2.0 - react-i18next: ^13.2.2 - react-native: '*' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - react-native: - optional: true - - '@metamask/sdk-install-modal-web@0.28.1': - resolution: {integrity: sha512-mHkIjWTpYQMPDMtLEEtTVXhae4pEjy7jDBfV7497L0U3VCPQrBl/giZBwA6AgKEX1emYcM2d1WRHWR9N4YhyJA==} - peerDependencies: - i18next: 23.11.5 - react: ^18.2.0 - react-dom: ^18.2.0 - react-native: '*' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - react-native: - optional: true - - '@metamask/sdk@0.14.3': - resolution: {integrity: sha512-BYLs//nY2wioVSih78gOQI6sLIYY3vWkwVqXGYUgkBV+bi49bv+9S0m+hZ2cwiRaxfMYtKs0KvhAQ8weiYwDrg==} - peerDependencies: - react: ^18.2.0 - react-native: '*' - peerDependenciesMeta: - react: - optional: true - react-native: - optional: true - - '@metamask/sdk@0.20.3': - resolution: {integrity: sha512-HZ9NwA+LxiXzuy0YWbWsuD4xejQtp85bhcCAf8UgpA/0dOyF3RS4dKDdBBXSyRgk3RWPjeJgHxioaH4CmBmiRA==} - peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@metamask/sdk@0.28.2': - resolution: {integrity: sha512-pylk1uJAZYyO3HcNW/TNfII3+T+Yx6qrFYaC/HmuSIuRJeXsdZuExSbNQ236iQocIy3L7JjI+GQKbv3TbN+HQQ==} - peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@metamask/utils@5.0.2': - resolution: {integrity: sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==} - engines: {node: '>=14.0.0'} - - '@metamask/utils@8.3.0': - resolution: {integrity: sha512-WFVcMPEkKKRCJ8DDkZUTVbLlpwgRn98F4VM/WzN89HM8PmHMnCyk/oG0AmK/seOxtik7uC7Bbi2YBC5Z5XB2zw==} - engines: {node: '>=16.0.0'} - - '@moralisweb3/api-utils@2.26.2': - resolution: {integrity: sha512-2HQdwRzil5AyIZID+YFk3XX6QMkdOVClMgrDtsEvZgKLUa5OXSYasSUymfSf6q8FsKJGkHK9kuqoS2dZM4aBvA==} - - '@moralisweb3/aptos-api@2.26.2': - resolution: {integrity: sha512-3VXT4Q9SGE58UnX6UTrU6BExeBxkvDKfVjVd8AR6KlMcK5C6EaON3dlSfdyAqKAHv5rySXnXxZyG7EHURIzW2g==} - - '@moralisweb3/auth@2.26.2': - resolution: {integrity: sha512-29qr2jA+jsFup42vghZilmozuwV9/PCW88Or4v9k/XczFX80563ESpjJMXjgSZL3J7XspMt6YzpdqztDpvmyjA==} - - '@moralisweb3/common-aptos-utils@2.26.2': - resolution: {integrity: sha512-+8m/953/0zmio1cHREQAvVouoirPMFWr//gy34jYMKJevwkYcDG0IhzHQ7cXEHCMNRPUYtV3OD7JodL6zMRLeQ==} - - '@moralisweb3/common-auth-utils@2.26.2': - resolution: {integrity: sha512-Cz526qRzMBBb5ZH/2o+J6p+bXVEL4gh5VaqDVRXODdCu81VhT+xdm2f2lNGZ4lhaFXoxYXAmUD446KM7hP+ZUw==} - - '@moralisweb3/common-core@2.26.2': - resolution: {integrity: sha512-gvisSn6kpvZGjzC5HwYeYlnlQk9wM3PMRUamtH5H1iCouQz6M8WhbZ3a9O8ldcjX8SLnxdz8w0Z479xTFIVoqQ==} - - '@moralisweb3/common-evm-utils@2.26.2': - resolution: {integrity: sha512-ZqzCPPTvurXtNi+DuyP6JsAzbxp4KkrsaMQzAvBPGEkIjIGxswDt47NVn6vzKLWqYk/C+IK5t/hBVBla9BfAnw==} - - '@moralisweb3/common-sol-utils@2.26.2': - resolution: {integrity: sha512-r8oxkTQfduIUNZ+/scjed6cphv8c4IPtdgarUrzz/cS2y/VcaXjDweLQsyFfMIOk4Fa0DTXaabzd8to5XNz2FQ==} - - '@moralisweb3/common-streams-utils@2.26.2': - resolution: {integrity: sha512-bhNgr0G3daG3n0qaB4lQ0/qA63kG2Ich3Zju3dLH8p9KdLeMvFAQIZzlx1aT0Ij7laaoqfnv2Pb0GQ1DTkvimQ==} - - '@moralisweb3/evm-api@2.26.2': - resolution: {integrity: sha512-ageSyclGqHh/X6Wr1X1OHiCTBJcvhF1af4DvTe8xF1xnLqYtPk/TY3o2DmW//0bR6lQdebySbc+UEufld5uUpg==} - - '@moralisweb3/sol-api@2.26.2': - resolution: {integrity: sha512-3fLnMGeuD/4EV6g7Qw6xtkyRh7RXxcIz1eTNZsph1NHQtXMTi9oQgSitTwmWcAHNzKQBXn4zoz5fx2yrIBWPIw==} - - '@moralisweb3/streams-typings@1.0.7': - resolution: {integrity: sha512-ShbVqil0KLOTyTjO6z9JewPcVVE3S6kzkQFnW2flGBRsGdKucpkUdOx1HijOLoaikz/9gH92n+lzTvRFIj0AoA==} - - '@moralisweb3/streams@2.26.2': - resolution: {integrity: sha512-PZ8aVE7S/n5MeOTLTxYff28UfNd3qv2AmE31saRPdGMnUTj7UgSiwqGQNt3ZYS0Gh1RjzvshELn9dRll8VrzYg==} - - '@motionone/animation@10.16.3': - resolution: {integrity: sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g==} - - '@motionone/dom@10.16.4': - resolution: {integrity: sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA==} - - '@motionone/easing@10.16.3': - resolution: {integrity: sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w==} - - '@motionone/generators@10.16.4': - resolution: {integrity: sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg==} - - '@motionone/svelte@10.16.4': - resolution: {integrity: sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA==} - - '@motionone/types@10.16.3': - resolution: {integrity: sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg==} - - '@motionone/utils@10.16.3': - resolution: {integrity: sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA==} - - '@motionone/vue@10.16.4': - resolution: {integrity: sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==} - deprecated: Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion - - '@multiformats/dns@1.0.6': - resolution: {integrity: sha512-nt/5UqjMPtyvkG9BQYdJ4GfLK3nMqGpFZOzf4hAmIa0sJh2LlS9YKXZ4FgwBDsaHvzZqR/rUFIywIc7pkHNNuw==} - - '@multiformats/multiaddr-to-uri@9.0.8': - resolution: {integrity: sha512-4eiN5iEiQfy2A98BxekUfW410L/ivg0sgjYSgSqmklnrBhK+QyMz4yqgfkub8xDTXOc7O5jp4+LVyM3ZqMeWNw==} - - '@multiformats/multiaddr@11.6.1': - resolution: {integrity: sha512-doST0+aB7/3dGK9+U5y3mtF3jq85KGbke1QiH0KE1F5mGQ9y56mFebTeu2D9FNOm+OT6UHb8Ss8vbSnpGjeLNw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - '@multiformats/multiaddr@12.2.1': - resolution: {integrity: sha512-UwjoArBbv64FlaetV4DDwh+PUMfzXUBltxQwdh+uTYnGFzVa8ZfJsn1vt1RJlJ6+Xtrm3RMekF/B+K338i2L5Q==} - - '@noble/curves@1.2.0': - resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} - - '@noble/curves@1.3.0': - resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==} - - '@noble/curves@1.4.0': - resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==} - - '@noble/hashes@1.2.0': - resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} - - '@noble/hashes@1.3.2': - resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} - engines: {node: '>= 16'} - - '@noble/hashes@1.3.3': - resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} - engines: {node: '>= 16'} - - '@noble/hashes@1.4.0': - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} - engines: {node: '>= 16'} - - '@noble/hashes@1.5.0': - resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} - engines: {node: ^14.21.3 || >=16} - - '@noble/secp256k1@1.7.1': - resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@nomicfoundation/edr-darwin-arm64@0.6.3': - resolution: {integrity: sha512-hqtI7tYDqKG5PDmZ//Z65EH5cgH8VL/SAAu50rpHP7WAVfJWkOCcYbecywwF6nhHdonJbRTDGAeG1/+VOy6zew==} - engines: {node: '>= 18'} - - '@nomicfoundation/edr-darwin-x64@0.6.3': - resolution: {integrity: sha512-4fGi79/lyOlRUORhCYsYb3sWqRHuHT7qqzyZfZuNOn8llaxmT1k36xNmvpyg37R8SzjnhT/DzoukSJrs23Ip9Q==} - engines: {node: '>= 18'} - - '@nomicfoundation/edr-linux-arm64-gnu@0.6.3': - resolution: {integrity: sha512-yFFTvGFMhfAvQ1Z2itUh1jpoUA+mVROyVELcaxjIq8fyg602lQmbS+NXkhQ+oaeDgJ+06mSENrHBg4fcfRf9cw==} - engines: {node: '>= 18'} - - '@nomicfoundation/edr-linux-arm64-musl@0.6.3': - resolution: {integrity: sha512-pOKmd0Fa3a6BHg5qbjbl/jMRELVi9oazbfiuU7Bvgn/dpTK+ID3jwT0SXiuC2zxjmPByWgXL6G9XRf5BPAM2rQ==} - engines: {node: '>= 18'} - - '@nomicfoundation/edr-linux-x64-gnu@0.6.3': - resolution: {integrity: sha512-3AUferhkLIXtLV63w5GjpHttzdxZ36i656XMy+pkBZbbiqnzIVeKWg6DJv1A94fQY16gB4gqj9CLq4CWvbNN6w==} - engines: {node: '>= 18'} - - '@nomicfoundation/edr-linux-x64-musl@0.6.3': - resolution: {integrity: sha512-fr6bD872WIBXe9YnTDi0CzYepMcYRgSnkVqn0yK4wRnIvKrloWhxXNVY45GVIl51aNZguBnvoA4WEt6HIazs3A==} - engines: {node: '>= 18'} - - '@nomicfoundation/edr-win32-x64-msvc@0.6.3': - resolution: {integrity: sha512-sn34MvN1ajw2Oq1+Drpxej78Z0HfIzI4p4WlolupAV9dOZKzp2JAIQeLVfZpjIFbF3zuyxLPP4dUBrQoFPEqhA==} - engines: {node: '>= 18'} - - '@nomicfoundation/edr@0.6.3': - resolution: {integrity: sha512-hThe5ORR75WFYTXKL0K2AyLDxkTMrG+VQ1yL9BhQYsuh3OIH+3yNDxMz2LjfvrpOrMmJ4kk5NKdFewpqDojjXQ==} - engines: {node: '>= 18'} - - '@nomicfoundation/ethereumjs-common@4.0.4': - resolution: {integrity: sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==} - - '@nomicfoundation/ethereumjs-rlp@5.0.4': - resolution: {integrity: sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==} - engines: {node: '>=18'} - hasBin: true - - '@nomicfoundation/ethereumjs-tx@5.0.4': - resolution: {integrity: sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==} - engines: {node: '>=18'} - peerDependencies: - c-kzg: ^2.1.2 - peerDependenciesMeta: - c-kzg: - optional: true - - '@nomicfoundation/ethereumjs-util@9.0.4': - resolution: {integrity: sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==} - engines: {node: '>=18'} - peerDependencies: - c-kzg: ^2.1.2 - peerDependenciesMeta: - c-kzg: - optional: true - - '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': - resolution: {integrity: sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==} - engines: {node: '>= 12'} - - '@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2': - resolution: {integrity: sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==} - engines: {node: '>= 12'} - - '@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2': - resolution: {integrity: sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==} - engines: {node: '>= 12'} - - '@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2': - resolution: {integrity: sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==} - engines: {node: '>= 12'} - - '@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2': - resolution: {integrity: sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==} - engines: {node: '>= 12'} - - '@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2': - resolution: {integrity: sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==} - engines: {node: '>= 12'} - - '@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2': - resolution: {integrity: sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==} - engines: {node: '>= 12'} - - '@nomicfoundation/solidity-analyzer@0.1.2': - resolution: {integrity: sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==} - engines: {node: '>= 12'} - - '@openzeppelin/contracts-upgradeable@4.9.6': - resolution: {integrity: sha512-m4iHazOsOCv1DgM7eD7GupTJ+NFVujRZt1wzddDPSVGpWdKq1SKkla5htKG7+IS4d2XOCtzkUNwRZ7Vq5aEUMA==} - - '@openzeppelin/contracts-upgradeable@5.0.2': - resolution: {integrity: sha512-0MmkHSHiW2NRFiT9/r5Lu4eJq5UJ4/tzlOgYXNAIj/ONkQTVnz22pLxDvp4C4uZ9he7ZFvGn3Driptn1/iU7tQ==} - peerDependencies: - '@openzeppelin/contracts': 5.0.2 - - '@openzeppelin/contracts@4.9.6': - resolution: {integrity: sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==} - - '@openzeppelin/contracts@5.0.2': - resolution: {integrity: sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==} - - '@openzeppelin/defender-as-code@3.0.1': - resolution: {integrity: sha512-AeGMBk81Bak6B4u3pXjO1aOrIbJqrE6gZJqTJiBRGzKRGWxqQycriojZ3/lns/DcrNElA2BBHD0ONESrpMbZAg==} - - '@openzeppelin/defender-sdk-account-client@1.14.4': - resolution: {integrity: sha512-SxV4oTofO/xf1IcNJ5Dcc6XdXrxmu2jNPIeOx6GhdwVmO2LDVgi/9pAwXNlW1ihZ4wkJf/BSz3JsRJCgrwkadQ==} - - '@openzeppelin/defender-sdk-action-client@1.14.4': - resolution: {integrity: sha512-YoRW3ZST1YCGkBIPtzJNPR0ajK9H0cxhT+evbRX9hgiUNJTgTDJeKGX+qOKOMjKOPXikiYUc2TpmKwP1I2tP5A==} - hasBin: true - - '@openzeppelin/defender-sdk-base-client@1.14.4': - resolution: {integrity: sha512-tOePVQLKpqfGQ1GMzHvSBNd2psPYd86LDNpvdl5gjD0Y2kW/zNh5qBXy29RraGtk/qc8zs9hzS5pAOh0vhGkGQ==} - - '@openzeppelin/defender-sdk-deploy-client@1.14.4': - resolution: {integrity: sha512-+diSoz1zid37LMsY2RDxI+uAsYx9Eryg8Vz+yfvuyd56fXrzjQEln7BBtYQw+2zp9yvyAByOL5XSQdrQga9OBQ==} - - '@openzeppelin/defender-sdk-key-value-store-client@1.14.4': - resolution: {integrity: sha512-8InEiGeUpahKuWTgFWUyS5DS9HkXeHWMW+yxolGwxCy+OIGEPfxg/oMBXC2UzGn3BfIvWic/CLspFzuWIlarEQ==} - - '@openzeppelin/defender-sdk-monitor-client@1.14.4': - resolution: {integrity: sha512-PSesKNicY37LiHD2EVsyZXQrHRZsPYaVhUuMdqfNoJZexPZfnhv7c2A481tt+hTwAccJguQF69NLqylpdgtpFQ==} - - '@openzeppelin/defender-sdk-network-client@1.14.4': - resolution: {integrity: sha512-OS0H5b0vgYacJcwkvUFJUaRuyUaXhIRl916W5xLvGia5H6i/qn3dP8MZ7oLcPwKc8jB+ucRytO4H/AHsea0aVA==} - - '@openzeppelin/defender-sdk-notification-channel-client@1.14.4': - resolution: {integrity: sha512-xCMUe4pseRA+tQMrd6PDoZ4aToDi0LPrVAlBXFDFxCZ6/TzcsVA/PgfM4Hy6R+9vF+S5gMFGuJkCpDtlcYfo5A==} - - '@openzeppelin/defender-sdk-proposal-client@1.14.4': - resolution: {integrity: sha512-xVI5A6wJb/XfqVAEkSsINrgGkNznw0eZL7CnzX1OUnZ4irrlaD4HpG/CkFgVWLx8tRIMFlUtb3as3KMc/sO8eg==} - - '@openzeppelin/defender-sdk-relay-client@1.14.4': - resolution: {integrity: sha512-L+vPUeeg36muOy1Oh8wqNEJ8qXXQrFytYZerPS9N/Vf7TQBZoKUkuVq69dw7+XYq/ouqbppvAvUtV9SnyDkYpQ==} - - '@openzeppelin/defender-sdk-relay-signer-client@1.14.4': - resolution: {integrity: sha512-zjVhor/LEHYG6Gf+GEFTrwsuGZjVbzqTqQew4X622FY38P13PpcEIdXDgbokqdlX8zpECcggD2kmTTDgVWRqjA==} - peerDependencies: - web3: ^1.10.0 - web3-core: ^1.10.4 - web3-core-helpers: ^1.10.0 - web3-utils: ^1.10.0 - - '@openzeppelin/defender-sdk@1.14.4': - resolution: {integrity: sha512-QFXvqeLzfFxyRq5bw+7h2pq65pztNKBUy0vtizdSeQMA6MZ5wqDyTu/8bziYdQH+BmKzMqYBgErJAmic2XCzZQ==} - - '@openzeppelin/merkle-tree@1.0.6': - resolution: {integrity: sha512-cGWOb2WBWbJhqvupzxjnKAwGLxxAEYPg51sk76yZ5nVe5D03mw7Vx5yo8llaIEqYhP5O39M8QlrNWclgLfKVrA==} - - '@oslojs/encoding@0.4.1': - resolution: {integrity: sha512-hkjo6MuIK/kQR5CrGNdAPZhS01ZCXuWDRJ187zh6qqF2+yMHZpD9fAYpX8q2bOO6Ryhl3XpCT6kUX76N8hhm4Q==} - - '@pagefind/darwin-arm64@1.1.0': - resolution: {integrity: sha512-SLsXNLtSilGZjvqis8sX42fBWsWAVkcDh1oerxwqbac84HbiwxpxOC2jm8hRwcR0Z55HPZPWO77XeRix/8GwTg==} - cpu: [arm64] - os: [darwin] - - '@pagefind/darwin-x64@1.1.0': - resolution: {integrity: sha512-QjQSE/L5oS1C8N8GdljGaWtjCBMgMtfrPAoiCmINTu9Y9dp0ggAyXvF8K7Qg3VyIMYJ6v8vg2PN7Z3b+AaAqUA==} - cpu: [x64] - os: [darwin] - - '@pagefind/default-ui@1.1.0': - resolution: {integrity: sha512-+XiAJAK++C64nQcD7s3Prdmd5S92lT05fwjOxm0L1jj80jbL+tmvcqkkFnPpoqhnicIPgcAX/Y5W0HRZnBt35w==} - - '@pagefind/linux-arm64@1.1.0': - resolution: {integrity: sha512-8zjYCa2BtNEL7KnXtysPtBELCyv5DSQ4yHeK/nsEq6w4ToAMTBl0K06khqxdSGgjMSwwrxvLzq3so0LC5Q14dA==} - cpu: [arm64] - os: [linux] - - '@pagefind/linux-x64@1.1.0': - resolution: {integrity: sha512-4lsg6VB7A6PWTwaP8oSmXV4O9H0IHX7AlwTDcfyT+YJo/sPXOVjqycD5cdBgqNLfUk8B9bkWcTDCRmJbHrKeCw==} - cpu: [x64] - os: [linux] - - '@pagefind/windows-x64@1.1.0': - resolution: {integrity: sha512-OboCM76BcMKT9IoSfZuFhiqMRgTde8x4qDDvKulFmycgiJrlL5WnIqBHJLQxZq+o2KyZpoHF97iwsGAm8c32sQ==} - cpu: [x64] - os: [win32] - - '@parcel/watcher-android-arm64@2.4.0': - resolution: {integrity: sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - - '@parcel/watcher-darwin-arm64@2.4.0': - resolution: {integrity: sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - - '@parcel/watcher-darwin-x64@2.4.0': - resolution: {integrity: sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - - '@parcel/watcher-freebsd-x64@2.4.0': - resolution: {integrity: sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - - '@parcel/watcher-linux-arm-glibc@2.4.0': - resolution: {integrity: sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - - '@parcel/watcher-linux-arm64-glibc@2.4.0': - resolution: {integrity: sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-arm64-musl@2.4.0': - resolution: {integrity: sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - - '@parcel/watcher-linux-x64-glibc@2.4.0': - resolution: {integrity: sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-linux-x64-musl@2.4.0': - resolution: {integrity: sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - - '@parcel/watcher-wasm@2.4.0': - resolution: {integrity: sha512-MNgQ4WCbBybqQ97KwR/hqJGYTg3+s8qHpgIyFWB2qJOBvoJWbXuJGmm4ZkPLq2bMaANqCZqrXwmKYagZTkMKZA==} - engines: {node: '>= 10.0.0'} - bundledDependencies: - - napi-wasm - - '@parcel/watcher-win32-arm64@2.4.0': - resolution: {integrity: sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - - '@parcel/watcher-win32-ia32@2.4.0': - resolution: {integrity: sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA==} - engines: {node: '>= 10.0.0'} - cpu: [ia32] - os: [win32] - - '@parcel/watcher-win32-x64@2.4.0': - resolution: {integrity: sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - - '@parcel/watcher@2.4.0': - resolution: {integrity: sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg==} - engines: {node: '>= 10.0.0'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pkgr/utils@2.4.2': - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - - '@playwright/test@1.43.1': - resolution: {integrity: sha512-HgtQzFgNEEo4TE22K/X7sYTYNqEMMTZmFS8kTq6m8hXj+m1D8TgwgIbumHddJa9h4yl4GkKb8/bgAl2+g7eDgA==} - engines: {node: '>=16'} - hasBin: true - - '@pnpm/config.env-replace@1.1.0': - resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} - engines: {node: '>=12.22.0'} - - '@pnpm/network.ca-file@1.0.2': - resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} - engines: {node: '>=12.22.0'} - - '@pnpm/npm-conf@2.2.2': - resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} - engines: {node: '>=12'} - - '@polka/url@1.0.0-next.24': - resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} - - '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - - '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - - '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - - '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} - - '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} - - '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - - '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} - - '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} - - '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - - '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - - '@react-native-async-storage/async-storage@1.22.0': - resolution: {integrity: sha512-b5KD010iiZnot86RbAaHpLuHwmPW2qA3SSN/OSZhd1kBoINEQEVBuv+uFtcaTxAhX27bT0wd13GOb2IOSDUXSA==} - peerDependencies: - react-native: ^0.0.0-0 || >=0.60 <1.0 - - '@react-native-community/cli-clean@12.3.2': - resolution: {integrity: sha512-90k2hCX0ddSFPT7EN7h5SZj0XZPXP0+y/++v262hssoey3nhurwF57NGWN0XAR0o9BSW7+mBfeInfabzDraO6A==} - - '@react-native-community/cli-config@12.3.2': - resolution: {integrity: sha512-UUCzDjQgvAVL/57rL7eOuFUhd+d+6qfM7V8uOegQFeFEmSmvUUDLYoXpBa5vAK9JgQtSqMBJ1Shmwao+/oElxQ==} - - '@react-native-community/cli-debugger-ui@12.3.2': - resolution: {integrity: sha512-nSWQUL+51J682DlfcC1bjkUbQbGvHCC25jpqTwHIjmmVjYCX1uHuhPSqQKgPNdvtfOkrkACxczd7kVMmetxY2Q==} - - '@react-native-community/cli-doctor@12.3.2': - resolution: {integrity: sha512-GrAabdY4qtBX49knHFvEAdLtCjkmndjTeqhYO6BhsbAeKOtspcLT/0WRgdLIaKODRa61ADNB3K5Zm4dU0QrZOg==} - - '@react-native-community/cli-hermes@12.3.2': - resolution: {integrity: sha512-SL6F9O8ghp4ESBFH2YAPLtIN39jdnvGBKnK4FGKpDCjtB3DnUmDsGFlH46S+GGt5M6VzfG2eeKEOKf3pZ6jUzA==} - - '@react-native-community/cli-platform-android@12.3.2': - resolution: {integrity: sha512-MZ5nO8yi/N+Fj2i9BJcJ9C/ez+9/Ir7lQt49DWRo9YDmzye66mYLr/P2l/qxsixllbbDi7BXrlLpxaEhMrDopg==} - - '@react-native-community/cli-platform-ios@12.3.2': - resolution: {integrity: sha512-OcWEAbkev1IL6SUiQnM6DQdsvfsKZhRZtoBNSj9MfdmwotVZSOEZJ+IjZ1FR9ChvMWayO9ns/o8LgoQxr1ZXeg==} - - '@react-native-community/cli-plugin-metro@12.3.2': - resolution: {integrity: sha512-FpFBwu+d2E7KRhYPTkKvQsWb2/JKsJv+t1tcqgQkn+oByhp+qGyXBobFB8/R3yYvRRDCSDhS+atWTJzk9TjM8g==} - - '@react-native-community/cli-server-api@12.3.2': - resolution: {integrity: sha512-iwa7EO9XFA/OjI5pPLLpI/6mFVqv8L73kNck3CNOJIUCCveGXBKK0VMyOkXaf/BYnihgQrXh+x5cxbDbggr7+Q==} - - '@react-native-community/cli-tools@12.3.2': - resolution: {integrity: sha512-nDH7vuEicHI2TI0jac/DjT3fr977iWXRdgVAqPZFFczlbs7A8GQvEdGnZ1G8dqRUmg+kptw0e4hwczAOG89JzQ==} - - '@react-native-community/cli-types@12.3.2': - resolution: {integrity: sha512-9D0UEFqLW8JmS16mjHJxUJWX8E+zJddrHILSH8AJHZ0NNHv4u2DXKdb0wFLMobFxGNxPT+VSOjc60fGvXzWHog==} - - '@react-native-community/cli@12.3.2': - resolution: {integrity: sha512-WgoUWwLDcf/G1Su2COUUVs3RzAwnV/vUTdISSpAUGgSc57mPabaAoUctKTnfYEhCnE3j02k3VtaVPwCAFRO3TQ==} - engines: {node: '>=18'} - hasBin: true - - '@react-native/assets-registry@0.73.1': - resolution: {integrity: sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==} - engines: {node: '>=18'} - - '@react-native/babel-plugin-codegen@0.73.4': - resolution: {integrity: sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ==} - engines: {node: '>=18'} - - '@react-native/babel-preset@0.73.21': - resolution: {integrity: sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA==} - engines: {node: '>=18'} - peerDependencies: - '@babel/core': '*' - - '@react-native/codegen@0.73.3': - resolution: {integrity: sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg==} - engines: {node: '>=18'} - peerDependencies: - '@babel/preset-env': ^7.1.6 - - '@react-native/community-cli-plugin@0.73.16': - resolution: {integrity: sha512-eNH3v3qJJF6f0n/Dck90qfC9gVOR4coAXMTdYECO33GfgjTi+73vf/SBqlXw9HICH/RNZYGPM3wca4FRF7TYeQ==} - engines: {node: '>=18'} - - '@react-native/debugger-frontend@0.73.3': - resolution: {integrity: sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw==} - engines: {node: '>=18'} - - '@react-native/dev-middleware@0.73.7': - resolution: {integrity: sha512-BZXpn+qKp/dNdr4+TkZxXDttfx8YobDh8MFHsMk9usouLm22pKgFIPkGBV0X8Do4LBkFNPGtrnsKkWk/yuUXKg==} - engines: {node: '>=18'} - - '@react-native/gradle-plugin@0.73.4': - resolution: {integrity: sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==} - engines: {node: '>=18'} - - '@react-native/js-polyfills@0.73.1': - resolution: {integrity: sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==} - engines: {node: '>=18'} - - '@react-native/metro-babel-transformer@0.73.15': - resolution: {integrity: sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw==} - engines: {node: '>=18'} - peerDependencies: - '@babel/core': '*' - - '@react-native/normalize-colors@0.73.2': - resolution: {integrity: sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w==} - - '@react-native/virtualized-lists@0.73.4': - resolution: {integrity: sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==} - engines: {node: '>=18'} - peerDependencies: - react-native: '*' - - '@readme/better-ajv-errors@1.6.0': - resolution: {integrity: sha512-9gO9rld84Jgu13kcbKRU+WHseNhaVt76wYMeRDGsUGYxwJtI3RmEJ9LY9dZCYQGI8eUZLuxb5qDja0nqklpFjQ==} - engines: {node: '>=14'} - peerDependencies: - ajv: 4.11.8 - 8 - - '@readme/json-schema-ref-parser@1.2.0': - resolution: {integrity: sha512-Bt3QVovFSua4QmHa65EHUmh2xS0XJ3rgTEUPH998f4OW4VVJke3BuS16f+kM0ZLOGdvIrzrPRqwihuv5BAjtrA==} - - '@readme/openapi-parser@2.5.0': - resolution: {integrity: sha512-IbymbOqRuUzoIgxfAAR7XJt2FWl6n2yqN09fF5adacGm7W03siA3bj1Emql0X9D2T+RpBYz3x9zDsMhuoMP62A==} - engines: {node: '>=14'} - peerDependencies: - openapi-types: '>=7' - - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/rollup-android-arm-eabi@4.12.0': - resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm-eabi@4.17.2': - resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm-eabi@4.21.3': - resolution: {integrity: sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.12.0': - resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-android-arm64@4.17.2': - resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-android-arm64@4.21.3': - resolution: {integrity: sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==} - cpu: [arm64] - os: [android] - - '@rollup/rollup-darwin-arm64@4.12.0': - resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-arm64@4.17.2': - resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-arm64@4.21.3': - resolution: {integrity: sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==} - cpu: [arm64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.12.0': - resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.17.2': - resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-darwin-x64@4.21.3': - resolution: {integrity: sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==} - cpu: [x64] - os: [darwin] - - '@rollup/rollup-linux-arm-gnueabihf@4.12.0': - resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-gnueabihf@4.17.2': - resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-gnueabihf@4.21.3': - resolution: {integrity: sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.17.2': - resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm-musleabihf@4.21.3': - resolution: {integrity: sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==} - cpu: [arm] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.12.0': - resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.17.2': - resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-gnu@4.21.3': - resolution: {integrity: sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.12.0': - resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.17.2': - resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-arm64-musl@4.21.3': - resolution: {integrity: sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==} - cpu: [arm64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': - resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': - resolution: {integrity: sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==} - cpu: [ppc64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.12.0': - resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.17.2': - resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-riscv64-gnu@4.21.3': - resolution: {integrity: sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==} - cpu: [riscv64] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.17.2': - resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-s390x-gnu@4.21.3': - resolution: {integrity: sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==} - cpu: [s390x] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.12.0': - resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.17.2': - resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-gnu@4.21.3': - resolution: {integrity: sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.12.0': - resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.17.2': - resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-linux-x64-musl@4.21.3': - resolution: {integrity: sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==} - cpu: [x64] - os: [linux] - - '@rollup/rollup-win32-arm64-msvc@4.12.0': - resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-arm64-msvc@4.17.2': - resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-arm64-msvc@4.21.3': - resolution: {integrity: sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==} - cpu: [arm64] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.12.0': - resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.17.2': - resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-ia32-msvc@4.21.3': - resolution: {integrity: sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==} - cpu: [ia32] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.12.0': - resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.17.2': - resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} - cpu: [x64] - os: [win32] - - '@rollup/rollup-win32-x64-msvc@4.21.3': - resolution: {integrity: sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==} - cpu: [x64] - os: [win32] - - '@safe-global/safe-apps-provider@0.18.1': - resolution: {integrity: sha512-V4a05A3EgJcriqtDoJklDz1BOinWhC6P0hjUSxshA4KOZM7rGPCTto/usXs09zr1vvL28evl/NldSTv97j2bmg==} - - '@safe-global/safe-apps-provider@0.18.3': - resolution: {integrity: sha512-f/0cNv3S4v7p8rowAjj0hDCg8Q8P/wBjp5twkNWeBdvd0RDr7BuRBPPk74LCqmjQ82P+1ltLlkmVFSmxTIT7XQ==} - - '@safe-global/safe-apps-sdk@8.1.0': - resolution: {integrity: sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==} - - '@safe-global/safe-apps-sdk@9.1.0': - resolution: {integrity: sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==} - - '@safe-global/safe-gateway-typescript-sdk@3.15.0': - resolution: {integrity: sha512-zAzhPgUwzdp89ZrZwCAOImUyAQMQE0LQKcK4vLO5eMbfAcNOxz5g4eVdBRBRa+kVXxjyW5wii58ZlGaYUVBa7g==} - engines: {node: '>=16'} - - '@scure/base@1.1.5': - resolution: {integrity: sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==} - - '@scure/base@1.1.8': - resolution: {integrity: sha512-6CyAclxj3Nb0XT7GHK6K4zK6k2xJm6E4Ft0Ohjt4WgegiFUHEtFb2CGzmPmGBwoIhrLsqNLYfLr04Y1GePrzZg==} - - '@scure/bip32@1.1.5': - resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} - - '@scure/bip32@1.3.2': - resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==} - - '@scure/bip32@1.3.3': - resolution: {integrity: sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==} - - '@scure/bip32@1.4.0': - resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} - - '@scure/bip39@1.1.1': - resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} - - '@scure/bip39@1.2.1': - resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} - - '@scure/bip39@1.2.2': - resolution: {integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==} - - '@scure/bip39@1.4.0': - resolution: {integrity: sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==} - - '@sentry/core@5.30.0': - resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} - engines: {node: '>=6'} - - '@sentry/hub@5.30.0': - resolution: {integrity: sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==} - engines: {node: '>=6'} - - '@sentry/minimal@5.30.0': - resolution: {integrity: sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==} - engines: {node: '>=6'} - - '@sentry/node@5.30.0': - resolution: {integrity: sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==} - engines: {node: '>=6'} - - '@sentry/tracing@5.30.0': - resolution: {integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==} - engines: {node: '>=6'} - - '@sentry/types@5.30.0': - resolution: {integrity: sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==} - engines: {node: '>=6'} - - '@sentry/utils@5.30.0': - resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} - engines: {node: '>=6'} - - '@shikijs/core@1.17.6': - resolution: {integrity: sha512-9ztslig6/YmCg/XwESAXbKjAjOhaq6HVced9NY6qcbDz1X5g/S90Wco2vMjBNX/6V71ASkzri76JewSGPa7kiQ==} - - '@shikijs/core@1.5.2': - resolution: {integrity: sha512-wSAOgaz48GmhILFElMCeQypSZmj6Ru6DttOOtl3KNkdJ17ApQuGNCfzpk4cClasVrnIu45++2DBwG4LNMQAfaA==} - - '@shikijs/engine-javascript@1.17.6': - resolution: {integrity: sha512-5EEZj8tVcierNxm4V0UMS2PVoflb0UJPalWWV8l9rRg+oOfnr5VivqBJbkyq5grltVPvByIXvVbY8GSM/356jQ==} - - '@shikijs/engine-oniguruma@1.17.6': - resolution: {integrity: sha512-NLfWDMXFYe0nDHFbEoyZdz89aIIey3bTfF3zLYSUNTXks5s4uinZVmuPOFf1HfTeGqIn8uErJSBc3VnpJO7Alw==} - - '@shikijs/types@1.17.6': - resolution: {integrity: sha512-ndTFa2TJi2w51ddKQDn3Jy8f6K4E5Q2x3dA3Hmsd3+YmxDQ10UWHjcw7VbVbKzv3VcUvYPLy+z9neqytSzUMUg==} - - '@shikijs/vscode-textmate@9.2.2': - resolution: {integrity: sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==} - - '@sideway/address@4.1.5': - resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} - - '@sideway/formula@3.0.1': - resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} - - '@sideway/pinpoint@2.0.0': - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sindresorhus/is@4.6.0': - resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} - engines: {node: '>=10'} - - '@sindresorhus/is@5.6.0': - resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} - engines: {node: '>=14.16'} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - - '@smithy/abort-controller@3.0.0': - resolution: {integrity: sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA==} - engines: {node: '>=16.0.0'} - - '@smithy/chunked-blob-reader-native@3.0.0': - resolution: {integrity: sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==} - - '@smithy/chunked-blob-reader@3.0.0': - resolution: {integrity: sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==} - - '@smithy/config-resolver@3.0.0': - resolution: {integrity: sha512-2GzOfADwYLQugYkKQhIyZyQlM05K+tMKvRnc6eFfZcpJGRfKoMUMYdPlBKmqHwQFXQKBrGV6cxL9oymWgDzvFw==} - engines: {node: '>=16.0.0'} - - '@smithy/core@2.0.1': - resolution: {integrity: sha512-rcMkjvwxH/bER+oZUPR0yTA0ELD6m3A+d92+CFkdF6HJFCBB1bXo7P5pm21L66XwTN01B6bUhSCQ7cymWRD8zg==} - engines: {node: '>=16.0.0'} - - '@smithy/credential-provider-imds@3.0.0': - resolution: {integrity: sha512-lfmBiFQcA3FsDAPxNfY0L7CawcWtbyWsBOHo34nF095728JLkBX4Y9q/VPPE2r7fqMVK+drmDigqE2/SSQeVRA==} - engines: {node: '>=16.0.0'} - - '@smithy/eventstream-codec@3.0.0': - resolution: {integrity: sha512-PUtyEA0Oik50SaEFCZ0WPVtF9tz/teze2fDptW6WRXl+RrEenH8UbEjudOz8iakiMl3lE3lCVqYf2Y+znL8QFQ==} - - '@smithy/eventstream-serde-browser@3.0.0': - resolution: {integrity: sha512-NB7AFiPN4NxP/YCAnrvYR18z2/ZsiHiF7VtG30gshO9GbFrIb1rC8ep4NGpJSWrz6P64uhPXeo4M0UsCLnZKqw==} - engines: {node: '>=16.0.0'} - - '@smithy/eventstream-serde-config-resolver@3.0.0': - resolution: {integrity: sha512-RUQG3vQ3LX7peqqHAbmayhgrF5aTilPnazinaSGF1P0+tgM3vvIRWPHmlLIz2qFqB9LqFIxditxc8O2Z6psrRw==} - engines: {node: '>=16.0.0'} - - '@smithy/eventstream-serde-node@3.0.0': - resolution: {integrity: sha512-baRPdMBDMBExZXIUAoPGm/hntixjt/VFpU6+VmCyiYJYzRHRxoaI1MN+5XE+hIS8AJ2GCHLMFEIOLzq9xx1EgQ==} - engines: {node: '>=16.0.0'} - - '@smithy/eventstream-serde-universal@3.0.0': - resolution: {integrity: sha512-HNFfShmotWGeAoW4ujP8meV9BZavcpmerDbPIjkJbxKbN8RsUcpRQ/2OyIxWNxXNH2GWCAxuSB7ynmIGJlQ3Dw==} - engines: {node: '>=16.0.0'} - - '@smithy/fetch-http-handler@3.0.1': - resolution: {integrity: sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==} - - '@smithy/hash-blob-browser@3.0.0': - resolution: {integrity: sha512-/Wbpdg+bwJvW7lxR/zpWAc1/x/YkcqguuF2bAzkJrvXriZu1vm8r+PUdE4syiVwQg7PPR2dXpi3CLBb9qRDaVQ==} - - '@smithy/hash-node@3.0.0': - resolution: {integrity: sha512-84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw==} - engines: {node: '>=16.0.0'} - - '@smithy/hash-stream-node@3.0.0': - resolution: {integrity: sha512-J0i7de+EgXDEGITD4fxzmMX8CyCNETTIRXlxjMiNUvvu76Xn3GJ31wQR85ynlPk2wI1lqoknAFJaD1fiNDlbIA==} - engines: {node: '>=16.0.0'} - - '@smithy/invalid-dependency@3.0.0': - resolution: {integrity: sha512-F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g==} - - '@smithy/is-array-buffer@3.0.0': - resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} - engines: {node: '>=16.0.0'} - - '@smithy/md5-js@3.0.0': - resolution: {integrity: sha512-Tm0vrrVzjlD+6RCQTx7D3Ls58S3FUH1ZCtU1MIh/qQmaOo1H9lMN2as6CikcEwgattnA9SURSdoJJ27xMcEfMA==} - - '@smithy/middleware-content-length@3.0.0': - resolution: {integrity: sha512-3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg==} - engines: {node: '>=16.0.0'} - - '@smithy/middleware-endpoint@3.0.0': - resolution: {integrity: sha512-aXOAWztw/5qAfp0NcA2OWpv6ZI/E+Dh9mByif7i91D/0iyYNUcKvskmXiowKESFkuZ7PIMd3VOR4fTibZDs2OQ==} - engines: {node: '>=16.0.0'} - - '@smithy/middleware-retry@3.0.1': - resolution: {integrity: sha512-hBhSEuL841FhJBK/19WpaGk5YWSzFk/P2UaVjANGKRv3eYNO8Y1lANWgqnuPWjOyCEWMPr58vELFDWpxvRKANw==} - engines: {node: '>=16.0.0'} - - '@smithy/middleware-serde@3.0.0': - resolution: {integrity: sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w==} - engines: {node: '>=16.0.0'} - - '@smithy/middleware-stack@3.0.0': - resolution: {integrity: sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q==} - engines: {node: '>=16.0.0'} - - '@smithy/node-config-provider@3.0.0': - resolution: {integrity: sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==} - engines: {node: '>=16.0.0'} - - '@smithy/node-http-handler@3.0.0': - resolution: {integrity: sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ==} - engines: {node: '>=16.0.0'} - - '@smithy/property-provider@3.0.0': - resolution: {integrity: sha512-LmbPgHBswdXCrkWWuUwBm9w72S2iLWyC/5jet9/Y9cGHtzqxi+GVjfCfahkvNV4KXEwgnH8EMpcrD9RUYe0eLQ==} - engines: {node: '>=16.0.0'} - - '@smithy/protocol-http@4.0.0': - resolution: {integrity: sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ==} - engines: {node: '>=16.0.0'} - - '@smithy/querystring-builder@3.0.0': - resolution: {integrity: sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg==} - engines: {node: '>=16.0.0'} - - '@smithy/querystring-parser@3.0.0': - resolution: {integrity: sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ==} - engines: {node: '>=16.0.0'} - - '@smithy/service-error-classification@3.0.0': - resolution: {integrity: sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA==} - engines: {node: '>=16.0.0'} - - '@smithy/shared-ini-file-loader@3.0.0': - resolution: {integrity: sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==} - engines: {node: '>=16.0.0'} - - '@smithy/signature-v4@3.0.0': - resolution: {integrity: sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA==} - engines: {node: '>=16.0.0'} - - '@smithy/smithy-client@3.0.1': - resolution: {integrity: sha512-KAiFY4Y4jdHxR+4zerH/VBhaFKM8pbaVmJZ/CWJRwtM/CmwzTfXfvYwf6GoUwiHepdv+lwiOXCuOl6UBDUEINw==} - engines: {node: '>=16.0.0'} - - '@smithy/types@3.0.0': - resolution: {integrity: sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw==} - engines: {node: '>=16.0.0'} - - '@smithy/url-parser@3.0.0': - resolution: {integrity: sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw==} - - '@smithy/util-base64@3.0.0': - resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} - engines: {node: '>=16.0.0'} - - '@smithy/util-body-length-browser@3.0.0': - resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==} - - '@smithy/util-body-length-node@3.0.0': - resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==} - engines: {node: '>=16.0.0'} - - '@smithy/util-buffer-from@3.0.0': - resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} - engines: {node: '>=16.0.0'} - - '@smithy/util-config-provider@3.0.0': - resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} - engines: {node: '>=16.0.0'} - - '@smithy/util-defaults-mode-browser@3.0.1': - resolution: {integrity: sha512-nW5kEzdJn1Bn5TF+gOPHh2rcPli8JU9vSSXLbfg7uPnfR1TMRQqs9zlYRhIb87NeSxIbpdXOI94tvXSy+fvDYg==} - engines: {node: '>= 10.0.0'} - - '@smithy/util-defaults-mode-node@3.0.1': - resolution: {integrity: sha512-TFk+Qb+elLc/MOhtSp+50fstyfZ6avQbgH2d96xUBpeScu+Al9elxv+UFAjaTHe0HQe5n+wem8ZLpXvU8lwV6Q==} - engines: {node: '>= 10.0.0'} - - '@smithy/util-endpoints@2.0.0': - resolution: {integrity: sha512-+exaXzEY3DNt2qtA2OtRNSDlVrE4p32j1JSsQkzA5AdP0YtJNjkYbYhJxkFmPYcjI1abuwopOZCwUmv682QkiQ==} - engines: {node: '>=16.0.0'} - - '@smithy/util-hex-encoding@3.0.0': - resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} - engines: {node: '>=16.0.0'} - - '@smithy/util-middleware@3.0.0': - resolution: {integrity: sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ==} - engines: {node: '>=16.0.0'} - - '@smithy/util-retry@3.0.0': - resolution: {integrity: sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g==} - engines: {node: '>=16.0.0'} - - '@smithy/util-stream@3.0.1': - resolution: {integrity: sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==} - engines: {node: '>=16.0.0'} - - '@smithy/util-uri-escape@3.0.0': - resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==} - engines: {node: '>=16.0.0'} - - '@smithy/util-utf8@3.0.0': - resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} - engines: {node: '>=16.0.0'} - - '@smithy/util-waiter@3.0.0': - resolution: {integrity: sha512-+fEXJxGDLCoqRKVSmo0auGxaqbiCo+8oph+4auefYjaNxjOLKSY2MxVQfRzo65PaZv4fr+5lWg+au7vSuJJ/zw==} - engines: {node: '>=16.0.0'} - - '@socket.io/component-emitter@3.1.0': - resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} - - '@solidity-parser/parser@0.18.0': - resolution: {integrity: sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==} - - '@stablelib/aead@1.0.1': - resolution: {integrity: sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==} - - '@stablelib/binary@1.0.1': - resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} - - '@stablelib/bytes@1.0.1': - resolution: {integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==} - - '@stablelib/chacha20poly1305@1.0.1': - resolution: {integrity: sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==} - - '@stablelib/chacha@1.0.1': - resolution: {integrity: sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==} - - '@stablelib/constant-time@1.0.1': - resolution: {integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==} - - '@stablelib/ed25519@1.0.3': - resolution: {integrity: sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==} - - '@stablelib/hash@1.0.1': - resolution: {integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==} - - '@stablelib/hkdf@1.0.1': - resolution: {integrity: sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==} - - '@stablelib/hmac@1.0.1': - resolution: {integrity: sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==} - - '@stablelib/int@1.0.1': - resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} - - '@stablelib/keyagreement@1.0.1': - resolution: {integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==} - - '@stablelib/poly1305@1.0.1': - resolution: {integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==} - - '@stablelib/random@1.0.2': - resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} - - '@stablelib/sha256@1.0.1': - resolution: {integrity: sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==} - - '@stablelib/sha512@1.0.1': - resolution: {integrity: sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==} - - '@stablelib/wipe@1.0.1': - resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} - - '@stablelib/x25519@1.0.3': - resolution: {integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==} - - '@storybook/addon-actions@8.3.0': - resolution: {integrity: sha512-HvAc3fW979JVw8CSKXZMouvgrJ2BNLNWaUB8jNokQb3Us00P6igVKLwg/pBV8GBgDr5Ng4pHYqi/ZH+xzEYFFw==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-backgrounds@8.3.0': - resolution: {integrity: sha512-qaV/QsXoviAmBYFszI/KN1CaI/LcACGX9RCBB54fMau3JuouIBU/zTl2jY2+BioCBk6oY8KqcnAS1coOZzlNXQ==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-controls@8.3.0': - resolution: {integrity: sha512-Id4j6Neimkdq0OyfQ3qkHpKLisbN08M8pXHDI/A0VeF91xEGBdc1bJgS/EU+ifa24tr5SRYwlAlcBDAWJbZMfA==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-docs@8.3.0': - resolution: {integrity: sha512-LrvWBDX5Vi//82Q78QRbTsG+9rJU9JJFAVPk1NnLp2Yn0F4FueVzIw8AabAkZFy0LHPMGV+EHpkPtYz4Czkhgw==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-essentials@8.3.0': - resolution: {integrity: sha512-y+hlMnIoD+h/diY7BvIeySPCz/ZtJPPZfS/COQuPRXfPWCr37p9XLEz3E+m2spniAbgGv9KpvdqQd0kWcwwfiA==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-highlight@8.3.0': - resolution: {integrity: sha512-bS1rqzbwGgeTKVLYEyY+6DzpafLtDLnoSF+KzRIiV7/1H30evhwVSzkgX1L2F6+ssS1n9WrRJeglniv9j+5mGQ==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-interactions@8.3.0': - resolution: {integrity: sha512-nAVUFpt2kTaPMY7RxfZwiYipngxf76dfx1E/QP9n/333+/pe88UwXbUkmLKpyC8EWqZXDI0oSV5XDDzoI5x3dA==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-links@8.3.0': - resolution: {integrity: sha512-nUnoMPPuxM8yJ7LCrppsUrn3gwqt4E0si9fqIIb5IkB56vz48RxCO9MtO1qjwhWosfMdN6boHaOl1Qc6IxV3Lg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.0 - peerDependenciesMeta: - react: - optional: true - - '@storybook/addon-measure@8.3.0': - resolution: {integrity: sha512-0TZ2ihzX0mRr1rNrFDieDsIKASZ2qUg3eHDkskLKOhxwoUHqsLzXlvS/scKZ+zb8pgjrvsBAsjyPstlrK+z0Zg==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-outline@8.3.0': - resolution: {integrity: sha512-xTvBGgX6RIkKjQiAi9LvPGbGuBa6tsJS2jCmjwiei3SX3I56E6Bf3KASsFH2x8j9khMVsgQcfA3QDIhjwatdgw==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-themes@8.3.0': - resolution: {integrity: sha512-kAvpsQBrIMe7u8zU5+WoYKPhSo/MzgYXHARjYKhJYpsFatCv/npg/hLOiBlKWV5FzEqjQx9dAZiehXDF3JsCZw==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-toolbars@8.3.0': - resolution: {integrity: sha512-/3/jnd70tnvh3x1EL8axE4TR9EHwC+bBch1uIc3vH/lmyZBqSBVA50clz23FvjhykjcaKQogcugCuU1w5TJlBA==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/addon-viewport@8.3.0': - resolution: {integrity: sha512-6h/0mKipUG6w2o5IOzyhvC/2ifJlSNIA60hLkJ291g42+ilzkydpby9TBN7FcnrVL3Bv+oLgkDLBWVCqma/fyw==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/blocks@8.3.0': - resolution: {integrity: sha512-V7D5lv5R+GJya9cCZOCjmOVjhvP5J3KIaclQuuGGJda/ZD/SpwHcFOGSpo6sNR2UKHXXvb61oM8gRQQWDvqPlg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@storybook/builder-vite@8.3.0': - resolution: {integrity: sha512-9qo3zcZkEpy69E7cx9OHHexBe9+25vH0p+4sWZSjl2sjqjhaxLN5eXnODQbDsOKZNRVrLVTGmKxfFJzAJFnY0w==} - peerDependencies: - '@preact/preset-vite': '*' - storybook: ^8.3.0 - typescript: '>= 4.3.x' - vite: ^4.0.0 || ^5.0.0 - vite-plugin-glimmerx: '*' - peerDependenciesMeta: - '@preact/preset-vite': - optional: true - typescript: - optional: true - vite-plugin-glimmerx: - optional: true - - '@storybook/components@8.3.0': - resolution: {integrity: sha512-SO/iTkmWp3aYCIy8DEhRMoOn6K7lcKTPNC/YjTvOFFzwq/CLq86WNqz6aX+wV5n6MvWTs7evSwMoz7lp4Lc4sw==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/core@8.3.0': - resolution: {integrity: sha512-UeErpD0xRIP2nFA2TjPYxtEyv24O6VRfq2XXU5ki2QPYnxOxAPBbrMHCADjgBwNS4S2NUWTaVBYxybISVbrj+w==} - - '@storybook/csf-plugin@8.3.0': - resolution: {integrity: sha512-sCmeN/OVYj95TKkMqJqxbaztIbdv5jCrtrXuNg4oJaGzNucmMNAbmv2jK2tCNE6Uz2X9IMRcseFX/h9TgjyJ9A==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/csf@0.0.1': - resolution: {integrity: sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==} - - '@storybook/csf@0.1.11': - resolution: {integrity: sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==} - - '@storybook/global@5.0.0': - resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - - '@storybook/icons@1.2.10': - resolution: {integrity: sha512-310apKdDcjbbX2VSLWPwhEwAgjxTzVagrwucVZIdGPErwiAppX8KvBuWZgPo+rQLVrtH8S+pw1dbUwjcE6d7og==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - - '@storybook/instrumenter@8.3.0': - resolution: {integrity: sha512-oJmX8jbNKbPBlNMItRvEoaVAJWX1u6jsqXdIcNRCXo3PDdVnunVYz8vVkG8mbL8Cp/cKlsuQk7YBZA4IM5mRgg==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/manager-api@8.3.0': - resolution: {integrity: sha512-5WBLEFHpe4H+9vZZLjNh7msIkyl9MPt4/C2nI+MXKZyU55xBBgiAy4fcD9aj02PcbhyR4JhLqbqmdeBe5Xafeg==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/preview-api@8.3.0': - resolution: {integrity: sha512-pHq/T7oWBfzc9TCIPYyJQUXuiUiFfmdrcYvuZE1kf46i7wXh9Q2/Kd3BUJWSCpBXUMoYfAxg9YysGljMII8LWA==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/react-dom-shim@8.3.0': - resolution: {integrity: sha512-87X4cvgwFT1ll5SzXgQq6iGbkVCgxLBpBm58akF/hzpeRkwfJDncGi/A5hElOJrBg63IkznmSJE7tf9RkrboqQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.0 - - '@storybook/svelte-vite@8.3.0': - resolution: {integrity: sha512-L8y9vAvjrbO7A4P+xL/CdAKsGe6nZ25wTx+rNin/8FUaKqbyWvItUMObYFPp0GHw2zFcdXkD4frpbufQp6kRLg==} - engines: {node: '>=18.0.0'} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^2.0.0 || ^3.0.0 - storybook: ^8.3.0 - svelte: ^4.0.0 || ^5.0.0-next.65 - vite: ^4.0.0 || ^5.0.0 - - '@storybook/svelte@8.3.0': - resolution: {integrity: sha512-SFvyZ6Jf/RyC2iPySjDqvaXlD31SB51I+zNfIXgXq6JoHMe4TzVTE8FnvIODrY50Pq/y2f3btVqL1HQ9nYRnWA==} - engines: {node: '>=18.0.0'} - peerDependencies: - storybook: ^8.3.0 - svelte: ^4.0.0 || ^5.0.0-next.65 - - '@storybook/sveltekit@8.3.0': - resolution: {integrity: sha512-KhUel8y2ebzvWA/2xV3r+JSWw/zM2N8k/5k/GElZEOo0jI0vgP6dKaGEgXjqqX4uy+sGwpk+3/UC6JR5e5gdGA==} - engines: {node: '>=18.0.0'} - peerDependencies: - storybook: ^8.3.0 - svelte: ^4.0.0 || ^5.0.0-next.65 - vite: ^4.0.0 || ^5.0.0 - - '@storybook/test@8.3.0': - resolution: {integrity: sha512-d8y8ST8YY/pSjTxBcWitKM7YbbupN8D0obVlciZRt6WW3o8WUz6iwMuzuJuiUVwtxiRtdKL9jygC5M+aaCpFYQ==} - peerDependencies: - storybook: ^8.3.0 - - '@storybook/theming@8.3.0': - resolution: {integrity: sha512-lJCarAzswZvUgBt/o1LMJp+07Io5G2VI1+Fw+bgn+92kRD8otCFwuMZIy0u7cEjHiEGqGnpzThlIki6vFjEXeA==} - peerDependencies: - storybook: ^8.3.0 - - '@sveltejs/adapter-auto@3.2.0': - resolution: {integrity: sha512-She5nKT47kwHE18v9NMe6pbJcvULr82u0V3yZ0ej3n1laWKGgkgdEABE9/ak5iDPs93LqsBkuIo51kkwCLBjJA==} - peerDependencies: - '@sveltejs/kit': ^2.0.0 - - '@sveltejs/kit@2.5.27': - resolution: {integrity: sha512-CcbRTzl+65oWljAASL6UlxM4x3NWwd0fjq5fQOfP243vs50myFQ8lil0fr3Im6HeeQqYUCtnv8HjO8REWVPjTw==} - engines: {node: '>=18.13'} - hasBin: true - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.3 - - '@sveltejs/package@2.3.5': - resolution: {integrity: sha512-fxWSG+pJHxWwcKltG+JoQ+P1CPO7NHVuZD1Gchi/1mNN6C60yD/voHeeXlqr0HHGkvIrpAjRIHLjsavI77Qsiw==} - engines: {node: ^16.14 || >=18} - hasBin: true - peerDependencies: - svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 - - '@sveltejs/vite-plugin-svelte-inspector@2.0.0': - resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} - engines: {node: ^18.0.0 || >=20} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.0 - - '@sveltejs/vite-plugin-svelte@3.1.0': - resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} - engines: {node: ^18.0.0 || >=20} - peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.0 - - '@szmarczak/http-timer@4.0.6': - resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} - engines: {node: '>=10'} - - '@szmarczak/http-timer@5.0.1': - resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} - engines: {node: '>=14.16'} - - '@tailwindcss/nesting@0.0.0-insiders.565cd3e': - resolution: {integrity: sha512-WhHoFBx19TnH/c+xLwT/sxei6+4RpdfiyG3MYXfmLaMsADmVqBkF7B6lDalgZD9YdM459MF7DtxVbWkOrV7IaQ==} - peerDependencies: - postcss: ^8.2.15 - - '@testing-library/dom@10.4.0': - resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} - engines: {node: '>=18'} - - '@testing-library/jest-dom@6.5.0': - resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - - '@testing-library/user-event@14.5.2': - resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} - engines: {node: '>=12', npm: '>=6'} - peerDependencies: - '@testing-library/dom': '>=7.21.4' - - '@ts-morph/common@0.20.0': - resolution: {integrity: sha512-7uKjByfbPpwuzkstL3L5MQyuXPSKdoNG93Fmi2JoDcTf3pEP731JdRFAduRVkOs8oqxPsXKA+ScrWkdQ8t/I+Q==} - - '@tsconfig/node10@1.0.9': - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - - '@types/aria-query@5.0.4': - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.5': - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} - - '@types/bn.js@4.11.6': - resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} - - '@types/bn.js@5.1.5': - resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} - - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - - '@types/cacheable-request@6.0.3': - resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} - - '@types/chrome@0.0.136': - resolution: {integrity: sha512-XDEiRhLkMd+SB7Iw3ZUIj/fov3wLd4HyTdLltVszkgl1dBfc3Rb7oPMVZ2Mz2TLqnF7Ow+StbR8E7r9lqpb4DA==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/dns-packet@5.6.5': - resolution: {integrity: sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q==} - - '@types/dom-screen-wake-lock@1.0.3': - resolution: {integrity: sha512-3Iten7X3Zgwvk6kh6/NRdwN7WbZ760YgFCsF5AxDifltUQzW1RaW+WRmcVtgwFzLjaNu64H+0MPJ13yRa8g3Dw==} - - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} - - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/express-serve-static-core@4.19.5': - resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - - '@types/filesystem@0.0.35': - resolution: {integrity: sha512-1eKvCaIBdrD2mmMgy5dwh564rVvfEhZTWVQQGRNn0Nt4ZEnJ0C8oSUCzvMKRA4lGde5oEVo+q2MrTTbV/GHDCQ==} - - '@types/filewriter@0.0.33': - resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==} - - '@types/find-cache-dir@3.2.1': - resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} - - '@types/har-format@1.2.15': - resolution: {integrity: sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/http-cache-semantics@4.0.4': - resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} - - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/json5@0.0.29': - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - - '@types/keyv@3.1.4': - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} - - '@types/lodash@4.17.7': - resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} - - '@types/lru-cache@5.1.1': - resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/minimatch@3.0.5': - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - - '@types/nlcst@2.0.3': - resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - - '@types/node@17.0.45': - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - - '@types/node@18.15.13': - resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} - - '@types/node@18.19.31': - resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} - - '@types/node@20.12.7': - resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} - - '@types/object-hash@3.0.6': - resolution: {integrity: sha512-fOBV8C1FIu2ELinoILQ+ApxcUKz4ngq+IWUYrxSGjXzzjUALijilampwkMgEtJ+h2njAW3pi853QpzNVCHB73w==} - - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - - '@types/pbkdf2@3.1.2': - resolution: {integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==} - - '@types/prop-types@15.7.12': - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - '@types/pug@2.0.10': - resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} - - '@types/qs@6.9.16': - resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - - '@types/react@18.3.5': - resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} - - '@types/responselike@1.0.3': - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} - - '@types/sax@1.2.7': - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - - '@types/secp256k1@4.0.6': - resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} - - '@types/semver@7.5.7': - resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==} - - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - - '@types/unist@2.0.10': - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - - '@types/unist@3.0.2': - resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} - - '@types/uuid@10.0.0': - resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - - '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@15.0.19': - resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} - - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - - '@typescript-eslint/eslint-plugin@7.4.0': - resolution: {integrity: sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/eslint-plugin@7.9.0': - resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - '@typescript-eslint/parser': ^7.0.0 - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.7.0': - resolution: {integrity: sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@7.9.0': - resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/scope-manager@7.4.0': - resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/scope-manager@7.7.0': - resolution: {integrity: sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/scope-manager@7.9.0': - resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/type-utils@7.4.0': - resolution: {integrity: sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/type-utils@7.9.0': - resolution: {integrity: sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/types@7.4.0': - resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/types@7.7.0': - resolution: {integrity: sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/types@7.9.0': - resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.4.0': - resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.7.0': - resolution: {integrity: sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@7.9.0': - resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@5.62.0': - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - - '@typescript-eslint/utils@7.4.0': - resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/utils@7.9.0': - resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/visitor-keys@7.4.0': - resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/visitor-keys@7.7.0': - resolution: {integrity: sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/visitor-keys@7.9.0': - resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@vitest/coverage-v8@1.4.0': - resolution: {integrity: sha512-4hDGyH1SvKpgZnIByr9LhGgCEuF9DKM34IBLCC/fVfy24Z3+PZ+Ii9hsVBsHvY1umM1aGPEjceRkzxCfcQ10wg==} - peerDependencies: - vitest: 1.4.0 - - '@vitest/expect@1.5.0': - resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} - - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} - - '@vitest/expect@2.0.5': - resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - - '@vitest/pretty-format@2.0.5': - resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} - - '@vitest/pretty-format@2.1.1': - resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} - - '@vitest/runner@1.5.0': - resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} - - '@vitest/runner@1.6.0': - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} - - '@vitest/snapshot@1.5.0': - resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} - - '@vitest/snapshot@1.6.0': - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} - - '@vitest/spy@1.5.0': - resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} - - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} - - '@vitest/spy@2.0.5': - resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - - '@vitest/utils@1.5.0': - resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} - - '@vitest/utils@1.6.0': - resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - - '@vitest/utils@2.0.5': - resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - - '@vitest/utils@2.1.1': - resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} - - '@volar/kit@2.4.5': - resolution: {integrity: sha512-ZzyErW5UiDfiIuJ/lpqc2Kx5PHDGDZ/bPlPJYpRcxlrn8Z8aDhRlsLHkNKcNiH65TmNahk2kbLaiejiqu6BD3A==} - peerDependencies: - typescript: '*' - - '@volar/language-core@2.4.5': - resolution: {integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==} - - '@volar/language-server@2.4.5': - resolution: {integrity: sha512-l5PswE0JzCtstTlwBUpikeSa3lNUBJhTuWtj9KclZTGi2Uex4RcqGOhTiDsUUtvdv/hEuYCxGq1EdJJPlQsD/g==} - - '@volar/language-service@2.4.5': - resolution: {integrity: sha512-xiFlL0aViGg6JhwAXyohPrdlID13uom8WQg6DWYaV8ob8RRy+zoLlBUI8SpQctwlWEO9poyrYK01revijAwkcw==} - - '@volar/source-map@2.4.5': - resolution: {integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==} - - '@volar/typescript@2.4.5': - resolution: {integrity: sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==} - - '@vscode/emmet-helper@2.9.3': - resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} - - '@vscode/l10n@0.0.18': - resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - - '@wagmi/cli@2.1.15': - resolution: {integrity: sha512-mtTxbuCDRRSd/2tPAklM+4vFOq5E/0zS5OfLE3Ax2KcUWciOnjLJ0m6BAQ6HzqY9YfWo8DXa7UqxzUBkvPYltg==} - hasBin: true - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - - '@wagmi/cli@2.1.4': - resolution: {integrity: sha512-vamvEo/GeBjFxb5oZCvby4YZDOrK/RqD+tcWb5X0pqmJDyWbN2Mkv9DYTtVB+OtfVUzFKciN/8Vhw8luMtOJbw==} - hasBin: true - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - - '@wagmi/connectors@4.1.18': - resolution: {integrity: sha512-K/iLH/Z8jwvgPAYESU/uCQtQBvcIR1Jrqk+t2uCDSxew/tYtkOo2yOjtaPuOb+xJ5OrMGg+0tVHhGChYXry9Ow==} - peerDependencies: - '@wagmi/core': 2.6.9 - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - typescript: - optional: true - - '@wagmi/connectors@4.3.10': - resolution: {integrity: sha512-IZcsocBfDq6pe8sxkDgP2k9YNqv8udl2eSr2hx2JCESA44ixx5zRjoGNMAkKxlzM6uXjXLJKp/g1KYlpmoHkDg==} - peerDependencies: - '@wagmi/core': 2.9.8 - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - typescript: - optional: true - - '@wagmi/connectors@5.1.10': - resolution: {integrity: sha512-ybgKV09PIhgUgQ4atXTs2KOy4Hevd6f972SXfx6HTgsnFXlzxzN6o0aWjhavZOYjvx5tjuL3+8Mgqo0R7uP5Cg==} - peerDependencies: - '@wagmi/core': 2.13.5 - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - typescript: - optional: true - - '@wagmi/core@2.10.2': - resolution: {integrity: sha512-SfQ1F7Azjlx4cKGfmg9+GEUGbukCxraoLYZyCUgTLpKw2OY+4sHsPRwHQENQt/YRWKMyG3/byEYRna2Kv1anpw==} - peerDependencies: - '@tanstack/query-core': '>=5.0.0' - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - '@tanstack/query-core': - optional: true - typescript: - optional: true - - '@wagmi/core@2.13.5': - resolution: {integrity: sha512-lvX/hApJTSA/H2kOklokjIYiUpnT8CpBH80GeOiKxU0CGK1wNHTu20GRTCy0GF1t7jkNwPSG3m0SmnXmgYMmHw==} - peerDependencies: - '@tanstack/query-core': '>=5.0.0' - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - '@tanstack/query-core': - optional: true - typescript: - optional: true - - '@wagmi/core@2.8.0': - resolution: {integrity: sha512-u0CWfbpdv2T3jE1yZQPwxvLlUVMymMoy73g6UE4XYNilF+EjdYu43EjWNvvB9lJcfSyYk6/VdKNHxJ2G+iBxYw==} - peerDependencies: - '@tanstack/query-core': '>=5.0.0' - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - '@tanstack/query-core': - optional: true - typescript: - optional: true - - '@walletconnect/core@2.11.2': - resolution: {integrity: sha512-bB4SiXX8hX3/hyBfVPC5gwZCXCl+OPj+/EDVM71iAO3TDsh78KPbrVAbDnnsbHzZVHlsMohtXX3j5XVsheN3+g==} - - '@walletconnect/core@2.12.2': - resolution: {integrity: sha512-7Adv/b3pp9F42BkvReaaM4KS8NEvlkS7AMtwO3uF/o6aRMKtcfTJq9/jgWdKJh4RP8pPRTRFjCw6XQ/RZtT4aQ==} - - '@walletconnect/core@2.13.0': - resolution: {integrity: sha512-blDuZxQenjeXcVJvHxPznTNl6c/2DO4VNrFnus+qHmO6OtT5lZRowdMtlCaCNb1q0OxzgrmBDcTOCbFcCpio/g==} - - '@walletconnect/core@2.16.1': - resolution: {integrity: sha512-UlsnEMT5wwFvmxEjX8s4oju7R3zadxNbZgsFeHEsjh7uknY2zgmUe1Lfc5XU6zyPb1Jx7Nqpdx1KN485ee8ogw==} - engines: {node: '>=18'} - - '@walletconnect/environment@1.0.1': - resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} - - '@walletconnect/ethereum-provider@2.11.2': - resolution: {integrity: sha512-BUDqee0Uy2rCZVkW5Ao3q6Ado/3fePYnFdryVF+YL6bPhj+xQZ5OfKodl+uvs7Rwq++O5wTX2RqOTzpW7+v+Mg==} - - '@walletconnect/ethereum-provider@2.12.2': - resolution: {integrity: sha512-vBl2zCnNm2iPaomJdr5YT16cT7aa8cH2WFs6879XPngU5i7HXS3bU6TamhyhKKl13sdIfifmCkCC+RWn5GdPMw==} - - '@walletconnect/ethereum-provider@2.13.0': - resolution: {integrity: sha512-dnpW8mmLpWl1AZUYGYZpaAfGw1HFkL0WSlhk5xekx3IJJKn4pLacX2QeIOo0iNkzNQxZfux1AK4Grl1DvtzZEA==} - - '@walletconnect/ethereum-provider@2.16.1': - resolution: {integrity: sha512-oD7DNCssUX3plS5gGUZ9JQ63muQB/vxO68X6RzD2wd8gBsYtSPw4BqYFc7KTO6dUizD6gfPirw32yW2pTvy92w==} - - '@walletconnect/events@1.0.1': - resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==} - - '@walletconnect/heartbeat@1.2.1': - resolution: {integrity: sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==} - - '@walletconnect/heartbeat@1.2.2': - resolution: {integrity: sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==} - - '@walletconnect/jsonrpc-http-connection@1.0.7': - resolution: {integrity: sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ==} - - '@walletconnect/jsonrpc-http-connection@1.0.8': - resolution: {integrity: sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==} - - '@walletconnect/jsonrpc-provider@1.0.13': - resolution: {integrity: sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==} - - '@walletconnect/jsonrpc-provider@1.0.14': - resolution: {integrity: sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==} - - '@walletconnect/jsonrpc-types@1.0.3': - resolution: {integrity: sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==} - - '@walletconnect/jsonrpc-types@1.0.4': - resolution: {integrity: sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==} - - '@walletconnect/jsonrpc-utils@1.0.8': - resolution: {integrity: sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==} - - '@walletconnect/jsonrpc-ws-connection@1.0.14': - resolution: {integrity: sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==} - - '@walletconnect/keyvaluestorage@1.1.1': - resolution: {integrity: sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==} - peerDependencies: - '@react-native-async-storage/async-storage': 1.x - peerDependenciesMeta: - '@react-native-async-storage/async-storage': - optional: true - - '@walletconnect/logger@2.1.2': - resolution: {integrity: sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==} - - '@walletconnect/modal-core@2.6.2': - resolution: {integrity: sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==} - - '@walletconnect/modal-ui@2.6.2': - resolution: {integrity: sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==} - - '@walletconnect/modal@2.6.2': - resolution: {integrity: sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==} - - '@walletconnect/relay-api@1.0.10': - resolution: {integrity: sha512-tqrdd4zU9VBNqUaXXQASaexklv6A54yEyQQEXYOCr+Jz8Ket0dmPBDyg19LVSNUN2cipAghQc45/KVmfFJ0cYw==} - - '@walletconnect/relay-api@1.0.11': - resolution: {integrity: sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==} - - '@walletconnect/relay-api@1.0.9': - resolution: {integrity: sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==} - - '@walletconnect/relay-auth@1.0.4': - resolution: {integrity: sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==} - - '@walletconnect/safe-json@1.0.2': - resolution: {integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==} - - '@walletconnect/sign-client@2.11.2': - resolution: {integrity: sha512-MfBcuSz2GmMH+P7MrCP46mVE5qhP0ZyWA0FyIH6/WuxQ6G+MgKsGfaITqakpRPsykWOJq8tXMs3XvUPDU413OQ==} - - '@walletconnect/sign-client@2.12.2': - resolution: {integrity: sha512-cM0ualXj6nVvLqS4BDNRk+ZWR+lubcsz/IHreH+3wYrQ2sV+C0fN6ctrd7MMGZss0C0qacWCx0pm62ZBuoKvqA==} - - '@walletconnect/sign-client@2.13.0': - resolution: {integrity: sha512-En7KSvNUlQFx20IsYGsFgkNJ2lpvDvRsSFOT5PTdGskwCkUfOpB33SQJ6nCrN19gyoKPNvWg80Cy6MJI0TjNYA==} - - '@walletconnect/sign-client@2.16.1': - resolution: {integrity: sha512-s2Tx2n2duxt+sHtuWXrN9yZVaHaYqcEcjwlTD+55/vs5NUPlISf+fFmZLwSeX1kUlrSBrAuxPUcqQuRTKcjLOA==} - - '@walletconnect/time@1.0.2': - resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} - - '@walletconnect/types@2.11.2': - resolution: {integrity: sha512-p632MFB+lJbip2cvtXPBQslpUdiw1sDtQ5y855bOlAGquay+6fZ4h1DcDePeKQDQM3P77ax2a9aNPZxV6y/h1Q==} - - '@walletconnect/types@2.12.0': - resolution: {integrity: sha512-uhB3waGmujQVJcPgJvGOpB8RalgYSBT+HpmVbfl4Qe0xJyqpRUo4bPjQa0UYkrHaW20xIw94OuP4+FMLYdeemg==} - - '@walletconnect/types@2.12.2': - resolution: {integrity: sha512-9CmwTlPbrFTzayTL9q7xM7s3KTJkS6kYFtH2m1/fHFgALs6pIUjf1qAx1TF2E4tv7SEzLAIzU4NqgYUt2vWXTg==} - - '@walletconnect/types@2.13.0': - resolution: {integrity: sha512-MWaVT0FkZwzYbD3tvk8F+2qpPlz1LUSWHuqbINUtMXnSzJtXN49Y99fR7FuBhNFtDalfuWsEK17GrNA+KnAsPQ==} - - '@walletconnect/types@2.16.1': - resolution: {integrity: sha512-9P4RG4VoDEF+yBF/n2TF12gsvT/aTaeZTVDb/AOayafqiPnmrQZMKmNCJJjq1sfdsDcHXFcZWMGsuCeSJCmrXA==} - - '@walletconnect/universal-provider@2.11.2': - resolution: {integrity: sha512-cNtIn5AVoDxKAJ4PmB8m5adnf5mYQMUamEUPKMVvOPscfGtIMQEh9peKsh2AN5xcRVDbgluC01Id545evFyymw==} - - '@walletconnect/universal-provider@2.12.2': - resolution: {integrity: sha512-0k5ZgSkABopQLVhkiwl2gRGG7dAP4SWiI915pIlyN5sRvWV+qX1ALhWAmRcdv0TXWlKHDcDgPJw/q2sCSAHuMQ==} - - '@walletconnect/universal-provider@2.13.0': - resolution: {integrity: sha512-B5QvO8pnk5Bqn4aIt0OukGEQn2Auk9VbHfhQb9cGwgmSCd1GlprX/Qblu4gyT5+TjHMb1Gz5UssUaZWTWbDhBg==} - - '@walletconnect/universal-provider@2.16.1': - resolution: {integrity: sha512-q/tyWUVNenizuClEiaekx9FZj/STU1F3wpDK4PUIh3xh+OmUI5fw2dY3MaNDjyb5AyrS0M8BuQDeuoSuOR/Q7w==} - - '@walletconnect/utils@2.11.2': - resolution: {integrity: sha512-LyfdmrnZY6dWqlF4eDrx5jpUwsB2bEPjoqR5Z6rXPiHJKUOdJt7az+mNOn5KTSOlRpd1DmozrBrWr+G9fFLYVw==} - - '@walletconnect/utils@2.12.0': - resolution: {integrity: sha512-GIpfHUe1Bjp1Tjda0SkJEizKOT2biuv7VPFnKsOLT1T+8QxEP9NruC+K2UUEvijS1Qr/LKH9P5004RYNgrch+w==} - - '@walletconnect/utils@2.12.2': - resolution: {integrity: sha512-zf50HeS3SfoLv1N9GPl2IXTZ9TsXfet4usVAsZmX9P6/Xzq7d/7QakjVQCHH/Wk1O9XkcsfeoZoUhRxoMJ5uJw==} - - '@walletconnect/utils@2.13.0': - resolution: {integrity: sha512-q1eDCsRHj5iLe7fF8RroGoPZpdo2CYMZzQSrw1iqL+2+GOeqapxxuJ1vaJkmDUkwgklfB22ufqG6KQnz78sD4w==} - - '@walletconnect/utils@2.16.1': - resolution: {integrity: sha512-aoQirVoDoiiEtYeYDtNtQxFzwO/oCrz9zqeEEXYJaAwXlGVTS34KFe7W3/Rxd/pldTYKFOZsku2EzpISfH8Wsw==} - - '@walletconnect/window-getters@1.0.1': - resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} - - '@walletconnect/window-metadata@1.0.1': - resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} - - '@web3modal/common@4.1.11': - resolution: {integrity: sha512-zcoaixcI3dLC/D0QlhpT8MNCd717O1/3r1AemC5/9Wbk2F+YKXkzJZHmWlXoTvlTw9DH07rJzs9YTPxFyn855w==} - - '@web3modal/common@4.2.3': - resolution: {integrity: sha512-n0lvhoRjViqxmkgpy+iEM6E3HBylUgdxUDJU4hUxGmmrbGZGEP7USBRnQOEgXLqLCtWvxKjUAO33JBV/De+Osw==} - - '@web3modal/common@5.1.8': - resolution: {integrity: sha512-W3tvTQ5FPauFjDSRIx3H6SurzzDHPeN3q7cMaxuOZb3Scf76vMkz9Af970Q44Jmlz1PGDKZzhEsmOzw6LJF+CA==} - - '@web3modal/core@4.1.11': - resolution: {integrity: sha512-e475IIWywEtgH1CCB2Pl1C/wgPu0NzAvtTMOPSGNoHsw1ID2n6j/o4CURQb2HJjOoYQjTKKVkzXa44vFh2p9xw==} - - '@web3modal/core@4.2.3': - resolution: {integrity: sha512-UykKZTELBpb6ey+IV6fkHWsLkjrIdILmRYzhlznyTPbm9qX5pOR9tH0Z3QGUo7YPFmUqMRH1tC9Irsr3SgIbbw==} - - '@web3modal/polyfills@4.1.11': - resolution: {integrity: sha512-+aMmjGrLCKLo4gVAdWgFdOX2ZjExciSLw/YlZ01wLO8Yj3bZbCZ7sjBc9xndHOVMK0QyUzBtpCOpYMJzi+59jg==} - - '@web3modal/polyfills@4.2.3': - resolution: {integrity: sha512-RiGxh2hMLSD1s2aTjoejNK/UL377CJhGf5tzmdF1m5xsYHpil+Dnulpio8Yojnm27cOqQD+QiaYUKnHOxErLjQ==} - - '@web3modal/scaffold-react@4.1.11': - resolution: {integrity: sha512-vouJHj77ZNKvR/Uyb3Hfc2UFSA4ZrrHmA0vbioCbgIh+V1rYT5XcAZDEu4AAo1qJ5NBRU1pkClVwAmQuWGY43w==} - peerDependencies: - react: '>=17' - react-dom: '>=17' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@web3modal/scaffold-react@4.2.3': - resolution: {integrity: sha512-WRA244mO3qa9wnJtRa+mfXHkfW92VEkEt+HagLQuUcSRTQJH0Q95UF+EXZZ/r1mKbqdqIbpguewuF0dRtL/YrQ==} - peerDependencies: - react: '>=17' - react-dom: '>=17' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - '@web3modal/scaffold-utils@4.1.11': - resolution: {integrity: sha512-nsS9yK5tp1N/VfecLLPc8H/dGJCzn0jElWjRS92VfGPhOSiEh5PIrPyCl9o6wUZsp4fH1YUsoSY2EFpPsuCWgw==} - - '@web3modal/scaffold-utils@4.2.3': - resolution: {integrity: sha512-z6t0ggYg1/8hpaKHUm77z2VyacjIZEZTI8IHSQYmHuRFGu5oDPJeAr1thr475JXdoGLYr08hwquZyed/ZINAvw==} - - '@web3modal/scaffold-vue@4.1.11': - resolution: {integrity: sha512-PmIfD2TlKkZZa6V0sqwDtZ7t62BEk5JjCHd380QaZwGTbPEwS99leTWLKBTaxAPShK2p7+aj2Txss63wIXLRFg==} - peerDependencies: - vue: '>=3' - peerDependenciesMeta: - vue: - optional: true - - '@web3modal/scaffold-vue@4.2.3': - resolution: {integrity: sha512-0mlx/t0A7srcuFcxP3xuUt2ACFUUcAhyRIsNImtQHPq7QHx7i5zvabQ38iplDsWS0TA7j83hW5gxHycppa5PXg==} - peerDependencies: - vue: '>=3' - peerDependenciesMeta: - vue: - optional: true - - '@web3modal/scaffold@4.1.11': - resolution: {integrity: sha512-n8bP3cJNQxV8OD3s8bSj8QDbZvjn8a1Ui81jo2a3rIxOUAlD/cKRM8ivmNxiUdBMae8GP5CLiWtkIptmSLw40Q==} - - '@web3modal/scaffold@4.2.3': - resolution: {integrity: sha512-8K+IV+luDUvppKgmlgdA+RbQGT2STdRrgHVHFRsAqsORFoLiIYvlrpQlxvV7J5Xc1bgKEn3KvEXC+BH2NMqF4w==} - - '@web3modal/siwe@4.1.11': - resolution: {integrity: sha512-gndcNA351mkAR0wUsO4dLS9CbpcFo+AQ2CUXF0Jx83DwaBStCVsX3yllfnYKh/gpVetF3B48mRUt9TTTJJ79dA==} - - '@web3modal/siwe@4.2.3': - resolution: {integrity: sha512-uPma0U/OxAy3LwnF7pCYYX8tn+ONBYNcssuVZxEGsusJD1kF4ueS8lK7eyQogyK5nXqOGdNESOjY1NImNNjMVw==} - - '@web3modal/ui@4.1.11': - resolution: {integrity: sha512-lentHZvUpNjVasvNI8/jrVPIAV1M5zJKZ4Q4AeYwUJdEtlRon1uq10MRylmvlZAjWb98U130uJy245Fz87Th/w==} - - '@web3modal/ui@4.2.3': - resolution: {integrity: sha512-QPPgE0hii1gpAldTdnrP63D/ryI78Ohz99zRBp8vi81lawot7rbdUbryMoX13hMPCW9vW7JYyvX+jJN7uO3QwA==} - - '@web3modal/wagmi@4.1.11': - resolution: {integrity: sha512-VoXV9idD0yV7jx0F2Xk722VXqQNCDKqDc+LR8WsuOU64TiTLJx9UDQpNcoigbC3bYCi/4Cpw41iSGgs7utbgyQ==} - peerDependencies: - '@wagmi/connectors': '>=4.0.0' - '@wagmi/core': '>=2.0.0' - react: '>=17' - react-dom: '>=17' - viem: '>=2.0.0' - vue: '>=3' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - vue: - optional: true - - '@web3modal/wagmi@4.2.3': - resolution: {integrity: sha512-oisBCMrOYn8TBgNaSPrumvMmTGox6+3Ii92zxQJalW5U/K9iBTxoejHT033Ss7mFEFybilcfXBAvGNFXfQmtkA==} - peerDependencies: - '@wagmi/connectors': '>=4' - '@wagmi/core': '>=2.0.0' - react: '>=17' - react-dom: '>=17' - viem: '>=2.0.0' - vue: '>=3' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - vue: - optional: true - - '@web3modal/wallet@4.1.11': - resolution: {integrity: sha512-6eJSpNcrBxufJFEQu9+ZOMUZxPqa8438RvfYKCU9nLXwoBtweo6ecpQw2yhXDlrfG+uJZhFabtPxROabn2M8Kg==} - - '@web3modal/wallet@4.2.3': - resolution: {integrity: sha512-V+VpwmhQl9qeJMpzNkjpAaxercAsrr1O9oGRjrjD+c0q72NfdcbTalWSbjSQmqabI1M6N06Hw94FkAQuEfVGsg==} - - '@webgpu/types@0.1.21': - resolution: {integrity: sha512-pUrWq3V5PiSGFLeLxoGqReTZmiiXwY3jRkIG5sLLKjyqNxrwm/04b4nw7LSmGWJcKk59XOM/YRTUwOzo4MMlow==} - - '@zerodevx/svelte-toast@0.9.5': - resolution: {integrity: sha512-JLeB/oRdJfT+dz9A5bgd3Z7TuQnBQbeUtXrGIrNWMGqWbabpepBF2KxtWVhL2qtxpRqhae2f6NAOzH7xs4jUSw==} - peerDependencies: - svelte: ^3.57.0 || ^4.0.0 - - abitype@0.9.10: - resolution: {integrity: sha512-FIS7U4n7qwAT58KibwYig5iFG4K61rbhAqaQh/UWj8v1Y8mjX3F8TC9gd8cz9yT1TYel9f8nS5NO5kZp2RW0jQ==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.22.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true - - abitype@0.9.8: - resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.19.1 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true - - abitype@1.0.0: - resolution: {integrity: sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.22.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true - - abitype@1.0.2: - resolution: {integrity: sha512-aFt4k2H+eiAKy/zxtnORa9iIb10BMBeWL18l8v4+QuwYEBXPxxjSB1bFZCzQmKPoj8m7j68K705l3uY+E2gAjg==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.22.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true - - abitype@1.0.5: - resolution: {integrity: sha512-YzDhti7cjlfaBhHutMaboYB21Ha3rXR9QTkNJFzYC4kC8YclaiwPBBBJY8ejFdu2wnJeZCVZSMlQJ7fi8S6hsw==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.22.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true - - abitype@1.0.6: - resolution: {integrity: sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.22.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true - - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - - abortcontroller-polyfill@1.7.5: - resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - - adm-zip@0.4.16: - resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} - engines: {node: '>=0.3.0'} - - aes-js@3.0.0: - resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} - - aes-js@4.0.0-beta.5: - resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} - - agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - - agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} - engines: {node: '>= 14'} - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - - amazon-cognito-identity-js@6.3.12: - resolution: {integrity: sha512-s7NKDZgx336cp+oDeUtB2ZzT8jWJp/v2LWuYl+LQtMEODe22RF1IJ4nRiDATp+rp1pTffCZcm44Quw4jx2bqNg==} - - anser@1.4.10: - resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} - - ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-fragments@0.2.1: - resolution: {integrity: sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==} - - ansi-regex@4.1.1: - resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} - engines: {node: '>=6'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - antlr4@4.13.1: - resolution: {integrity: sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA==} - engines: {node: '>=16'} - - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - - any-signal@3.0.1: - resolution: {integrity: sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==} - - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - - appdirsjs@1.2.7: - resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - - array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - - array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - - array-iterate@2.0.1: - resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} - - asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - - asn1@0.2.6: - resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} - - assert-plus@1.0.0: - resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} - engines: {node: '>=0.8'} - - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - - assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} - - ast-parents@0.0.1: - resolution: {integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==} - - ast-types@0.15.2: - resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==} - engines: {node: '>=4'} - - ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} - - astral-regex@1.0.0: - resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} - engines: {node: '>=4'} - - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - - astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} - hasBin: true - - astro-expressive-code@0.35.6: - resolution: {integrity: sha512-1U4KrvFuodaCV3z4I1bIR16SdhQlPkolGsYTtiANxPZUVv/KitGSCTjzksrkPonn1XuwVqvnwmUUVzTLWngnBA==} - peerDependencies: - astro: ^4.0.0-beta || ^3.3.0 - - astro-og-canvas@0.5.0: - resolution: {integrity: sha512-nrwZpFL9d6tVJRKV5OLZa3xSSh+Cbaaoay/R9jAgHCrJ79WNyN2rgRT/+wtP1O/bCQ+wVP3GC3mBQN7vogImvg==} - engines: {node: '>=18.14.1'} - peerDependencies: - astro: ^3.0.0 || ^4.0.0 - - astro@4.15.6: - resolution: {integrity: sha512-SWcUNwm8CiVRaIbh4w5byh62BNihpsovlCd4ElvC7cL/53D24HcI7AaGFsPrromCamQklwQmIan/QS7x/3lLuQ==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} - hasBin: true - - async-limiter@1.0.1: - resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} - - async-mutex@0.2.6: - resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} - - async-retry@1.3.3: - resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} - - async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - - async@3.2.3: - resolution: {integrity: sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==} - - asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - - atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} - - autoprefixer@10.4.18: - resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - autoprefixer@10.4.19: - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - - available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - - aws-sign2@0.7.0: - resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - - aws4@1.13.2: - resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - - axios-proxy-builder@0.1.2: - resolution: {integrity: sha512-6uBVsBZzkB3tCC8iyx59mCjQckhB8+GQrI9Cop8eC7ybIsvs/KtnNgEBfRMSEa7GqK2VBGUzgjNYMdPIfotyPA==} - - axios@1.6.7: - resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} - - axios@1.7.7: - resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} - - axobject-query@4.0.0: - resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} - - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - - babel-core@7.0.0-bridge.0: - resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} - - babel-plugin-polyfill-corejs2@0.4.8: - resolution: {integrity: sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-corejs3@0.9.0: - resolution: {integrity: sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-polyfill-regenerator@0.5.5: - resolution: {integrity: sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - - babel-plugin-transform-flow-enums@0.0.2: - resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} - - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - base-64@1.0.0: - resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} - - base-x@3.0.9: - resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} - - base-x@4.0.0: - resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} - - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - bcp-47-match@2.0.3: - resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} - - bcp-47@2.1.0: - resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} - - bcrypt-pbkdf@1.0.2: - resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} - - bech32@1.1.4: - resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} - - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - - big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} - - bignumber.js@9.1.2: - resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} - - binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - bl@5.1.0: - resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} - - blakejs@1.2.1: - resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} - - blob-to-it@2.0.6: - resolution: {integrity: sha512-xveo/z3QNilIJgCZAjzvx2uWWVHE4JzOy7eMp45zkuBsmwZMgjfhn2h/+BsZPaByVFa3u1W/OBUleNiqgMtVpQ==} - - bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - - bn.js@4.11.6: - resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==} - - bn.js@4.12.0: - resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} - - bn.js@5.2.1: - resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} - - body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - bowser@2.11.0: - resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} - - boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} - - boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - - bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - - browser-assert@1.2.1: - resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} - - browser-readablestream-to-it@1.0.3: - resolution: {integrity: sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==} - - browser-readablestream-to-it@2.0.6: - resolution: {integrity: sha512-csJm66U/gTC6VHjeaOaziK6Y6ENdrzlNLdXnsdnvGX+3hGvedkxTyiMk2WbgKR8F15ACxDLJhDuE/cmovLPBQQ==} - - browser-stdout@1.3.1: - resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} - - browserify-aes@1.2.0: - resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} - - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - bs58@4.0.1: - resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} - - bs58@5.0.0: - resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} - - bs58check@2.1.2: - resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} - - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - - buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - - buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - buffer-reverse@1.0.1: - resolution: {integrity: sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==} - - buffer-to-arraybuffer@0.0.5: - resolution: {integrity: sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==} - - buffer-xor@1.0.3: - resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} - - buffer@4.9.2: - resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} - - buffer@5.6.0: - resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} - - buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - - bufferutil@4.0.8: - resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} - engines: {node: '>=6.14.2'} - - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} - - bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - - bundle-require@4.0.2: - resolution: {integrity: sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' - - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - - cacheable-lookup@5.0.4: - resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} - engines: {node: '>=10.6.0'} - - cacheable-lookup@6.1.0: - resolution: {integrity: sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==} - engines: {node: '>=10.6.0'} - - cacheable-lookup@7.0.0: - resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} - engines: {node: '>=14.16'} - - cacheable-request@10.2.14: - resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} - engines: {node: '>=14.16'} - - cacheable-request@7.0.4: - resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} - engines: {node: '>=8'} - - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - - call-me-maybe@1.0.2: - resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} - - caller-callsite@2.0.0: - resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} - engines: {node: '>=4'} - - caller-path@2.0.0: - resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} - engines: {node: '>=4'} - - callsites@2.0.0: - resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} - engines: {node: '>=4'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} - - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - - caniuse-lite@1.0.30001593: - resolution: {integrity: sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==} - - caniuse-lite@1.0.30001614: - resolution: {integrity: sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==} - - caniuse-lite@1.0.30001660: - resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==} - - canvaskit-wasm@0.39.1: - resolution: {integrity: sha512-Gy3lCmhUdKq+8bvDrs9t8+qf7RvcjuQn+we7vTVVyqgOVO1UVfHpsnBxkTZw+R4ApEJ3D5fKySl9TU11hmjl/A==} - - capital-case@1.0.4: - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} - - caseless@0.12.0: - resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} - - cborg@4.2.0: - resolution: {integrity: sha512-q6cFW5m3KxfP/9xGI3yGLaC1l5DP6DWM9IvjiJojnIwohL5CQDl02EXViPV852mOfQo+7PJGPN01MI87vFGzyA==} - hasBin: true - - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} - - chai@5.1.1: - resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} - engines: {node: '>=12'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - change-case@4.1.2: - resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} - - change-case@5.4.4: - resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - - chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - - check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} - engines: {node: '>= 16'} - - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chokidar@4.0.0: - resolution: {integrity: sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==} - engines: {node: '>= 14.16.0'} - - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - - chromatic@11.10.2: - resolution: {integrity: sha512-EbVlhmOLGdx9QRX3RMOTF3UzoyC1aaXNRjlzm1mc++2OI5+6C5Bzwt2ZUYJ3Jnf/pJa23q0y5Y3QEDcfRVqIbg==} - hasBin: true - peerDependencies: - '@chromatic-com/cypress': ^0.*.* || ^1.0.0 - '@chromatic-com/playwright': ^0.*.* || ^1.0.0 - peerDependenciesMeta: - '@chromatic-com/cypress': - optional: true - '@chromatic-com/playwright': - optional: true - - chromatic@11.3.0: - resolution: {integrity: sha512-q1ZtJDJrjLGnz60ivpC16gmd7KFzcaA4eTb7gcytCqbaKqlHhCFr1xQmcUDsm14CK7JsqdkFU6S+JQdOd2ZNJg==} - hasBin: true - peerDependencies: - '@chromatic-com/cypress': ^0.*.* || ^1.0.0 - '@chromatic-com/playwright': ^0.*.* || ^1.0.0 - peerDependenciesMeta: - '@chromatic-com/cypress': - optional: true - '@chromatic-com/playwright': - optional: true - - chrome-launcher@0.15.2: - resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} - engines: {node: '>=12.13.0'} - hasBin: true - - chromium-edge-launcher@1.0.0: - resolution: {integrity: sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA==} - - ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - - ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} - - ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} - engines: {node: '>=8'} - - cids@0.7.5: - resolution: {integrity: sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==} - engines: {node: '>=4.0.0', npm: '>=3.0.0'} - deprecated: This module has been superseded by the multiformats module - - cipher-base@1.0.4: - resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} - - citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} - - class-is@1.1.0: - resolution: {integrity: sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==} - - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-color@2.0.3: - resolution: {integrity: sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==} - engines: {node: '>=0.10'} - - cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cli-cursor@5.0.0: - resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} - engines: {node: '>=18'} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - clipboardy@4.0.0: - resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} - engines: {node: '>=18'} - - cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - - cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} - - clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - - clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - - clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} - - code-block-writer@12.0.0: - resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} - - code-error-fragment@0.0.230: - resolution: {integrity: sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==} - engines: {node: '>= 4'} - - code-red@1.0.4: - resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} - - collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - - colorette@1.4.0: - resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} - - colors@1.0.3: - resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} - engines: {node: '>=0.1.90'} - - combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - - command-exists@1.2.9: - resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} - - commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - - commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - commander@9.5.0: - resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} - engines: {node: ^12.20.0 || >=14} - - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} - - compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - config-chain@1.1.13: - resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} - - connect@3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} - engines: {node: '>= 0.10.0'} - - consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} - - constant-case@3.0.4: - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} - - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-hash@2.5.2: - resolution: {integrity: sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - convert-csv-to-json@2.46.0: - resolution: {integrity: sha512-Q7PjRjhECa5nBUEGbsKXvB8YaygVUesF/sYnaoCPTWoiwJEDCbLd2CcFDE1y80Q347IaTQukCQSCP2fR5IW+5g==} - - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - cookie-es@1.0.0: - resolution: {integrity: sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ==} - - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.4.2: - resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} - engines: {node: '>= 0.6'} - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - - core-js-compat@3.36.0: - resolution: {integrity: sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==} - - core-util-is@1.0.2: - resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} - - core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - - cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} - - cosmiconfig@5.2.1: - resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} - engines: {node: '>=4'} - - cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - - create-hash@1.2.0: - resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} - - create-hmac@1.1.7: - resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - cross-fetch@3.1.8: - resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} - - cross-fetch@4.0.0: - resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} - - cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - crossws@0.1.1: - resolution: {integrity: sha512-c9c/o7bS3OjsdpSkvexpka0JNlesBF2JU9B2V1yNsYGwRbAafxhJQ7VI9b48D5bpONz/oxbPGMzBojy9sXoQIQ==} - - crypto-js@3.3.0: - resolution: {integrity: sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==} - - crypto-js@4.2.0: - resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - - css-selector-parser@3.0.5: - resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} - - css-selector-tokenizer@0.8.0: - resolution: {integrity: sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==} - - css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - - css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - - cssstyle@4.0.1: - resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} - engines: {node: '>=18'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - culori@3.3.0: - resolution: {integrity: sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cycle@1.0.3: - resolution: {integrity: sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==} - engines: {node: '>=0.4.0'} - - d@1.0.1: - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} - - dag-jose@4.0.0: - resolution: {integrity: sha512-tw595L3UYoOUT9dSJPbBEG/qpRpw24kRZxa5SLRnlnr+g5L7O8oEs1d3W5TiVA1oJZbthVsf0Vi3zFN66qcEBA==} - - daisyui@4.10.1: - resolution: {integrity: sha512-Ds0Z0Fv+Xf6ZEqV4Q5JIOeKfg83xxnww0Lzid0V94vPtlQ0yYmucEa33zSctsX2VEgBALtmk5zVEqd59pnUbuQ==} - engines: {node: '>=16.9.0'} - - daisyui@4.11.1: - resolution: {integrity: sha512-obT9CUbQdW6eoHwSeT5VwaRrWlwrM4OT5qlfdJ0oQlSIEYhwnEl2+L2fwu5PioLbitwuMdYC2X8I1cyy8Pf6LQ==} - engines: {node: '>=16.9.0'} - - dashdash@1.14.1: - resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} - engines: {node: '>=0.10'} - - data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} - - date-fns@2.30.0: - resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} - engines: {node: '>=0.11'} - - dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - decamelize@4.0.0: - resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} - engines: {node: '>=10'} - - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - - decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - - decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - - decompress-response@3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} - - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - dedent-js@1.0.1: - resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} - - dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} - - deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} - - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - - default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - - default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - - defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - - defer-to-connect@2.0.1: - resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - - delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - - denodeify@1.2.1: - resolution: {integrity: sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==} - - denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - - deprecated-react-native-prop-types@5.0.0: - resolution: {integrity: sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==} - engines: {node: '>=18'} - - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - destr@2.0.3: - resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} - - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - - detect-browser@5.3.0: - resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} - - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - - deterministic-object-hash@2.0.2: - resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} - engines: {node: '>=18'} - - devalue@5.0.0: - resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - - dijkstrajs@1.0.3: - resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - direction@2.0.1: - resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} - hasBin: true - - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - dns-over-http-resolver@2.1.3: - resolution: {integrity: sha512-zjRYFhq+CsxPAouQWzOsxNMvEN+SHisjzhX8EMxd2Y0EG3thvn6wXQgMJLnTDImkhe4jhLbOQpXtL10nALBOSA==} - - dns-packet@5.6.1: - resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} - engines: {node: '>=6'} - - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} - - dom-accessibility-api@0.6.3: - resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - - dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - - dom-walk@0.1.2: - resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} - - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - - domhandler@3.3.0: - resolution: {integrity: sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==} - engines: {node: '>= 4'} - - domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - - domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - - dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} - engines: {node: '>=12'} - - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} - - ds-test@https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0: - resolution: {tarball: https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0} - version: 1.0.0 - - dset@3.1.3: - resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} - engines: {node: '>=4'} - - duplexify@4.1.2: - resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - ecc-jsbn@0.1.2: - resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - - eciesjs@0.3.18: - resolution: {integrity: sha512-RQhegEtLSyIiGJmFTZfvCTHER/fymipXFVx6OwSRYD6hOuy+6Kjpk0dGvIfP9kxn/smBpxQy71uxpGO406ITCw==} - - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - eigenlayer-contracts@https://codeload.github.com/Layr-labs/eigenlayer-contracts/tar.gz/30040aa273edeefe83333fa9183a0a26a84cebf0: - resolution: {tarball: https://codeload.github.com/Layr-labs/eigenlayer-contracts/tar.gz/30040aa273edeefe83333fa9183a0a26a84cebf0} - version: 1.0.0 - - eigenlayer-middleware@https://codeload.github.com/layr-Labs/eigenlayer-middleware/tar.gz/7d49b5181b09198ed275783453aa082bb3766990: - resolution: {tarball: https://codeload.github.com/layr-Labs/eigenlayer-middleware/tar.gz/7d49b5181b09198ed275783453aa082bb3766990} - version: 0.0.0 - - electron-fetch@1.9.1: - resolution: {integrity: sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==} - engines: {node: '>=6'} - - electron-to-chromium@1.4.676: - resolution: {integrity: sha512-uHt4FB8SeYdhcOsj2ix/C39S7sPSNFJpzShjxGOm1KdF4MHyGqGi389+T5cErsodsijojXilYaHIKKqJfqh7uQ==} - - electron-to-chromium@1.5.23: - resolution: {integrity: sha512-mBhODedOXg4v5QWwl21DjM5amzjmI1zw9EPrPK/5Wx7C8jt33bpZNrC7OhHUG3pxRtbLpr3W2dXT+Ph1SsfRZA==} - - elliptic@6.5.4: - resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} - - elliptic@6.5.7: - resolution: {integrity: sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==} - - emmet@2.4.7: - resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} - - emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - encode-utf8@1.0.3: - resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} - - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - - encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - - engine.io-client@6.5.3: - resolution: {integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==} - - engine.io-parser@5.2.2: - resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==} - engines: {node: '>=10.0.0'} - - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - - entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - - envinfo@7.11.1: - resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} - engines: {node: '>=4'} - hasBin: true - - err-code@3.0.1: - resolution: {integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==} - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - - errorhandler@1.5.1: - resolution: {integrity: sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==} - engines: {node: '>= 0.8'} - - es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-module-lexer@1.5.3: - resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} - - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - - es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - - es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} - engines: {node: '>=0.10'} - - es5-ext@0.10.64: - resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} - engines: {node: '>=0.10'} - - es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} - - es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - - es6-promise@4.2.8: - resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - - es6-symbol@3.1.3: - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} - - es6-weak-map@2.0.3: - resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} - - esbuild-register@3.6.0: - resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} - peerDependencies: - esbuild: '>=0.12 <1' - - esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.21.3: - resolution: {integrity: sha512-Kgq0/ZsAPzKrbOjCQcjoSmPoWhlcVnGAUo7jvaLHoxW1Drto0KGkR1xBNg2Cp43b9ImvxmPEJZ9xkfcnqPsfBw==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - eslint-compat-utils@0.1.2: - resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-compat-utils@0.5.0: - resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-config-standard@17.1.0: - resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: ^8.0.1 - eslint-plugin-import: ^2.25.2 - eslint-plugin-n: '^15.0.0 || ^16.0.0 ' - eslint-plugin-promise: ^6.0.0 - - eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - - eslint-module-utils@2.8.0: - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - - eslint-plugin-es-x@7.5.0: - resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=8' - - eslint-plugin-es@3.0.1: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - - eslint-plugin-import@2.29.0: - resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - - eslint-plugin-n@16.6.2: - resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-node@11.1.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=5.16.0' - - eslint-plugin-prettier@5.1.3: - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - - eslint-plugin-promise@6.1.1: - resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - - eslint-plugin-simple-import-sort@12.0.0: - resolution: {integrity: sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==} - peerDependencies: - eslint: '>=5.0.0' - - eslint-plugin-storybook@0.8.0: - resolution: {integrity: sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==} - engines: {node: '>= 18'} - peerDependencies: - eslint: '>=6' - - eslint-plugin-svelte@2.38.0: - resolution: {integrity: sha512-IwwxhHzitx3dr0/xo0z4jjDlb2AAHBPKt+juMyKKGTLlKi1rZfA4qixMwnveU20/JTHyipM6keX4Vr7LZFYc9g==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 - peerDependenciesMeta: - svelte: - optional: true - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-utils@2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.4.1: - resolution: {integrity: sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - eslint@8.55.0: - resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - esm-env@1.0.0: - resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} - - esniff@2.0.1: - resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} - engines: {node: '>=0.10'} - - espree@9.2.0: - resolution: {integrity: sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} - - estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} - - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - - estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} - - estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - eth-block-tracker@7.1.0: - resolution: {integrity: sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg==} - engines: {node: '>=14.0.0'} - - eth-ens-namehash@2.0.8: - resolution: {integrity: sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==} - - eth-json-rpc-filters@6.0.1: - resolution: {integrity: sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig==} - engines: {node: '>=14.0.0'} - - eth-lib@0.1.29: - resolution: {integrity: sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==} - - eth-lib@0.2.8: - resolution: {integrity: sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==} - - eth-query@2.1.2: - resolution: {integrity: sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==} - - eth-rpc-errors@4.0.3: - resolution: {integrity: sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==} - - ethereum-address@0.0.4: - resolution: {integrity: sha512-3Vwr2CikFLezh/zLAPBV6C51jC0fFnf6vjhkoIWsDms/W5MLgAZNhh9nZUxPmg899K8cVFbklrYQBxcD4JmfrA==} - engines: {node: '>= 4.3.0', npm: '>= 3.7.0'} - - ethereum-bloom-filters@1.0.10: - resolution: {integrity: sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==} - - ethereum-cryptography@0.1.3: - resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} - - ethereum-cryptography@1.2.0: - resolution: {integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==} - - ethereum-cryptography@2.1.3: - resolution: {integrity: sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==} - - ethereumjs-abi@0.6.8: - resolution: {integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==} - deprecated: This library has been deprecated and usage is discouraged. - - ethereumjs-util@6.2.1: - resolution: {integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==} - - ethereumjs-util@7.1.5: - resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} - engines: {node: '>=10.0.0'} - - ethers@5.7.2: - resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==} - - ethers@6.13.2: - resolution: {integrity: sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg==} - engines: {node: '>=14.0.0'} - - ethjs-unit@0.1.6: - resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} - engines: {node: '>=6.5.0', npm: '>=3'} - - ethjs-util@0.1.6: - resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} - engines: {node: '>=6.5.0', npm: '>=3'} - - event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - eventemitter2@6.4.9: - resolution: {integrity: sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==} - - eventemitter3@4.0.4: - resolution: {integrity: sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==} - - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - - evp_bytestokey@1.0.3: - resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - express@4.21.0: - resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==} - engines: {node: '>= 0.10.0'} - - expressive-code@0.35.6: - resolution: {integrity: sha512-+mx+TPTbMqgo0mL92Xh9QgjW0kSQIsEivMgEcOnaqKqL7qCw8Vkqc5Rg/di7ZYw4aMUSr74VTc+w8GQWu05j1g==} - - ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - - extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - - extension-port-stream@2.1.1: - resolution: {integrity: sha512-qknp5o5rj2J9CRKfVB8KJr+uXQlrojNZzdESUPhKYLXf97TPcGf6qWWKmpsNNtUyOdzFhab1ON0jzouNxHHvow==} - engines: {node: '>=12.0.0'} - - extension-port-stream@3.0.0: - resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} - engines: {node: '>=12.0.0'} - - external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - - extsprintf@1.3.0: - resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} - engines: {'0': node >=0.6.0} - - eyes@0.1.8: - resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} - engines: {node: '> 0.1.90'} - - fast-base64-decode@1.0.0: - resolution: {integrity: sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==} - - fast-deep-equal@2.0.1: - resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - - fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fast-redact@3.3.0: - resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==} - engines: {node: '>=6'} - - fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - - fast-xml-parser@4.2.5: - resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} - hasBin: true - - fast-xml-parser@4.3.4: - resolution: {integrity: sha512-utnwm92SyozgA3hhH2I8qldf2lBqm6qHOICawRNRFu1qMe3+oqr+GcXjGqTmXTMGE5T4eC03kr/rlh5C1IRdZA==} - hasBin: true - - fastparse@1.1.2: - resolution: {integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - - fdir@6.3.0: - resolution: {integrity: sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - filesize@10.1.1: - resolution: {integrity: sha512-L0cdwZrKlwZQkMSFnCflJ6J2Y+5egO/p3vgRSDQGxQt++QbUZe5gMbRO6kg6gzwQDPvq2Fk9AmoxUNfZ5gdqaQ==} - engines: {node: '>= 10.4.0'} - - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - filter-obj@1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} - engines: {node: '>=0.10.0'} - - finalhandler@1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} - engines: {node: '>= 0.8'} - - finalhandler@1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} - engines: {node: '>= 0.8'} - - find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} - - find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - - find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - - find-up-simple@1.0.0: - resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} - engines: {node: '>=18'} - - find-up@2.1.0: - resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} - engines: {node: '>=4'} - - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flat@4.1.1: - resolution: {integrity: sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==} - hasBin: true - - flat@5.0.2: - resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} - hasBin: true - - flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - - flattie@1.1.1: - resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} - engines: {node: '>=8'} - - flow-enums-runtime@0.0.6: - resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - - flow-parser@0.206.0: - resolution: {integrity: sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==} - engines: {node: '>=0.4.0'} - - follow-redirects@1.15.5: - resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - - foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - - forever-agent@0.6.1: - resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - - forge-std@https://codeload.github.com/foundry-rs/forge-std/tar.gz/36c303b7ffdd842d06b1ec2744c9b9b5fb3083f3: - resolution: {tarball: https://codeload.github.com/foundry-rs/forge-std/tar.gz/36c303b7ffdd842d06b1ec2744c9b9b5fb3083f3} - version: 1.7.5 - - forge-std@https://codeload.github.com/foundry-rs/forge-std/tar.gz/8f24d6b04c92975e0795b5868aa0d783251cdeaa: - resolution: {tarball: https://codeload.github.com/foundry-rs/forge-std/tar.gz/8f24d6b04c92975e0795b5868aa0d783251cdeaa} - version: 1.9.3 - - form-data-encoder@1.7.1: - resolution: {integrity: sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==} - - form-data-encoder@2.1.4: - resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} - engines: {node: '>= 14.17'} - - form-data@2.3.3: - resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} - engines: {node: '>= 0.12'} - - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fp-ts@1.19.3: - resolution: {integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==} - - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - - fs-extra@4.0.3: - resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==} - - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - - fs-minipass@1.2.7: - resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - - functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - futoin-hkdf@1.5.3: - resolution: {integrity: sha512-SewY5KdMpaoCeh7jachEWFsh1nNlaDjNHZXWqL5IGwtpEYHTgkr2+AMCgNwKWkcc0wpSYrZfR7he4WdmHFtDxQ==} - engines: {node: '>=8'} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} - engines: {node: '>=18'} - - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - - get-iterator@1.0.2: - resolution: {integrity: sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==} - - get-port-please@3.1.2: - resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} - - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - - get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} - - getpass@0.1.7: - resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - - github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - glob@11.0.0: - resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} - engines: {node: 20 || >=22} - hasBin: true - - glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - deprecated: Glob versions prior to v9 are no longer supported - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - - global@4.4.0: - resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} - - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} - engines: {node: '>=8'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - - globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - - got@11.8.6: - resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} - engines: {node: '>=10.19.0'} - - got@12.1.0: - resolution: {integrity: sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==} - engines: {node: '>=14.16'} - - got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} - - graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - - h3@1.10.2: - resolution: {integrity: sha512-r1iNNcFGL4G9pL3lgYxwX0O2ZmqdKqhILAJsnlw5icn5I1QHnADM4TgVdYRtHUqy+NntVpHIEFwnw/XCbebICg==} - - handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} - hasBin: true - - har-schema@2.0.0: - resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} - engines: {node: '>=4'} - - har-validator@5.1.5: - resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} - engines: {node: '>=6'} - deprecated: this library is no longer supported - - hardhat@2.22.13: - resolution: {integrity: sha512-psVJX4FSXDpSXwsU8OcKTJN04pQEj9cFBMX5OPko+OFwbIoiOpvRmafa954/UaA1934npTj8sV3gaTSdx9bPbA==} - hasBin: true - peerDependencies: - ts-node: '*' - typescript: '*' - peerDependenciesMeta: - ts-node: - optional: true - typescript: - optional: true - - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - - hash-base@3.1.0: - resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} - engines: {node: '>=4'} - - hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - - hashlru@2.3.0: - resolution: {integrity: sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==} - - hasown@2.0.1: - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} - engines: {node: '>= 0.4'} - - hast-util-embedded@3.0.0: - resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} - - hast-util-from-html@2.0.1: - resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} - - hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - - hast-util-has-property@3.0.0: - resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} - - hast-util-heading-rank@3.0.0: - resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} - - hast-util-is-body-ok-link@3.0.0: - resolution: {integrity: sha512-VFHY5bo2nY8HiV6nir2ynmEB1XkxzuUffhEGeVx7orbu/B1KaGyeGgMZldvMVx5xWrDlLLG/kQ6YkJAMkBEx0w==} - - hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - - hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - - hast-util-phrasing@3.0.1: - resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} - - hast-util-raw@9.0.3: - resolution: {integrity: sha512-ICWvVOF2fq4+7CMmtCPD5CM4QKjPbHpPotE6+8tDooV0ZuyJVUzHsrNX+O5NaRbieTf0F7FfeBOMAwi6Td0+yQ==} - - hast-util-select@6.0.2: - resolution: {integrity: sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==} - - hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - - hast-util-to-html@9.0.1: - resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} - - hast-util-to-html@9.0.2: - resolution: {integrity: sha512-RP5wNpj5nm1Z8cloDv4Sl4RS8jH5HYa0v93YB6Wb4poEzgMo/dAAL0KcT4974dCjcNG5pkLqTImeFHHCwwfY3g==} - - hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} - - hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - - hast-util-to-string@3.0.0: - resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} - - hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} - - hastscript@9.0.0: - resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} - - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - - header-case@2.0.4: - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} - - hermes-estree@0.15.0: - resolution: {integrity: sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ==} - - hermes-estree@0.19.1: - resolution: {integrity: sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==} - - hermes-parser@0.15.0: - resolution: {integrity: sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==} - - hermes-parser@0.19.1: - resolution: {integrity: sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==} - - hermes-profile-transformer@0.0.6: - resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==} - engines: {node: '>=8'} - - hey-listen@1.0.8: - resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} - - hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - - hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - - html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - html-escaper@3.0.3: - resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} - - html-parse-stringify@3.0.1: - resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} - - html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - - html-whitespace-sensitive-tag-names@3.0.0: - resolution: {integrity: sha512-KlClZ3/Qy5UgvpvVvDomGhnQhNWH5INE8GwvSIQ9CWt1K0zbbXrl7eN5bWaafOZgtmO3jMPwUqmrmEwinhPq1w==} - - htmlparser2-svelte@4.1.0: - resolution: {integrity: sha512-+4f4RBFz7Rj2Hp0ZbFbXC+Kzbd6S9PgjiuFtdT76VMNgKogrEZy0pG2UrPycPbrZzVEIM5lAT3lAdkSTCHLPjg==} - - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - http-https@1.0.0: - resolution: {integrity: sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==} - - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - - http-shutdown@1.2.2: - resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - http-signature@1.2.0: - resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} - engines: {node: '>=0.8', npm: '>=1.3.7'} - - http2-wrapper@1.0.3: - resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} - engines: {node: '>=10.19.0'} - - http2-wrapper@2.2.1: - resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} - engines: {node: '>=10.19.0'} - - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} - - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} - engines: {node: '>= 14'} - - human-id@1.0.2: - resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - - i18next-browser-languagedetector@7.1.0: - resolution: {integrity: sha512-cr2k7u1XJJ4HTOjM9GyOMtbOA47RtUoWRAtt52z43r3AoMs2StYKyjS3URPhzHaf+mn10hY9dZWamga5WPQjhA==} - - i18next-browser-languagedetector@7.2.0: - resolution: {integrity: sha512-U00DbDtFIYD3wkWsr2aVGfXGAj2TgnELzOX9qv8bT0aJtvPV9CRO77h+vgmHFBMe7LAxdwvT/7VkCWGya6L3tA==} - - i18next@22.5.1: - resolution: {integrity: sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA==} - - i18next@23.11.5: - resolution: {integrity: sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - idb-keyval@6.2.1: - resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} - - idna-uts46-hx@2.3.1: - resolution: {integrity: sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==} - engines: {node: '>=4.0.0'} - - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - - ignore-walk@5.0.1: - resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - ignore@4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - - ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} - engines: {node: '>= 4'} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - image-size@1.1.1: - resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} - engines: {node: '>=16.x'} - hasBin: true - - immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - - immutable@4.3.7: - resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} - - import-fresh@2.0.0: - resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} - engines: {node: '>=4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} - - import-meta-resolve@4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - inflight@1.0.6: - resolution: {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. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - - inline-style-parser@0.2.3: - resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} - - interface-datastore@7.0.4: - resolution: {integrity: sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - interface-datastore@8.2.11: - resolution: {integrity: sha512-9E0iXehfp/j0UbZ2mvlYB4K9pP7uQBCppfuy8WHs1EHF6wLQrM9+zwyX+8Qt6HnH4GKZRyXX/CNXm6oD4+QYgA==} - - interface-store@3.0.4: - resolution: {integrity: sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - interface-store@5.1.8: - resolution: {integrity: sha512-7na81Uxkl0vqk0CBPO5PvyTkdaJBaezwUJGsMOz7riPOq0rJt+7W31iaopaMICWea/iykUsvNlPx/Tc+MxC3/w==} - - internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} - engines: {node: '>= 0.4'} - - intl-messageformat@10.5.11: - resolution: {integrity: sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==} - - invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - - io-ts@1.10.4: - resolution: {integrity: sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==} - - ioredis@5.3.2: - resolution: {integrity: sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==} - engines: {node: '>=12.22.0'} - - ip@1.1.9: - resolution: {integrity: sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - ipfs-core-types@0.14.1: - resolution: {integrity: sha512-4ujF8NlM9bYi2I6AIqPP9wfGGX0x/gRCkMoFdOQfxxrFg6HcAdfS+0/irK8mp4e7znOHWReOHeWqCGw+dAPwsw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details - - ipfs-core-utils@0.18.1: - resolution: {integrity: sha512-P7jTpdfvlyBG3JR4o+Th3QJADlmXmwMxbkjszXry6VAjfSfLIIqXsdeYPoVRkV69GFEeQozuz2k/jR+U8cUH/Q==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details - - ipfs-http-client@60.0.1: - resolution: {integrity: sha512-amwM5TNuf077J+/q27jPHfatC05vJuIbX6ZnlYLjc2QsjOCKsORNBqV3brNw7l+fPrijV1yrwEDLG3JEnKsfMw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details - - ipfs-unixfs@9.0.1: - resolution: {integrity: sha512-jh2CbXyxID+v3jLml9CqMwjdSS9ZRnsGfQGGPOfem0/hT/L48xUeTPvh7qLFWkZcIMhZtG+fnS1teei8x5uGBg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - ipfs-utils@9.0.14: - resolution: {integrity: sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - iron-webcrypto@1.0.0: - resolution: {integrity: sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg==} - - is-absolute-url@4.0.1: - resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - - is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - - is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-directory@0.3.1: - resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} - engines: {node: '>=0.10.0'} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - - is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - - is-electron@2.2.2: - resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} - - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} - engines: {node: '>=4'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-function@1.0.2: - resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} - - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-hex-prefixed@1.0.0: - resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} - engines: {node: '>=6.5.0', npm: '>=3'} - - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - - is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - - is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - - is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - - is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - - is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - - is-promise@2.2.2: - resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} - - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - - is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - is-unicode-supported@2.0.0: - resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} - engines: {node: '>=18'} - - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - - is-wsl@1.1.0: - resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} - engines: {node: '>=4'} - - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - - is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} - - is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} - - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} - - iso-url@1.2.1: - resolution: {integrity: sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==} - engines: {node: '>=12'} - - isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - - isomorphic-unfetch@3.1.0: - resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} - - isows@1.0.3: - resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==} - peerDependencies: - ws: '*' - - isows@1.0.4: - resolution: {integrity: sha512-hEzjY+x9u9hPmBom9IIAqdJCwNLax+xrPb51vEPpERoFlIxgmZcHzsT5jKG06nvInKOBGvReAVz80Umed5CczQ==} - peerDependencies: - ws: '*' - - isstream@0.1.2: - resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@5.0.4: - resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - it-all@1.0.6: - resolution: {integrity: sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==} - - it-all@2.0.1: - resolution: {integrity: sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - it-first@2.0.1: - resolution: {integrity: sha512-noC1oEQcWZZMUwq7VWxHNLML43dM+5bviZpfmkxkXlvBe60z7AFRqpZSga9uQBo792jKv9otnn1IjA4zwgNARw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - it-glob@1.0.2: - resolution: {integrity: sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==} - - it-last@2.0.1: - resolution: {integrity: sha512-uVMedYW0wa2Cx0TAmcOCLbfuLLII7+vyURmhKa8Zovpd+aBTMsmINtsta2n364wJ5qsEDBH+akY1sUtAkaYBlg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - it-map@2.0.1: - resolution: {integrity: sha512-a2GcYDHiAh/eSU628xlvB56LA98luXZnniH2GlD0IdBzf15shEq9rBeb0Rg3o1SWtNILUAwqmQxEXcewGCdvmQ==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - it-peekable@2.0.1: - resolution: {integrity: sha512-fJ/YTU9rHRhGJOM2hhQKKEfRM6uKB9r4yGGFLBHqp72ACC8Yi6+7/FhuBAMG8cpN6mLoj9auVX7ZJ3ul6qFpTA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - it-pushable@3.2.3: - resolution: {integrity: sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==} - - it-stream-types@1.0.5: - resolution: {integrity: sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - it-stream-types@2.0.1: - resolution: {integrity: sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - it-to-stream@1.0.0: - resolution: {integrity: sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==} - - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - - jackspeak@4.0.1: - resolution: {integrity: sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==} - engines: {node: 20 || >=22} - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true - - joi@17.12.1: - resolution: {integrity: sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==} - - js-cookie@2.2.1: - resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} - - js-sha3@0.5.7: - resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==} - - js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-tokens@8.0.3: - resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsbn@0.1.1: - resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} - - jsc-android@250231.0.0: - resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==} - - jsc-safe-url@0.2.4: - resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} - - jscodeshift@0.14.0: - resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==} - hasBin: true - peerDependencies: - '@babel/preset-env': ^7.1.6 - - jsdom@24.0.0: - resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==} - engines: {node: '>=18'} - peerDependencies: - canvas: ^2.11.2 - peerDependenciesMeta: - canvas: - optional: true - - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-rpc-engine@6.1.0: - resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} - engines: {node: '>=10.0.0'} - - json-rpc-middleware-stream@4.2.3: - resolution: {integrity: sha512-4iFb0yffm5vo3eFKDbQgke9o17XBcLQ2c3sONrXSbcOLzP8LTojqo8hRGVgtJShhm5q4ZDSNq039fAx9o65E1w==} - engines: {node: '>=14.0.0'} - - json-rpc-random-id@1.0.1: - resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-schema@0.4.0: - resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json-stream-stringify@3.1.6: - resolution: {integrity: sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==} - engines: {node: '>=7.10.1'} - - json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - - json-to-ast@2.1.0: - resolution: {integrity: sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==} - engines: {node: '>= 4'} - - json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonc-parser@2.3.1: - resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} - - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - jsonpointer@5.0.1: - resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} - engines: {node: '>=0.10.0'} - - jsprim@1.4.2: - resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} - engines: {node: '>=0.6.0'} - - jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - - keccak256@1.0.6: - resolution: {integrity: sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==} - - keccak@3.0.4: - resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} - engines: {node: '>=10.0.0'} - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - keyvaluestorage-interface@1.0.0: - resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - - known-css-properties@0.30.0: - resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} - - latest-version@7.0.0: - resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} - engines: {node: '>=14.16'} - - lefthook-darwin-arm64@1.6.10: - resolution: {integrity: sha512-Hh11OkoKG7FEOByS1dcgNV7ETq45VmwBbw0VPTiBznyfOG4k+pi0fIdc1qbmbxvYqNE0r420QR/Q3bimaa4Kxg==} - cpu: [arm64] - os: [darwin] - - lefthook-darwin-x64@1.6.10: - resolution: {integrity: sha512-FiOB0t5OBcQ8OnG/LSdfUYj736SJdlLjWuOZ4wTlJ7EUrHditieap6VNAxwMmFVyQN0X2ZwKWytwY35y+Hflhw==} - cpu: [x64] - os: [darwin] - - lefthook-freebsd-arm64@1.6.10: - resolution: {integrity: sha512-IxGgS3RrNwk3Kr83o5SQhGxqppQi7fu2t//nsp6ocgnJeStrTtXZJOrel2VohzrFxpzQdJVXBGgUGLXtY8t8qw==} - cpu: [arm64] - os: [freebsd] - - lefthook-freebsd-x64@1.6.10: - resolution: {integrity: sha512-sFSe+dGLa4iBblWAhAGTP9moarcbFtFAH6aaCeyqSX51O6p9VPdGjqNtcE8aGbGAk4lO6v1ScRjk5ogMSinJwQ==} - cpu: [x64] - os: [freebsd] - - lefthook-linux-arm64@1.6.10: - resolution: {integrity: sha512-fXnKiNdRIW+FRvc1keVrvWX5EqIhVFfPjcy+PbsKdxiWRXgjtidi6LPmQ8eosH0DC9PxZ0mpdCMf40FHEZLbQA==} - cpu: [arm64] - os: [linux] - - lefthook-linux-x64@1.6.10: - resolution: {integrity: sha512-bm6l2GOFnmYreZxmHb47QeOiFAItttOOxvCEX1okIRD7JbUC+lGC9evW5GJv/ltjZBoTDYEtQAUa+BpHTGuY2A==} - cpu: [x64] - os: [linux] - - lefthook-windows-arm64@1.6.10: - resolution: {integrity: sha512-pFxT8KbOMzGxj6cz4glHYwQSNC7XCuy9RDqIO0AxPlpATsCpapkF4ngDxBT1iFv2VhdeweMa7RXUDsMAGQA4Qw==} - cpu: [arm64] - os: [win32] - - lefthook-windows-x64@1.6.10: - resolution: {integrity: sha512-fcDnUSTv95AdLvm0NIrn3jBWXuRq8SlbDDjkkB5OHLiSmjz4eOr6wyD7xceDp33zZgZmWFzHebJngxxcIaUuHw==} - cpu: [x64] - os: [win32] - - lefthook@1.6.10: - resolution: {integrity: sha512-HeVjsDCrHLe9htQHbLuQJu2YdLK6Tl5bh36fOpmXqckEXTI0BDR0Y5JYc7G5Inj4YXQsc51a9dUDZMeniSnSag==} - hasBin: true - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - - lighthouse-logger@1.4.2: - resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - listhen@1.6.0: - resolution: {integrity: sha512-z0RcEXVX5oTpY1bO02SKoTU/kmZSrFSngNNzHRM6KICR17PTq7ANush6AE6ztGJwJD4RLpBrVHd9GnV51J7s3w==} - hasBin: true - - lit-element@3.3.3: - resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} - - lit-element@4.0.4: - resolution: {integrity: sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==} - - lit-html@2.8.0: - resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==} - - lit-html@3.1.2: - resolution: {integrity: sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==} - - lit@2.8.0: - resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==} - - lit@3.1.0: - resolution: {integrity: sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==} - - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - - locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - - locate-path@2.0.0: - resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} - engines: {node: '>=4'} - - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - - lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - - lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - - lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - - lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - - log-symbols@5.1.0: - resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} - engines: {node: '>=12'} - - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} - engines: {node: '>=18'} - - logkitty@0.7.1: - resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==} - hasBin: true - - lokijs@1.5.12: - resolution: {integrity: sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==} - - long@5.2.3: - resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} - - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - - loupe@3.1.1: - resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} - - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - - lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - - lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} - engines: {node: 14 || >=16.14} - - lru-cache@11.0.1: - resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} - engines: {node: 20 || >=22} - - lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - lru-queue@0.1.0: - resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} - - lru_map@0.3.3: - resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} - - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - - magic-string@0.30.11: - resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} - - magic-string@0.30.7: - resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} - engines: {node: '>=12'} - - magic-string@0.30.9: - resolution: {integrity: sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==} - engines: {node: '>=12'} - - magicast@0.3.3: - resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} - - magicast@0.3.5: - resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} - - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - - map-or-similar@1.5.0: - resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} - - markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} - - markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - - markdown-to-jsx@7.5.0: - resolution: {integrity: sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw==} - engines: {node: '>= 10'} - peerDependencies: - react: '>= 0.14.0' - - marky@1.2.5: - resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} - - md5.js@1.3.5: - resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} - - mdast-util-definitions@6.0.0: - resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} - - mdast-util-directive@3.0.0: - resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} - - mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} - - mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} - - mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} - - mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} - - mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - - mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - - mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - - mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - - mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} - - mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} - - mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} - - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} - - mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - - memoizee@0.4.15: - resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} - - memoizerific@1.11.3: - resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} - - memorystream@0.3.1: - resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} - engines: {node: '>= 0.10.0'} - - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - - merge-options@3.0.4: - resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} - engines: {node: '>=10'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - merkletreejs@0.4.0: - resolution: {integrity: sha512-a48Ta5kWiVNBgeEbZVMm6FB1hBlp6vEuou/XnZdlkmd2zq6NZR6Sh2j+kR1B0iOZIXrTMcigBYzZ39MLdYhm1g==} - engines: {node: '>= 7.6.0'} - - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - - metro-babel-transformer@0.80.6: - resolution: {integrity: sha512-ssuoVC4OzqaOt3LpwfUbDfBlFGRu9v1Yf2JJnKPz0ROYHNjSBws4aUesqQQ/Ea8DbiH7TK4j4cJmm+XjdHmgqA==} - engines: {node: '>=18'} - - metro-cache-key@0.80.6: - resolution: {integrity: sha512-DFmjQacC8m/S3HpELklLMWkPGP/fZPX3BSgjd0xQvwIvWyFwk8Nn/lfp/uWdEVDtDSIr64/anXU5uWohGwlWXw==} - engines: {node: '>=18'} - - metro-cache@0.80.6: - resolution: {integrity: sha512-NP81pHSPkzs+iNlpVkJqijrpcd6lfuDAunYH9/Rn8oLNz0yLfkl8lt+xOdUU4IkFt3oVcTBEFCnzAzv4B8YhyA==} - engines: {node: '>=18'} - - metro-config@0.80.6: - resolution: {integrity: sha512-vHYYvJpRTWYbmvqlR7i04xQpZCHJ6yfZ/xIcPdz2ssbdJGGJbiT1Aar9wr8RAhsccSxdJgfE5B1DB8Mo+DnhIg==} - engines: {node: '>=18'} - - metro-core@0.80.6: - resolution: {integrity: sha512-fn4rryTUAwzFJWj7VIPDH4CcW/q7MV4oGobqR6NsuxZoIGYrVpK7pBasumu5YbCqifuErMs5s23BhmrDNeZURw==} - engines: {node: '>=18'} - - metro-file-map@0.80.6: - resolution: {integrity: sha512-S3CUqvpXpc+q3q+hCEWvFKhVqgq0VmXdZQDF6u7ue86E2elq1XLnfLOt9JSpwyhpMQRyysjSCnd/Yh6GZMNHoQ==} - engines: {node: '>=18'} - - metro-minify-terser@0.80.6: - resolution: {integrity: sha512-83eZaH2+B+jP92KuodPqXknzwmiboKAuZY4doRfTEEXAG57pNVNN6cqSRJlwDnmaTBKRffxoncBXbYqHQgulgg==} - engines: {node: '>=18'} - - metro-resolver@0.80.6: - resolution: {integrity: sha512-R7trfglG4zY4X9XyM9cvuffAhQ9W1reWoahr1jdEWa6rOI8PyM0qXjcsb8l+fsOQhdSiVlkKcYAmkyrs1S/zrA==} - engines: {node: '>=18'} - - metro-runtime@0.80.6: - resolution: {integrity: sha512-21GQVd0pp2nACoK0C2PL8mBsEhIFUFFntYrWRlYNHtPQoqDzddrPEIgkyaABGXGued+dZoBlFQl+LASlmmfkvw==} - engines: {node: '>=18'} - - metro-source-map@0.80.6: - resolution: {integrity: sha512-lqDuSLctWy9Qccu4Zl0YB1PzItpsqcKGb1nK0aDY+lzJ26X65OCib2VzHlj+xj7e4PiIKOfsvDCczCBz4cnxdg==} - engines: {node: '>=18'} - - metro-symbolicate@0.80.6: - resolution: {integrity: sha512-SGwKeBi+lK7NmM5+EcW6DyRRa9HmGSvH0LJtlT4XoRMbpxzsLYs0qUEA+olD96pOIP+ta7I8S30nQr2ttqgO8A==} - engines: {node: '>=18'} - hasBin: true - - metro-transform-plugins@0.80.6: - resolution: {integrity: sha512-e04tdTC5Fy1vOQrTTXb5biao0t7nR/h+b1IaBTlM5UaHaAJZr658uVOoZhkRxKjbhF2mIwJ/8DdorD2CA15BCg==} - engines: {node: '>=18'} - - metro-transform-worker@0.80.6: - resolution: {integrity: sha512-jV+VgCLiCj5jQadW/h09qJaqDreL6XcBRY52STCoz2xWn6WWLLMB5nXzQtvFNPmnIOps+Xu8+d5hiPcBNOhYmA==} - engines: {node: '>=18'} - - metro@0.80.6: - resolution: {integrity: sha512-f6Nhnht9TxVRP6zdBq9J2jNdeDBxRmJFnjxhQS1GeCpokBvI6fTXq+wHTLz5jZA+75fwbkPSzBxBJzQa6xi0AQ==} - engines: {node: '>=18'} - hasBin: true - - micro-ftch@0.3.1: - resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} - - micromark-core-commonmark@2.0.1: - resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} - - micromark-extension-directive@3.0.0: - resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} - - micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} - - micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} - - micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} - - micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} - - micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - - micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} - - micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - - micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - - micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} - - micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} - - micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} - - micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - - micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - - micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - - micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} - - micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - - micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - - micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} - - micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - - micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - - micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - - micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - - micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - - micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} - - micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - - micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} - - micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - - micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - - micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - - micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - - micromark-util-subtokenize@2.0.1: - resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} - - micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - - micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - - micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mime@2.6.0: - resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} - engines: {node: '>=4.0.0'} - hasBin: true - - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - mimic-function@5.0.1: - resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} - engines: {node: '>=18'} - - mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - - mimic-response@4.0.0: - resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - min-document@2.19.0: - resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minidenticons@4.2.1: - resolution: {integrity: sha512-oWfFivA0lOx/V/bO/YIJbthB26lV8JXYvhnv9zM2hNd3fzsHTXQ6c6bWZPcvhD3nnOB+lQk/D9lF43BXixrN8g==} - engines: {node: '>=15.14.0'} - - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - - minimatch@10.0.1: - resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} - engines: {node: 20 || >=22} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} - - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - - minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@2.9.0: - resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} - - minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - minizlib@1.3.3: - resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} - - mipd@0.0.5: - resolution: {integrity: sha512-gbKA784D2WKb5H/GtqEv+Ofd1S9Zj+Z/PGDIl1u1QAbswkxD28BQ5bSXQxkeBzPBABg1iDSbiwGG1XqlOxRspA==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - - mipd@0.0.7: - resolution: {integrity: sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - - mkdirp-promise@5.0.1: - resolution: {integrity: sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==} - engines: {node: '>=4'} - deprecated: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that. - - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - - mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - - mkdirp@2.1.6: - resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} - engines: {node: '>=10'} - hasBin: true - - mlly@1.5.0: - resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} - - mnemonist@0.38.5: - resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} - - mocha@10.7.3: - resolution: {integrity: sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==} - engines: {node: '>= 14.0.0'} - hasBin: true - - mock-fs@4.14.0: - resolution: {integrity: sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==} - - moralis@2.26.2: - resolution: {integrity: sha512-9CfzUuPvTZrwyjQQ+rtpvnIXKR6G793iWDXCBUpZomAUHk/3KcR80KwuBZBAvH9uIfl7MGqkp3C0uk5vX2714Q==} - - motion@10.16.2: - resolution: {integrity: sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==} - - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - - mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - - multibase@0.6.1: - resolution: {integrity: sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==} - deprecated: This module has been superseded by the multiformats module - - multibase@0.7.0: - resolution: {integrity: sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==} - deprecated: This module has been superseded by the multiformats module - - multicodec@0.5.7: - resolution: {integrity: sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==} - deprecated: This module has been superseded by the multiformats module - - multicodec@1.0.4: - resolution: {integrity: sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==} - deprecated: This module has been superseded by the multiformats module - - multiformats@11.0.2: - resolution: {integrity: sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - multiformats@12.1.3: - resolution: {integrity: sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - multiformats@13.1.0: - resolution: {integrity: sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ==} - - multiformats@9.9.0: - resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} - - multihashes@0.4.21: - resolution: {integrity: sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==} - - murky@https://codeload.github.com/dmfxyz/murky/tar.gz/5feccd1253d7da820f7cccccdedf64471025455d: - resolution: {tarball: https://codeload.github.com/dmfxyz/murky/tar.gz/5feccd1253d7da820f7cccccdedf64471025455d} - version: 0.0.0 - - mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - - nano-json-stream-parser@0.1.2: - resolution: {integrity: sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - nanoid@4.0.2: - resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} - engines: {node: ^14 || ^16 || >=18} - hasBin: true - - native-fetch@3.0.0: - resolution: {integrity: sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==} - peerDependencies: - node-fetch: '*' - - native-fetch@4.0.2: - resolution: {integrity: sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==} - peerDependencies: - undici: '*' - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - - neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - - neotraverse@0.6.18: - resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} - engines: {node: '>= 10'} - - next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - - nlcst-to-string@4.0.0: - resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} - - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - - nocache@3.0.4: - resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==} - engines: {node: '>=12.0.0'} - - node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} - - node-addon-api@2.0.2: - resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} - - node-addon-api@5.1.0: - resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} - - node-addon-api@7.1.0: - resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} - engines: {node: ^16 || ^18 || >= 20} - - node-dir@0.1.17: - resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} - engines: {node: '>= 0.10.5'} - - node-fetch-native@1.6.2: - resolution: {integrity: sha512-69mtXOFZ6hSkYiXAVB5SqaRvrbITC/NPyqv7yuu/qw0nmgPyYbIMYYNIDhNtwPrzk0ptrimrLz/hhjvm4w5Z+w==} - - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - - node-gyp-build@4.8.0: - resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} - hasBin: true - - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - - node-stream-zip@1.15.0: - resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} - engines: {node: '>=0.12.0'} - - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - - normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - - normalize-url@8.0.0: - resolution: {integrity: sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==} - engines: {node: '>=14.16'} - - not@0.1.0: - resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} - - npm-bundled@2.0.1: - resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - npm-normalize-package-bin@2.0.0: - resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - npm-packlist@5.1.3: - resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - - nullthrows@1.1.1: - resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} - - number-to-bn@1.7.0: - resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==} - engines: {node: '>=6.5.0', npm: '>=3'} - - nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - - oauth-sign@0.9.0: - resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} - - ob1@0.80.6: - resolution: {integrity: sha512-nlLGZPMQ/kbmkdIb5yvVzep1jKUII2x6ehNsHpgy71jpnJMW7V+KsB3AjYI2Ajb7UqMAMNjlssg6FUodrEMYzg==} - engines: {node: '>=18'} - - obj-multiplex@1.0.0: - resolution: {integrity: sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==} - - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} - - object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - - object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - - obliterator@2.0.4: - resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} - - oboe@2.1.5: - resolution: {integrity: sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==} - - ofetch@1.3.3: - resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} - - ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} - - on-exit-leak-free@0.2.0: - resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} - - on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} - - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - onetime@7.0.0: - resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} - engines: {node: '>=18'} - - oniguruma-to-js@0.4.3: - resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} - - open@6.4.0: - resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==} - engines: {node: '>=8'} - - open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} - engines: {node: '>=8'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - - openapi-types@12.1.3: - resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} - - optimism@https://codeload.github.com/ethereum-optimism/optimism/tar.gz/ab3a54febb36398539fd3b849c222b7e70169dc8: - resolution: {tarball: https://codeload.github.com/ethereum-optimism/optimism/tar.gz/ab3a54febb36398539fd3b849c222b7e70169dc8} - version: 1.0.0 - engines: {node: '>=16', pnpm: '>=9'} - - optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - - ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - - ora@6.3.1: - resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - ora@8.1.0: - resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} - engines: {node: '>=18'} - - os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - - outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - - p-cancelable@2.1.1: - resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} - engines: {node: '>=8'} - - p-cancelable@3.0.0: - resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} - engines: {node: '>=12.20'} - - p-defer@3.0.0: - resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} - engines: {node: '>=8'} - - p-defer@4.0.1: - resolution: {integrity: sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==} - engines: {node: '>=12'} - - p-fifo@1.0.0: - resolution: {integrity: sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==} - - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - - p-limit@1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - - p-limit@6.1.0: - resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} - engines: {node: '>=18'} - - p-locate@2.0.0: - resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} - engines: {node: '>=4'} - - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - - p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} - - p-map@7.0.2: - resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} - engines: {node: '>=18'} - - p-queue@8.0.1: - resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} - engines: {node: '>=18'} - - p-timeout@6.1.2: - resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} - engines: {node: '>=14.16'} - - p-try@1.0.0: - resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} - engines: {node: '>=4'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - p256-verifier#v0.1.0@https://codeload.github.com/taikoxyz/p256-verifier/tar.gz/6ef45b117642786b08a37b4c37c6a6ce151166da: - resolution: {tarball: https://codeload.github.com/taikoxyz/p256-verifier/tar.gz/6ef45b117642786b08a37b4c37c6a6ce151166da} - version: 0.0.0 - - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - - package-json@8.1.1: - resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} - engines: {node: '>=14.16'} - - package-manager-detector@0.2.0: - resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} - - pagefind@1.1.0: - resolution: {integrity: sha512-1nmj0/vfYcMxNEQj0YDRp6bTVv9hI7HLdPhK/vBBYlrnwjATndQvHyicj5Y7pUHrpCFZpFnLVQXIF829tpFmaw==} - hasBin: true - - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - - param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-duration@1.1.0: - resolution: {integrity: sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ==} - - parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} - - parse-headers@2.0.5: - resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} - - parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-latin@7.0.0: - resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} - - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} - - path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - - path-case@3.0.4: - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} - - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - - path-to-regexp@0.1.10: - resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} - - path-to-regexp@6.2.2: - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} - - pbkdf2@3.1.2: - resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} - engines: {node: '>=0.12'} - - performance-now@2.1.0: - resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - - picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - picomatch@3.0.1: - resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} - engines: {node: '>=10'} - - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - - pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pify@5.0.0: - resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} - engines: {node: '>=10'} - - pino-abstract-transport@0.5.0: - resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} - - pino-std-serializers@4.0.0: - resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} - - pino@7.11.0: - resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} - hasBin: true - - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - - pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - - playwright-core@1.43.1: - resolution: {integrity: sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==} - engines: {node: '>=16'} - hasBin: true - - playwright@1.43.1: - resolution: {integrity: sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==} - engines: {node: '>=16'} - hasBin: true - - pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - - pngjs@5.0.0: - resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} - engines: {node: '>=10.13.0'} - - polished@4.3.1: - resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} - engines: {node: '>=10'} - - pony-cause@2.1.10: - resolution: {integrity: sha512-3IKLNXclQgkU++2fSi93sQ6BznFuxSLB11HdvZQ6JW/spahf/P1pAHBQEahr20rs0htZW0UDkM1HmA+nZkXKsw==} - engines: {node: '>=12.0.0'} - - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-import@16.1.0: - resolution: {integrity: sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==} - engines: {node: '>=18.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@3.1.4: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-nested@5.0.6: - resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-nesting@12.1.0: - resolution: {integrity: sha512-QOYnosaZ+mlP6plQrAxFw09UUp2Sgtxj1BVHN+rSVbtV0Yx48zRt9/9F/ZOoxOKBBEsaJk2MYhhVRjeRRw5yuw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - - postcss-safe-parser@6.0.0: - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.3.3 - - postcss-scss@4.0.9: - resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.4.29 - - postcss-selector-parser@6.0.15: - resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} - engines: {node: '>=4'} - - postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} - engines: {node: '>=4'} - - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} - engines: {node: ^10 || ^12 || >=14} - - preact@10.19.5: - resolution: {integrity: sha512-OPELkDmSVbKjbFqF9tgvOowiiQ9TmsJljIzXRyNE8nGiis94pwv1siF78rQkAP1Q1738Ce6pellRg/Ns/CtHqQ==} - - preferred-pm@4.0.0: - resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} - engines: {node: '>=18.12'} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - - prettier-plugin-svelte@3.2.2: - resolution: {integrity: sha512-ZzzE/wMuf48/1+Lf2Ffko0uDa6pyCfgHV6+uAhtg2U0AAXGrhCSW88vEJNAkAxW5qyrFY1y1zZ4J8TgHrjW++Q==} - peerDependencies: - prettier: ^3.0.0 - svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - - prettier-plugin-svelte@3.2.3: - resolution: {integrity: sha512-wJq8RunyFlWco6U0WJV5wNCM7zpBFakS76UBSbmzMGpncpK98NZABaE+s7n8/APDCEVNHXC5Mpq+MLebQtsRlg==} - peerDependencies: - prettier: ^3.0.0 - svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - - prettier@2.8.7: - resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} - engines: {node: '>=10.13.0'} - hasBin: true - - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - - prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true - - pretty-format@26.6.2: - resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} - engines: {node: '>= 10'} - - pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - - process-nextick-args@1.0.7: - resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} - - process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - - process-warning@1.0.0: - resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} - - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - - progress-events@1.0.0: - resolution: {integrity: sha512-zIB6QDrSbPfRg+33FZalluFIowkbV5Xh1xSuetjG+rlC5he6u2dc6VQJ0TbMdlN3R1RHdpOqxEFMKTnQ+itUwA==} - engines: {node: '>=16.0.0', npm: '>=7.0.0'} - - progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - - promise@8.3.0: - resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} - - prompt@1.3.0: - resolution: {integrity: sha512-ZkaRWtaLBZl7KKAKndKYUL8WqNT+cQHKRZnT4RYYms48jQkFw3rrBL+/N5K/KtdEveHkxs982MX2BkDKub2ZMg==} - engines: {node: '>= 6.0.0'} - - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - - proto-list@1.2.4: - resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - - protobufjs@7.2.6: - resolution: {integrity: sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==} - engines: {node: '>=12.0.0'} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - - proxy-compare@2.5.1: - resolution: {integrity: sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==} - - proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - - pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - - publint@0.1.16: - resolution: {integrity: sha512-wJgk7HnXDT5Ap0DjFYbGz78kPkN44iQvDiaq8P63IEEyNU9mYXvaMd2cAyIM6OgqXM/IA3CK6XWIsRq+wjNpgw==} - engines: {node: '>=16'} - hasBin: true - - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - - punycode@2.1.0: - resolution: {integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==} - engines: {node: '>=6'} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - qr-code-styling@1.6.0-rc.1: - resolution: {integrity: sha512-ModRIiW6oUnsP18QzrRYZSc/CFKFKIdj7pUs57AEVH20ajlglRpN3HukjHk0UbNMTlKGuaYl7Gt6/O5Gg2NU2Q==} - - qrcode-generator@1.4.4: - resolution: {integrity: sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==} - - qrcode-terminal-nooctal@0.12.1: - resolution: {integrity: sha512-jy/kkD0iIMDjTucB+5T6KBsnirlhegDH47vHgrj5MejchSQmi/EAMM0xMFeePgV9CJkkAapNakpVUWYgHvtdKg==} - hasBin: true - - qrcode@1.5.3: - resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} - engines: {node: '>=10.13.0'} - hasBin: true - - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - - qs@6.5.3: - resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} - engines: {node: '>=0.6'} - - query-string@5.1.1: - resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} - engines: {node: '>=0.10.0'} - - query-string@7.1.3: - resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} - engines: {node: '>=6'} - - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - - quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - - quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - - radix3@1.1.0: - resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} - - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - - react-colorful@5.6.1: - resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - react-confetti@6.1.0: - resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} - engines: {node: '>=10.18'} - peerDependencies: - react: ^16.3.0 || ^17.0.1 || ^18.0.0 - - react-devtools-core@4.28.5: - resolution: {integrity: sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==} - - react-dom@18.2.0: - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 - - react-i18next@13.5.0: - resolution: {integrity: sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==} - peerDependencies: - i18next: '>= 23.2.3' - react: '>= 16.8.0' - react-dom: '*' - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - - react-native-fetch-api@3.0.0: - resolution: {integrity: sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA==} - - react-native-webview@11.26.1: - resolution: {integrity: sha512-hC7BkxOpf+z0UKhxFSFTPAM4shQzYmZHoELa6/8a/MspcjEP7ukYKpuSUTLDywQditT8yI9idfcKvfZDKQExGw==} - peerDependencies: - react: '*' - react-native: '*' - - react-native@0.73.4: - resolution: {integrity: sha512-VtS+Yr6OOTIuJGDECIYWzNU8QpJjASQYvMtfa/Hvm/2/h5GdB6W9H9TOmh13x07Lj4AOhNMx3XSsz6TdrO4jIg==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - react: 18.2.0 - - react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} - engines: {node: '>=0.10.0'} - - react-shallow-renderer@16.15.0: - resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - - react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} - - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - - read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} - - read@1.0.7: - resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} - engines: {node: '>=0.8'} - - readable-stream@2.3.3: - resolution: {integrity: sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==} - - readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - readdirp@4.0.1: - resolution: {integrity: sha512-GkMg9uOTpIWWKbSsgwb5fA4EavTR+SG/PMPoAY8hkhHfEEY0/vqljY+XHqtDf2cr2IJtoNRDbrrEpZUiZCkYRw==} - engines: {node: '>= 14.16.0'} - - readline@1.3.0: - resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} - - real-require@0.1.0: - resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} - engines: {node: '>= 12.13.0'} - - recast@0.21.5: - resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} - engines: {node: '>= 4'} - - recast@0.23.9: - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} - engines: {node: '>= 4'} - - receptacle@1.3.2: - resolution: {integrity: sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==} - - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - - redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} - - redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} - - regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} - engines: {node: '>=4'} - - regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - - regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - - regex@4.3.2: - resolution: {integrity: sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==} - - regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - - regexpp@3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - - regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} - engines: {node: '>=4'} - - registry-auth-token@5.0.2: - resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} - engines: {node: '>=14'} - - registry-url@6.0.1: - resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} - engines: {node: '>=12'} - - regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true - - rehype-expressive-code@0.35.6: - resolution: {integrity: sha512-pPdE+pRcRw01kxMOwHQjuRxgwlblZt5+wAc3w2aPGgmcnn57wYjn07iKO7zaznDxYVxMYVvYlnL+R3vWFQS4Gw==} - - rehype-external-links@3.0.0: - resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} - - rehype-format@5.0.0: - resolution: {integrity: sha512-kM4II8krCHmUhxrlvzFSptvaWh280Fr7UGNJU5DCMuvmAwGCNmGfi9CvFAQK6JDjsNoRMWQStglK3zKJH685Wg==} - - rehype-minify-whitespace@6.0.0: - resolution: {integrity: sha512-i9It4YHR0Sf3GsnlR5jFUKXRr9oayvEk9GKQUkwZv6hs70OH9q3OCZrq9PpLvIGKt3W+JxBOxCidNVpH/6rWdA==} - - rehype-parse@9.0.0: - resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} - - rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - - rehype-slug@6.0.0: - resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} - - rehype-stringify@10.0.0: - resolution: {integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==} - - rehype@13.0.1: - resolution: {integrity: sha512-AcSLS2mItY+0fYu9xKxOu1LhUZeBZZBx8//5HKzF+0XP+eP8+6a5MXn2+DW2kfXR6Dtp1FEXMVrjyKAcvcU8vg==} - - remark-directive@3.0.0: - resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} - - remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} - - remark-mdx@3.0.1: - resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} - - remark-smartypants@3.0.2: - resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} - engines: {node: '>=16.0.0'} - - remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - - request-light@0.5.8: - resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} - - request-light@0.7.0: - resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} - - request@2.88.2: - resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} - engines: {node: '>= 6'} - deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - - requireindex@1.2.0: - resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} - engines: {node: '>=0.10.5'} - - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - - resolve-alpn@1.2.1: - resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - - resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - - resolve@1.17.0: - resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - responselike@2.0.1: - resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} - - responselike@3.0.0: - resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} - engines: {node: '>=14.16'} - - restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - restore-cursor@5.1.0: - resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} - engines: {node: '>=18'} - - retext-latin@4.0.0: - resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} - - retext-smartypants@6.1.1: - resolution: {integrity: sha512-onsHf34i/GzgElJgtT1K2V+31yEhWs7NJboKNxXJcmVMMPxLpgxZ9iADoMdydd6j/bHic5F/aNq0CGqElEtu2g==} - - retext-stringify@4.0.0: - resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} - - retext@9.0.0: - resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} - - retimer@3.0.0: - resolution: {integrity: sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==} - - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - revalidator@0.1.8: - resolution: {integrity: sha512-xcBILK2pA9oh4SiinPEZfhP8HfrB/ha+a2fTMyl7Om2WjlDVrOQy99N2MXXlUHqGJz4qEu2duXxHJjDWuK/0xg==} - engines: {node: '>= 0.4.0'} - - rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rimraf@5.0.10: - resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} - hasBin: true - - ripemd160@2.0.2: - resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} - - risc0-ethereum#v1.1.2@https://codeload.github.com/risc0/risc0-ethereum/tar.gz/b8a14213d92fff07dacda993804e7edb7946ca58: - resolution: {tarball: https://codeload.github.com/risc0/risc0-ethereum/tar.gz/b8a14213d92fff07dacda993804e7edb7946ca58} - version: 0.0.0 - - rlp@2.2.7: - resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} - hasBin: true - - rollup-plugin-visualizer@5.12.0: - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true - - rollup@3.29.4: - resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.12.0: - resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.17.2: - resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.21.3: - resolution: {integrity: sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - - rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - - run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - - safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} - - safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} - engines: {node: '>=10'} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sander@0.5.1: - resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} - - sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - - saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - - scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - - scheduler@0.24.0-canary-efb381bbf-20230505: - resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==} - - scrypt-js@3.0.1: - resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} - - secp256k1@4.0.3: - resolution: {integrity: sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==} - engines: {node: '>=10.0.0'} - - secp256k1@5.0.0: - resolution: {integrity: sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==} - engines: {node: '>=14.0.0'} - - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true - - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - - send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.0'} - - sentence-case@3.0.4: - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - - serialize-error@2.1.0: - resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} - engines: {node: '>=0.10.0'} - - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} - - serverless@4.4.3: - resolution: {integrity: sha512-Re/PCfW/vkWnY+IhelN7HUpt3r5l+6m4IrKE6SOKGawhODGYGqdGBZSkMNyNkvHdeq158zDNohcsM+Be7K9sBg==} - engines: {node: '>=18.0.0'} - hasBin: true - - servify@0.1.12: - resolution: {integrity: sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==} - engines: {node: '>=6'} - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - - set-function-length@1.2.1: - resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} - - setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - - sha.js@2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} - hasBin: true - - shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} - - sharp@0.33.3: - resolution: {integrity: sha512-vHUeXJU1UvlO/BNwTpT0x/r53WkLUVxrmb5JTgW92fdFCFk0ispLMAeu/jPO2vjkXM1fYUi3K7/qcLF47pwM1A==} - engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - - shiki@1.17.6: - resolution: {integrity: sha512-RejGugKpDM75vh6YtF9R771acxHRDikC/01kxsUGW+Pnaz3pTY+c8aZB5CnD7p0vuFPs1HaoAIU/4E+NCfS+mQ==} - - shiki@1.5.2: - resolution: {integrity: sha512-fpPbuSaatinmdGijE7VYUD3hxLozR3ZZ+iAx8Iy2X6REmJGyF5hQl94SgmiUNTospq346nXUVZx0035dyGvIVw==} - - side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - - siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - - simple-get@2.8.2: - resolution: {integrity: sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==} - - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - - sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - - sitemap@7.1.2: - resolution: {integrity: sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - - slice-ansi@2.1.0: - resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} - engines: {node: '>=6'} - - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - - socket.io-client@4.7.4: - resolution: {integrity: sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==} - engines: {node: '>=10.0.0'} - - socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} - engines: {node: '>=10.0.0'} - - solady@https://codeload.github.com/Vectorized/solady/tar.gz/a12a2575c899a328c1bafdada632dabbff27cf6b: - resolution: {tarball: https://codeload.github.com/Vectorized/solady/tar.gz/a12a2575c899a328c1bafdada632dabbff27cf6b} - version: 0.0.231 - - solady@https://codeload.github.com/Vectorized/solady/tar.gz/de0f336d2033d04e0f77c923d639c7fbffd48b6d: - resolution: {tarball: https://codeload.github.com/Vectorized/solady/tar.gz/de0f336d2033d04e0f77c923d639c7fbffd48b6d} - version: 0.0.167 - - solc@0.8.24: - resolution: {integrity: sha512-G5yUqjTUPc8Np74sCFwfsevhBPlUifUOfhYrgyu6CmYlC6feSw0YS6eZW47XDT23k3JYdKx5nJ+Q7whCEmNcoA==} - engines: {node: '>=10.0.0'} - hasBin: true - - solc@0.8.26: - resolution: {integrity: sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==} - engines: {node: '>=10.0.0'} - hasBin: true - - solhint@4.5.4: - resolution: {integrity: sha512-Cu1XiJXub2q1eCr9kkJ9VPv1sGcmj3V7Zb76B0CoezDOB9bu3DxKIFFH7ggCl9fWpEPD6xBmRLfZrYijkVmujQ==} - hasBin: true - - solhint@5.0.3: - resolution: {integrity: sha512-OLCH6qm/mZTCpplTXzXTJGId1zrtNuDYP5c2e6snIv/hdRVxPfBBz/bAlL91bY/Accavkayp2Zp2BaDSrLVXTQ==} - hasBin: true - - solidity-ast@0.4.59: - resolution: {integrity: sha512-I+CX0wrYUN9jDfYtcgWSe+OAowaXy8/1YQy7NS4ni5IBDmIYBq7ZzaP/7QqouLjzZapmQtvGLqCaYgoUWqBo5g==} - - solidity-docgen@0.6.0-beta.36: - resolution: {integrity: sha512-f/I5G2iJgU1h0XrrjRD0hHMr7C10u276vYvm//rw1TzFcYQ4xTOyAoi9oNAHRU0JU4mY9eTuxdVc2zahdMuhaQ==} - peerDependencies: - hardhat: ^2.8.0 - - solidity-stringutils@https://codeload.github.com/Arachnid/solidity-stringutils/tar.gz/4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461: - resolution: {tarball: https://codeload.github.com/Arachnid/solidity-stringutils/tar.gz/4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461} - version: 0.0.0 - - sonic-boom@2.8.0: - resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} - - sorcery@0.11.0: - resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} - hasBin: true - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - - source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - sp1-contracts#v3.0.0@https://codeload.github.com/succinctlabs/sp1-contracts/tar.gz/1c4acaeab86789995ae5c6baced66f81e4a57f4d: - resolution: {tarball: https://codeload.github.com/succinctlabs/sp1-contracts/tar.gz/1c4acaeab86789995ae5c6baced66f81e4a57f4d} - version: 0.0.0 - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - - spawndamnit@2.0.0: - resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} - - split-on-first@1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} - engines: {node: '>=6'} - - split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - sshpk@1.18.0: - resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} - engines: {node: '>=0.10.0'} - hasBin: true - - stack-trace@0.0.10: - resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} - - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - - stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - - stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - - stacktrace-parser@0.1.10: - resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} - engines: {node: '>=6'} - - standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} - - starlight-links-validator@0.8.0: - resolution: {integrity: sha512-FYZ5cfV7jSL4wOsWmIkpR+9dH0Z8fxslSQl8IiAv5URfkxLgsaFzjx51FBeSaaS5uVmO5WgfkUjx3N52Jl1/TQ==} - engines: {node: '>=18.14.1'} - peerDependencies: - '@astrojs/starlight': '>=0.15.0' - astro: '>=4.0.0' - - starlight-openapi@0.6.3: - resolution: {integrity: sha512-AHTbCJeGHzzhwVVi7UMgFgNKkvio2bbi9zQVtcI7CrMXVdd4jqL/L+R7MUxtr/DtzWG7PCCRsKPriwYubJ1ZPQ==} - engines: {node: '>=18.14.1'} - peerDependencies: - '@astrojs/markdown-remark': '>=4.2.0' - '@astrojs/starlight': '>=0.19.0' - astro: '>=4.2.7' - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - stdin-discarder@0.1.0: - resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - stdin-discarder@0.2.2: - resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} - engines: {node: '>=18'} - - storybook@8.3.0: - resolution: {integrity: sha512-XKU+nem9OKX/juvJPwka1Q7DTpSbOe0IMp8ZyLQWorhFKpquJdUjryl7Z9GiFZyyTykCqH4ItQ7h8PaOmqVMOw==} - hasBin: true - - stream-browserify@3.0.0: - resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} - - stream-replace-string@2.0.0: - resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} - - stream-shift@1.0.1: - resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - - stream-to-it@0.2.4: - resolution: {integrity: sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==} - - strict-uri-encode@1.1.0: - resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} - engines: {node: '>=0.10.0'} - - strict-uri-encode@2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} - engines: {node: '>=4'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} - - string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - - string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - - string_decoder@1.0.3: - resolution: {integrity: sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==} - - string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - - strip-ansi@5.2.0: - resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} - engines: {node: '>=6'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-hex-prefix@1.0.0: - resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} - engines: {node: '>=6.5.0', npm: '>=3'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - strip-literal@2.0.0: - resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} - - strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - - style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - - style-to-object@1.0.6: - resolution: {integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==} - - stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - - sudo-prompt@9.2.1: - resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} - - superstruct@1.0.3: - resolution: {integrity: sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==} - engines: {node: '>=14.0.0'} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - svelte-check@3.7.1: - resolution: {integrity: sha512-U4uJoLCzmz2o2U33c7mPDJNhRYX/DNFV11XTUDlFxaKLsO7P+40gvJHMPpoRfa24jqZfST4/G9fGNcUGMO8NAQ==} - hasBin: true - peerDependencies: - svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - - svelte-copy@1.4.2: - resolution: {integrity: sha512-Q99JvWDzB58JlbVWX2VxjHX/CQ5ayDLUGGJgL2EqU1+3c9CDOtxLrKFZx5CVN5bN/DDl62nxtazz0j3nGX1Xew==} - peerDependencies: - svelte: ^3.55.0 || ^4.0.0 - - svelte-eslint-parser@0.35.0: - resolution: {integrity: sha512-CtbPseajW0gjwEvHiuzYJkPDjAcHz2FaHt540j6RVYrZgnE6xWkzUBodQ4I3nV+G5AS0Svt8K6aIA/CIU9xT2Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 - peerDependenciesMeta: - svelte: - optional: true - - svelte-hmr@0.16.0: - resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} - engines: {node: ^12.20 || ^14.13.1 || >= 16} - peerDependencies: - svelte: ^3.19.0 || ^4.0.0 - - svelte-i18n@4.0.0: - resolution: {integrity: sha512-4vivjKZADUMRIhTs38JuBNy3unbnh9AFRxWFLxq62P4NHic+/BaIZZlAsvqsCdnp7IdJf5EoSiH6TNdItcjA6g==} - engines: {node: '>= 16'} - hasBin: true - peerDependencies: - svelte: ^3 || ^4 - - svelte-preprocess@5.1.3: - resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} - engines: {node: '>= 16.0.0', pnpm: ^8.0.0} - peerDependencies: - '@babel/core': ^7.10.2 - coffeescript: ^2.5.1 - less: ^3.11.3 || ^4.0.0 - postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - pug: ^3.0.0 - sass: ^1.26.8 - stylus: ^0.55.0 - sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 - svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' - peerDependenciesMeta: - '@babel/core': - optional: true - coffeescript: - optional: true - less: - optional: true - postcss: - optional: true - postcss-load-config: - optional: true - pug: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - typescript: - optional: true - - svelte-scrolling@1.4.0: - resolution: {integrity: sha512-1721UrmTODAIhybCR5p/l6lQNSmuk66VgtgxdAEdQiGuYU1wCcKB/9kba0VXlxIeh5vhEaoODAOCizRRtHKQoQ==} - peerDependencies: - svelte: ^3 || ^4 - - svelte2tsx@0.7.19: - resolution: {integrity: sha512-PME/9mILn9wOihtk2dxu9tmf2+B9X6oWuqYPJRKSjqU4wq3Pc6+fOuYV7T3H+QF5afmA1oDobfXC6dzmK9NAVw==} - peerDependencies: - svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 - typescript: ^4.9.4 || ^5.0.0 - - svelte@4.2.13: - resolution: {integrity: sha512-jtVt2KXLbQnsWN93Zd7EVboNh8Tqexes4rZfXNP7nYRjd9+JjubTD8BXloUmU1OUYpc6pdd1aKBhCV+b2ZKoMg==} - engines: {node: '>=16'} - - svelte@4.2.17: - resolution: {integrity: sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==} - engines: {node: '>=16'} - - sveltedoc-parser@4.2.1: - resolution: {integrity: sha512-sWJRa4qOfRdSORSVw9GhfDEwsbsYsegnDzBevUCF6k/Eis/QqCu9lJ6I0+d/E2wOWCjOhlcJ3+jl/Iur+5mmCw==} - engines: {node: '>=10.0.0'} - - swarm-js@0.1.42: - resolution: {integrity: sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==} - - symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - - synckit@0.8.6: - resolution: {integrity: sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==} - engines: {node: ^14.18.0 || >=16.0.0} - - system-architecture@0.1.0: - resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} - engines: {node: '>=18'} - - table@6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} - engines: {node: '>=10.0.0'} - - tailwindcss-image-rendering@1.0.2: - resolution: {integrity: sha512-WC3hJd2RbHBYIqtJxwpQ5z94wUNyBrJn1eFz3J/jR7OGrQB8WYbJGvJQ9scNNVzoHEYGoNdZbUI90l9YgpBCwg==} - - tailwindcss@3.4.3: - resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} - engines: {node: '>=14.0.0'} - hasBin: true - - tar@4.4.19: - resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} - engines: {node: '>=4.5'} - - telejson@7.2.0: - resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} - - temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} - - temp@0.8.4: - resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} - engines: {node: '>=6.0.0'} - - term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - - terser@5.27.2: - resolution: {integrity: sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==} - engines: {node: '>=10'} - hasBin: true - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - - thread-stream@0.15.2: - resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} - - throat@5.0.0: - resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} - - through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - - timed-out@4.0.1: - resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} - engines: {node: '>=0.10.0'} - - timeout-abort-controller@3.0.0: - resolution: {integrity: sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==} - - timers-ext@0.1.7: - resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} - - tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - - tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - - tinybench@2.6.0: - resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} - - tinyexec@0.3.0: - resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} - - tinypool@0.8.3: - resolution: {integrity: sha512-Ud7uepAklqRH1bvwy22ynrliC7Dljz7Tm8M/0RBUW+YRa4YHhZ6e4PpgE+fu1zr/WqB1kbeuVrdfeuyIBpy4tw==} - engines: {node: '>=14.0.0'} - - tinyrainbow@1.2.0: - resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} - engines: {node: '>=14.0.0'} - - tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} - engines: {node: '>=14.0.0'} - - tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} - engines: {node: '>=14.0.0'} - - titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - - tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - - totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - - tough-cookie@2.5.0: - resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} - engines: {node: '>=0.8'} - - tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - - tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} - engines: {node: '>=18'} - - treeify@1.1.0: - resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} - engines: {node: '>=0.6'} - - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - ts-api-utils@1.2.1: - resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - - ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} - engines: {node: '>=6.10'} - - ts-essentials@9.4.1: - resolution: {integrity: sha512-oke0rI2EN9pzHsesdmrOrnqv1eQODmJpd/noJjwj2ZPC3Z4N2wbjrOEqnsEgmvlO2+4fBb0a794DCna2elEVIQ==} - peerDependencies: - typescript: '>=4.1.0' - peerDependenciesMeta: - typescript: - optional: true - - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - - ts-morph@19.0.0: - resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - tsconfck@3.0.3: - resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} - engines: {node: ^18 || >=20} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - tsconfck@3.1.3: - resolution: {integrity: sha512-ulNZP1SVpRDesxeMLON/LtWM8HIgAJEIVpVVhBM6gsmvQ8+Rh+ZG7FWGvHh7Ah3pRABwVJWklWCr/BTZSv0xnQ==} - engines: {node: ^18 || >=20} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - - tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tslib@2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - tsort@0.0.1: - resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} - - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - - tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - - tunnel@0.0.6: - resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} - engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - - tween-functions@1.2.0: - resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} - - tweetnacl-util@0.15.1: - resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} - - tweetnacl@0.14.5: - resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} - - tweetnacl@1.0.3: - resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - - type-fest@0.7.1: - resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} - engines: {node: '>=8'} - - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - - type@1.2.0: - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - - type@2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - - typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typesafe-path@0.2.2: - resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - - typescript-auto-import-cache@0.3.3: - resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - - typescript@5.4.3: - resolution: {integrity: sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true - - ufo@1.4.0: - resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==} - - uglify-js@3.19.3: - resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} - engines: {node: '>=0.8.0'} - hasBin: true - - uint8-varint@2.0.4: - resolution: {integrity: sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==} - - uint8arraylist@2.4.8: - resolution: {integrity: sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==} - - uint8arrays@3.1.0: - resolution: {integrity: sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==} - - uint8arrays@3.1.1: - resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} - - uint8arrays@4.0.10: - resolution: {integrity: sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==} - - uint8arrays@5.0.3: - resolution: {integrity: sha512-6LBuKji28kHjgPJMkQ6GDaBb1lRwIhyOYq6pDGwYMoDPfImE9SkuYENVmR0yu9yGgs2clHUSY9fKDukR+AXfqQ==} - - ultron@1.1.1: - resolution: {integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==} - - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - - uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - undici@5.28.3: - resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} - engines: {node: '>=14.0'} - - unenv@1.9.0: - resolution: {integrity: sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==} - - unfetch@4.2.0: - resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} - - unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - - unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} - - unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} - engines: {node: '>=4'} - - unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - - unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - - unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-modify-children@4.0.0: - resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} - - unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-children@3.0.0: - resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - - unplugin@1.14.1: - resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} - engines: {node: '>=14.0.0'} - peerDependencies: - webpack-sources: ^3 - peerDependenciesMeta: - webpack-sources: - optional: true - - unstorage@1.10.1: - resolution: {integrity: sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw==} - peerDependencies: - '@azure/app-configuration': ^1.4.1 - '@azure/cosmos': ^4.0.0 - '@azure/data-tables': ^13.2.2 - '@azure/identity': ^3.3.2 - '@azure/keyvault-secrets': ^4.7.0 - '@azure/storage-blob': ^12.16.0 - '@capacitor/preferences': ^5.0.6 - '@netlify/blobs': ^6.2.0 - '@planetscale/database': ^1.11.0 - '@upstash/redis': ^1.23.4 - '@vercel/kv': ^0.2.3 - idb-keyval: ^6.2.1 - peerDependenciesMeta: - '@azure/app-configuration': - optional: true - '@azure/cosmos': - optional: true - '@azure/data-tables': - optional: true - '@azure/identity': - optional: true - '@azure/keyvault-secrets': - optional: true - '@azure/storage-blob': - optional: true - '@capacitor/preferences': - optional: true - '@netlify/blobs': - optional: true - '@planetscale/database': - optional: true - '@upstash/redis': - optional: true - '@vercel/kv': - optional: true - idb-keyval: - optional: true - - untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - - untun@0.1.3: - resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} - hasBin: true - - update-browserslist-db@1.0.13: - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - upper-case-first@2.0.2: - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} - - upper-case@2.0.2: - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} - - uqr@0.1.2: - resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - - url-set-query@1.0.0: - resolution: {integrity: sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==} - - use-sync-external-store@1.2.0: - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - - utf-8-validate@5.0.10: - resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} - engines: {node: '>=6.14.2'} - - utf-8-validate@6.0.3: - resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==} - engines: {node: '>=6.14.2'} - - utf8@3.0.0: - resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} - - v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} - engines: {node: '>=10.12.0'} - - valtio@1.11.2: - resolution: {integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=16.8' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - - varint@5.0.2: - resolution: {integrity: sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==} - - varint@6.0.0: - resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - - verror@1.10.0: - resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} - engines: {'0': node >=0.6.0} - - vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} - - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} - - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - - viem@1.21.4: - resolution: {integrity: sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - - viem@2.21.7: - resolution: {integrity: sha512-PFgppakInuHX31wHDx1dzAjhj4t6Po6WrWtutDi33z2vabIT0Wv8qT6tl7DLqfLy2NkTqfN2mdshYLeoI5ZHvQ==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - - viem@2.9.29: - resolution: {integrity: sha512-LWvDSyB2tftKuSMAyZTXk3pDYj3c0aaOdr2JbDZEsPJw5zVbqg3FpoPHnUkHai8KcZI8aPWRKV31TYV1cBse9A==} - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - - vite-node@1.5.0: - resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - - vite-tsconfig-paths@4.3.2: - resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} - peerDependencies: - vite: '*' - peerDependenciesMeta: - vite: - optional: true - - vite@4.5.3: - resolution: {integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vite@5.1.3: - resolution: {integrity: sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vite@5.2.11: - resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vite@5.4.5: - resolution: {integrity: sha512-pXqR0qtb2bTwLkev4SE3r4abCNioP3GkjvIDLlzziPpXtHgiJIjuKl+1GN6ESOT3wMjG3JTeARopj2SwYaHTOA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - vitefu@0.2.5: - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - vite: - optional: true - - vitefu@1.0.2: - resolution: {integrity: sha512-0/iAvbXyM3RiPPJ4lyD4w6Mjgtf4ejTK6TPvTNG3H32PLwuT0N/ZjJLiXug7ETE/LWtTeHw9WRv7uX/tIKYyKg==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - vite: - optional: true - - vitest-fetch-mock@0.2.2: - resolution: {integrity: sha512-XmH6QgTSjCWrqXoPREIdbj40T7i1xnGmAsTAgfckoO75W1IEHKR8hcPCQ7SO16RsdW1t85oUm6pcQRLeBgjVYQ==} - engines: {node: '>=14.14.0'} - peerDependencies: - vitest: '>=0.16.0' - - vitest-mock-extended@1.3.1: - resolution: {integrity: sha512-OpghYjh4BDuQ/Mzs3lFMQ1QRk9D8/2O9T47MLUA5eLn7K4RWIy+MfIivYOWEyxjTENjsBnzgMihDjyNalN/K0Q==} - peerDependencies: - typescript: 3.x || 4.x || 5.x - vitest: '>=0.31.1' - - vitest@1.5.0: - resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.5.0 - '@vitest/ui': 1.5.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - - vlq@1.0.1: - resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} - - void-elements@3.1.0: - resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} - engines: {node: '>=0.10.0'} - - volar-service-css@0.0.61: - resolution: {integrity: sha512-Ct9L/w+IB1JU8F4jofcNCGoHy6TF83aiapfZq9A0qYYpq+Kk5dH+ONS+rVZSsuhsunq8UvAuF8Gk6B8IFLfniw==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-emmet@0.0.61: - resolution: {integrity: sha512-iiYqBxjjcekqrRruw4COQHZME6EZYWVbkHjHDbULpml3g8HGJHzpAMkj9tXNCPxf36A+f1oUYjsvZt36qPg4cg==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-html@0.0.61: - resolution: {integrity: sha512-yFE+YmmgqIL5HI4ORqP++IYb1QaGcv+xBboI0WkCxJJ/M35HZj7f5rbT3eQ24ECLXFbFCFanckwyWJVz5KmN3Q==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-prettier@0.0.61: - resolution: {integrity: sha512-F612nql5I0IS8HxXemCGvOR2Uxd4XooIwqYVUvk7WSBxP/+xu1jYvE3QJ7EVpl8Ty3S4SxPXYiYTsG3bi+gzIQ==} - peerDependencies: - '@volar/language-service': ~2.4.0 - prettier: ^2.2 || ^3.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - prettier: - optional: true - - volar-service-typescript-twoslash-queries@0.0.61: - resolution: {integrity: sha512-99FICGrEF0r1E2tV+SvprHPw9Knyg7BdW2fUch0tf59kG+KG+Tj4tL6tUg+cy8f23O/VXlmsWFMIE+bx1dXPnQ==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-typescript@0.0.61: - resolution: {integrity: sha512-4kRHxVbW7wFBHZWRU6yWxTgiKETBDIJNwmJUAWeP0mHaKpnDGj/astdRFKqGFRYVeEYl45lcUPhdJyrzanjsdQ==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-yaml@0.0.61: - resolution: {integrity: sha512-L+gbDiLDQQ1rZUbJ3mf3doDsoQUa8OZM/xdpk/unMg1Vz24Zmi2Ign8GrZyBD7bRoIQDwOH9gdktGDKzRPpUNw==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - vscode-css-languageservice@6.3.1: - resolution: {integrity: sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==} - - vscode-html-languageservice@5.2.0: - resolution: {integrity: sha512-cdNMhyw57/SQzgUUGSIMQ66jikqEN6nBNyhx5YuOyj9310+eY9zw8Q0cXpiKzDX8aHYFewQEXRnigl06j/TVwQ==} - - vscode-html-languageservice@5.3.1: - resolution: {integrity: sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==} - - vscode-json-languageservice@4.1.8: - resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} - engines: {npm: '>=7.0.0'} - - vscode-jsonrpc@6.0.0: - resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} - engines: {node: '>=8.0.0 || >=10.0.0'} - - vscode-jsonrpc@8.2.0: - resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} - engines: {node: '>=14.0.0'} - - vscode-languageserver-protocol@3.16.0: - resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} - - vscode-languageserver-protocol@3.17.5: - resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} - - vscode-languageserver-textdocument@1.0.11: - resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} - - vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - - vscode-languageserver-types@3.16.0: - resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} - - vscode-languageserver-types@3.17.5: - resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} - - vscode-languageserver@7.0.0: - resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} - hasBin: true - - vscode-languageserver@9.0.1: - resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} - hasBin: true - - vscode-nls@5.2.0: - resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} - - vscode-uri@2.1.2: - resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} - - vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - - w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} - - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - - wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - - web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - - web3-bzz@1.10.4: - resolution: {integrity: sha512-ZZ/X4sJ0Uh2teU9lAGNS8EjveEppoHNQiKlOXAjedsrdWuaMErBPdLQjXfcrYvN6WM6Su9PMsAxf3FXXZ+HwQw==} - engines: {node: '>=8.0.0'} - - web3-core-helpers@1.10.4: - resolution: {integrity: sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==} - engines: {node: '>=8.0.0'} - - web3-core-method@1.10.4: - resolution: {integrity: sha512-uZTb7flr+Xl6LaDsyTeE2L1TylokCJwTDrIVfIfnrGmnwLc6bmTWCCrm71sSrQ0hqs6vp/MKbQYIYqUN0J8WyA==} - engines: {node: '>=8.0.0'} - - web3-core-promievent@1.10.4: - resolution: {integrity: sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==} - engines: {node: '>=8.0.0'} - - web3-core-requestmanager@1.10.4: - resolution: {integrity: sha512-vqP6pKH8RrhT/2MoaU+DY/OsYK9h7HmEBNCdoMj+4ZwujQtw/Mq2JifjwsJ7gits7Q+HWJwx8q6WmQoVZAWugg==} - engines: {node: '>=8.0.0'} - - web3-core-subscriptions@1.10.4: - resolution: {integrity: sha512-o0lSQo/N/f7/L76C0HV63+S54loXiE9fUPfHFcTtpJRQNDBVsSDdWRdePbWwR206XlsBqD5VHApck1//jEafTw==} - engines: {node: '>=8.0.0'} - - web3-core@1.10.4: - resolution: {integrity: sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==} - engines: {node: '>=8.0.0'} - - web3-eth-abi@1.10.4: - resolution: {integrity: sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==} - engines: {node: '>=8.0.0'} - - web3-eth-accounts@1.10.4: - resolution: {integrity: sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==} - engines: {node: '>=8.0.0'} - - web3-eth-contract@1.10.4: - resolution: {integrity: sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==} - engines: {node: '>=8.0.0'} - - web3-eth-ens@1.10.4: - resolution: {integrity: sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==} - engines: {node: '>=8.0.0'} - - web3-eth-iban@1.10.4: - resolution: {integrity: sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==} - engines: {node: '>=8.0.0'} - - web3-eth-personal@1.10.4: - resolution: {integrity: sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==} - engines: {node: '>=8.0.0'} - - web3-eth@1.10.4: - resolution: {integrity: sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==} - engines: {node: '>=8.0.0'} - - web3-net@1.10.4: - resolution: {integrity: sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==} - engines: {node: '>=8.0.0'} - - web3-providers-http@1.10.4: - resolution: {integrity: sha512-m2P5Idc8hdiO0l60O6DSCPw0kw64Zgi0pMjbEFRmxKIck2Py57RQMu4bxvkxJwkF06SlGaEQF8rFZBmuX7aagQ==} - engines: {node: '>=8.0.0'} - - web3-providers-ipc@1.10.4: - resolution: {integrity: sha512-YRF/bpQk9z3WwjT+A6FI/GmWRCASgd+gC0si7f9zbBWLXjwzYAKG73bQBaFRAHex1hl4CVcM5WUMaQXf3Opeuw==} - engines: {node: '>=8.0.0'} - - web3-providers-ws@1.10.4: - resolution: {integrity: sha512-j3FBMifyuFFmUIPVQR4pj+t5ILhAexAui0opgcpu9R5LxQrLRUZxHSnU+YO25UycSOa/NAX8A+qkqZNpcFAlxA==} - engines: {node: '>=8.0.0'} - - web3-shh@1.10.4: - resolution: {integrity: sha512-cOH6iFFM71lCNwSQrC3niqDXagMqrdfFW85hC9PFUrAr3PUrIem8TNstTc3xna2bwZeWG6OBy99xSIhBvyIACw==} - engines: {node: '>=8.0.0'} - - web3-utils@1.10.4: - resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} - engines: {node: '>=8.0.0'} - - web3@1.10.4: - resolution: {integrity: sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==} - engines: {node: '>=8.0.0'} - - webauthn-p256@0.0.5: - resolution: {integrity: sha512-drMGNWKdaixZNobeORVIqq7k5DsRC9FnG201K2QjeOoQLmtSDaSsVZdkg6n5jUALJKcAG++zBPJXmv6hy0nWFg==} - - webextension-polyfill-ts@0.25.0: - resolution: {integrity: sha512-ikQhwwHYkpBu00pFaUzIKY26I6L87DeRI+Q6jBT1daZUNuu8dSrg5U9l/ZbqdaQ1M/TTSPKeAa3kolP5liuedw==} - deprecated: This project has moved to @types/webextension-polyfill - - webextension-polyfill@0.10.0: - resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==} - - webextension-polyfill@0.7.0: - resolution: {integrity: sha512-su48BkMLxqzTTvPSE1eWxKToPS2Tv5DLGxKexLEVpwFd6Po6N8hhSLIvG6acPAg7qERoEaDL+Y5HQJeJeml5Aw==} - - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - - websocket@1.0.35: - resolution: {integrity: sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==} - engines: {node: '>=4.0.0'} - - whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} - - whatwg-fetch@3.6.20: - resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} - - whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} - engines: {node: '>=18'} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - - which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - - which-pm-runs@1.1.0: - resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} - engines: {node: '>=4'} - - which-pm@3.0.0: - resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} - engines: {node: '>=18.12'} - - which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} - - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true - - why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true - - widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} - - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - - winston@2.4.7: - resolution: {integrity: sha512-vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg==} - engines: {node: '>= 0.10.0'} - - wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - - workerpool@6.5.1: - resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} - - ws@3.3.3: - resolution: {integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@6.2.2: - resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@7.4.6: - resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.11.0: - resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.13.0: - resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xhr-request-promise@0.1.3: - resolution: {integrity: sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==} - - xhr-request@1.1.0: - resolution: {integrity: sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==} - - xhr@2.6.0: - resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} - - xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} - - xml2js@0.6.2: - resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} - engines: {node: '>=4.0.0'} - - xmlbuilder@11.0.1: - resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} - engines: {node: '>=4.0'} - - xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - - xmlhttprequest-ssl@2.0.0: - resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} - engines: {node: '>=0.4.0'} - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - - xxhash-wasm@1.0.2: - resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} - - y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yaeti@0.0.6: - resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} - engines: {node: '>=0.10.32'} - - yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml-language-server@1.15.0: - resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} - hasBin: true - - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - - yaml@2.2.2: - resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} - engines: {node: '>= 14'} - - yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - - yaml@2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} - engines: {node: '>= 14'} - hasBin: true - - yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs-unparser@2.0.0: - resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} - engines: {node: '>=10'} - - yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - - yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - - yocto-queue@1.1.1: - resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} - engines: {node: '>=12.20'} - - zod-to-json-schema@3.23.3: - resolution: {integrity: sha512-TYWChTxKQbRJp5ST22o/Irt9KC5nj7CdBKYB/AosCRdj/wxEMvv4NNaj9XVUHDOIp53ZxArGhnw5HMZziPFjog==} - peerDependencies: - zod: ^3.23.3 - - zod-to-ts@1.2.0: - resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} - peerDependencies: - typescript: ^4.9.4 || ^5.0.2 - zod: ^3 - - zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - - zustand@4.4.1: - resolution: {integrity: sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - -snapshots: - - '@aashutoshrathi/word-wrap@1.2.6': {} - - '@adobe/css-tools@4.4.0': {} - - '@adraffy/ens-normalize@1.10.0': {} - - '@adraffy/ens-normalize@1.10.1': {} - - '@alloc/quick-lru@5.2.0': {} - - '@ampproject/remapping@2.2.1': - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.25 - - '@apidevtools/openapi-schemas@2.1.0': {} - - '@apidevtools/swagger-methods@3.0.2': {} - - '@astrojs/check@0.8.3(prettier@3.2.5)(typescript@5.4.5)': - dependencies: - '@astrojs/language-server': 2.14.2(prettier@3.2.5)(typescript@5.4.5) - chokidar: 3.6.0 - fast-glob: 3.3.2 - kleur: 4.1.5 - typescript: 5.4.5 - yargs: 17.7.2 - transitivePeerDependencies: - - prettier - - prettier-plugin-astro - - '@astrojs/compiler@2.10.3': {} - - '@astrojs/internal-helpers@0.4.1': {} - - '@astrojs/language-server@2.14.2(prettier@3.2.5)(typescript@5.4.5)': - dependencies: - '@astrojs/compiler': 2.10.3 - '@astrojs/yaml2ts': 0.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@volar/kit': 2.4.5(typescript@5.4.5) - '@volar/language-core': 2.4.5 - '@volar/language-server': 2.4.5 - '@volar/language-service': 2.4.5 - '@volar/typescript': 2.4.5 - fast-glob: 3.3.2 - muggle-string: 0.4.1 - volar-service-css: 0.0.61(@volar/language-service@2.4.5) - volar-service-emmet: 0.0.61(@volar/language-service@2.4.5) - volar-service-html: 0.0.61(@volar/language-service@2.4.5) - volar-service-prettier: 0.0.61(@volar/language-service@2.4.5)(prettier@3.2.5) - volar-service-typescript: 0.0.61(@volar/language-service@2.4.5) - volar-service-typescript-twoslash-queries: 0.0.61(@volar/language-service@2.4.5) - volar-service-yaml: 0.0.61(@volar/language-service@2.4.5) - vscode-html-languageservice: 5.2.0 - vscode-uri: 3.0.8 - optionalDependencies: - prettier: 3.2.5 - transitivePeerDependencies: - - typescript - - '@astrojs/markdown-remark@5.2.0': - dependencies: - '@astrojs/prism': 3.1.0 - github-slugger: 2.0.0 - hast-util-from-html: 2.0.1 - hast-util-to-text: 4.0.2 - import-meta-resolve: 4.1.0 - mdast-util-definitions: 6.0.0 - rehype-raw: 7.0.0 - rehype-stringify: 10.0.0 - remark-gfm: 4.0.0 - remark-parse: 11.0.0 - remark-rehype: 11.1.0 - remark-smartypants: 3.0.2 - shiki: 1.17.6 - unified: 11.0.5 - unist-util-remove-position: 5.0.0 - unist-util-visit: 5.0.0 - unist-util-visit-parents: 6.0.1 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@astrojs/mdx@3.1.6(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5))': - dependencies: - '@astrojs/markdown-remark': 5.2.0 - '@mdx-js/mdx': 3.0.1 - acorn: 8.12.1 - astro: 4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5) - es-module-lexer: 1.5.4 - estree-util-visit: 2.0.0 - gray-matter: 4.0.3 - hast-util-to-html: 9.0.2 - kleur: 4.1.5 - rehype-raw: 7.0.0 - remark-gfm: 4.0.0 - remark-smartypants: 3.0.2 - source-map: 0.7.4 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@astrojs/prism@3.1.0': - dependencies: - prismjs: 1.29.0 - - '@astrojs/sitemap@3.1.6': - dependencies: - sitemap: 7.1.2 - stream-replace-string: 2.0.0 - zod: 3.23.8 - - '@astrojs/starlight@0.25.5(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5))': - dependencies: - '@astrojs/mdx': 3.1.6(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)) - '@astrojs/sitemap': 3.1.6 - '@pagefind/default-ui': 1.1.0 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - astro: 4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5) - astro-expressive-code: 0.35.6(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)) - bcp-47: 2.1.0 - hast-util-from-html: 2.0.1 - hast-util-select: 6.0.2 - hast-util-to-string: 3.0.0 - hastscript: 9.0.0 - mdast-util-directive: 3.0.0 - mdast-util-to-markdown: 2.1.0 - mdast-util-to-string: 4.0.0 - pagefind: 1.1.0 - rehype: 13.0.1 - rehype-format: 5.0.0 - remark-directive: 3.0.0 - unified: 11.0.5 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@astrojs/telemetry@3.1.0': - dependencies: - ci-info: 4.0.0 - debug: 4.3.7(supports-color@8.1.1) - dlv: 1.1.3 - dset: 3.1.3 - is-docker: 3.0.0 - is-wsl: 3.1.0 - which-pm-runs: 1.1.0 - transitivePeerDependencies: - - supports-color - - '@astrojs/yaml2ts@0.2.1': - dependencies: - yaml: 2.5.1 - - '@aws-crypto/crc32@3.0.0': - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.577.0 - tslib: 1.14.1 - - '@aws-crypto/crc32c@3.0.0': - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.577.0 - tslib: 1.14.1 - - '@aws-crypto/ie11-detection@3.0.0': - dependencies: - tslib: 1.14.1 - - '@aws-crypto/sha1-browser@3.0.0': - dependencies: - '@aws-crypto/ie11-detection': 3.0.0 - '@aws-crypto/supports-web-crypto': 3.0.0 - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-locate-window': 3.568.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - - '@aws-crypto/sha256-browser@3.0.0': - dependencies: - '@aws-crypto/ie11-detection': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-crypto/supports-web-crypto': 3.0.0 - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-locate-window': 3.568.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - - '@aws-crypto/sha256-js@1.2.2': - dependencies: - '@aws-crypto/util': 1.2.2 - '@aws-sdk/types': 3.577.0 - tslib: 1.14.1 - - '@aws-crypto/sha256-js@3.0.0': - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.577.0 - tslib: 1.14.1 - - '@aws-crypto/supports-web-crypto@3.0.0': - dependencies: - tslib: 1.14.1 - - '@aws-crypto/util@1.2.2': - dependencies: - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - - '@aws-crypto/util@3.0.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - - '@aws-sdk/client-s3@3.577.0': - dependencies: - '@aws-crypto/sha1-browser': 3.0.0 - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.577.0(@aws-sdk/client-sts@3.577.0) - '@aws-sdk/client-sts': 3.577.0 - '@aws-sdk/core': 3.576.0 - '@aws-sdk/credential-provider-node': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0) - '@aws-sdk/middleware-bucket-endpoint': 3.577.0 - '@aws-sdk/middleware-expect-continue': 3.577.0 - '@aws-sdk/middleware-flexible-checksums': 3.577.0 - '@aws-sdk/middleware-host-header': 3.577.0 - '@aws-sdk/middleware-location-constraint': 3.577.0 - '@aws-sdk/middleware-logger': 3.577.0 - '@aws-sdk/middleware-recursion-detection': 3.577.0 - '@aws-sdk/middleware-sdk-s3': 3.577.0 - '@aws-sdk/middleware-signing': 3.577.0 - '@aws-sdk/middleware-ssec': 3.577.0 - '@aws-sdk/middleware-user-agent': 3.577.0 - '@aws-sdk/region-config-resolver': 3.577.0 - '@aws-sdk/signature-v4-multi-region': 3.577.0 - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-endpoints': 3.577.0 - '@aws-sdk/util-user-agent-browser': 3.577.0 - '@aws-sdk/util-user-agent-node': 3.577.0 - '@aws-sdk/xml-builder': 3.575.0 - '@smithy/config-resolver': 3.0.0 - '@smithy/core': 2.0.1 - '@smithy/eventstream-serde-browser': 3.0.0 - '@smithy/eventstream-serde-config-resolver': 3.0.0 - '@smithy/eventstream-serde-node': 3.0.0 - '@smithy/fetch-http-handler': 3.0.1 - '@smithy/hash-blob-browser': 3.0.0 - '@smithy/hash-node': 3.0.0 - '@smithy/hash-stream-node': 3.0.0 - '@smithy/invalid-dependency': 3.0.0 - '@smithy/md5-js': 3.0.0 - '@smithy/middleware-content-length': 3.0.0 - '@smithy/middleware-endpoint': 3.0.0 - '@smithy/middleware-retry': 3.0.1 - '@smithy/middleware-serde': 3.0.0 - '@smithy/middleware-stack': 3.0.0 - '@smithy/node-config-provider': 3.0.0 - '@smithy/node-http-handler': 3.0.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/smithy-client': 3.0.1 - '@smithy/types': 3.0.0 - '@smithy/url-parser': 3.0.0 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.1 - '@smithy/util-defaults-mode-node': 3.0.1 - '@smithy/util-endpoints': 2.0.0 - '@smithy/util-retry': 3.0.0 - '@smithy/util-stream': 3.0.1 - '@smithy/util-utf8': 3.0.0 - '@smithy/util-waiter': 3.0.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-sso-oidc@3.577.0(@aws-sdk/client-sts@3.577.0)': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.577.0 - '@aws-sdk/core': 3.576.0 - '@aws-sdk/credential-provider-node': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0) - '@aws-sdk/middleware-host-header': 3.577.0 - '@aws-sdk/middleware-logger': 3.577.0 - '@aws-sdk/middleware-recursion-detection': 3.577.0 - '@aws-sdk/middleware-user-agent': 3.577.0 - '@aws-sdk/region-config-resolver': 3.577.0 - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-endpoints': 3.577.0 - '@aws-sdk/util-user-agent-browser': 3.577.0 - '@aws-sdk/util-user-agent-node': 3.577.0 - '@smithy/config-resolver': 3.0.0 - '@smithy/core': 2.0.1 - '@smithy/fetch-http-handler': 3.0.1 - '@smithy/hash-node': 3.0.0 - '@smithy/invalid-dependency': 3.0.0 - '@smithy/middleware-content-length': 3.0.0 - '@smithy/middleware-endpoint': 3.0.0 - '@smithy/middleware-retry': 3.0.1 - '@smithy/middleware-serde': 3.0.0 - '@smithy/middleware-stack': 3.0.0 - '@smithy/node-config-provider': 3.0.0 - '@smithy/node-http-handler': 3.0.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/smithy-client': 3.0.1 - '@smithy/types': 3.0.0 - '@smithy/url-parser': 3.0.0 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.1 - '@smithy/util-defaults-mode-node': 3.0.1 - '@smithy/util-endpoints': 2.0.0 - '@smithy/util-middleware': 3.0.0 - '@smithy/util-retry': 3.0.0 - '@smithy/util-utf8': 3.0.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@aws-sdk/client-sts' - - aws-crt - - '@aws-sdk/client-sso@3.577.0': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.576.0 - '@aws-sdk/middleware-host-header': 3.577.0 - '@aws-sdk/middleware-logger': 3.577.0 - '@aws-sdk/middleware-recursion-detection': 3.577.0 - '@aws-sdk/middleware-user-agent': 3.577.0 - '@aws-sdk/region-config-resolver': 3.577.0 - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-endpoints': 3.577.0 - '@aws-sdk/util-user-agent-browser': 3.577.0 - '@aws-sdk/util-user-agent-node': 3.577.0 - '@smithy/config-resolver': 3.0.0 - '@smithy/core': 2.0.1 - '@smithy/fetch-http-handler': 3.0.1 - '@smithy/hash-node': 3.0.0 - '@smithy/invalid-dependency': 3.0.0 - '@smithy/middleware-content-length': 3.0.0 - '@smithy/middleware-endpoint': 3.0.0 - '@smithy/middleware-retry': 3.0.1 - '@smithy/middleware-serde': 3.0.0 - '@smithy/middleware-stack': 3.0.0 - '@smithy/node-config-provider': 3.0.0 - '@smithy/node-http-handler': 3.0.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/smithy-client': 3.0.1 - '@smithy/types': 3.0.0 - '@smithy/url-parser': 3.0.0 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.1 - '@smithy/util-defaults-mode-node': 3.0.1 - '@smithy/util-endpoints': 2.0.0 - '@smithy/util-middleware': 3.0.0 - '@smithy/util-retry': 3.0.0 - '@smithy/util-utf8': 3.0.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/client-sts@3.577.0': - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.577.0(@aws-sdk/client-sts@3.577.0) - '@aws-sdk/core': 3.576.0 - '@aws-sdk/credential-provider-node': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0) - '@aws-sdk/middleware-host-header': 3.577.0 - '@aws-sdk/middleware-logger': 3.577.0 - '@aws-sdk/middleware-recursion-detection': 3.577.0 - '@aws-sdk/middleware-user-agent': 3.577.0 - '@aws-sdk/region-config-resolver': 3.577.0 - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-endpoints': 3.577.0 - '@aws-sdk/util-user-agent-browser': 3.577.0 - '@aws-sdk/util-user-agent-node': 3.577.0 - '@smithy/config-resolver': 3.0.0 - '@smithy/core': 2.0.1 - '@smithy/fetch-http-handler': 3.0.1 - '@smithy/hash-node': 3.0.0 - '@smithy/invalid-dependency': 3.0.0 - '@smithy/middleware-content-length': 3.0.0 - '@smithy/middleware-endpoint': 3.0.0 - '@smithy/middleware-retry': 3.0.1 - '@smithy/middleware-serde': 3.0.0 - '@smithy/middleware-stack': 3.0.0 - '@smithy/node-config-provider': 3.0.0 - '@smithy/node-http-handler': 3.0.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/smithy-client': 3.0.1 - '@smithy/types': 3.0.0 - '@smithy/url-parser': 3.0.0 - '@smithy/util-base64': 3.0.0 - '@smithy/util-body-length-browser': 3.0.0 - '@smithy/util-body-length-node': 3.0.0 - '@smithy/util-defaults-mode-browser': 3.0.1 - '@smithy/util-defaults-mode-node': 3.0.1 - '@smithy/util-endpoints': 2.0.0 - '@smithy/util-middleware': 3.0.0 - '@smithy/util-retry': 3.0.0 - '@smithy/util-utf8': 3.0.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/core@3.576.0': - dependencies: - '@smithy/core': 2.0.1 - '@smithy/protocol-http': 4.0.0 - '@smithy/signature-v4': 3.0.0 - '@smithy/smithy-client': 3.0.1 - '@smithy/types': 3.0.0 - fast-xml-parser: 4.2.5 - tslib: 2.6.2 - - '@aws-sdk/credential-provider-env@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/property-provider': 3.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/credential-provider-http@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/fetch-http-handler': 3.0.1 - '@smithy/node-http-handler': 3.0.0 - '@smithy/property-provider': 3.0.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/smithy-client': 3.0.1 - '@smithy/types': 3.0.0 - '@smithy/util-stream': 3.0.1 - tslib: 2.6.2 - - '@aws-sdk/credential-provider-ini@3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0)': - dependencies: - '@aws-sdk/client-sts': 3.577.0 - '@aws-sdk/credential-provider-env': 3.577.0 - '@aws-sdk/credential-provider-process': 3.577.0 - '@aws-sdk/credential-provider-sso': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0) - '@aws-sdk/credential-provider-web-identity': 3.577.0(@aws-sdk/client-sts@3.577.0) - '@aws-sdk/types': 3.577.0 - '@smithy/credential-provider-imds': 3.0.0 - '@smithy/property-provider': 3.0.0 - '@smithy/shared-ini-file-loader': 3.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - aws-crt - - '@aws-sdk/credential-provider-node@3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0)': - dependencies: - '@aws-sdk/credential-provider-env': 3.577.0 - '@aws-sdk/credential-provider-http': 3.577.0 - '@aws-sdk/credential-provider-ini': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0)(@aws-sdk/client-sts@3.577.0) - '@aws-sdk/credential-provider-process': 3.577.0 - '@aws-sdk/credential-provider-sso': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0) - '@aws-sdk/credential-provider-web-identity': 3.577.0(@aws-sdk/client-sts@3.577.0) - '@aws-sdk/types': 3.577.0 - '@smithy/credential-provider-imds': 3.0.0 - '@smithy/property-provider': 3.0.0 - '@smithy/shared-ini-file-loader': 3.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - '@aws-sdk/client-sts' - - aws-crt - - '@aws-sdk/credential-provider-process@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/property-provider': 3.0.0 - '@smithy/shared-ini-file-loader': 3.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/credential-provider-sso@3.577.0(@aws-sdk/client-sso-oidc@3.577.0)': - dependencies: - '@aws-sdk/client-sso': 3.577.0 - '@aws-sdk/token-providers': 3.577.0(@aws-sdk/client-sso-oidc@3.577.0) - '@aws-sdk/types': 3.577.0 - '@smithy/property-provider': 3.0.0 - '@smithy/shared-ini-file-loader': 3.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - aws-crt - - '@aws-sdk/credential-provider-web-identity@3.577.0(@aws-sdk/client-sts@3.577.0)': - dependencies: - '@aws-sdk/client-sts': 3.577.0 - '@aws-sdk/types': 3.577.0 - '@smithy/property-provider': 3.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/lib-storage@3.578.0(@aws-sdk/client-s3@3.577.0)': - dependencies: - '@aws-sdk/client-s3': 3.577.0 - '@smithy/abort-controller': 3.0.0 - '@smithy/middleware-endpoint': 3.0.0 - '@smithy/smithy-client': 3.0.1 - buffer: 5.6.0 - events: 3.3.0 - stream-browserify: 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-bucket-endpoint@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-arn-parser': 3.568.0 - '@smithy/node-config-provider': 3.0.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/types': 3.0.0 - '@smithy/util-config-provider': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-expect-continue@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-flexible-checksums@3.577.0': - dependencies: - '@aws-crypto/crc32': 3.0.0 - '@aws-crypto/crc32c': 3.0.0 - '@aws-sdk/types': 3.577.0 - '@smithy/is-array-buffer': 3.0.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/types': 3.0.0 - '@smithy/util-utf8': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-host-header@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-location-constraint@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-logger@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-recursion-detection@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-sdk-s3@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-arn-parser': 3.568.0 - '@smithy/node-config-provider': 3.0.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/signature-v4': 3.0.0 - '@smithy/smithy-client': 3.0.1 - '@smithy/types': 3.0.0 - '@smithy/util-config-provider': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-signing@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/property-provider': 3.0.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/signature-v4': 3.0.0 - '@smithy/types': 3.0.0 - '@smithy/util-middleware': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-ssec@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/middleware-user-agent@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@aws-sdk/util-endpoints': 3.577.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/region-config-resolver@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/node-config-provider': 3.0.0 - '@smithy/types': 3.0.0 - '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/signature-v4-multi-region@3.577.0': - dependencies: - '@aws-sdk/middleware-sdk-s3': 3.577.0 - '@aws-sdk/types': 3.577.0 - '@smithy/protocol-http': 4.0.0 - '@smithy/signature-v4': 3.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/token-providers@3.577.0(@aws-sdk/client-sso-oidc@3.577.0)': - dependencies: - '@aws-sdk/client-sso-oidc': 3.577.0(@aws-sdk/client-sts@3.577.0) - '@aws-sdk/types': 3.577.0 - '@smithy/property-provider': 3.0.0 - '@smithy/shared-ini-file-loader': 3.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/types@3.577.0': - dependencies: - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/util-arn-parser@3.568.0': - dependencies: - tslib: 2.6.2 - - '@aws-sdk/util-endpoints@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/types': 3.0.0 - '@smithy/util-endpoints': 2.0.0 - tslib: 2.6.2 - - '@aws-sdk/util-locate-window@3.568.0': - dependencies: - tslib: 2.6.2 - - '@aws-sdk/util-user-agent-browser@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/types': 3.0.0 - bowser: 2.11.0 - tslib: 2.6.2 - - '@aws-sdk/util-user-agent-node@3.577.0': - dependencies: - '@aws-sdk/types': 3.577.0 - '@smithy/node-config-provider': 3.0.0 - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@aws-sdk/util-utf8-browser@3.259.0': - dependencies: - tslib: 2.6.2 - - '@aws-sdk/xml-builder@3.575.0': - dependencies: - '@smithy/types': 3.0.0 - tslib: 2.6.2 - - '@babel/code-frame@7.23.5': - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - - '@babel/code-frame@7.24.2': - dependencies: - '@babel/highlight': 7.24.5 - picocolors: 1.0.0 - - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.0 - - '@babel/compat-data@7.25.4': {} - - '@babel/core@7.25.2': - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.25.6': - dependencies: - '@babel/types': 7.25.6 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-annotate-as-pure@7.24.7': - dependencies: - '@babel/types': 7.25.6 - - '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': - dependencies: - '@babel/types': 7.25.6 - - '@babel/helper-compilation-targets@7.25.2': - dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.23.10(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.25.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 - semver: 6.3.1 - - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - regexpu-core: 5.3.2 - semver: 6.3.1 - - '@babel/helper-define-polyfill-provider@0.5.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.7(supports-color@8.1.1) - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-environment-visitor@7.22.20': {} - - '@babel/helper-function-name@7.23.0': - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - - '@babel/helper-hoist-variables@7.22.5': + '@babel/core': ^7.0.0-0 dependencies: - '@babel/types': 7.25.6 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/helper-member-expression-to-functions@7.23.0': + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/types': 7.25.6 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/helper-module-imports@7.22.15': + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/types': 7.23.9 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/helper-module-imports@7.24.7': + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/helper-optimise-call-expression@7.22.5': + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/types': 7.25.6 - - '@babel/helper-plugin-utils@7.24.8': {} + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.25.2)': + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/helper-replace-supers@7.22.20(@babel/core@7.25.2)': + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/helper-simple-access@7.24.7': + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/helper-skip-transparent-expression-wrappers@7.22.5': + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.5): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/types': 7.25.6 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/helper-split-export-declaration@7.24.5': + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/types': 7.25.6 - - '@babel/helper-string-parser@7.23.4': {} - - '@babel/helper-string-parser@7.24.8': {} - - '@babel/helper-validator-identifier@7.22.20': {} - - '@babel/helper-validator-identifier@7.24.5': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/helper-validator-option@7.24.8': {} + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/helper-wrap-function@7.22.20': + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.5): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/helpers@7.25.6': + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/highlight@7.23.4': + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.5): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/highlight@7.24.5': + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-validator-identifier': 7.24.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/highlight@7.24.7': + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.0 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/parser@7.23.9': + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/types': 7.23.9 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/parser@7.24.5': + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.5): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/types': 7.25.6 + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/parser@7.25.6': + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/types': 7.25.6 + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.25.2)': + /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.5): + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + dev: true - '@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.25.2)': + /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.25.2): + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.25.2) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + dev: false - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.2)': + /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) + dev: true - '@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.25.2) + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.25.2) + dev: false - '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.25.2)': + /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.25.2)': + /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.25.2)': + /@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.25.4 - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.25.2)': + /@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.25.2)': + /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': + /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': + /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.5): + resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) + dev: true - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': + /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.25.2): + resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + dev: false - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': + /@babel/plugin-transform-classes@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + '@babel/helper-split-export-declaration': 7.24.5 + globals: 11.12.0 + dev: true - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': + /@babel/plugin-transform-classes@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.25.2) + '@babel/helper-split-export-declaration': 7.24.5 + globals: 11.12.0 + dev: false - '@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/template': 7.24.0 + dev: true - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': + /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/template': 7.24.0 + dev: false - '@babel/plugin-syntax-flow@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': + /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false + + /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': + /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': + /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) + dev: true - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': + /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + dev: false - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': + /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': + /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.24.5 + dev: false + + /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) + dev: true - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': + /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + dev: false - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': + /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.24.5) + dev: true - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': + /@babel/plugin-transform-flow-strip-types@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.25.2) + dev: false - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': + /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': + /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: false - '@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': + /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) + dev: true - '@babel/plugin-transform-async-generator-functions@7.23.9(@babel/core@7.25.2)': + /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-literals@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) + dev: true - '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-classes@7.23.8(@babel/core@7.25.2)': + /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.25.2) - '@babel/helper-split-export-declaration': 7.24.5 - globals: 11.12.0 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.25.0 + '@babel/core': 7.24.5 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-simple-access': 7.24.5 + dev: true - '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-simple-access': 7.24.5 + dev: false - '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 + dev: true - '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-identifier': 7.24.5 + dev: false - '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.25.2) + '@babel/helper-module-transforms': 7.24.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.25.2)': + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.5): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.25.2): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-literals@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + dev: true - '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + dev: true - '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-simple-access': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-modules-systemjs@7.23.9(@babel/core@7.25.2)': + /@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) + dev: true - '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.25.2)': + /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + dev: true - '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + dev: true - '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.25.4 - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + dev: true - '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-parameters@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-parameters@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false + + /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) + dev: true - '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.25.2)': + /@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + dev: false - '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true + + /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + dev: false - '@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-react-jsx-self@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + dev: false - '@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + dev: false - '@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2)': + /@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2): + resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/types': 7.25.6 + '@babel/types': 7.25.2 transitivePeerDependencies: - supports-color + dev: false + + /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + regenerator-transform: 0.15.2 + dev: true - '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 regenerator-transform: 0.15.2 + dev: false - '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true + + /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-runtime@7.23.9(@babel/core@7.25.2)': + /@babel/plugin-transform-runtime@7.24.3(@babel/core@7.25.2): + resolution: {integrity: sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.25.2) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.25.2) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: false + + /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false + + /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true - '@babel/plugin-transform-spread@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-spread@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: false + + /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false - '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true + + /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false + + /@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false + + /@babel/plugin-transform-typescript@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) + dev: true - '@babel/plugin-transform-typescript@7.23.6(@babel/core@7.25.2)': + /@babel/plugin-transform-typescript@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-E0VWu/hk83BIFUWnsKZ4D81KXjN5L3MobvevOHErASk9IPwKHOkTgvqzvNo1yP/ePJWqqK2SpUR5z+KQbl6NVw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.23.10(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.25.2) + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.25.2) + dev: false + + /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false + + /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false + + /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false + + /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.5 + dev: true - '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.25.2)': + /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.24.5 + dev: false + + /@babel/preset-env@7.24.5(@babel/core@7.24.5): + resolution: {integrity: sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.5) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.5) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.5) + '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.5) + '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-typeof-symbol': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.5) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.5) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.5) + core-js-compat: 3.37.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/preset-env@7.23.9(@babel/core@7.25.2)': + /@babel/preset-env@7.24.5(@babel/core@7.25.2): + resolution: {integrity: sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.25.4 + '@babel/compat-data': 7.24.4 '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.25.2) + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.25.2) '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.25.2) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.25.2) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) @@ -14679,89 +4257,157 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-async-generator-functions': 7.23.9(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-modules-systemjs': 7.23.9(@babel/core@7.25.2) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.25.2) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.25.2) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.25.2) + '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.25.2) '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.25.2) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.25.2) + '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-object-rest-spread': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-typeof-symbol': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.25.2) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) - babel-plugin-polyfill-corejs2: 0.4.8(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.9.0(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.5.5(@babel/core@7.25.2) - core-js-compat: 3.36.0 + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.25.2) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + core-js-compat: 3.37.0 semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: false + + /@babel/preset-flow@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-sWCV2G9pcqZf+JHyv/RyqEIpFypxdCSxWIxQjpdaQxenNog7cN1pr76hg8u0Fz8Qgg0H4ETkGcJnXL8d4j0PPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.24.5) + dev: true - '@babel/preset-flow@7.23.3(@babel/core@7.25.2)': + /@babel/preset-flow@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-sWCV2G9pcqZf+JHyv/RyqEIpFypxdCSxWIxQjpdaQxenNog7cN1pr76hg8u0Fz8Qgg0H4ETkGcJnXL8d4j0PPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.25.2) + dev: false + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.5): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/types': 7.24.5 + esutils: 2.0.3 + dev: true - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/types': 7.25.6 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/types': 7.24.5 esutils: 2.0.3 + dev: false + + /@babel/preset-typescript@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-typescript': 7.24.5(@babel/core@7.24.5) + dev: true - '@babel/preset-typescript@7.23.3(@babel/core@7.25.2)': + /@babel/preset-typescript@7.24.1(@babel/core@7.25.2): + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-typescript': 7.24.5(@babel/core@7.25.2) + dev: false + + /@babel/register@7.23.7(@babel/core@7.24.5): + resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + clone-deep: 4.0.1 + find-cache-dir: 2.1.0 + make-dir: 2.1.0 + pirates: 4.0.6 + source-map-support: 0.5.21 + dev: true - '@babel/register@7.23.7(@babel/core@7.25.2)': + /@babel/register@7.23.7(@babel/core@7.25.2): + resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.25.2 clone-deep: 4.0.1 @@ -14769,57 +4415,103 @@ snapshots: make-dir: 2.1.0 pirates: 4.0.6 source-map-support: 0.5.21 + dev: false - '@babel/regjsgen@0.8.0': {} + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - '@babel/runtime@7.23.9': + /@babel/runtime@7.24.5: + resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} + engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.25.0': + /@babel/template@7.24.0: + resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 + + /@babel/template@7.25.0: + resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + + /@babel/traverse@7.24.5: + resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true - '@babel/traverse@7.25.6': + /@babel/traverse@7.25.3: + resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.3 '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - debug: 4.3.7(supports-color@8.1.1) + '@babel/types': 7.25.2 + debug: 4.3.6(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.23.9': + /@babel/types@7.24.5: + resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} + engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.24.5 to-fast-properties: 2.0.0 - '@babel/types@7.25.6': + /@babel/types@7.25.2: + resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} + engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 - '@bcoe/v8-coverage@0.2.3': {} + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true - '@chainsafe/is-ip@2.0.2': {} + /@chainsafe/is-ip@2.0.2: + resolution: {integrity: sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA==} + dev: false - '@chainsafe/netmask@2.0.0': + /@chainsafe/netmask@2.0.0: + resolution: {integrity: sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==} dependencies: '@chainsafe/is-ip': 2.0.2 + dev: false - '@changesets/apply-release-plan@7.0.5': + /@changesets/apply-release-plan@7.0.4: + resolution: {integrity: sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==} dependencies: - '@changesets/config': 3.0.3 + '@babel/runtime': 7.24.5 + '@changesets/config': 3.0.2 '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.1 - '@changesets/should-skip-package': 0.1.1 + '@changesets/git': 3.0.0 + '@changesets/should-skip-package': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 detect-indent: 6.1.0 @@ -14828,161 +4520,215 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.3 + dev: false - '@changesets/assemble-release-plan@6.0.4': + /@changesets/assemble-release-plan@6.0.3: + resolution: {integrity: sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==} dependencies: + '@babel/runtime': 7.24.5 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/should-skip-package': 0.1.1 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/should-skip-package': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - semver: 7.6.2 + semver: 7.6.3 + dev: false - '@changesets/changelog-git@0.2.0': + /@changesets/changelog-git@0.2.0: + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} dependencies: '@changesets/types': 6.0.0 + dev: false - '@changesets/cli@2.27.8': + /@changesets/cli@2.27.7: + resolution: {integrity: sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==} + hasBin: true dependencies: - '@changesets/apply-release-plan': 7.0.5 - '@changesets/assemble-release-plan': 6.0.4 + '@babel/runtime': 7.24.5 + '@changesets/apply-release-plan': 7.0.4 + '@changesets/assemble-release-plan': 6.0.3 '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.3 + '@changesets/config': 3.0.2 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/get-release-plan': 4.0.4 - '@changesets/git': 3.0.1 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.1 - '@changesets/read': 0.6.1 - '@changesets/should-skip-package': 0.1.1 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/get-release-plan': 4.0.3 + '@changesets/git': 3.0.0 + '@changesets/logger': 0.1.0 + '@changesets/pre': 2.0.0 + '@changesets/read': 0.6.0 + '@changesets/should-skip-package': 0.1.0 '@changesets/types': 6.0.0 - '@changesets/write': 0.3.2 + '@changesets/write': 0.3.1 '@manypkg/get-packages': 1.1.3 - '@types/semver': 7.5.7 + '@types/semver': 7.5.8 ansi-colors: 4.1.3 + chalk: 2.4.2 ci-info: 3.9.0 enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 + human-id: 1.0.2 mri: 1.2.0 outdent: 0.5.0 p-limit: 2.3.0 - package-manager-detector: 0.2.0 - picocolors: 1.1.0 + preferred-pm: 3.1.3 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.3 spawndamnit: 2.0.0 term-size: 2.2.1 + dev: false - '@changesets/config@3.0.3': + /@changesets/config@3.0.2: + resolution: {integrity: sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==} dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/logger': 0.1.1 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/logger': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 micromatch: 4.0.5 + dev: false - '@changesets/errors@0.2.0': + /@changesets/errors@0.2.0: + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} dependencies: extendable-error: 0.1.7 + dev: false - '@changesets/get-dependents-graph@2.1.2': + /@changesets/get-dependents-graph@2.1.1: + resolution: {integrity: sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==} dependencies: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.0 - semver: 7.6.2 + chalk: 2.4.2 + fs-extra: 7.0.1 + semver: 7.6.3 + dev: false - '@changesets/get-release-plan@4.0.4': + /@changesets/get-release-plan@4.0.3: + resolution: {integrity: sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==} dependencies: - '@changesets/assemble-release-plan': 6.0.4 - '@changesets/config': 3.0.3 - '@changesets/pre': 2.0.1 - '@changesets/read': 0.6.1 + '@babel/runtime': 7.24.5 + '@changesets/assemble-release-plan': 6.0.3 + '@changesets/config': 3.0.2 + '@changesets/pre': 2.0.0 + '@changesets/read': 0.6.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 + dev: false - '@changesets/get-version-range-type@0.4.0': {} + /@changesets/get-version-range-type@0.4.0: + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + dev: false - '@changesets/git@3.0.1': + /@changesets/git@3.0.0: + resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} dependencies: + '@babel/runtime': 7.24.5 '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 micromatch: 4.0.5 spawndamnit: 2.0.0 + dev: false - '@changesets/logger@0.1.1': + /@changesets/logger@0.1.0: + resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} dependencies: - picocolors: 1.1.0 + chalk: 2.4.2 + dev: false - '@changesets/parse@0.4.0': + /@changesets/parse@0.4.0: + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} dependencies: '@changesets/types': 6.0.0 js-yaml: 3.14.1 + dev: false - '@changesets/pre@2.0.1': + /@changesets/pre@2.0.0: + resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} dependencies: + '@babel/runtime': 7.24.5 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 + dev: false - '@changesets/read@0.6.1': + /@changesets/read@0.6.0: + resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} dependencies: - '@changesets/git': 3.0.1 - '@changesets/logger': 0.1.1 + '@babel/runtime': 7.24.5 + '@changesets/git': 3.0.0 + '@changesets/logger': 0.1.0 '@changesets/parse': 0.4.0 '@changesets/types': 6.0.0 + chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 - picocolors: 1.1.0 + dev: false - '@changesets/should-skip-package@0.1.1': + /@changesets/should-skip-package@0.1.0: + resolution: {integrity: sha512-FxG6Mhjw7yFStlSM7Z0Gmg3RiyQ98d/9VpQAZ3Fzr59dCOM9G6ZdYbjiSAt0XtFr9JR5U2tBaJWPjrkGGc618g==} dependencies: + '@babel/runtime': 7.24.5 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 + dev: false - '@changesets/types@4.1.0': {} + /@changesets/types@4.1.0: + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + dev: false - '@changesets/types@6.0.0': {} + /@changesets/types@6.0.0: + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + dev: false - '@changesets/write@0.3.2': + /@changesets/write@0.3.1: + resolution: {integrity: sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==} dependencies: + '@babel/runtime': 7.24.5 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.8.8 + dev: false - '@chromatic-com/storybook@1.3.3(react@18.2.0)': + /@chromatic-com/storybook@1.3.3(react@18.3.1): + resolution: {integrity: sha512-1y9r691T5vVGDZ0HY3YrCXUnvtrT2YrhDuvDZSvYSNUVpM/Imz6i1dnNMKb3eoI1qRsH55mI4zCt+Iq94NLedQ==} + engines: {node: '>=16.0.0', yarn: '>=1.22.18'} dependencies: chromatic: 11.3.0 filesize: 10.1.1 jsonfile: 6.1.0 - react-confetti: 6.1.0(react@18.2.0) + react-confetti: 6.1.0(react@18.3.1) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' - '@chromatic-com/playwright' - react + dev: true - '@chromatic-com/storybook@1.9.0(react@18.2.0)': + /@chromatic-com/storybook@1.6.1(react@18.3.1): + resolution: {integrity: sha512-x1x1NB3j4xpfeSWKr96emc+7ZvfsvH+/WVb3XCjkB24PPbT8VZXb3mJSAQMrSzuQ8+eQE9kDogYHH9Fj3tb/Cw==} + engines: {node: '>=16.0.0', yarn: '>=1.22.18'} dependencies: - chromatic: 11.10.2 + chromatic: 11.7.0 filesize: 10.1.1 jsonfile: 6.1.0 - react-confetti: 6.1.0(react@18.2.0) + react-confetti: 6.1.0(react@18.3.1) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' - '@chromatic-com/playwright' - react + dev: true - '@coinbase/wallet-sdk@3.9.1': + /@coinbase/wallet-sdk@3.9.1: + resolution: {integrity: sha512-cGUE8wm1/cMI8irRMVOqbFWYcnNugqCtuy2lnnHfgloBg+GRLs9RsrkOUDMdv/StfUeeKhCDyYudsXXvcL1xIA==} dependencies: bn.js: 5.2.1 buffer: 6.0.3 @@ -14991,12 +4737,14 @@ snapshots: eth-json-rpc-filters: 6.0.1 eventemitter3: 5.0.1 keccak: 3.0.4 - preact: 10.19.5 + preact: 10.21.0 sha.js: 2.4.11 transitivePeerDependencies: - supports-color + dev: false - '@coinbase/wallet-sdk@3.9.3': + /@coinbase/wallet-sdk@3.9.3: + resolution: {integrity: sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw==} dependencies: bn.js: 5.2.1 buffer: 6.0.3 @@ -15005,499 +4753,1126 @@ snapshots: eth-json-rpc-filters: 6.0.1 eventemitter3: 5.0.1 keccak: 3.0.4 - preact: 10.19.5 + preact: 10.21.0 sha.js: 2.4.11 transitivePeerDependencies: - supports-color + dev: false - '@coinbase/wallet-sdk@4.0.4': + /@coinbase/wallet-sdk@4.0.4: + resolution: {integrity: sha512-74c040CRnGhfRjr3ArnkAgud86erIqdkPHNt5HR1k9u97uTIZCJww9eGYT67Qf7gHPpGS/xW8Be1D4dvRm63FA==} dependencies: buffer: 6.0.3 clsx: 1.2.1 eventemitter3: 5.0.1 keccak: 3.0.4 - preact: 10.19.5 + preact: 10.21.0 sha.js: 2.4.11 + dev: false - '@colors/colors@1.5.0': {} + /@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + dev: true - '@cspotcode/source-map-support@0.8.1': + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.0.15)': + /@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.0.16): + resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 dependencies: - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.16 + dev: true - '@csstools/selector-specificity@3.0.2(postcss-selector-parser@6.0.15)': + /@csstools/selector-specificity@3.0.3(postcss-selector-parser@6.0.16): + resolution: {integrity: sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.13 dependencies: - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.16 + dev: true - '@ctrl/tinycolor@4.1.0': {} + /@ctrl/tinycolor@4.1.0: + resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} + engines: {node: '>=14'} + dev: false - '@emmetio/abbreviation@2.3.3': + /@emmetio/abbreviation@2.3.3: + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} dependencies: '@emmetio/scanner': 1.0.4 + dev: false - '@emmetio/css-abbreviation@2.1.8': + /@emmetio/css-abbreviation@2.1.8: + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} dependencies: '@emmetio/scanner': 1.0.4 + dev: false - '@emmetio/css-parser@0.4.0': + /@emmetio/css-parser@0.4.0: + resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} dependencies: '@emmetio/stream-reader': 2.2.0 '@emmetio/stream-reader-utils': 0.1.0 + dev: false - '@emmetio/html-matcher@1.3.0': + /@emmetio/html-matcher@1.3.0: + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} dependencies: '@emmetio/scanner': 1.0.4 + dev: false - '@emmetio/scanner@1.0.4': {} + /@emmetio/scanner@1.0.4: + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + dev: false - '@emmetio/stream-reader-utils@0.1.0': {} + /@emmetio/stream-reader-utils@0.1.0: + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + dev: false - '@emmetio/stream-reader@2.2.0': {} + /@emmetio/stream-reader@2.2.0: + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + dev: false - '@emnapi/runtime@1.1.1': + /@emnapi/runtime@1.1.1: + resolution: {integrity: sha512-3bfqkzuR1KLx57nZfjr2NLnFOobvyS0aTszaEGCGqmYMVDRaGvgIZbjGSV/MHSSmLgQ/b9JFHQ5xm5WRZYd+XQ==} + requiresBuild: true dependencies: - tslib: 2.6.2 + tslib: 2.7.0 + dev: false optional: true - '@emotion/babel-plugin@11.11.0': - dependencies: - '@babel/helper-module-imports': 7.22.15 - '@babel/runtime': 7.23.9 - '@emotion/hash': 0.9.1 - '@emotion/memoize': 0.8.1 - '@emotion/serialize': 1.1.3 - babel-plugin-macros: 3.1.0 - convert-source-map: 1.9.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.2.0 - - '@emotion/cache@11.11.0': - dependencies: - '@emotion/memoize': 0.8.1 - '@emotion/sheet': 1.2.2 - '@emotion/utils': 1.2.1 - '@emotion/weak-memoize': 0.3.1 - stylis: 4.2.0 - - '@emotion/hash@0.9.1': {} - - '@emotion/is-prop-valid@1.2.1': - dependencies: - '@emotion/memoize': 0.8.1 - - '@emotion/memoize@0.8.1': {} - - '@emotion/react@11.11.3(@types/react@18.3.5)(react@18.2.0)': - dependencies: - '@babel/runtime': 7.23.9 - '@emotion/babel-plugin': 11.11.0 - '@emotion/cache': 11.11.0 - '@emotion/serialize': 1.1.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) - '@emotion/utils': 1.2.1 - '@emotion/weak-memoize': 0.3.1 - hoist-non-react-statics: 3.3.2 - react: 18.2.0 - optionalDependencies: - '@types/react': 18.3.5 - - '@emotion/serialize@1.1.3': - dependencies: - '@emotion/hash': 0.9.1 - '@emotion/memoize': 0.8.1 - '@emotion/unitless': 0.8.1 - '@emotion/utils': 1.2.1 - csstype: 3.1.3 - - '@emotion/sheet@1.2.2': {} - - '@emotion/styled@11.11.0(@emotion/react@11.11.3(@types/react@18.3.5)(react@18.2.0))(@types/react@18.3.5)(react@18.2.0)': - dependencies: - '@babel/runtime': 7.23.9 - '@emotion/babel-plugin': 11.11.0 - '@emotion/is-prop-valid': 1.2.1 - '@emotion/react': 11.11.3(@types/react@18.3.5)(react@18.2.0) - '@emotion/serialize': 1.1.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) - '@emotion/utils': 1.2.1 - react: 18.2.0 - optionalDependencies: - '@types/react': 18.3.5 - - '@emotion/unitless@0.8.1': {} - - '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0)': - dependencies: - react: 18.2.0 - - '@emotion/utils@1.2.1': {} - - '@emotion/weak-memoize@0.3.1': {} - - '@esbuild/aix-ppc64@0.19.12': + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true optional: true - '@esbuild/aix-ppc64@0.20.2': + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true optional: true - '@esbuild/aix-ppc64@0.21.3': + /@esbuild/aix-ppc64@0.21.3: + resolution: {integrity: sha512-yTgnwQpFVYfvvo4SvRFB0SwrW8YjOxEoT7wfMT7Ol5v7v5LDNvSGo67aExmxOb87nQNeWPVvaGBNfQ7BXcrZ9w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: true optional: true - '@esbuild/aix-ppc64@0.21.5': + /@esbuild/aix-ppc64@0.21.5: + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + dev: false optional: true - '@esbuild/android-arm64@0.18.20': + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-arm64@0.19.12': + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true optional: true - '@esbuild/android-arm64@0.20.2': + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-arm64@0.21.3': + /@esbuild/android-arm64@0.21.3: + resolution: {integrity: sha512-c+ty9necz3zB1Y+d/N+mC6KVVkGUUOcm4ZmT5i/Fk5arOaY3i6CA3P5wo/7+XzV8cb4GrI/Zjp8NuOQ9Lfsosw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-arm64@0.21.5': + /@esbuild/android-arm64@0.21.5: + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false optional: true - '@esbuild/android-arm@0.18.20': + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-arm@0.19.12': + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true optional: true - '@esbuild/android-arm@0.20.2': + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-arm@0.21.3': + /@esbuild/android-arm@0.21.3: + resolution: {integrity: sha512-bviJOLMgurLJtF1/mAoJLxDZDL6oU5/ztMHnJQRejbJrSc9FFu0QoUoFhvi6qSKJEw9y5oGyvr9fuDtzJ30rNQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-arm@0.21.5': + /@esbuild/android-arm@0.21.5: + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false optional: true - '@esbuild/android-x64@0.18.20': + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-x64@0.19.12': + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true optional: true - '@esbuild/android-x64@0.20.2': + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-x64@0.21.3': + /@esbuild/android-x64@0.21.3: + resolution: {integrity: sha512-JReHfYCRK3FVX4Ra+y5EBH1b9e16TV2OxrPAvzMsGeES0X2Ndm9ImQRI4Ket757vhc5XBOuGperw63upesclRw==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true optional: true - '@esbuild/android-x64@0.21.5': + /@esbuild/android-x64@0.21.5: + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false optional: true - '@esbuild/darwin-arm64@0.18.20': + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@esbuild/darwin-arm64@0.19.12': + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true optional: true - '@esbuild/darwin-arm64@0.20.2': + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@esbuild/darwin-arm64@0.21.3': + /@esbuild/darwin-arm64@0.21.3: + resolution: {integrity: sha512-U3fuQ0xNiAkXOmQ6w5dKpEvXQRSpHOnbw7gEfHCRXPeTKW9sBzVck6C5Yneb8LfJm0l6le4NQfkNPnWMSlTFUQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@esbuild/darwin-arm64@0.21.5': + /@esbuild/darwin-arm64@0.21.5: + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@esbuild/darwin-x64@0.18.20': + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@esbuild/darwin-x64@0.19.12': + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true optional: true - '@esbuild/darwin-x64@0.20.2': + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@esbuild/darwin-x64@0.21.3': + /@esbuild/darwin-x64@0.21.3: + resolution: {integrity: sha512-3m1CEB7F07s19wmaMNI2KANLcnaqryJxO1fXHUV5j1rWn+wMxdUYoPyO2TnAbfRZdi7ADRwJClmOwgT13qlP3Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - '@esbuild/darwin-x64@0.21.5': + /@esbuild/darwin-x64@0.21.5: + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@esbuild/freebsd-arm64@0.18.20': + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@esbuild/freebsd-arm64@0.19.12': + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true optional: true - '@esbuild/freebsd-arm64@0.20.2': + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@esbuild/freebsd-arm64@0.21.3': + /@esbuild/freebsd-arm64@0.21.3: + resolution: {integrity: sha512-fsNAAl5pU6wmKHq91cHWQT0Fz0vtyE1JauMzKotrwqIKAswwP5cpHUCxZNSTuA/JlqtScq20/5KZ+TxQdovU/g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@esbuild/freebsd-arm64@0.21.5': + /@esbuild/freebsd-arm64@0.21.5: + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false optional: true - '@esbuild/freebsd-x64@0.18.20': + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@esbuild/freebsd-x64@0.19.12': + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true optional: true - '@esbuild/freebsd-x64@0.20.2': + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@esbuild/freebsd-x64@0.21.3': + /@esbuild/freebsd-x64@0.21.3: + resolution: {integrity: sha512-tci+UJ4zP5EGF4rp8XlZIdq1q1a/1h9XuronfxTMCNBslpCtmk97Q/5qqy1Mu4zIc0yswN/yP/BLX+NTUC1bXA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - '@esbuild/freebsd-x64@0.21.5': + /@esbuild/freebsd-x64@0.21.5: + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false optional: true - '@esbuild/linux-arm64@0.18.20': + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-arm64@0.19.12': + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-arm64@0.20.2': + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-arm64@0.21.3': + /@esbuild/linux-arm64@0.21.3: + resolution: {integrity: sha512-vvG6R5g5ieB4eCJBQevyDMb31LMHthLpXTc2IGkFnPWS/GzIFDnaYFp558O+XybTmYrVjxnryru7QRleJvmZ6Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-arm64@0.21.5': + /@esbuild/linux-arm64@0.21.5: + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@esbuild/linux-arm@0.18.20': + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-arm@0.19.12': + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-arm@0.20.2': + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-arm@0.21.3': + /@esbuild/linux-arm@0.21.3: + resolution: {integrity: sha512-f6kz2QpSuyHHg01cDawj0vkyMwuIvN62UAguQfnNVzbge2uWLhA7TCXOn83DT0ZvyJmBI943MItgTovUob36SQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-arm@0.21.5': + /@esbuild/linux-arm@0.21.5: + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false optional: true - '@esbuild/linux-ia32@0.18.20': + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-ia32@0.19.12': + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-ia32@0.20.2': + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-ia32@0.21.3': + /@esbuild/linux-ia32@0.21.3: + resolution: {integrity: sha512-HjCWhH7K96Na+66TacDLJmOI9R8iDWDDiqe17C7znGvvE4sW1ECt9ly0AJ3dJH62jHyVqW9xpxZEU1jKdt+29A==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-ia32@0.21.5': + /@esbuild/linux-ia32@0.21.5: + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false optional: true - '@esbuild/linux-loong64@0.18.20': + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-loong64@0.19.12': + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-loong64@0.20.2': + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-loong64@0.21.3': + /@esbuild/linux-loong64@0.21.3: + resolution: {integrity: sha512-BGpimEccmHBZRcAhdlRIxMp7x9PyJxUtj7apL2IuoG9VxvU/l/v1z015nFs7Si7tXUwEsvjc1rOJdZCn4QTU+Q==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-loong64@0.21.5': + /@esbuild/linux-loong64@0.21.5: + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@esbuild/linux-mips64el@0.18.20': + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-mips64el@0.19.12': + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-mips64el@0.20.2': + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-mips64el@0.21.3': + /@esbuild/linux-mips64el@0.21.3: + resolution: {integrity: sha512-5rMOWkp7FQGtAH3QJddP4w3s47iT20hwftqdm7b+loe95o8JU8ro3qZbhgMRy0VuFU0DizymF1pBKkn3YHWtsw==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-mips64el@0.21.5': + /@esbuild/linux-mips64el@0.21.5: + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false optional: true - '@esbuild/linux-ppc64@0.18.20': + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-ppc64@0.19.12': + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-ppc64@0.20.2': + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-ppc64@0.21.3': + /@esbuild/linux-ppc64@0.21.3: + resolution: {integrity: sha512-h0zj1ldel89V5sjPLo5H1SyMzp4VrgN1tPkN29TmjvO1/r0MuMRwJxL8QY05SmfsZRs6TF0c/IDH3u7XYYmbAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-ppc64@0.21.5': + /@esbuild/linux-ppc64@0.21.5: + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@esbuild/linux-riscv64@0.18.20': + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-riscv64@0.19.12': + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-riscv64@0.20.2': + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-riscv64@0.21.3': + /@esbuild/linux-riscv64@0.21.3: + resolution: {integrity: sha512-dkAKcTsTJ+CRX6bnO17qDJbLoW37npd5gSNtSzjYQr0svghLJYGYB0NF1SNcU1vDcjXLYS5pO4qOW4YbFama4A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-riscv64@0.21.5': + /@esbuild/linux-riscv64@0.21.5: + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@esbuild/linux-s390x@0.18.20': + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-s390x@0.19.12': + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-s390x@0.20.2': + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-s390x@0.21.3': + /@esbuild/linux-s390x@0.21.3: + resolution: {integrity: sha512-vnD1YUkovEdnZWEuMmy2X2JmzsHQqPpZElXx6dxENcIwTu+Cu5ERax6+Ke1QsE814Zf3c6rxCfwQdCTQ7tPuXA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-s390x@0.21.5': + /@esbuild/linux-s390x@0.21.5: + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false optional: true - '@esbuild/linux-x64@0.18.20': + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-x64@0.19.12': + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true optional: true - '@esbuild/linux-x64@0.20.2': + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-x64@0.21.3': + /@esbuild/linux-x64@0.21.3: + resolution: {integrity: sha512-IOXOIm9WaK7plL2gMhsWJd+l2bfrhfilv0uPTptoRoSb2p09RghhQQp9YY6ZJhk/kqmeRt6siRdMSLLwzuT0KQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - '@esbuild/linux-x64@0.21.5': + /@esbuild/linux-x64@0.21.5: + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@esbuild/netbsd-x64@0.18.20': + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true optional: true - '@esbuild/netbsd-x64@0.19.12': + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true optional: true - '@esbuild/netbsd-x64@0.20.2': + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true optional: true - '@esbuild/netbsd-x64@0.21.3': + /@esbuild/netbsd-x64@0.21.3: + resolution: {integrity: sha512-uTgCwsvQ5+vCQnqM//EfDSuomo2LhdWhFPS8VL8xKf+PKTCrcT/2kPPoWMTs22aB63MLdGMJiE3f1PHvCDmUOw==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true optional: true - '@esbuild/netbsd-x64@0.21.5': + /@esbuild/netbsd-x64@0.21.5: + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false optional: true - '@esbuild/openbsd-x64@0.18.20': + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true optional: true - '@esbuild/openbsd-x64@0.19.12': + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true optional: true - '@esbuild/openbsd-x64@0.20.2': + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true optional: true - '@esbuild/openbsd-x64@0.21.3': + /@esbuild/openbsd-x64@0.21.3: + resolution: {integrity: sha512-vNAkR17Ub2MgEud2Wag/OE4HTSI6zlb291UYzHez/psiKarp0J8PKGDnAhMBcHFoOHMXHfExzmjMojJNbAStrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true optional: true - '@esbuild/openbsd-x64@0.21.5': + /@esbuild/openbsd-x64@0.21.5: + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false optional: true - '@esbuild/sunos-x64@0.18.20': + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true optional: true - '@esbuild/sunos-x64@0.19.12': + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true optional: true - '@esbuild/sunos-x64@0.20.2': + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true optional: true - '@esbuild/sunos-x64@0.21.3': + /@esbuild/sunos-x64@0.21.3: + resolution: {integrity: sha512-W8H9jlGiSBomkgmouaRoTXo49j4w4Kfbl6I1bIdO/vT0+0u4f20ko3ELzV3hPI6XV6JNBVX+8BC+ajHkvffIJA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true optional: true - '@esbuild/sunos-x64@0.21.5': + /@esbuild/sunos-x64@0.21.5: + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false optional: true - '@esbuild/win32-arm64@0.18.20': + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-arm64@0.19.12': + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true optional: true - '@esbuild/win32-arm64@0.20.2': + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-arm64@0.21.3': + /@esbuild/win32-arm64@0.21.3: + resolution: {integrity: sha512-EjEomwyLSCg8Ag3LDILIqYCZAq/y3diJ04PnqGRgq8/4O3VNlXyMd54j/saShaN4h5o5mivOjAzmU6C3X4v0xw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-arm64@0.21.5': + /@esbuild/win32-arm64@0.21.5: + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false optional: true - '@esbuild/win32-ia32@0.18.20': + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-ia32@0.19.12': + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true optional: true - '@esbuild/win32-ia32@0.20.2': + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-ia32@0.21.3': + /@esbuild/win32-ia32@0.21.3: + resolution: {integrity: sha512-WGiE/GgbsEwR33++5rzjiYsKyHywE8QSZPF7Rfx9EBfK3Qn3xyR6IjyCr5Uk38Kg8fG4/2phN7sXp4NPWd3fcw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-ia32@0.21.5': + /@esbuild/win32-ia32@0.21.5: + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false optional: true - '@esbuild/win32-x64@0.18.20': + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-x64@0.19.12': + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true optional: true - '@esbuild/win32-x64@0.20.2': + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-x64@0.21.3': + /@esbuild/win32-x64@0.21.3: + resolution: {integrity: sha512-xRxC0jaJWDLYvcUvjQmHCJSfMrgmUuvsoXgDeU/wTorQ1ngDdUBuFtgY3W1Pc5sprGAvZBtWdJX7RPg/iZZUqA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - '@esbuild/win32-x64@0.21.5': + /@esbuild/win32-x64@0.21.5: + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.55.0)': - dependencies: - eslint: 8.55.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 + dev: true - '@eslint-community/regexpp@4.10.0': {} + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true - '@eslint/eslintrc@1.4.1': + /@eslint/eslintrc@1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.4 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -15507,8 +5882,11 @@ snapshots: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + dev: true - '@eslint/eslintrc@2.1.4': + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 @@ -15521,42 +5899,59 @@ snapshots: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + dev: true - '@eslint/js@8.55.0': {} - - '@eslint/js@8.56.0': {} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - '@ethereumjs/common@2.6.5': + /@ethereumjs/common@2.6.5: + resolution: {integrity: sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==} dependencies: crc-32: 1.2.2 ethereumjs-util: 7.1.5 + dev: true - '@ethereumjs/common@3.2.0': + /@ethereumjs/common@3.2.0: + resolution: {integrity: sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==} dependencies: '@ethereumjs/util': 8.1.0 crc-32: 1.2.2 + dev: false - '@ethereumjs/rlp@4.0.1': {} + /@ethereumjs/rlp@4.0.1: + resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} + engines: {node: '>=14'} + hasBin: true - '@ethereumjs/tx@3.5.2': + /@ethereumjs/tx@3.5.2: + resolution: {integrity: sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==} dependencies: '@ethereumjs/common': 2.6.5 ethereumjs-util: 7.1.5 + dev: true - '@ethereumjs/tx@4.2.0': + /@ethereumjs/tx@4.2.0: + resolution: {integrity: sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==} + engines: {node: '>=14'} dependencies: '@ethereumjs/common': 3.2.0 '@ethereumjs/rlp': 4.0.1 '@ethereumjs/util': 8.1.0 ethereum-cryptography: 2.1.3 + dev: false - '@ethereumjs/util@8.1.0': + /@ethereumjs/util@8.1.0: + resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} + engines: {node: '>=14'} dependencies: '@ethereumjs/rlp': 4.0.1 ethereum-cryptography: 2.1.3 micro-ftch: 0.3.1 - '@ethersproject/abi@5.7.0': + /@ethersproject/abi@5.7.0: + resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} dependencies: '@ethersproject/address': 5.7.0 '@ethersproject/bignumber': 5.7.0 @@ -15568,7 +5963,8 @@ snapshots: '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 - '@ethersproject/abstract-provider@5.7.0': + /@ethersproject/abstract-provider@5.7.0: + resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} dependencies: '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 @@ -15578,7 +5974,8 @@ snapshots: '@ethersproject/transactions': 5.7.0 '@ethersproject/web': 5.7.1 - '@ethersproject/abstract-signer@5.7.0': + /@ethersproject/abstract-signer@5.7.0: + resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} dependencies: '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/bignumber': 5.7.0 @@ -15586,7 +5983,8 @@ snapshots: '@ethersproject/logger': 5.7.0 '@ethersproject/properties': 5.7.0 - '@ethersproject/address@5.7.0': + /@ethersproject/address@5.7.0: + resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} dependencies: '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 @@ -15594,30 +5992,37 @@ snapshots: '@ethersproject/logger': 5.7.0 '@ethersproject/rlp': 5.7.0 - '@ethersproject/base64@5.7.0': + /@ethersproject/base64@5.7.0: + resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} dependencies: '@ethersproject/bytes': 5.7.0 - '@ethersproject/basex@5.7.0': + /@ethersproject/basex@5.7.0: + resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==} dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/properties': 5.7.0 + dev: true - '@ethersproject/bignumber@5.7.0': + /@ethersproject/bignumber@5.7.0: + resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 bn.js: 5.2.1 - '@ethersproject/bytes@5.7.0': + /@ethersproject/bytes@5.7.0: + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} dependencies: '@ethersproject/logger': 5.7.0 - '@ethersproject/constants@5.7.0': + /@ethersproject/constants@5.7.0: + resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} dependencies: '@ethersproject/bignumber': 5.7.0 - '@ethersproject/contracts@5.7.0': + /@ethersproject/contracts@5.7.0: + resolution: {integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==} dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -15629,8 +6034,10 @@ snapshots: '@ethersproject/logger': 5.7.0 '@ethersproject/properties': 5.7.0 '@ethersproject/transactions': 5.7.0 + dev: true - '@ethersproject/hash@5.7.0': + /@ethersproject/hash@5.7.0: + resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} dependencies: '@ethersproject/abstract-signer': 5.7.0 '@ethersproject/address': 5.7.0 @@ -15642,7 +6049,8 @@ snapshots: '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 - '@ethersproject/hdnode@5.7.0': + /@ethersproject/hdnode@5.7.0: + resolution: {integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==} dependencies: '@ethersproject/abstract-signer': 5.7.0 '@ethersproject/basex': 5.7.0 @@ -15656,8 +6064,10 @@ snapshots: '@ethersproject/strings': 5.7.0 '@ethersproject/transactions': 5.7.0 '@ethersproject/wordlists': 5.7.0 + dev: true - '@ethersproject/json-wallets@5.7.0': + /@ethersproject/json-wallets@5.7.0: + resolution: {integrity: sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==} dependencies: '@ethersproject/abstract-signer': 5.7.0 '@ethersproject/address': 5.7.0 @@ -15672,28 +6082,36 @@ snapshots: '@ethersproject/transactions': 5.7.0 aes-js: 3.0.0 scrypt-js: 3.0.1 + dev: true - '@ethersproject/keccak256@5.7.0': + /@ethersproject/keccak256@5.7.0: + resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} dependencies: '@ethersproject/bytes': 5.7.0 js-sha3: 0.8.0 - '@ethersproject/logger@5.7.0': {} + /@ethersproject/logger@5.7.0: + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} - '@ethersproject/networks@5.7.1': + /@ethersproject/networks@5.7.1: + resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} dependencies: '@ethersproject/logger': 5.7.0 - '@ethersproject/pbkdf2@5.7.0': + /@ethersproject/pbkdf2@5.7.0: + resolution: {integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==} dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/sha2': 5.7.0 + dev: true - '@ethersproject/properties@5.7.0': + /@ethersproject/properties@5.7.0: + resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} dependencies: '@ethersproject/logger': 5.7.0 - '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + /@ethersproject/providers@5.7.2: + resolution: {integrity: sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==} dependencies: '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/abstract-signer': 5.7.0 @@ -15714,28 +6132,34 @@ snapshots: '@ethersproject/transactions': 5.7.0 '@ethersproject/web': 5.7.1 bech32: 1.1.4 - ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.4.6 transitivePeerDependencies: - bufferutil - utf-8-validate + dev: true - '@ethersproject/random@5.7.0': + /@ethersproject/random@5.7.0: + resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==} dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 + dev: true - '@ethersproject/rlp@5.7.0': + /@ethersproject/rlp@5.7.0: + resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 - '@ethersproject/sha2@5.7.0': + /@ethersproject/sha2@5.7.0: + resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 hash.js: 1.1.7 - '@ethersproject/signing-key@5.7.0': + /@ethersproject/signing-key@5.7.0: + resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 @@ -15744,7 +6168,8 @@ snapshots: elliptic: 6.5.4 hash.js: 1.1.7 - '@ethersproject/solidity@5.7.0': + /@ethersproject/solidity@5.7.0: + resolution: {integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==} dependencies: '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 @@ -15752,14 +6177,17 @@ snapshots: '@ethersproject/logger': 5.7.0 '@ethersproject/sha2': 5.7.0 '@ethersproject/strings': 5.7.0 + dev: true - '@ethersproject/strings@5.7.0': + /@ethersproject/strings@5.7.0: + resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/constants': 5.7.0 '@ethersproject/logger': 5.7.0 - '@ethersproject/transactions@5.7.0': + /@ethersproject/transactions@5.7.0: + resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} dependencies: '@ethersproject/address': 5.7.0 '@ethersproject/bignumber': 5.7.0 @@ -15771,13 +6199,16 @@ snapshots: '@ethersproject/rlp': 5.7.0 '@ethersproject/signing-key': 5.7.0 - '@ethersproject/units@5.7.0': + /@ethersproject/units@5.7.0: + resolution: {integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==} dependencies: '@ethersproject/bignumber': 5.7.0 '@ethersproject/constants': 5.7.0 '@ethersproject/logger': 5.7.0 + dev: true - '@ethersproject/wallet@5.7.0': + /@ethersproject/wallet@5.7.0: + resolution: {integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==} dependencies: '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/abstract-signer': 5.7.0 @@ -15794,8 +6225,10 @@ snapshots: '@ethersproject/signing-key': 5.7.0 '@ethersproject/transactions': 5.7.0 '@ethersproject/wordlists': 5.7.0 + dev: true - '@ethersproject/web@5.7.1': + /@ethersproject/web@5.7.1: + resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} dependencies: '@ethersproject/base64': 5.7.0 '@ethersproject/bytes': 5.7.0 @@ -15803,15 +6236,18 @@ snapshots: '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 - '@ethersproject/wordlists@5.7.0': + /@ethersproject/wordlists@5.7.0: + resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==} dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/hash': 5.7.0 '@ethersproject/logger': 5.7.0 '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 + dev: true - '@expressive-code/core@0.35.6': + /@expressive-code/core@0.35.3: + resolution: {integrity: sha512-SYamcarAjufYhbuK/kfvJSvAXLsfnM7DKc78R7Dq4B73R5bKQK2m5zR0l57tXr4yp2C5Z8lu5xZncdwWxcmPdg==} dependencies: '@ctrl/tinycolor': 4.1.0 hast-util-select: 6.0.2 @@ -15822,361 +6258,580 @@ snapshots: postcss-nested: 6.0.1(postcss@8.4.38) unist-util-visit: 5.0.0 unist-util-visit-parents: 6.0.1 + dev: false - '@expressive-code/plugin-frames@0.35.6': + /@expressive-code/plugin-frames@0.35.3: + resolution: {integrity: sha512-QYytMq6IsaHgTofQ5b6d+CnbxkqLdikSF2hC+IL/ZZwPYHYZoUlmjIwmJZhY4/hHqJGELrtZsyVdlt06RntgmA==} dependencies: - '@expressive-code/core': 0.35.6 + '@expressive-code/core': 0.35.3 + dev: false - '@expressive-code/plugin-shiki@0.35.6': + /@expressive-code/plugin-shiki@0.35.3: + resolution: {integrity: sha512-aFQBPepv0zhVXqJFAvfQ4vXYv/meJKiqmEEKSxdjAfwXllIV49PDlnGEXmbGYjR4hUQQjbfDgzAbrbfePc3YVQ==} dependencies: - '@expressive-code/core': 0.35.6 + '@expressive-code/core': 0.35.3 shiki: 1.5.2 + dev: false - '@expressive-code/plugin-text-markers@0.35.6': + /@expressive-code/plugin-text-markers@0.35.3: + resolution: {integrity: sha512-gDdnQrfDRXw5Y+PKHJDkpAUdf2pthYOthGcgy3JB8GOTQ3EL1h+755Ct/bGc4MR6jn+dgnQP47uHMWQaccvN6Q==} dependencies: - '@expressive-code/core': 0.35.6 + '@expressive-code/core': 0.35.3 + dev: false - '@fastify/busboy@2.1.0': {} + /@fastify/busboy@2.1.1: + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + dev: false - '@formatjs/ecma402-abstract@1.18.2': + /@formatjs/ecma402-abstract@1.18.2: + resolution: {integrity: sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA==} dependencies: '@formatjs/intl-localematcher': 0.5.4 tslib: 2.6.2 - '@formatjs/fast-memoize@2.2.0': + /@formatjs/fast-memoize@2.2.0: + resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} dependencies: tslib: 2.6.2 - '@formatjs/icu-messageformat-parser@2.7.6': + /@formatjs/icu-messageformat-parser@2.7.6: + resolution: {integrity: sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA==} dependencies: '@formatjs/ecma402-abstract': 1.18.2 '@formatjs/icu-skeleton-parser': 1.8.0 tslib: 2.6.2 - '@formatjs/icu-skeleton-parser@1.8.0': + /@formatjs/icu-skeleton-parser@1.8.0: + resolution: {integrity: sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA==} dependencies: '@formatjs/ecma402-abstract': 1.18.2 tslib: 2.6.2 - '@formatjs/intl-localematcher@0.5.4': + /@formatjs/intl-localematcher@0.5.4: + resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==} dependencies: tslib: 2.6.2 - '@hapi/hoek@9.3.0': {} + /@hapi/hoek@9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + dev: false - '@hapi/topo@5.1.0': + /@hapi/topo@5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} dependencies: '@hapi/hoek': 9.3.0 + dev: false - '@humanwhocodes/config-array@0.11.13': - dependencies: - '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/config-array@0.11.14': + /@humanwhocodes/config-array@0.11.14: + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.2 + '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color + dev: true - '@humanwhocodes/config-array@0.9.5': + /@humanwhocodes/config-array@0.9.5: + resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color + dev: true - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/momoa@2.0.4': {} + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true - '@humanwhocodes/object-schema@1.2.1': {} + /@humanwhocodes/momoa@2.0.4: + resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==} + engines: {node: '>=10.10.0'} + dev: false - '@humanwhocodes/object-schema@2.0.1': {} + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + deprecated: Use @eslint/object-schema instead + dev: true - '@humanwhocodes/object-schema@2.0.2': {} + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + dev: true - '@img/sharp-darwin-arm64@0.33.3': + /@img/sharp-darwin-arm64@0.33.3: + resolution: {integrity: sha512-FaNiGX1MrOuJ3hxuNzWgsT/mg5OHG/Izh59WW2mk1UwYHUwtfbhk5QNKYZgxf0pLOhx9ctGiGa2OykD71vOnSw==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.2 + dev: false optional: true - '@img/sharp-darwin-x64@0.33.3': + /@img/sharp-darwin-x64@0.33.3: + resolution: {integrity: sha512-2QeSl7QDK9ru//YBT4sQkoq7L0EAJZA3rtV+v9p8xTKl4U1bUqTIaCnoC7Ctx2kCjQgwFXDasOtPTCT8eCTXvw==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.0.2 + dev: false optional: true - '@img/sharp-libvips-darwin-arm64@1.0.2': + /@img/sharp-libvips-darwin-arm64@1.0.2: + resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} + engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@img/sharp-libvips-darwin-x64@1.0.2': + /@img/sharp-libvips-darwin-x64@1.0.2: + resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} + engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@img/sharp-libvips-linux-arm64@1.0.2': + /@img/sharp-libvips-linux-arm64@1.0.2: + resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} + engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@img/sharp-libvips-linux-arm@1.0.2': + /@img/sharp-libvips-linux-arm@1.0.2: + resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} + engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false optional: true - '@img/sharp-libvips-linux-s390x@1.0.2': + /@img/sharp-libvips-linux-s390x@1.0.2: + resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} + engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false optional: true - '@img/sharp-libvips-linux-x64@1.0.2': + /@img/sharp-libvips-linux-x64@1.0.2: + resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} + engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': + /@img/sharp-libvips-linuxmusl-arm64@1.0.2: + resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} + engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.2': + /@img/sharp-libvips-linuxmusl-x64@1.0.2: + resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} + engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@img/sharp-linux-arm64@0.33.3': + /@img/sharp-linux-arm64@0.33.3: + resolution: {integrity: sha512-Zf+sF1jHZJKA6Gor9hoYG2ljr4wo9cY4twaxgFDvlG0Xz9V7sinsPp8pFd1XtlhTzYo0IhDbl3rK7P6MzHpnYA==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.0.2 + dev: false optional: true - '@img/sharp-linux-arm@0.33.3': + /@img/sharp-linux-arm@0.33.3: + resolution: {integrity: sha512-Q7Ee3fFSC9P7vUSqVEF0zccJsZ8GiiCJYGWDdhEjdlOeS9/jdkyJ6sUSPj+bL8VuOYFSbofrW0t/86ceVhx32w==} + engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm] + os: [linux] + requiresBuild: true optionalDependencies: '@img/sharp-libvips-linux-arm': 1.0.2 + dev: false optional: true - '@img/sharp-linux-s390x@0.33.3': + /@img/sharp-linux-s390x@0.33.3: + resolution: {integrity: sha512-vFk441DKRFepjhTEH20oBlFrHcLjPfI8B0pMIxGm3+yilKyYeHEVvrZhYFdqIseSclIqbQ3SnZMwEMWonY5XFA==} + engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [s390x] + os: [linux] + requiresBuild: true optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.0.2 + dev: false optional: true - '@img/sharp-linux-x64@0.33.3': + /@img/sharp-linux-x64@0.33.3: + resolution: {integrity: sha512-Q4I++herIJxJi+qmbySd072oDPRkCg/SClLEIDh5IL9h1zjhqjv82H0Seupd+q2m0yOfD+/fJnjSoDFtKiHu2g==} + engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true optionalDependencies: '@img/sharp-libvips-linux-x64': 1.0.2 + dev: false optional: true - '@img/sharp-linuxmusl-arm64@0.33.3': + /@img/sharp-linuxmusl-arm64@0.33.3: + resolution: {integrity: sha512-qnDccehRDXadhM9PM5hLvcPRYqyFCBN31kq+ErBSZtZlsAc1U4Z85xf/RXv1qolkdu+ibw64fUDaRdktxTNP9A==} + engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 + dev: false optional: true - '@img/sharp-linuxmusl-x64@0.33.3': + /@img/sharp-linuxmusl-x64@0.33.3: + resolution: {integrity: sha512-Jhchim8kHWIU/GZ+9poHMWRcefeaxFIs9EBqf9KtcC14Ojk6qua7ghKiPs0sbeLbLj/2IGBtDcxHyjCdYWkk2w==} + engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [linux] + requiresBuild: true optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.0.2 + dev: false optional: true - '@img/sharp-wasm32@0.33.3': + /@img/sharp-wasm32@0.33.3: + resolution: {integrity: sha512-68zivsdJ0koE96stdUfM+gmyaK/NcoSZK5dV5CAjES0FUXS9lchYt8LAB5rTbM7nlWtxaU/2GON0HVN6/ZYJAQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [wasm32] + requiresBuild: true dependencies: '@emnapi/runtime': 1.1.1 + dev: false optional: true - '@img/sharp-win32-ia32@0.33.3': + /@img/sharp-win32-ia32@0.33.3: + resolution: {integrity: sha512-CyimAduT2whQD8ER4Ux7exKrtfoaUiVr7HG0zZvO0XTFn2idUWljjxv58GxNTkFb8/J9Ub9AqITGkJD6ZginxQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false optional: true - '@img/sharp-win32-x64@0.33.3': + /@img/sharp-win32-x64@0.33.3: + resolution: {integrity: sha512-viT4fUIDKnli3IfOephGnolMzhz5VaTvDRkYqtZxOMIoMQ4MrAziO7pT1nVnOt2FAm7qW5aa+CCc13aEY6Le0g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false optional: true - '@ioredis/commands@1.2.0': {} - - '@ipld/dag-cbor@9.2.0': + /@ipld/dag-cbor@9.2.0: + resolution: {integrity: sha512-N14oMy0q4gM6OuZkIpisKe0JBSjf1Jb39VI+7jMLiWX9124u1Z3Fdj/Tag1NA0cVxxqWDh0CqsjcVfOKtelPDA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: cborg: 4.2.0 multiformats: 13.1.0 + dev: false - '@ipld/dag-json@10.2.0': + /@ipld/dag-json@10.2.0: + resolution: {integrity: sha512-O9YLUrl3d3WbVz7v1WkajFkyfOLEe2Fep+wor4fgVe0ywxzrivrj437NiPcVyB+2EDdFn/Q7tCHFf8YVhDf8ZA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: cborg: 4.2.0 multiformats: 13.1.0 + dev: false - '@ipld/dag-pb@4.1.0': + /@ipld/dag-pb@4.1.0: + resolution: {integrity: sha512-LJU451Drqs5zjFm7jI4Hs3kHlilOqkjcSfPiQgVsZnWaYb2C7YdfhnclrVn/X+ucKejlU9BL3+gXFCZUXkMuCg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: multiformats: 13.1.0 + dev: false - '@isaacs/cliui@8.0.2': + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 + string-width-cjs: /string-width@4.2.3 strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 + strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 - '@isaacs/ttlcache@1.4.1': {} + /@isaacs/ttlcache@1.4.1: + resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==} + engines: {node: '>=12'} + dev: false - '@istanbuljs/schema@0.1.3': {} + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true - '@jest/create-cache-key-function@29.7.0': + /@jest/create-cache-key-function@29.7.0: + resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 + dev: false - '@jest/environment@29.7.0': + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.7 + '@types/node': 20.12.8 jest-mock: 29.7.0 + dev: false - '@jest/expect-utils@29.7.0': + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 + dev: true - '@jest/fake-timers@29.7.0': + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.12.7 + '@types/node': 20.12.8 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 + dev: false - '@jest/schemas@29.6.3': + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 - '@jest/types@26.6.2': + /@jest/types@26.6.2: + resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} + engines: {node: '>= 10.14.2'} dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.7 + '@types/node': 20.12.8 '@types/yargs': 15.0.19 chalk: 4.1.2 + dev: false - '@jest/types@29.6.3': + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.7 + '@types/node': 20.12.8 '@types/yargs': 17.0.32 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.3': - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/gen-mapping@0.3.5': + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.1.2': {} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': {} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.5': + /@jridgewell/source-map@0.3.6: + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + dev: false - '@jridgewell/sourcemap-codec@1.4.15': {} + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - '@jridgewell/sourcemap-codec@1.5.0': {} + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - '@jridgewell/trace-mapping@0.3.25': + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping@0.3.9': + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@jsdevtools/ono@7.1.3': {} + /@jsdevtools/ono@7.1.3: + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + dev: false - '@leichtgewicht/ip-codec@2.0.5': {} + /@leichtgewicht/ip-codec@2.0.5: + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + dev: false - '@libp2p/interface-connection@4.0.0': + /@libp2p/interface-connection@4.0.0: + resolution: {integrity: sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: '@libp2p/interface-peer-id': 2.0.2 '@libp2p/interfaces': 3.3.2 - '@multiformats/multiaddr': 12.2.1 + '@multiformats/multiaddr': 12.2.3 it-stream-types: 1.0.5 uint8arraylist: 2.4.8 + dev: false - '@libp2p/interface-keychain@2.0.5': + /@libp2p/interface-keychain@2.0.5: + resolution: {integrity: sha512-mb7QNgn9fIvC7CaJCi06GJ+a6DN6RVT9TmEi0NmedZGATeCArPeWWG7r7IfxNVXb9cVOOE1RzV1swK0ZxEJF9Q==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: '@libp2p/interface-peer-id': 2.0.2 multiformats: 11.0.2 + dev: false - '@libp2p/interface-peer-id@2.0.2': + /@libp2p/interface-peer-id@2.0.2: + resolution: {integrity: sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: multiformats: 11.0.2 + dev: false - '@libp2p/interface-peer-info@1.0.10': + /@libp2p/interface-peer-info@1.0.10: + resolution: {integrity: sha512-HQlo8NwQjMyamCHJrnILEZz+YwEOXCB2sIIw3slIrhVUYeYlTaia1R6d9umaAeLHa255Zmdm4qGH8rJLRqhCcg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: '@libp2p/interface-peer-id': 2.0.2 - '@multiformats/multiaddr': 12.2.1 + '@multiformats/multiaddr': 12.2.3 + dev: false - '@libp2p/interface-pubsub@3.0.7': + /@libp2p/interface-pubsub@3.0.7: + resolution: {integrity: sha512-+c74EVUBTfw2sx1GE/z/IjsYO6dhur+ukF0knAppeZsRQ1Kgg6K5R3eECtT28fC6dBWLjFpAvW/7QGfiDAL4RA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: '@libp2p/interface-connection': 4.0.0 '@libp2p/interface-peer-id': 2.0.2 '@libp2p/interfaces': 3.3.2 it-pushable: 3.2.3 uint8arraylist: 2.4.8 + dev: false - '@libp2p/interface@1.3.0': + /@libp2p/interface@1.3.1: + resolution: {integrity: sha512-KJoYP6biAgIHUU3pxaixaaYCvIHZshzXetxfoNigadAZ3hCGuwpdFhk7IABEaI3RgadOOYUwW3MXPbL+cxnXVQ==} dependencies: - '@multiformats/multiaddr': 12.2.1 + '@multiformats/multiaddr': 12.2.3 it-pushable: 3.2.3 it-stream-types: 2.0.1 multiformats: 13.1.0 progress-events: 1.0.0 uint8arraylist: 2.4.8 + dev: false - '@libp2p/interfaces@3.3.2': {} + /@libp2p/interfaces@3.3.2: + resolution: {integrity: sha512-p/M7plbrxLzuQchvNwww1Was7ZeGE2NaOFulMaZBYIihU8z3fhaV+a033OqnC/0NTX/yhfdNOG7znhYq3XoR/g==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - '@libp2p/logger@2.1.1': + /@libp2p/logger@2.1.1: + resolution: {integrity: sha512-2UbzDPctg3cPupF6jrv6abQnAUTrbLybNOj0rmmrdGm1cN2HJ1o/hBu0sXuq4KF9P1h/eVRn1HIRbVIEKnEJrA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: '@libp2p/interface-peer-id': 2.0.2 - '@multiformats/multiaddr': 12.2.1 + '@multiformats/multiaddr': 12.2.3 debug: 4.3.4 interface-datastore: 8.2.11 multiformats: 11.0.2 transitivePeerDependencies: - supports-color + dev: false - '@libp2p/peer-id@2.0.4': + /@libp2p/peer-id@2.0.4: + resolution: {integrity: sha512-gcOsN8Fbhj6izIK+ejiWsqiqKeJ2yWPapi/m55VjOvDa52/ptQzZszxQP8jUk93u36de92ATFXDfZR/Bi6eeUQ==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: '@libp2p/interface-peer-id': 2.0.2 '@libp2p/interfaces': 3.3.2 multiformats: 11.0.2 uint8arrays: 4.0.10 + dev: false - '@lit-labs/ssr-dom-shim@1.2.0': {} + /@lit-labs/ssr-dom-shim@1.2.0: + resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==} + dev: false - '@lit/reactive-element@1.6.3': + /@lit/reactive-element@1.6.3: + resolution: {integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==} dependencies: '@lit-labs/ssr-dom-shim': 1.2.0 + dev: false - '@lit/reactive-element@2.0.4': + /@lit/reactive-element@2.0.4: + resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} dependencies: '@lit-labs/ssr-dom-shim': 1.2.0 + dev: false - '@manypkg/find-root@1.1.0': + /@manypkg/find-root@1.1.0: + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.5 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 + dev: false - '@manypkg/get-packages@1.1.3': + /@manypkg/get-packages@1.1.3: + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.5 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 + dev: false - '@mdx-js/mdx@3.0.1': + /@mdx-js/mdx@3.0.1: + resolution: {integrity: sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==} dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -16196,115 +6851,118 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.0 source-map: 0.7.4 - unified: 11.0.5 + unified: 11.0.4 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.3 + vfile: 6.0.2 transitivePeerDependencies: - supports-color + dev: false - '@mdx-js/react@3.0.1(@types/react@18.3.5)(react@18.2.0)': + /@mdx-js/react@3.0.1(@types/react@18.3.3)(react@18.3.1): + resolution: {integrity: sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==} + peerDependencies: + '@types/react': '>=16' + react: '>=16' dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.5 - react: 18.2.0 + '@types/react': 18.3.3 + react: 18.3.1 + dev: true - '@metamask/eth-json-rpc-provider@1.0.1': + /@metamask/eth-json-rpc-provider@1.0.1: + resolution: {integrity: sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==} + engines: {node: '>=14.0.0'} dependencies: - '@metamask/json-rpc-engine': 7.3.2 + '@metamask/json-rpc-engine': 7.3.3 '@metamask/safe-event-emitter': 3.1.1 '@metamask/utils': 5.0.2 transitivePeerDependencies: - supports-color + dev: false - '@metamask/eth-sig-util@4.0.1': + /@metamask/eth-sig-util@4.0.1: + resolution: {integrity: sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==} + engines: {node: '>=12.0.0'} dependencies: ethereumjs-abi: 0.6.8 ethereumjs-util: 6.2.1 ethjs-util: 0.1.6 tweetnacl: 1.0.3 tweetnacl-util: 0.15.1 + dev: false - '@metamask/json-rpc-engine@7.3.2': + /@metamask/json-rpc-engine@7.3.3: + resolution: {integrity: sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==} + engines: {node: '>=16.0.0'} dependencies: '@metamask/rpc-errors': 6.2.1 '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 8.3.0 + '@metamask/utils': 8.4.0 transitivePeerDependencies: - supports-color + dev: false - '@metamask/json-rpc-engine@8.0.2': + /@metamask/json-rpc-engine@8.0.2: + resolution: {integrity: sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==} + engines: {node: '>=16.0.0'} dependencies: '@metamask/rpc-errors': 6.2.1 '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 8.3.0 + '@metamask/utils': 8.4.0 transitivePeerDependencies: - supports-color + dev: false - '@metamask/json-rpc-middleware-stream@6.0.2': + /@metamask/json-rpc-middleware-stream@6.0.2: + resolution: {integrity: sha512-jtyx3PRfc1kqoLpYveIVQNwsxYKefc64/LCl9h9Da1m3nUKEvypbYuXSIwi237qvOjKmNHQKsDOZg6f4uBf62Q==} + engines: {node: '>=16.0.0'} dependencies: - '@metamask/json-rpc-engine': 7.3.2 + '@metamask/json-rpc-engine': 7.3.3 '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 8.3.0 + '@metamask/utils': 8.4.0 readable-stream: 3.6.2 transitivePeerDependencies: - supports-color + dev: false - '@metamask/json-rpc-middleware-stream@7.0.2': + /@metamask/json-rpc-middleware-stream@7.0.2: + resolution: {integrity: sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==} + engines: {node: '>=16.0.0'} dependencies: '@metamask/json-rpc-engine': 8.0.2 '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 8.3.0 + '@metamask/utils': 8.4.0 readable-stream: 3.6.2 transitivePeerDependencies: - - supports-color - - '@metamask/object-multiplex@1.3.0': - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - readable-stream: 2.3.8 + - supports-color + dev: false - '@metamask/object-multiplex@2.0.0': + /@metamask/object-multiplex@2.0.0: + resolution: {integrity: sha512-+ItrieVZie3j2LfYE0QkdW3dsEMfMEp419IGx1zyeLqjRZ14iQUPRO0H6CGgfAAoC0x6k2PfCAGRwJUA9BMrqA==} + engines: {node: ^16.20 || ^18.16 || >=20} dependencies: once: 1.4.0 readable-stream: 3.6.2 + dev: false - '@metamask/onboarding@1.0.1': + /@metamask/onboarding@1.0.1: + resolution: {integrity: sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==} dependencies: bowser: 2.11.0 + dev: false - '@metamask/post-message-stream@6.2.0': - dependencies: - '@metamask/utils': 5.0.2 - readable-stream: 2.3.3 - transitivePeerDependencies: - - supports-color - - '@metamask/providers@10.2.1': - dependencies: - '@metamask/object-multiplex': 1.3.0 - '@metamask/safe-event-emitter': 2.0.0 - '@types/chrome': 0.0.136 - detect-browser: 5.3.0 - eth-rpc-errors: 4.0.3 - extension-port-stream: 2.1.1 - fast-deep-equal: 2.0.1 - is-stream: 2.0.1 - json-rpc-engine: 6.1.0 - json-rpc-middleware-stream: 4.2.3 - pump: 3.0.0 - webextension-polyfill-ts: 0.25.0 - - '@metamask/providers@15.0.0': + /@metamask/providers@15.0.0: + resolution: {integrity: sha512-FXvL1NQNl6I7fMOJTfQYcBlBZ33vSlm6w80cMpmn8sJh0Lb7wcBpe02UwBsNlARnI+Qsr26XeDs6WHUHQh8CuA==} + engines: {node: ^18.18 || >=20} dependencies: - '@metamask/json-rpc-engine': 7.3.2 + '@metamask/json-rpc-engine': 7.3.3 '@metamask/json-rpc-middleware-stream': 6.0.2 '@metamask/object-multiplex': 2.0.0 '@metamask/rpc-errors': 6.2.1 '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 8.3.0 + '@metamask/utils': 8.4.0 detect-browser: 5.3.0 extension-port-stream: 3.0.0 fast-deep-equal: 3.1.3 @@ -16313,15 +6971,18 @@ snapshots: webextension-polyfill: 0.10.0 transitivePeerDependencies: - supports-color + dev: false - '@metamask/providers@16.1.0': + /@metamask/providers@16.1.0: + resolution: {integrity: sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==} + engines: {node: ^18.18 || >=20} dependencies: '@metamask/json-rpc-engine': 8.0.2 '@metamask/json-rpc-middleware-stream': 7.0.2 '@metamask/object-multiplex': 2.0.0 '@metamask/rpc-errors': 6.2.1 '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 8.3.0 + '@metamask/utils': 8.4.0 detect-browser: 5.3.0 extension-port-stream: 3.0.0 fast-deep-equal: 3.1.3 @@ -16330,142 +6991,141 @@ snapshots: webextension-polyfill: 0.10.0 transitivePeerDependencies: - supports-color + dev: false - '@metamask/rpc-errors@6.2.1': + /@metamask/rpc-errors@6.2.1: + resolution: {integrity: sha512-VTgWkjWLzb0nupkFl1duQi9Mk8TGT9rsdnQg6DeRrYEFxtFOh0IF8nAwxM/4GWqDl6uIB06lqUBgUrAVWl62Bw==} + engines: {node: '>=16.0.0'} dependencies: - '@metamask/utils': 8.3.0 + '@metamask/utils': 8.4.0 fast-safe-stringify: 2.1.1 transitivePeerDependencies: - supports-color + dev: false - '@metamask/safe-event-emitter@2.0.0': {} - - '@metamask/safe-event-emitter@3.1.1': {} + /@metamask/safe-event-emitter@2.0.0: + resolution: {integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==} + dev: false - '@metamask/sdk-communication-layer@0.14.3(encoding@0.1.13)': - dependencies: - bufferutil: 4.0.8 - cross-fetch: 3.1.8(encoding@0.1.13) - date-fns: 2.30.0 - eciesjs: 0.3.18 - eventemitter2: 6.4.9 - socket.io-client: 4.7.4(bufferutil@4.0.8)(utf-8-validate@6.0.3) - utf-8-validate: 6.0.3 - uuid: 8.3.2 - transitivePeerDependencies: - - encoding - - supports-color + /@metamask/safe-event-emitter@3.1.1: + resolution: {integrity: sha512-ihb3B0T/wJm1eUuArYP4lCTSEoZsClHhuWyfo/kMX3m/odpqNcPfsz5O2A3NT7dXCAgWPGDQGPqygCpgeniKMw==} + engines: {node: '>=12.0.0'} + dev: false - '@metamask/sdk-communication-layer@0.20.2(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + /@metamask/sdk-communication-layer@0.18.5(cross-fetch@4.0.0)(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5): + resolution: {integrity: sha512-WMf9oJa3rAimjCXMAaaRVFPD0Q6dfZR0r9037KCpD5g9SlVh+TeMISfdQCEKAyhXP3d4CGxmp/Kib8C3mn2YLw==} + peerDependencies: + cross-fetch: ^3.1.5 + eciesjs: ^0.3.16 + eventemitter2: ^6.4.7 + readable-stream: ^3.6.2 + socket.io-client: ^4.5.1 dependencies: bufferutil: 4.0.8 - cross-fetch: 4.0.0(encoding@0.1.13) + cross-fetch: 4.0.0 date-fns: 2.30.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.4 eciesjs: 0.3.18 eventemitter2: 6.4.9 readable-stream: 3.6.2 - socket.io-client: 4.7.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + socket.io-client: 4.7.5 utf-8-validate: 6.0.3 uuid: 8.3.2 transitivePeerDependencies: - supports-color + dev: false - '@metamask/sdk-communication-layer@0.28.2(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + /@metamask/sdk-communication-layer@0.27.0(cross-fetch@4.0.0)(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5): + resolution: {integrity: sha512-G9LCaQzIqp5WmUmvHN6UUdjWrBh67MbRobmbbs5fcc2+9XFhj3vBgtyleUYjun91jSlPHoZeo+f/Pj4/WoPIJg==} + peerDependencies: + cross-fetch: ^4.0.0 + eciesjs: ^0.3.16 + eventemitter2: ^6.4.7 + readable-stream: ^3.6.2 + socket.io-client: ^4.5.1 dependencies: bufferutil: 4.0.8 - cross-fetch: 4.0.0(encoding@0.1.13) + cross-fetch: 4.0.0 date-fns: 2.30.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.4 eciesjs: 0.3.18 eventemitter2: 6.4.9 readable-stream: 3.6.2 - socket.io-client: 4.7.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + socket.io-client: 4.7.5 utf-8-validate: 5.0.10 uuid: 8.3.2 transitivePeerDependencies: - supports-color + dev: false - '@metamask/sdk-install-modal-web@0.14.1(@types/react@18.3.5)(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))': - dependencies: - '@emotion/react': 11.11.3(@types/react@18.3.5)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.3(@types/react@18.3.5)(react@18.2.0))(@types/react@18.3.5)(react@18.2.0) + /@metamask/sdk-install-modal-web@0.18.5(i18next@22.5.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1): + resolution: {integrity: sha512-Wygc0dgr1PwIA/Sg9WW9QWAsQr4G2GV6iveXt2xw8VKW/9cRORWqYukH1NZLr71hBKzi9AKYBU54Tk5Dfg41zg==} + peerDependencies: i18next: 22.5.1 - qr-code-styling: 1.6.0-rc.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-i18next: 13.5.0(i18next@22.5.1)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - - react-native - - '@metamask/sdk-install-modal-web@0.20.2(i18next@22.5.1)(react-dom@18.2.0(react@18.2.0))(react-i18next@13.5.0(i18next@22.5.1)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)': + react: ^18.2.0 + react-dom: ^18.2.0 + react-i18next: ^13.2.2 + react-native: '*' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + react-native: + optional: true dependencies: i18next: 22.5.1 qr-code-styling: 1.6.0-rc.1 - react-i18next: 13.5.0(i18next@22.5.1)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0) - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-native: 0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) + react: 18.3.1 + react-i18next: 13.5.0(i18next@22.5.1)(react-native@0.74.1)(react@18.3.1) + react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.24.5)(react@18.3.1) + dev: false - '@metamask/sdk-install-modal-web@0.28.1(i18next@23.11.5)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)': + /@metamask/sdk-install-modal-web@0.26.5(i18next@23.11.5)(react-native@0.74.1)(react@18.3.1): + resolution: {integrity: sha512-qVA9Nk+NorGx5hXyODy5wskptE8R7RNYTYt49VbQpJogqbbVe1dnJ98+KaA43PBN4XYMCXmcIhULNiEHGsLynA==} + peerDependencies: + i18next: 23.11.5 + react: ^18.2.0 + react-dom: ^18.2.0 + react-native: '*' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + react-native: + optional: true dependencies: i18next: 23.11.5 qr-code-styling: 1.6.0-rc.1 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-native: 0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) - - '@metamask/sdk@0.14.3(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(utf-8-validate@5.0.10)': - dependencies: - '@metamask/onboarding': 1.0.1 - '@metamask/post-message-stream': 6.2.0 - '@metamask/providers': 10.2.1 - '@metamask/sdk-communication-layer': 0.14.3(encoding@0.1.13) - '@metamask/sdk-install-modal-web': 0.14.1(@types/react@18.3.5)(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)) - '@react-native-async-storage/async-storage': 1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)) - '@types/dom-screen-wake-lock': 1.0.3 - bowser: 2.11.0 - cross-fetch: 4.0.0(encoding@0.1.13) - eciesjs: 0.3.18 - eth-rpc-errors: 4.0.3 - eventemitter2: 6.4.9 - extension-port-stream: 2.1.1 - i18next: 22.5.1 - i18next-browser-languagedetector: 7.2.0 - obj-multiplex: 1.0.0 - pump: 3.0.0 - qrcode-terminal-nooctal: 0.12.1 - react-i18next: 13.5.0(i18next@22.5.1)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0) - react-native-webview: 11.26.1(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0) - readable-stream: 2.3.8 - rollup-plugin-visualizer: 5.12.0(rollup@4.21.3) - socket.io-client: 4.7.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) - util: 0.12.5 - uuid: 8.3.2 - optionalDependencies: - react: 18.2.0 - react-native: 0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - '@types/react' - - bufferutil - - encoding - - react-dom - - rollup - - supports-color - - utf-8-validate + react: 18.3.1 + react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.24.5)(react@18.3.1) + dev: false - '@metamask/sdk@0.20.3(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-i18next@13.5.0(i18next@22.5.1)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(utf-8-validate@5.0.10)': + /@metamask/sdk@0.18.6(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1): + resolution: {integrity: sha512-ZT8e4BrcWrm44apLb412WR0fDsgeaS8UlI1c0wKRUPu1w/UntpXuUVO+EaY8WDlnOPAiAsjyqWKey64/DfvbXQ==} + peerDependencies: + '@react-native-async-storage/async-storage': ^1.19.6 + react: ^18.2.0 + react-dom: ^18.2.0 + react-native: '*' + peerDependenciesMeta: + '@react-native-async-storage/async-storage': + optional: true + react: + optional: true + react-dom: + optional: true + react-native: + optional: true dependencies: '@metamask/onboarding': 1.0.1 '@metamask/providers': 15.0.0 - '@metamask/sdk-communication-layer': 0.20.2(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - '@metamask/sdk-install-modal-web': 0.20.2(i18next@22.5.1)(react-dom@18.2.0(react@18.2.0))(react-i18next@13.5.0(i18next@22.5.1)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0) + '@metamask/sdk-communication-layer': 0.18.5(cross-fetch@4.0.0)(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5) + '@metamask/sdk-install-modal-web': 0.18.5(i18next@22.5.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1) '@types/dom-screen-wake-lock': 1.0.3 bowser: 2.11.0 - cross-fetch: 4.0.0(encoding@0.1.13) + cross-fetch: 4.0.0 debug: 4.3.4 eciesjs: 0.3.18 eth-rpc-errors: 4.0.3 @@ -16475,34 +7135,41 @@ snapshots: obj-multiplex: 1.0.0 pump: 3.0.0 qrcode-terminal-nooctal: 0.12.1 - react-native-webview: 11.26.1(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0) + react: 18.3.1 + react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.24.5)(react@18.3.1) + react-native-webview: 11.26.1(react-native@0.74.1)(react@18.3.1) readable-stream: 3.6.2 - rollup-plugin-visualizer: 5.12.0(rollup@4.21.3) - socket.io-client: 4.7.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + rollup-plugin-visualizer: 5.12.0 + socket.io-client: 4.7.5 util: 0.12.5 uuid: 8.3.2 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - bufferutil - encoding - react-i18next - - react-native - rollup - supports-color - utf-8-validate + dev: false - '@metamask/sdk@0.28.2(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(utf-8-validate@5.0.10)': + /@metamask/sdk@0.27.0(react-native@0.74.1)(react@18.3.1): + resolution: {integrity: sha512-6sMjr/0qR700X1svPGEQ4rBdtccidBLeTC27fYQc7r9ROgSixB1DUUAyu/LoySVqt3Hu/Zm7NnAHXuT228ht7A==} + peerDependencies: + react: ^18.2.0 + react-dom: ^18.2.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true dependencies: '@metamask/onboarding': 1.0.1 '@metamask/providers': 16.1.0 - '@metamask/sdk-communication-layer': 0.28.2(cross-fetch@4.0.0(encoding@0.1.13))(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - '@metamask/sdk-install-modal-web': 0.28.1(i18next@23.11.5)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0) + '@metamask/sdk-communication-layer': 0.27.0(cross-fetch@4.0.0)(eciesjs@0.3.18)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.7.5) + '@metamask/sdk-install-modal-web': 0.26.5(i18next@23.11.5)(react-native@0.74.1)(react@18.3.1) '@types/dom-screen-wake-lock': 1.0.3 - '@types/uuid': 10.0.0 bowser: 2.11.0 - cross-fetch: 4.0.0(encoding@0.1.13) + cross-fetch: 4.0.0 debug: 4.3.4 eciesjs: 0.3.18 eth-rpc-errors: 4.0.3 @@ -16512,15 +7179,13 @@ snapshots: obj-multiplex: 1.0.0 pump: 3.0.0 qrcode-terminal-nooctal: 0.12.1 - react-native-webview: 11.26.1(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0) + react: 18.3.1 + react-native-webview: 11.26.1(react-native@0.74.1)(react@18.3.1) readable-stream: 3.6.2 - rollup-plugin-visualizer: 5.12.0(rollup@4.21.3) - socket.io-client: 4.7.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) + rollup-plugin-visualizer: 5.12.0 + socket.io-client: 4.7.5 util: 0.12.5 uuid: 8.3.2 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - bufferutil - encoding @@ -16528,189 +7193,241 @@ snapshots: - rollup - supports-color - utf-8-validate + dev: false - '@metamask/utils@5.0.2': + /@metamask/utils@5.0.2: + resolution: {integrity: sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==} + engines: {node: '>=14.0.0'} dependencies: '@ethereumjs/tx': 4.2.0 '@types/debug': 4.1.12 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.4 semver: 7.6.3 - superstruct: 1.0.3 + superstruct: 1.0.4 transitivePeerDependencies: - supports-color + dev: false - '@metamask/utils@8.3.0': + /@metamask/utils@8.4.0: + resolution: {integrity: sha512-dbIc3C7alOe0agCuBHM1h71UaEaEqOk2W8rAtEn8QGz4haH2Qq7MoK6i7v2guzvkJVVh79c+QCzIqphC3KvrJg==} + engines: {node: '>=16.0.0'} dependencies: '@ethereumjs/tx': 4.2.0 - '@noble/hashes': 1.5.0 - '@scure/base': 1.1.8 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.6 '@types/debug': 4.1.12 - debug: 4.3.7(supports-color@8.1.1) - pony-cause: 2.1.10 + debug: 4.3.4 + pony-cause: 2.1.11 semver: 7.6.3 - superstruct: 1.0.3 + superstruct: 1.0.4 + uuid: 9.0.1 transitivePeerDependencies: - supports-color + dev: false - '@moralisweb3/api-utils@2.26.2(debug@4.3.4)': + /@moralisweb3/api-utils@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-xG2rEvv7MEGiLwz6YkHeWnRToP9xiwtzdesgpYcbOMfEhO0dOF5NMhey9F4NS3l4p+ei8liLQAmFRUehyojbWg==} dependencies: - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) - '@moralisweb3/common-evm-utils': 2.26.2(debug@4.3.4) - axios: 1.6.7(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) + '@moralisweb3/common-evm-utils': 2.26.1(debug@4.3.4) + axios: 1.6.8(debug@4.3.4) transitivePeerDependencies: - debug + dev: false - '@moralisweb3/aptos-api@2.26.2(debug@4.3.4)': + /@moralisweb3/aptos-api@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-LClXb88MtC8kAkuWgJ5PlvjBnY9wCd3fBMa+FbOvIlKgMDHjNizDzFCVAX/f6lF884/XBzpxq0QyoFcvYx0RFQ==} dependencies: - '@moralisweb3/api-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-aptos-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) + '@moralisweb3/api-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-aptos-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) transitivePeerDependencies: - debug + dev: false - '@moralisweb3/auth@2.26.2(debug@4.3.4)': + /@moralisweb3/auth@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-PUIm67hPOI0ThyUJ851Bq0i1Y0A7cFSR7wILwM0Ye1W1IOoygAI2Ls7Zyy9HK9aRUV3J1Sqek49azjNfmXQ0QA==} dependencies: - '@moralisweb3/api-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-aptos-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-auth-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) - '@moralisweb3/common-evm-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-sol-utils': 2.26.2(debug@4.3.4) + '@moralisweb3/api-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-aptos-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-auth-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) + '@moralisweb3/common-evm-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-sol-utils': 2.26.1(debug@4.3.4) transitivePeerDependencies: - debug + dev: false - '@moralisweb3/common-aptos-utils@2.26.2(debug@4.3.4)': + /@moralisweb3/common-aptos-utils@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-02c4zgksBzlM9zZgeDLvPQ/+yDjVAWRnkbXP2Hnow19PSIqUJb/RkHclqm3+623tH4JJwgbqei3wrQZigNQAWg==} dependencies: - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) - '@noble/hashes': 1.3.3 + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) + '@noble/hashes': 1.4.0 transitivePeerDependencies: - debug + dev: false - '@moralisweb3/common-auth-utils@2.26.2(debug@4.3.4)': + /@moralisweb3/common-auth-utils@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-g2FrjZKqjxitd4aDbJjdIwLXDYYa8a3sMRL31jynyblIfz2OTXJ5YZj86n8aENY+1t8BOcLwixzsRHRDiHnbog==} dependencies: '@ethersproject/abi': 5.7.0 - '@moralisweb3/common-aptos-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) - '@moralisweb3/common-evm-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-sol-utils': 2.26.2(debug@4.3.4) + '@moralisweb3/common-aptos-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) + '@moralisweb3/common-evm-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-sol-utils': 2.26.1(debug@4.3.4) '@moralisweb3/streams-typings': 1.0.7 transitivePeerDependencies: - debug + dev: false - '@moralisweb3/common-core@2.26.2(debug@4.3.4)': + /@moralisweb3/common-core@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-HbsSjBZuicoKyJxlWNl0YV6YolGQ0bWT2jbPwMGvLrtbeeRTT3rE2IrIh9nSe7z9pWVvXfU3t+4oXkisY+8dJg==} dependencies: - axios: 1.6.7(debug@4.3.4) + axios: 1.6.8(debug@4.3.4) transitivePeerDependencies: - debug + dev: false - '@moralisweb3/common-evm-utils@2.26.2(debug@4.3.4)': + /@moralisweb3/common-evm-utils@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-Gr4qJmGhr5ixSeysg4CjZBZexeTzHqPYPE1YuaGAmD4dmW2OMpN2mRwXYnJmKNtML45XfTy4bCfeoTER7xBCWA==} dependencies: '@ethersproject/address': 5.7.0 '@ethersproject/bytes': 5.7.0 '@ethersproject/transactions': 5.7.0 - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) transitivePeerDependencies: - debug + dev: false - '@moralisweb3/common-sol-utils@2.26.2(debug@4.3.4)': + /@moralisweb3/common-sol-utils@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-68VaTLpTvWljzaWsb7bHd7IOPHraT5pqfQG/rs5pOZQ846/nWe8bWzCT619aKAiS54WEhkg3lgqE58mISiTmCw==} dependencies: - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) bn.js: 5.2.1 bs58: 5.0.0 buffer: 6.0.3 transitivePeerDependencies: - debug + dev: false - '@moralisweb3/common-streams-utils@2.26.2(debug@4.3.4)': + /@moralisweb3/common-streams-utils@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-dhUrGoeBW1xfokQNRhr7AfejEBA/jOwIp3uyaw19M1eQcw0v+ekhgWvglSEDp0Fp3AouZFUAgkX1pOz/BziuCw==} dependencies: '@ethersproject/abi': 5.7.0 - '@moralisweb3/common-aptos-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) - '@moralisweb3/common-evm-utils': 2.26.2(debug@4.3.4) + '@moralisweb3/common-aptos-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) + '@moralisweb3/common-evm-utils': 2.26.1(debug@4.3.4) '@moralisweb3/streams-typings': 1.0.7 transitivePeerDependencies: - debug + dev: false - '@moralisweb3/evm-api@2.26.2(debug@4.3.4)': + /@moralisweb3/evm-api@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-1A92tQsM/K9wMVpciziPmy8s258en+KN9CIIBNj+6AqXS+yjvd6Fbh//0ZGpKmsBu862ULfb8EnrmeYQBoSEbw==} dependencies: - '@moralisweb3/api-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) - '@moralisweb3/common-evm-utils': 2.26.2(debug@4.3.4) + '@moralisweb3/api-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) + '@moralisweb3/common-evm-utils': 2.26.1(debug@4.3.4) transitivePeerDependencies: - debug + dev: false - '@moralisweb3/sol-api@2.26.2(debug@4.3.4)': + /@moralisweb3/sol-api@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-Wvpg8soLyb5DRR2R/v3ociFVI4I4EH1SsCU7Ah53tfmX/gDl5qs9FFdOMR/gYhS0vZXFN0f2jW+6I9ml1A9bDw==} dependencies: - '@moralisweb3/api-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) - '@moralisweb3/common-sol-utils': 2.26.2(debug@4.3.4) + '@moralisweb3/api-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) + '@moralisweb3/common-sol-utils': 2.26.1(debug@4.3.4) transitivePeerDependencies: - debug + dev: false - '@moralisweb3/streams-typings@1.0.7': {} + /@moralisweb3/streams-typings@1.0.7: + resolution: {integrity: sha512-ShbVqil0KLOTyTjO6z9JewPcVVE3S6kzkQFnW2flGBRsGdKucpkUdOx1HijOLoaikz/9gH92n+lzTvRFIj0AoA==} + dev: false - '@moralisweb3/streams@2.26.2(debug@4.3.4)': + /@moralisweb3/streams@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-YyF3w8jKYw06ihKSi7LsG2L7FmOXDZarufQdYFhFFlNflprJG+ENorAp8NX9CfSoPzbLkF5NTDug22lehNqWTA==} dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/bignumber': 5.7.0 '@ethersproject/sha2': 5.7.0 '@ethersproject/strings': 5.7.0 - '@moralisweb3/api-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) - '@moralisweb3/common-evm-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-streams-utils': 2.26.2(debug@4.3.4) + '@moralisweb3/api-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) + '@moralisweb3/common-evm-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-streams-utils': 2.26.1(debug@4.3.4) '@moralisweb3/streams-typings': 1.0.7 ethereumjs-util: 7.1.5 web3-eth-abi: 1.10.4 transitivePeerDependencies: - debug + dev: false - '@motionone/animation@10.16.3': + /@motionone/animation@10.17.0: + resolution: {integrity: sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg==} dependencies: - '@motionone/easing': 10.16.3 - '@motionone/types': 10.16.3 - '@motionone/utils': 10.16.3 + '@motionone/easing': 10.17.0 + '@motionone/types': 10.17.0 + '@motionone/utils': 10.17.0 tslib: 2.6.2 + dev: false - '@motionone/dom@10.16.4': + /@motionone/dom@10.17.0: + resolution: {integrity: sha512-cMm33swRlCX/qOPHWGbIlCl0K9Uwi6X5RiL8Ma6OrlJ/TP7Q+Np5GE4xcZkFptysFjMTi4zcZzpnNQGQ5D6M0Q==} dependencies: - '@motionone/animation': 10.16.3 - '@motionone/generators': 10.16.4 - '@motionone/types': 10.16.3 - '@motionone/utils': 10.16.3 + '@motionone/animation': 10.17.0 + '@motionone/generators': 10.17.0 + '@motionone/types': 10.17.0 + '@motionone/utils': 10.17.0 hey-listen: 1.0.8 tslib: 2.6.2 + dev: false - '@motionone/easing@10.16.3': + /@motionone/easing@10.17.0: + resolution: {integrity: sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg==} dependencies: - '@motionone/utils': 10.16.3 + '@motionone/utils': 10.17.0 tslib: 2.6.2 + dev: false - '@motionone/generators@10.16.4': + /@motionone/generators@10.17.0: + resolution: {integrity: sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ==} dependencies: - '@motionone/types': 10.16.3 - '@motionone/utils': 10.16.3 + '@motionone/types': 10.17.0 + '@motionone/utils': 10.17.0 tslib: 2.6.2 + dev: false - '@motionone/svelte@10.16.4': + /@motionone/svelte@10.16.4: + resolution: {integrity: sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA==} dependencies: - '@motionone/dom': 10.16.4 + '@motionone/dom': 10.17.0 tslib: 2.6.2 + dev: false - '@motionone/types@10.16.3': {} + /@motionone/types@10.17.0: + resolution: {integrity: sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA==} + dev: false - '@motionone/utils@10.16.3': + /@motionone/utils@10.17.0: + resolution: {integrity: sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg==} dependencies: - '@motionone/types': 10.16.3 + '@motionone/types': 10.17.0 hey-listen: 1.0.8 tslib: 2.6.2 + dev: false - '@motionone/vue@10.16.4': + /@motionone/vue@10.16.4: + resolution: {integrity: sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==} + deprecated: Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion dependencies: - '@motionone/dom': 10.16.4 + '@motionone/dom': 10.17.0 tslib: 2.6.2 + dev: false - '@multiformats/dns@1.0.6': + /@multiformats/dns@1.0.6: + resolution: {integrity: sha512-nt/5UqjMPtyvkG9BQYdJ4GfLK3nMqGpFZOzf4hAmIa0sJh2LlS9YKXZ4FgwBDsaHvzZqR/rUFIywIc7pkHNNuw==} dependencies: '@types/dns-packet': 5.6.5 buffer: 6.0.3 @@ -16718,13 +7435,18 @@ snapshots: hashlru: 2.3.0 p-queue: 8.0.1 progress-events: 1.0.0 - uint8arrays: 5.0.3 + uint8arrays: 5.1.0 + dev: false - '@multiformats/multiaddr-to-uri@9.0.8': + /@multiformats/multiaddr-to-uri@9.0.8: + resolution: {integrity: sha512-4eiN5iEiQfy2A98BxekUfW410L/ivg0sgjYSgSqmklnrBhK+QyMz4yqgfkub8xDTXOc7O5jp4+LVyM3ZqMeWNw==} dependencies: - '@multiformats/multiaddr': 12.2.1 + '@multiformats/multiaddr': 12.2.3 + dev: false - '@multiformats/multiaddr@11.6.1': + /@multiformats/multiaddr@11.6.1: + resolution: {integrity: sha512-doST0+aB7/3dGK9+U5y3mtF3jq85KGbke1QiH0KE1F5mGQ9y56mFebTeu2D9FNOm+OT6UHb8Ss8vbSnpGjeLNw==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: '@chainsafe/is-ip': 2.0.2 dns-over-http-resolver: 2.1.3 @@ -16734,119 +7456,215 @@ snapshots: varint: 6.0.0 transitivePeerDependencies: - supports-color + dev: false - '@multiformats/multiaddr@12.2.1': + /@multiformats/multiaddr@12.2.3: + resolution: {integrity: sha512-qUP24ZgYXnyZs0lpYBvPg8Jyn3KFOJFH3a3tAcupulYIVQpR+3/fbaAZp4dYUJxBIDTOfEIpvPKm0DOFxbCDKw==} dependencies: '@chainsafe/is-ip': 2.0.2 '@chainsafe/netmask': 2.0.0 - '@libp2p/interface': 1.3.0 + '@libp2p/interface': 1.3.1 '@multiformats/dns': 1.0.6 multiformats: 13.1.0 uint8-varint: 2.0.4 - uint8arrays: 5.0.3 + uint8arrays: 5.1.0 + dev: false - '@noble/curves@1.2.0': + /@noble/curves@1.2.0: + resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} dependencies: '@noble/hashes': 1.3.2 - '@noble/curves@1.3.0': + /@noble/curves@1.3.0: + resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==} dependencies: '@noble/hashes': 1.3.3 - '@noble/curves@1.4.0': + /@noble/curves@1.4.0: + resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==} dependencies: '@noble/hashes': 1.4.0 - '@noble/hashes@1.2.0': {} - - '@noble/hashes@1.3.2': {} + /@noble/hashes@1.2.0: + resolution: {integrity: sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==} + dev: false - '@noble/hashes@1.3.3': {} + /@noble/hashes@1.3.2: + resolution: {integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==} + engines: {node: '>= 16'} - '@noble/hashes@1.4.0': {} + /@noble/hashes@1.3.3: + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} - '@noble/hashes@1.5.0': {} + /@noble/hashes@1.4.0: + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} - '@noble/secp256k1@1.7.1': {} + /@noble/secp256k1@1.7.1: + resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + dev: false - '@nodelib/fs.scandir@2.1.5': + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - '@nodelib/fs.stat@2.0.5': {} + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} - '@nodelib/fs.walk@1.2.8': + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@nomicfoundation/edr-darwin-arm64@0.6.3': {} + /@nomicfoundation/edr-darwin-arm64@0.6.4: + resolution: {integrity: sha512-QNQErISLgssV9+qia8sIjRANqtbW8snSDvjspixT/kSQ5ZSGxxctTg7x72wPSrcu8+EBEveIe5uqENIp5GH8HQ==} + engines: {node: '>= 18'} + dev: false - '@nomicfoundation/edr-darwin-x64@0.6.3': {} + /@nomicfoundation/edr-darwin-x64@0.6.4: + resolution: {integrity: sha512-cjVmREiwByyc9+oGfvAh49IAw+oVJHF9WWYRD+Tm/ZlSpnEVWxrGNBak2bd/JSYjn+mZE7gmWS4SMRi4nKaLUg==} + engines: {node: '>= 18'} + dev: false - '@nomicfoundation/edr-linux-arm64-gnu@0.6.3': {} + /@nomicfoundation/edr-linux-arm64-gnu@0.6.4: + resolution: {integrity: sha512-96o9kRIVD6W5VkgKvUOGpWyUGInVQ5BRlME2Fa36YoNsRQMaKtmYJEU0ACosYES6ZTpYC8U5sjMulvPtVoEfOA==} + engines: {node: '>= 18'} + dev: false - '@nomicfoundation/edr-linux-arm64-musl@0.6.3': {} + /@nomicfoundation/edr-linux-arm64-musl@0.6.4: + resolution: {integrity: sha512-+JVEW9e5plHrUfQlSgkEj/UONrIU6rADTEk+Yp9pbe+mzNkJdfJYhs5JYiLQRP4OjxH4QOrXI97bKU6FcEbt5Q==} + engines: {node: '>= 18'} + dev: false - '@nomicfoundation/edr-linux-x64-gnu@0.6.3': {} + /@nomicfoundation/edr-linux-x64-gnu@0.6.4: + resolution: {integrity: sha512-nzYWW+fO3EZItOeP4CrdMgDXfaGBIBkKg0Y/7ySpUxLqzut40O4Mb0/+quqLAFkacUSWMlFp8nsmypJfOH5zoA==} + engines: {node: '>= 18'} + dev: false - '@nomicfoundation/edr-linux-x64-musl@0.6.3': {} + /@nomicfoundation/edr-linux-x64-musl@0.6.4: + resolution: {integrity: sha512-QFRoE9qSQ2boRrVeQ1HdzU+XN7NUgwZ1SIy5DQt4d7jCP+5qTNsq8LBNcqhRBOATgO63nsweNUhxX/Suj5r1Sw==} + engines: {node: '>= 18'} + dev: false - '@nomicfoundation/edr-win32-x64-msvc@0.6.3': {} + /@nomicfoundation/edr-win32-x64-msvc@0.6.4: + resolution: {integrity: sha512-2yopjelNkkCvIjUgBGhrn153IBPLwnsDeNiq6oA0WkeM8tGmQi4td+PGi9jAriUDAkc59Yoi2q9hYA6efiY7Zw==} + engines: {node: '>= 18'} + dev: false - '@nomicfoundation/edr@0.6.3': + /@nomicfoundation/edr@0.6.4: + resolution: {integrity: sha512-YgrSuT3yo5ZQkbvBGqQ7hG+RDvz3YygSkddg4tb1Z0Y6pLXFzwrcEwWaJCFAVeeZxdxGfCgGMUYgRVneK+WXkw==} + engines: {node: '>= 18'} dependencies: - '@nomicfoundation/edr-darwin-arm64': 0.6.3 - '@nomicfoundation/edr-darwin-x64': 0.6.3 - '@nomicfoundation/edr-linux-arm64-gnu': 0.6.3 - '@nomicfoundation/edr-linux-arm64-musl': 0.6.3 - '@nomicfoundation/edr-linux-x64-gnu': 0.6.3 - '@nomicfoundation/edr-linux-x64-musl': 0.6.3 - '@nomicfoundation/edr-win32-x64-msvc': 0.6.3 + '@nomicfoundation/edr-darwin-arm64': 0.6.4 + '@nomicfoundation/edr-darwin-x64': 0.6.4 + '@nomicfoundation/edr-linux-arm64-gnu': 0.6.4 + '@nomicfoundation/edr-linux-arm64-musl': 0.6.4 + '@nomicfoundation/edr-linux-x64-gnu': 0.6.4 + '@nomicfoundation/edr-linux-x64-musl': 0.6.4 + '@nomicfoundation/edr-win32-x64-msvc': 0.6.4 + dev: false - '@nomicfoundation/ethereumjs-common@4.0.4': + /@nomicfoundation/ethereumjs-common@4.0.4: + resolution: {integrity: sha512-9Rgb658lcWsjiicr5GzNCjI1llow/7r0k50dLL95OJ+6iZJcVbi15r3Y0xh2cIO+zgX0WIHcbzIu6FeQf9KPrg==} dependencies: '@nomicfoundation/ethereumjs-util': 9.0.4 transitivePeerDependencies: - c-kzg + dev: false - '@nomicfoundation/ethereumjs-rlp@5.0.4': {} + /@nomicfoundation/ethereumjs-rlp@5.0.4: + resolution: {integrity: sha512-8H1S3s8F6QueOc/X92SdrA4RDenpiAEqMg5vJH99kcQaCy/a3Q6fgseo75mgWlbanGJXSlAPtnCeG9jvfTYXlw==} + engines: {node: '>=18'} + hasBin: true + dev: false - '@nomicfoundation/ethereumjs-tx@5.0.4': + /@nomicfoundation/ethereumjs-tx@5.0.4: + resolution: {integrity: sha512-Xjv8wAKJGMrP1f0n2PeyfFCCojHd7iS3s/Ab7qzF1S64kxZ8Z22LCMynArYsVqiFx6rzYy548HNVEyI+AYN/kw==} + engines: {node: '>=18'} + peerDependencies: + c-kzg: ^2.1.2 + peerDependenciesMeta: + c-kzg: + optional: true dependencies: '@nomicfoundation/ethereumjs-common': 4.0.4 '@nomicfoundation/ethereumjs-rlp': 5.0.4 '@nomicfoundation/ethereumjs-util': 9.0.4 ethereum-cryptography: 0.1.3 + dev: false - '@nomicfoundation/ethereumjs-util@9.0.4': + /@nomicfoundation/ethereumjs-util@9.0.4: + resolution: {integrity: sha512-sLOzjnSrlx9Bb9EFNtHzK/FJFsfg2re6bsGqinFinH1gCqVfz9YYlXiMWwDM4C/L4ywuHFCYwfKTVr/QHQcU0Q==} + engines: {node: '>=18'} + peerDependencies: + c-kzg: ^2.1.2 + peerDependenciesMeta: + c-kzg: + optional: true dependencies: '@nomicfoundation/ethereumjs-rlp': 5.0.4 ethereum-cryptography: 0.1.3 + dev: false - '@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2': + /@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.2: + resolution: {integrity: sha512-JaqcWPDZENCvm++lFFGjrDd8mxtf+CtLd2MiXvMNTBD33dContTZ9TWETwNFwg7JTJT5Q9HEecH7FA+HTSsIUw==} + engines: {node: '>= 12'} + requiresBuild: true + dev: false optional: true - '@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2': + /@nomicfoundation/solidity-analyzer-darwin-x64@0.1.2: + resolution: {integrity: sha512-fZNmVztrSXC03e9RONBT+CiksSeYcxI1wlzqyr0L7hsQlK1fzV+f04g2JtQ1c/Fe74ZwdV6aQBdd6Uwl1052sw==} + engines: {node: '>= 12'} + requiresBuild: true + dev: false optional: true - '@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2': + /@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.2: + resolution: {integrity: sha512-3d54oc+9ZVBuB6nbp8wHylk4xh0N0Gc+bk+/uJae+rUgbOBwQSfuGIbAZt1wBXs5REkSmynEGcqx6DutoK0tPA==} + engines: {node: '>= 12'} + requiresBuild: true + dev: false optional: true - '@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2': + /@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.2: + resolution: {integrity: sha512-iDJfR2qf55vgsg7BtJa7iPiFAsYf2d0Tv/0B+vhtnI16+wfQeTbP7teookbGvAo0eJo7aLLm0xfS/GTkvHIucA==} + engines: {node: '>= 12'} + requiresBuild: true + dev: false optional: true - '@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2': + /@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.2: + resolution: {integrity: sha512-9dlHMAt5/2cpWyuJ9fQNOUXFB/vgSFORg1jpjX1Mh9hJ/MfZXlDdHQ+DpFCs32Zk5pxRBb07yGvSHk9/fezL+g==} + engines: {node: '>= 12'} + requiresBuild: true + dev: false optional: true - '@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2': + /@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.2: + resolution: {integrity: sha512-GzzVeeJob3lfrSlDKQw2bRJ8rBf6mEYaWY+gW0JnTDHINA0s2gPR4km5RLIj1xeZZOYz4zRw+AEeYgLRqB2NXg==} + engines: {node: '>= 12'} + requiresBuild: true + dev: false optional: true - '@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2': + /@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.2: + resolution: {integrity: sha512-Fdjli4DCcFHb4Zgsz0uEJXZ2K7VEO+w5KVv7HmT7WO10iODdU9csC2az4jrhEsRtiR9Gfd74FlG0NYlw1BMdyA==} + engines: {node: '>= 12'} + requiresBuild: true + dev: false optional: true - '@nomicfoundation/solidity-analyzer@0.1.2': + /@nomicfoundation/solidity-analyzer@0.1.2: + resolution: {integrity: sha512-q4n32/FNKIhQ3zQGGw5CvPF6GTvDCpYwIf7bEY/dZTZbgfDsHyjJwURxUJf3VQuuJj+fDIFl4+KkBVbw4Ef6jA==} + engines: {node: '>= 12'} optionalDependencies: '@nomicfoundation/solidity-analyzer-darwin-arm64': 0.1.2 '@nomicfoundation/solidity-analyzer-darwin-x64': 0.1.2 @@ -16855,20 +7673,32 @@ snapshots: '@nomicfoundation/solidity-analyzer-linux-x64-gnu': 0.1.2 '@nomicfoundation/solidity-analyzer-linux-x64-musl': 0.1.2 '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.2 + dev: false - '@openzeppelin/contracts-upgradeable@4.9.6': {} + /@openzeppelin/contracts-upgradeable@4.9.6: + resolution: {integrity: sha512-m4iHazOsOCv1DgM7eD7GupTJ+NFVujRZt1wzddDPSVGpWdKq1SKkla5htKG7+IS4d2XOCtzkUNwRZ7Vq5aEUMA==} + dev: false - '@openzeppelin/contracts-upgradeable@5.0.2(@openzeppelin/contracts@5.0.2)': + /@openzeppelin/contracts-upgradeable@5.0.2(@openzeppelin/contracts@5.0.2): + resolution: {integrity: sha512-0MmkHSHiW2NRFiT9/r5Lu4eJq5UJ4/tzlOgYXNAIj/ONkQTVnz22pLxDvp4C4uZ9he7ZFvGn3Driptn1/iU7tQ==} + peerDependencies: + '@openzeppelin/contracts': 5.0.2 dependencies: '@openzeppelin/contracts': 5.0.2 + dev: false - '@openzeppelin/contracts@4.9.6': {} + /@openzeppelin/contracts@4.9.6: + resolution: {integrity: sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==} + dev: false - '@openzeppelin/contracts@5.0.2': {} + /@openzeppelin/contracts@5.0.2: + resolution: {integrity: sha512-ytPc6eLGcHHnapAZ9S+5qsdomhjo6QBHTDRRBFfTxXIpsicMhVPouPgmUPebZZZGX7vt9USA+Z+0M0dSVtSUEA==} + dev: false - '@openzeppelin/defender-as-code@3.0.1(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core@1.10.4(encoding@0.1.13))(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': + /@openzeppelin/defender-as-code@3.0.1(web3-core-helpers@1.10.3)(web3-core@1.10.4)(web3-utils@1.10.4)(web3@1.10.4): + resolution: {integrity: sha512-AeGMBk81Bak6B4u3pXjO1aOrIbJqrE6gZJqTJiBRGzKRGWxqQycriojZ3/lns/DcrNElA2BBHD0ONESrpMbZAg==} dependencies: - '@openzeppelin/defender-sdk': 1.14.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core@1.10.4(encoding@0.1.13))(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) + '@openzeppelin/defender-sdk': 1.15.0(web3-core-helpers@1.10.3)(web3-core@1.10.4)(web3-utils@1.10.4)(web3@1.10.4) keccak256: 1.0.6 lodash: 4.17.21 prompt: 1.3.0 @@ -16881,19 +7711,24 @@ snapshots: - web3-core - web3-core-helpers - web3-utils + dev: true - '@openzeppelin/defender-sdk-account-client@1.14.4(encoding@0.1.13)': + /@openzeppelin/defender-sdk-account-client@1.15.0: + resolution: {integrity: sha512-SsXxmMjOUGbDjjyPoB+Se+QbzGADo1VmlW51GysjDT0Hnhx6tUtWIC/LzPThkSEZbvdpGozoijzRbr1ZuEQ2og==} dependencies: - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0 axios: 1.7.7 lodash: 4.17.21 transitivePeerDependencies: - debug - encoding + dev: true - '@openzeppelin/defender-sdk-action-client@1.14.4(encoding@0.1.13)': + /@openzeppelin/defender-sdk-action-client@1.15.0: + resolution: {integrity: sha512-g16QqFNl79oN00kfZAsYEmXcKI+YKO//Hq6Vcubo5sOAjTXqe0Fqmti9B8F1fXaTkeQORiiYJ3OSfbkUxYc6Ew==} + hasBin: true dependencies: - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0 axios: 1.7.7 dotenv: 16.4.5 glob: 11.0.0 @@ -16902,121 +7737,158 @@ snapshots: transitivePeerDependencies: - debug - encoding + dev: true - '@openzeppelin/defender-sdk-base-client@1.14.4(encoding@0.1.13)': + /@openzeppelin/defender-sdk-base-client@1.15.0: + resolution: {integrity: sha512-nuf/xegMIuKCO0hMrxI1KQKTzQw1iCl/9kew2nJM9MrFIohhfEXItc5rbJRoV/jehmK/Jhi9ATF9OHH09StEsQ==} dependencies: - amazon-cognito-identity-js: 6.3.12(encoding@0.1.13) + amazon-cognito-identity-js: 6.3.12 async-retry: 1.3.3 transitivePeerDependencies: - encoding + dev: true - '@openzeppelin/defender-sdk-deploy-client@1.14.4(encoding@0.1.13)': + /@openzeppelin/defender-sdk-deploy-client@1.15.0: + resolution: {integrity: sha512-2ODMN4j5pPYWyIOvA/zRQmJ0tJyqi6NV3S/PyvufBXa3oj/MDnVO5bMGSQFH0M2VE3bg+i/rcUb0hdbX9Rtm5Q==} dependencies: - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0 axios: 1.7.7 lodash: 4.17.21 transitivePeerDependencies: - debug - encoding + dev: true - '@openzeppelin/defender-sdk-key-value-store-client@1.14.4(encoding@0.1.13)': + /@openzeppelin/defender-sdk-key-value-store-client@1.15.0: + resolution: {integrity: sha512-m8ucHgeXPhZnXlQIEBfjjYpP2N4CQiXDJkAPICW0PHskxHeeb7NJIctFXeUJCBphWq+FnHBf0fkiZfYIJJwYhA==} dependencies: - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0 axios: 1.7.7 fs-extra: 11.2.0 lodash: 4.17.21 transitivePeerDependencies: - debug - encoding + dev: true - '@openzeppelin/defender-sdk-monitor-client@1.14.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@openzeppelin/defender-sdk-monitor-client@1.15.0: + resolution: {integrity: sha512-8D1VTUBRuyXU+g+og3o3Z9b5wRF+tSyZgGkizTE/AGe/De9osvygF6igYy5SzgpaJbMz0SHTzDD6ikyiWSutqA==} dependencies: - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0 axios: 1.7.7 - ethers: 6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.4 lodash: 4.17.21 transitivePeerDependencies: - bufferutil - debug - encoding - utf-8-validate + dev: true - '@openzeppelin/defender-sdk-network-client@1.14.4(encoding@0.1.13)': + /@openzeppelin/defender-sdk-network-client@1.15.0: + resolution: {integrity: sha512-tNynCqFB1XYancq/8yGuj0HCSIyNLSRSuH53Hp2Tl+DpM7W5vIkzSRfvJJxC+8Sld83bVavyNJzTN9xid992Ag==} dependencies: - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0 axios: 1.7.7 lodash: 4.17.21 transitivePeerDependencies: - debug - encoding + dev: true - '@openzeppelin/defender-sdk-notification-channel-client@1.14.4(encoding@0.1.13)': + /@openzeppelin/defender-sdk-notification-channel-client@1.15.0: + resolution: {integrity: sha512-tcz3yVk30MI1fRXHso0Wu9jTi3BEoNuYYrQCpBhfypVks9n1JybkfEpFThyQ9uExmFuDVz1bOLubLD+Vhm/gAA==} dependencies: - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0 axios: 1.7.7 lodash: 4.17.21 transitivePeerDependencies: - debug - encoding + dev: true - '@openzeppelin/defender-sdk-proposal-client@1.14.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@openzeppelin/defender-sdk-proposal-client@1.15.0: + resolution: {integrity: sha512-J6lnq9VBjTmriGu93TDffjyq1vXfvc2nOf6NH+4jNn6dch8a3AGIwnU7y/5C41RttoW6lZKddObBsPO9cAt2Rg==} dependencies: - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0 axios: 1.7.7 - ethers: 6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.4 lodash: 4.17.21 transitivePeerDependencies: - bufferutil - debug - encoding - utf-8-validate + dev: true + + /@openzeppelin/defender-sdk-relay-client@1.15.0: + resolution: {integrity: sha512-0cUamQzXTypL32hFNSzoBMVYMZGFZG/ch53QN/5ZcKDm8ovH9w+VF2i7e6CdhuhNjGhVhqHB/8hCqyoRMudDcA==} + dependencies: + '@openzeppelin/defender-sdk-base-client': 1.15.0 + axios: 1.7.7 + lodash: 4.17.21 + transitivePeerDependencies: + - debug + - encoding + dev: true - '@openzeppelin/defender-sdk-relay-client@1.14.4(encoding@0.1.13)': + /@openzeppelin/defender-sdk-relay-group-client@1.15.0: + resolution: {integrity: sha512-wvzJuoi947M22a5cbtT1TtE0p1fGuhXC4iAzzsUZcOUb3eIlCyDimcblX6c5kNcNCavi4V3ZQ4JXQF2JUiYPXg==} dependencies: - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0 axios: 1.7.7 lodash: 4.17.21 transitivePeerDependencies: - debug - encoding + dev: true - '@openzeppelin/defender-sdk-relay-signer-client@1.14.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core@1.10.4(encoding@0.1.13))(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': + /@openzeppelin/defender-sdk-relay-signer-client@1.15.0(web3-core-helpers@1.10.3)(web3-core@1.10.4)(web3-utils@1.10.4)(web3@1.10.4): + resolution: {integrity: sha512-kdI79tRZKvnRCk7ADHQIG6+GsxnfN75DJqfCC+Aft79/NoNnI88EU6X2cWY/XVeCsSLjwO1U3t1cDbtml2AD3Q==} + peerDependencies: + web3: ^1.10.0 + web3-core: ^1.10.4 + web3-core-helpers: ^1.10.0 + web3-utils: ^1.10.0 dependencies: '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 '@ethersproject/networks': 5.7.1 '@ethersproject/properties': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@ethersproject/providers': 5.7.2 '@ethersproject/strings': 5.7.0 - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) - amazon-cognito-identity-js: 6.3.12(encoding@0.1.13) + '@openzeppelin/defender-sdk-base-client': 1.15.0 + amazon-cognito-identity-js: 6.3.12 axios: 1.7.7 - ethers: 6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 6.13.4 lodash: 4.17.21 - web3: 1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - web3-core: 1.10.4(encoding@0.1.13) - web3-core-helpers: 1.10.4 + web3: 1.10.4 + web3-core: 1.10.4 + web3-core-helpers: 1.10.3 web3-utils: 1.10.4 transitivePeerDependencies: - bufferutil - debug - encoding - utf-8-validate - - '@openzeppelin/defender-sdk@1.14.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core@1.10.4(encoding@0.1.13))(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': - dependencies: - '@openzeppelin/defender-sdk-account-client': 1.14.4(encoding@0.1.13) - '@openzeppelin/defender-sdk-action-client': 1.14.4(encoding@0.1.13) - '@openzeppelin/defender-sdk-base-client': 1.14.4(encoding@0.1.13) - '@openzeppelin/defender-sdk-deploy-client': 1.14.4(encoding@0.1.13) - '@openzeppelin/defender-sdk-key-value-store-client': 1.14.4(encoding@0.1.13) - '@openzeppelin/defender-sdk-monitor-client': 1.14.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@openzeppelin/defender-sdk-network-client': 1.14.4(encoding@0.1.13) - '@openzeppelin/defender-sdk-notification-channel-client': 1.14.4(encoding@0.1.13) - '@openzeppelin/defender-sdk-proposal-client': 1.14.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@openzeppelin/defender-sdk-relay-client': 1.14.4(encoding@0.1.13) - '@openzeppelin/defender-sdk-relay-signer-client': 1.14.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)(web3-core-helpers@1.10.4)(web3-core@1.10.4(encoding@0.1.13))(web3-utils@1.10.4)(web3@1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)) + dev: true + + /@openzeppelin/defender-sdk@1.15.0(web3-core-helpers@1.10.3)(web3-core@1.10.4)(web3-utils@1.10.4)(web3@1.10.4): + resolution: {integrity: sha512-3OTPejnt55AGhVRYEWeQtAgXNpb/DN9aXwCAo05+hkOcz0KKJ8JICinHEDykyrrbGc/5WEgnrap8lxyutHFlbg==} + dependencies: + '@openzeppelin/defender-sdk-account-client': 1.15.0 + '@openzeppelin/defender-sdk-action-client': 1.15.0 + '@openzeppelin/defender-sdk-base-client': 1.15.0 + '@openzeppelin/defender-sdk-deploy-client': 1.15.0 + '@openzeppelin/defender-sdk-key-value-store-client': 1.15.0 + '@openzeppelin/defender-sdk-monitor-client': 1.15.0 + '@openzeppelin/defender-sdk-network-client': 1.15.0 + '@openzeppelin/defender-sdk-notification-channel-client': 1.15.0 + '@openzeppelin/defender-sdk-proposal-client': 1.15.0 + '@openzeppelin/defender-sdk-relay-client': 1.15.0 + '@openzeppelin/defender-sdk-relay-group-client': 1.15.0 + '@openzeppelin/defender-sdk-relay-signer-client': 1.15.0(web3-core-helpers@1.10.3)(web3-core@1.10.4)(web3-utils@1.10.4)(web3@1.10.4) transitivePeerDependencies: - bufferutil - debug @@ -17026,255 +7898,417 @@ snapshots: - web3-core - web3-core-helpers - web3-utils + dev: true - '@openzeppelin/merkle-tree@1.0.6': + /@openzeppelin/merkle-tree@1.0.6: + resolution: {integrity: sha512-cGWOb2WBWbJhqvupzxjnKAwGLxxAEYPg51sk76yZ5nVe5D03mw7Vx5yo8llaIEqYhP5O39M8QlrNWclgLfKVrA==} dependencies: '@ethersproject/abi': 5.7.0 ethereum-cryptography: 1.2.0 + dev: false - '@oslojs/encoding@0.4.1': {} - - '@pagefind/darwin-arm64@1.1.0': + /@pagefind/darwin-arm64@1.1.0: + resolution: {integrity: sha512-SLsXNLtSilGZjvqis8sX42fBWsWAVkcDh1oerxwqbac84HbiwxpxOC2jm8hRwcR0Z55HPZPWO77XeRix/8GwTg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@pagefind/darwin-x64@1.1.0': + /@pagefind/darwin-x64@1.1.0: + resolution: {integrity: sha512-QjQSE/L5oS1C8N8GdljGaWtjCBMgMtfrPAoiCmINTu9Y9dp0ggAyXvF8K7Qg3VyIMYJ6v8vg2PN7Z3b+AaAqUA==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@pagefind/default-ui@1.1.0': {} + /@pagefind/default-ui@1.1.0: + resolution: {integrity: sha512-+XiAJAK++C64nQcD7s3Prdmd5S92lT05fwjOxm0L1jj80jbL+tmvcqkkFnPpoqhnicIPgcAX/Y5W0HRZnBt35w==} + dev: false - '@pagefind/linux-arm64@1.1.0': + /@pagefind/linux-arm64@1.1.0: + resolution: {integrity: sha512-8zjYCa2BtNEL7KnXtysPtBELCyv5DSQ4yHeK/nsEq6w4ToAMTBl0K06khqxdSGgjMSwwrxvLzq3so0LC5Q14dA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@pagefind/linux-x64@1.1.0': + /@pagefind/linux-x64@1.1.0: + resolution: {integrity: sha512-4lsg6VB7A6PWTwaP8oSmXV4O9H0IHX7AlwTDcfyT+YJo/sPXOVjqycD5cdBgqNLfUk8B9bkWcTDCRmJbHrKeCw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@pagefind/windows-x64@1.1.0': + /@pagefind/windows-x64@1.1.0: + resolution: {integrity: sha512-OboCM76BcMKT9IoSfZuFhiqMRgTde8x4qDDvKulFmycgiJrlL5WnIqBHJLQxZq+o2KyZpoHF97iwsGAm8c32sQ==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-android-arm64@2.4.0': + /@parcel/watcher-android-arm64@2.4.1: + resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-darwin-arm64@2.4.0': + /@parcel/watcher-darwin-arm64@2.4.1: + resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-darwin-x64@2.4.0': + /@parcel/watcher-darwin-x64@2.4.1: + resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-freebsd-x64@2.4.0': + /@parcel/watcher-freebsd-x64@2.4.1: + resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-linux-arm-glibc@2.4.0': + /@parcel/watcher-linux-arm-glibc@2.4.1: + resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-linux-arm64-glibc@2.4.0': + /@parcel/watcher-linux-arm64-glibc@2.4.1: + resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-linux-arm64-musl@2.4.0': + /@parcel/watcher-linux-arm64-musl@2.4.1: + resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-linux-x64-glibc@2.4.0': + /@parcel/watcher-linux-x64-glibc@2.4.1: + resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-linux-x64-musl@2.4.0': + /@parcel/watcher-linux-x64-musl@2.4.1: + resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-wasm@2.4.0': + /@parcel/watcher-wasm@2.4.1: + resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} + engines: {node: '>= 10.0.0'} dependencies: is-glob: 4.0.3 micromatch: 4.0.5 + napi-wasm: 1.1.0 + dev: false + bundledDependencies: + - napi-wasm - '@parcel/watcher-win32-arm64@2.4.0': + /@parcel/watcher-win32-arm64@2.4.1: + resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-win32-ia32@2.4.0': + /@parcel/watcher-win32-ia32@2.4.1: + resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false optional: true - '@parcel/watcher-win32-x64@2.4.0': + /@parcel/watcher-win32-x64@2.4.1: + resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false optional: true - '@parcel/watcher@2.4.0': + /@parcel/watcher@2.4.1: + resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} + engines: {node: '>= 10.0.0'} dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 micromatch: 4.0.5 node-addon-api: 7.1.0 optionalDependencies: - '@parcel/watcher-android-arm64': 2.4.0 - '@parcel/watcher-darwin-arm64': 2.4.0 - '@parcel/watcher-darwin-x64': 2.4.0 - '@parcel/watcher-freebsd-x64': 2.4.0 - '@parcel/watcher-linux-arm-glibc': 2.4.0 - '@parcel/watcher-linux-arm64-glibc': 2.4.0 - '@parcel/watcher-linux-arm64-musl': 2.4.0 - '@parcel/watcher-linux-x64-glibc': 2.4.0 - '@parcel/watcher-linux-x64-musl': 2.4.0 - '@parcel/watcher-win32-arm64': 2.4.0 - '@parcel/watcher-win32-ia32': 2.4.0 - '@parcel/watcher-win32-x64': 2.4.0 - - '@pkgjs/parseargs@0.11.0': + '@parcel/watcher-android-arm64': 2.4.1 + '@parcel/watcher-darwin-arm64': 2.4.1 + '@parcel/watcher-darwin-x64': 2.4.1 + '@parcel/watcher-freebsd-x64': 2.4.1 + '@parcel/watcher-linux-arm-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-glibc': 2.4.1 + '@parcel/watcher-linux-arm64-musl': 2.4.1 + '@parcel/watcher-linux-x64-glibc': 2.4.1 + '@parcel/watcher-linux-x64-musl': 2.4.1 + '@parcel/watcher-win32-arm64': 2.4.1 + '@parcel/watcher-win32-ia32': 2.4.1 + '@parcel/watcher-win32-x64': 2.4.1 + dev: false + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true optional: true - '@pkgr/utils@2.4.2': - dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.2 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.2 + /@pkgr/core@0.1.1: + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dev: true - '@playwright/test@1.43.1': + /@playwright/test@1.43.1: + resolution: {integrity: sha512-HgtQzFgNEEo4TE22K/X7sYTYNqEMMTZmFS8kTq6m8hXj+m1D8TgwgIbumHddJa9h4yl4GkKb8/bgAl2+g7eDgA==} + engines: {node: '>=16'} + hasBin: true dependencies: playwright: 1.43.1 + dev: true - '@pnpm/config.env-replace@1.1.0': {} + /@pnpm/config.env-replace@1.1.0: + resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} + engines: {node: '>=12.22.0'} + dev: true - '@pnpm/network.ca-file@1.0.2': + /@pnpm/network.ca-file@1.0.2: + resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} + engines: {node: '>=12.22.0'} dependencies: graceful-fs: 4.2.10 + dev: true - '@pnpm/npm-conf@2.2.2': + /@pnpm/npm-conf@2.2.2: + resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==} + engines: {node: '>=12'} dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 + dev: true - '@polka/url@1.0.0-next.24': {} + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + dev: true - '@protobufjs/aspromise@1.1.2': {} + /@protobufjs/aspromise@1.1.2: + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false - '@protobufjs/base64@1.1.2': {} + /@protobufjs/base64@1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: false - '@protobufjs/codegen@2.0.4': {} + /@protobufjs/codegen@2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false - '@protobufjs/eventemitter@1.1.0': {} + /@protobufjs/eventemitter@1.1.0: + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: false - '@protobufjs/fetch@1.1.0': + /@protobufjs/fetch@1.1.0: + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/inquire': 1.1.0 + dev: false - '@protobufjs/float@1.0.2': {} - - '@protobufjs/inquire@1.1.0': {} + /@protobufjs/float@1.0.2: + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: false - '@protobufjs/path@1.1.2': {} + /@protobufjs/inquire@1.1.0: + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: false - '@protobufjs/pool@1.1.0': {} + /@protobufjs/path@1.1.2: + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false - '@protobufjs/utf8@1.1.0': {} + /@protobufjs/pool@1.1.0: + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false - '@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))': - dependencies: - merge-options: 3.0.4 - react-native: 0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) + /@protobufjs/utf8@1.1.0: + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: false - '@react-native-community/cli-clean@12.3.2(encoding@0.1.13)': + /@react-native-community/cli-clean@13.6.6: + resolution: {integrity: sha512-cBwJTwl0NyeA4nyMxbhkWZhxtILYkbU3TW3k8AXLg+iGphe0zikYMGB3T+haTvTc6alTyEFwPbimk9bGIqkjAQ==} dependencies: - '@react-native-community/cli-tools': 12.3.2(encoding@0.1.13) + '@react-native-community/cli-tools': 13.6.6 chalk: 4.1.2 execa: 5.1.1 + fast-glob: 3.3.2 transitivePeerDependencies: - encoding + dev: false - '@react-native-community/cli-config@12.3.2(encoding@0.1.13)': + /@react-native-community/cli-config@13.6.6: + resolution: {integrity: sha512-mbG425zCKr8JZhv/j11382arezwS/70juWMsn8j2lmrGTrP1cUdW0MF15CCIFtJsqyK3Qs+FTmqttRpq81QfSg==} dependencies: - '@react-native-community/cli-tools': 12.3.2(encoding@0.1.13) + '@react-native-community/cli-tools': 13.6.6 chalk: 4.1.2 cosmiconfig: 5.2.1 deepmerge: 4.3.1 - glob: 7.2.3 - joi: 17.12.1 + fast-glob: 3.3.2 + joi: 17.13.1 transitivePeerDependencies: - encoding + dev: false - '@react-native-community/cli-debugger-ui@12.3.2': + /@react-native-community/cli-debugger-ui@13.6.6: + resolution: {integrity: sha512-Vv9u6eS4vKSDAvdhA0OiQHoA7y39fiPIgJ6biT32tN4avHDtxlc6TWZGiqv7g98SBvDWvoVAmdPLcRf3kU+c8g==} dependencies: - serve-static: 1.16.2 + serve-static: 1.15.0 transitivePeerDependencies: - supports-color + dev: false - '@react-native-community/cli-doctor@12.3.2(encoding@0.1.13)': + /@react-native-community/cli-doctor@13.6.6: + resolution: {integrity: sha512-TWZb5g6EmQe2Ua2TEWNmyaEayvlWH4GmdD9ZC+p8EpKFpB1NpDGMK6sXbpb42TDvwZg5s4TDRplK0PBEA/SVDg==} dependencies: - '@react-native-community/cli-config': 12.3.2(encoding@0.1.13) - '@react-native-community/cli-platform-android': 12.3.2(encoding@0.1.13) - '@react-native-community/cli-platform-ios': 12.3.2(encoding@0.1.13) - '@react-native-community/cli-tools': 12.3.2(encoding@0.1.13) + '@react-native-community/cli-config': 13.6.6 + '@react-native-community/cli-platform-android': 13.6.6 + '@react-native-community/cli-platform-apple': 13.6.6 + '@react-native-community/cli-platform-ios': 13.6.6 + '@react-native-community/cli-tools': 13.6.6 chalk: 4.1.2 command-exists: 1.2.9 deepmerge: 4.3.1 - envinfo: 7.11.1 + envinfo: 7.13.0 execa: 5.1.1 hermes-profile-transformer: 0.0.6 - ip: 1.1.9 node-stream-zip: 1.15.0 ora: 5.4.1 semver: 7.6.3 strip-ansi: 5.2.0 wcwidth: 1.0.1 - yaml: 2.5.1 + yaml: 2.4.2 transitivePeerDependencies: - encoding + dev: false - '@react-native-community/cli-hermes@12.3.2(encoding@0.1.13)': + /@react-native-community/cli-hermes@13.6.6: + resolution: {integrity: sha512-La5Ie+NGaRl3klei6WxKoOxmCUSGGxpOk6vU5pEGf0/O7ky+Ay0io+zXYUZqlNMi/cGpO7ZUijakBYOB/uyuFg==} dependencies: - '@react-native-community/cli-platform-android': 12.3.2(encoding@0.1.13) - '@react-native-community/cli-tools': 12.3.2(encoding@0.1.13) + '@react-native-community/cli-platform-android': 13.6.6 + '@react-native-community/cli-tools': 13.6.6 chalk: 4.1.2 hermes-profile-transformer: 0.0.6 - ip: 1.1.9 transitivePeerDependencies: - encoding + dev: false - '@react-native-community/cli-platform-android@12.3.2(encoding@0.1.13)': + /@react-native-community/cli-platform-android@13.6.6: + resolution: {integrity: sha512-/tMwkBeNxh84syiSwNlYtmUz/Ppc+HfKtdopL/5RB+fd3SV1/5/NPNjMlyLNgFKnpxvKCInQ7dnl6jGHJjeHjg==} dependencies: - '@react-native-community/cli-tools': 12.3.2(encoding@0.1.13) + '@react-native-community/cli-tools': 13.6.6 chalk: 4.1.2 execa: 5.1.1 - fast-xml-parser: 4.3.4 - glob: 7.2.3 + fast-glob: 3.3.2 + fast-xml-parser: 4.3.6 logkitty: 0.7.1 transitivePeerDependencies: - encoding + dev: false - '@react-native-community/cli-platform-ios@12.3.2(encoding@0.1.13)': + /@react-native-community/cli-platform-apple@13.6.6: + resolution: {integrity: sha512-bOmSSwoqNNT3AmCRZXEMYKz1Jf1l2F86Nhs7qBcXdY/sGiJ+Flng564LOqvdAlVLTbkgz47KjNKCS2pP4Jg0Mg==} dependencies: - '@react-native-community/cli-tools': 12.3.2(encoding@0.1.13) + '@react-native-community/cli-tools': 13.6.6 chalk: 4.1.2 execa: 5.1.1 - fast-xml-parser: 4.3.4 - glob: 7.2.3 + fast-glob: 3.3.2 + fast-xml-parser: 4.3.6 ora: 5.4.1 transitivePeerDependencies: - encoding + dev: false - '@react-native-community/cli-plugin-metro@12.3.2': {} + /@react-native-community/cli-platform-ios@13.6.6: + resolution: {integrity: sha512-vjDnRwhlSN5ryqKTas6/DPkxuouuyFBAqAROH4FR1cspTbn6v78JTZKDmtQy9JMMo7N5vZj1kASU5vbFep9IOQ==} + dependencies: + '@react-native-community/cli-platform-apple': 13.6.6 + transitivePeerDependencies: + - encoding + dev: false - '@react-native-community/cli-server-api@12.3.2(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@react-native-community/cli-server-api@13.6.6: + resolution: {integrity: sha512-ZtCXxoFlM7oDv3iZ3wsrT3SamhtUJuIkX2WePLPlN5bcbq7zimbPm2lHyicNJtpcGQ5ymsgpUWPCNZsWQhXBqQ==} dependencies: - '@react-native-community/cli-debugger-ui': 12.3.2 - '@react-native-community/cli-tools': 12.3.2(encoding@0.1.13) + '@react-native-community/cli-debugger-ui': 13.6.6 + '@react-native-community/cli-tools': 13.6.6 compression: 1.7.4 connect: 3.7.0 errorhandler: 1.5.1 nocache: 3.0.4 pretty-format: 26.6.2 - serve-static: 1.16.2 - ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) + serve-static: 1.15.0 + ws: 6.2.2 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate + dev: false - '@react-native-community/cli-tools@12.3.2(encoding@0.1.13)': + /@react-native-community/cli-tools@13.6.6: + resolution: {integrity: sha512-ptOnn4AJczY5njvbdK91k4hcYazDnGtEPrqIwEI+k/CTBHNdb27Rsm2OZ7ye6f7otLBqF8gj/hK6QzJs8CEMgw==} dependencies: appdirsjs: 1.2.7 chalk: 4.1.2 + execa: 5.1.1 find-up: 5.0.0 mime: 2.6.0 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 open: 6.4.0 ora: 5.4.1 semver: 7.6.3 @@ -17282,22 +8316,27 @@ snapshots: sudo-prompt: 9.2.1 transitivePeerDependencies: - encoding + dev: false - '@react-native-community/cli-types@12.3.2': + /@react-native-community/cli-types@13.6.6: + resolution: {integrity: sha512-733iaYzlmvNK7XYbnWlMjdE+2k0hlTBJW071af/xb6Bs+hbJqBP9c03FZuYH2hFFwDDntwj05bkri/P7VgSxug==} dependencies: - joi: 17.12.1 + joi: 17.13.1 + dev: false - '@react-native-community/cli@12.3.2(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@react-native-community/cli@13.6.6: + resolution: {integrity: sha512-IqclB7VQ84ye8Fcs89HOpOscY4284VZg2pojHNl8H0Lzd4DadXJWQoxC7zWm8v2f8eyeX2kdhxp2ETD5tceIgA==} + engines: {node: '>=18'} + hasBin: true dependencies: - '@react-native-community/cli-clean': 12.3.2(encoding@0.1.13) - '@react-native-community/cli-config': 12.3.2(encoding@0.1.13) - '@react-native-community/cli-debugger-ui': 12.3.2 - '@react-native-community/cli-doctor': 12.3.2(encoding@0.1.13) - '@react-native-community/cli-hermes': 12.3.2(encoding@0.1.13) - '@react-native-community/cli-plugin-metro': 12.3.2 - '@react-native-community/cli-server-api': 12.3.2(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@react-native-community/cli-tools': 12.3.2(encoding@0.1.13) - '@react-native-community/cli-types': 12.3.2 + '@react-native-community/cli-clean': 13.6.6 + '@react-native-community/cli-config': 13.6.6 + '@react-native-community/cli-debugger-ui': 13.6.6 + '@react-native-community/cli-doctor': 13.6.6 + '@react-native-community/cli-hermes': 13.6.6 + '@react-native-community/cli-server-api': 13.6.6 + '@react-native-community/cli-tools': 13.6.6 + '@react-native-community/cli-types': 13.6.6 chalk: 4.1.2 commander: 9.5.0 deepmerge: 4.3.1 @@ -17312,89 +8351,110 @@ snapshots: - encoding - supports-color - utf-8-validate + dev: false - '@react-native/assets-registry@0.73.1': {} + /@react-native/assets-registry@0.74.83: + resolution: {integrity: sha512-2vkLMVnp+YTZYTNSDIBZojSsjz8sl5PscP3j4GcV6idD8V978SZfwFlk8K0ti0BzRs11mzL0Pj17km597S/eTQ==} + engines: {node: '>=18'} + dev: false - '@react-native/babel-plugin-codegen@0.73.4(@babel/preset-env@7.23.9(@babel/core@7.25.2))': + /@react-native/babel-plugin-codegen@0.74.83(@babel/preset-env@7.24.5): + resolution: {integrity: sha512-+S0st3t4Ro00bi9gjT1jnK8qTFOU+CwmziA7U9odKyWrCoRJrgmrvogq/Dr1YXlpFxexiGIupGut1VHxr+fxJA==} + engines: {node: '>=18'} dependencies: - '@react-native/codegen': 0.73.3(@babel/preset-env@7.23.9(@babel/core@7.25.2)) + '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.5) transitivePeerDependencies: - '@babel/preset-env' - supports-color + dev: false - '@react-native/babel-preset@0.73.21(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))': + /@react-native/babel-preset@0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.24.5): + resolution: {integrity: sha512-KJuu3XyVh3qgyUer+rEqh9a/JoUxsDOzkJNfRpDyXiAyjDRoVch60X/Xa/NcEQ93iCVHAWs0yQ+XGNGIBCYE6g==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' dependencies: '@babel/core': 7.25.2 '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.25.2) '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.25.2) + '@babel/plugin-proposal-export-default-from': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.25.2) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2) '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.2) '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.2) '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.25.2) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.25.2) + '@babel/plugin-syntax-export-default-from': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.25.2) '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.25.2) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-flow-strip-types': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.25.2) '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.25.2) - '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-private-property-in-object': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-runtime': 7.23.9(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx-self': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-runtime': 7.24.3(@babel/core@7.25.2) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.25.2) + '@babel/plugin-transform-typescript': 7.24.5(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.25.2) '@babel/template': 7.25.0 - '@react-native/babel-plugin-codegen': 0.73.4(@babel/preset-env@7.23.9(@babel/core@7.25.2)) + '@react-native/babel-plugin-codegen': 0.74.83(@babel/preset-env@7.24.5) babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.2) - react-refresh: 0.14.0 + react-refresh: 0.14.2 transitivePeerDependencies: - '@babel/preset-env' - supports-color + dev: false - '@react-native/codegen@0.73.3(@babel/preset-env@7.23.9(@babel/core@7.25.2))': + /@react-native/codegen@0.74.83(@babel/preset-env@7.24.5): + resolution: {integrity: sha512-GgvgHS3Aa2J8/mp1uC/zU8HuTh8ZT5jz7a4mVMWPw7+rGyv70Ba8uOVBq6UH2Q08o617IATYc+0HfyzAfm4n0w==} + engines: {node: '>=18'} + peerDependencies: + '@babel/preset-env': ^7.1.6 dependencies: - '@babel/parser': 7.25.6 - '@babel/preset-env': 7.23.9(@babel/core@7.25.2) - flow-parser: 0.206.0 + '@babel/parser': 7.25.3 + '@babel/preset-env': 7.24.5(@babel/core@7.25.2) glob: 7.2.3 + hermes-parser: 0.19.1 invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.23.9(@babel/core@7.25.2)) + jscodeshift: 0.14.0(@babel/preset-env@7.24.5) mkdirp: 0.5.6 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color + dev: false - '@react-native/community-cli-plugin@0.73.16(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@react-native/community-cli-plugin@0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.24.5): + resolution: {integrity: sha512-7GAFjFOg1mFSj8bnFNQS4u8u7+QtrEeflUIDVZGEfBZQ3wMNI5ycBzbBGycsZYiq00Xvoc6eKFC7kvIaqeJpUQ==} + engines: {node: '>=18'} dependencies: - '@react-native-community/cli-server-api': 12.3.2(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@react-native-community/cli-tools': 12.3.2(encoding@0.1.13) - '@react-native/dev-middleware': 0.73.7(encoding@0.1.13) - '@react-native/metro-babel-transformer': 0.73.15(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2)) + '@react-native-community/cli-server-api': 13.6.6 + '@react-native-community/cli-tools': 13.6.6 + '@react-native/dev-middleware': 0.74.83 + '@react-native/metro-babel-transformer': 0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.24.5) chalk: 4.1.2 execa: 5.1.1 - metro: 0.80.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - metro-config: 0.80.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - metro-core: 0.80.6 - node-fetch: 2.7.0(encoding@0.1.13) + metro: 0.80.9 + metro-config: 0.80.9 + metro-core: 0.80.9 + node-fetch: 2.7.0 + querystring: 0.2.1 readline: 1.3.0 transitivePeerDependencies: - '@babel/core' @@ -17403,351 +8463,395 @@ snapshots: - encoding - supports-color - utf-8-validate + dev: false - '@react-native/debugger-frontend@0.73.3': {} + /@react-native/debugger-frontend@0.74.83: + resolution: {integrity: sha512-RGQlVUegBRxAUF9c1ss1ssaHZh6CO+7awgtI9sDeU0PzDZY/40ImoPD5m0o0SI6nXoVzbPtcMGzU+VO590pRfA==} + engines: {node: '>=18'} + dev: false - '@react-native/dev-middleware@0.73.7(encoding@0.1.13)': + /@react-native/dev-middleware@0.74.83: + resolution: {integrity: sha512-UH8iriqnf7N4Hpi20D7M2FdvSANwTVStwFCSD7VMU9agJX88Yk0D1T6Meh2RMhUu4kY2bv8sTkNRm7LmxvZqgA==} + engines: {node: '>=18'} dependencies: '@isaacs/ttlcache': 1.4.1 - '@react-native/debugger-frontend': 0.73.3 + '@react-native/debugger-frontend': 0.74.83 + '@rnx-kit/chromium-edge-launcher': 1.0.0 chrome-launcher: 0.15.2 - chromium-edge-launcher: 1.0.0 connect: 3.7.0 debug: 2.6.9 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 + nullthrows: 1.1.1 open: 7.4.2 - serve-static: 1.16.2 + selfsigned: 2.4.1 + serve-static: 1.15.0 temp-dir: 2.0.0 + ws: 6.2.2 transitivePeerDependencies: + - bufferutil - encoding - supports-color + - utf-8-validate + dev: false - '@react-native/gradle-plugin@0.73.4': {} + /@react-native/gradle-plugin@0.74.83: + resolution: {integrity: sha512-Pw2BWVyOHoBuJVKxGVYF6/GSZRf6+v1Ygc+ULGz5t20N8qzRWPa2fRZWqoxsN7TkNLPsECYY8gooOl7okOcPAQ==} + engines: {node: '>=18'} + dev: false - '@react-native/js-polyfills@0.73.1': {} + /@react-native/js-polyfills@0.74.83: + resolution: {integrity: sha512-/t74n8r6wFhw4JEoOj3bN71N1NDLqaawB75uKAsSjeCwIR9AfCxlzZG0etsXtOexkY9KMeZIQ7YwRPqUdNXuqw==} + engines: {node: '>=18'} + dev: false - '@react-native/metro-babel-transformer@0.73.15(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))': + /@react-native/metro-babel-transformer@0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.24.5): + resolution: {integrity: sha512-hGdx5N8diu8y+GW/ED39vTZa9Jx1di2ZZ0aapbhH4egN1agIAusj5jXTccfNBwwWF93aJ5oVbRzfteZgjbutKg==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' dependencies: '@babel/core': 7.25.2 - '@react-native/babel-preset': 0.73.21(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2)) - hermes-parser: 0.15.0 + '@react-native/babel-preset': 0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.24.5) + hermes-parser: 0.19.1 nullthrows: 1.1.1 transitivePeerDependencies: - '@babel/preset-env' - supports-color + dev: false - '@react-native/normalize-colors@0.73.2': {} + /@react-native/normalize-colors@0.74.83: + resolution: {integrity: sha512-jhCY95gRDE44qYawWVvhTjTplW1g+JtKTKM3f8xYT1dJtJ8QWv+gqEtKcfmOHfDkSDaMKG0AGBaDTSK8GXLH8Q==} + dev: false - '@react-native/virtualized-lists@0.73.4(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))': + /@react-native/virtualized-lists@0.74.83(react-native@0.74.1)(react@18.3.1): + resolution: {integrity: sha512-rmaLeE34rj7py4FxTod7iMTC7BAsm+HrGA8WxYmEJeyTV7WSaxAkosKoYBz8038mOiwnG9VwA/7FrB6bEQvn1A==} + engines: {node: '>=18'} + peerDependencies: + '@types/react': ^18.2.6 + react: '*' + react-native: '*' + peerDependenciesMeta: + '@types/react': + optional: true dependencies: invariant: 2.2.4 nullthrows: 1.1.1 - react-native: 0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) + react: 18.3.1 + react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.24.5)(react@18.3.1) + dev: false - '@readme/better-ajv-errors@1.6.0(ajv@8.12.0)': + /@readme/better-ajv-errors@1.6.0(ajv@8.13.0): + resolution: {integrity: sha512-9gO9rld84Jgu13kcbKRU+WHseNhaVt76wYMeRDGsUGYxwJtI3RmEJ9LY9dZCYQGI8eUZLuxb5qDja0nqklpFjQ==} + engines: {node: '>=14'} + peerDependencies: + ajv: 4.11.8 - 8 dependencies: - '@babel/code-frame': 7.23.5 - '@babel/runtime': 7.23.9 + '@babel/code-frame': 7.24.2 + '@babel/runtime': 7.24.5 '@humanwhocodes/momoa': 2.0.4 - ajv: 8.12.0 + ajv: 8.13.0 chalk: 4.1.2 json-to-ast: 2.1.0 jsonpointer: 5.0.1 leven: 3.1.0 + dev: false - '@readme/json-schema-ref-parser@1.2.0': + /@readme/json-schema-ref-parser@1.2.0: + resolution: {integrity: sha512-Bt3QVovFSua4QmHa65EHUmh2xS0XJ3rgTEUPH998f4OW4VVJke3BuS16f+kM0ZLOGdvIrzrPRqwihuv5BAjtrA==} dependencies: '@jsdevtools/ono': 7.1.3 '@types/json-schema': 7.0.15 call-me-maybe: 1.0.2 js-yaml: 4.1.0 + dev: false - '@readme/openapi-parser@2.5.0(openapi-types@12.1.3)': + /@readme/openapi-parser@2.5.0(openapi-types@12.1.3): + resolution: {integrity: sha512-IbymbOqRuUzoIgxfAAR7XJt2FWl6n2yqN09fF5adacGm7W03siA3bj1Emql0X9D2T+RpBYz3x9zDsMhuoMP62A==} + engines: {node: '>=14'} + peerDependencies: + openapi-types: '>=7' dependencies: '@apidevtools/openapi-schemas': 2.1.0 '@apidevtools/swagger-methods': 3.0.2 '@jsdevtools/ono': 7.1.3 - '@readme/better-ajv-errors': 1.6.0(ajv@8.12.0) + '@readme/better-ajv-errors': 1.6.0(ajv@8.13.0) '@readme/json-schema-ref-parser': 1.2.0 - ajv: 8.12.0 - ajv-draft-04: 1.0.0(ajv@8.12.0) + ajv: 8.13.0 + ajv-draft-04: 1.0.0(ajv@8.13.0) call-me-maybe: 1.0.2 openapi-types: 12.1.3 + dev: false - '@rollup/pluginutils@5.1.0(rollup@4.21.3)': + /@rnx-kit/chromium-edge-launcher@1.0.0: + resolution: {integrity: sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==} + engines: {node: '>=14.15'} dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 4.21.3 - - '@rollup/rollup-android-arm-eabi@4.12.0': - optional: true - - '@rollup/rollup-android-arm-eabi@4.17.2': - optional: true - - '@rollup/rollup-android-arm-eabi@4.21.3': - optional: true - - '@rollup/rollup-android-arm64@4.12.0': - optional: true - - '@rollup/rollup-android-arm64@4.17.2': - optional: true - - '@rollup/rollup-android-arm64@4.21.3': - optional: true - - '@rollup/rollup-darwin-arm64@4.12.0': - optional: true - - '@rollup/rollup-darwin-arm64@4.17.2': - optional: true - - '@rollup/rollup-darwin-arm64@4.21.3': - optional: true - - '@rollup/rollup-darwin-x64@4.12.0': - optional: true - - '@rollup/rollup-darwin-x64@4.17.2': - optional: true - - '@rollup/rollup-darwin-x64@4.21.3': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.12.0': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.17.2': - optional: true - - '@rollup/rollup-linux-arm-gnueabihf@4.21.3': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.17.2': - optional: true - - '@rollup/rollup-linux-arm-musleabihf@4.21.3': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.12.0': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.17.2': - optional: true - - '@rollup/rollup-linux-arm64-gnu@4.21.3': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.12.0': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.17.2': - optional: true - - '@rollup/rollup-linux-arm64-musl@4.21.3': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.17.2': - optional: true - - '@rollup/rollup-linux-powerpc64le-gnu@4.21.3': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.12.0': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.17.2': - optional: true - - '@rollup/rollup-linux-riscv64-gnu@4.21.3': - optional: true - - '@rollup/rollup-linux-s390x-gnu@4.17.2': - optional: true + '@types/node': 18.19.31 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 1.4.2 + mkdirp: 1.0.4 + rimraf: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: false - '@rollup/rollup-linux-s390x-gnu@4.21.3': + /@rollup/rollup-android-arm-eabi@4.17.2: + resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} + cpu: [arm] + os: [android] + requiresBuild: true optional: true - '@rollup/rollup-linux-x64-gnu@4.12.0': + /@rollup/rollup-android-arm64@4.17.2: + resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} + cpu: [arm64] + os: [android] + requiresBuild: true optional: true - '@rollup/rollup-linux-x64-gnu@4.17.2': + /@rollup/rollup-darwin-arm64@4.17.2: + resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} + cpu: [arm64] + os: [darwin] + requiresBuild: true optional: true - '@rollup/rollup-linux-x64-gnu@4.21.3': + /@rollup/rollup-darwin-x64@4.17.2: + resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true optional: true - '@rollup/rollup-linux-x64-musl@4.12.0': + /@rollup/rollup-linux-arm-gnueabihf@4.17.2: + resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} + cpu: [arm] + os: [linux] + requiresBuild: true optional: true - '@rollup/rollup-linux-x64-musl@4.17.2': + /@rollup/rollup-linux-arm-musleabihf@4.17.2: + resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} + cpu: [arm] + os: [linux] + requiresBuild: true optional: true - '@rollup/rollup-linux-x64-musl@4.21.3': + /@rollup/rollup-linux-arm64-gnu@4.17.2: + resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} + cpu: [arm64] + os: [linux] + requiresBuild: true optional: true - '@rollup/rollup-win32-arm64-msvc@4.12.0': + /@rollup/rollup-linux-arm64-musl@4.17.2: + resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} + cpu: [arm64] + os: [linux] + requiresBuild: true optional: true - '@rollup/rollup-win32-arm64-msvc@4.17.2': + /@rollup/rollup-linux-powerpc64le-gnu@4.17.2: + resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} + cpu: [ppc64] + os: [linux] + requiresBuild: true optional: true - '@rollup/rollup-win32-arm64-msvc@4.21.3': + /@rollup/rollup-linux-riscv64-gnu@4.17.2: + resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} + cpu: [riscv64] + os: [linux] + requiresBuild: true optional: true - '@rollup/rollup-win32-ia32-msvc@4.12.0': + /@rollup/rollup-linux-s390x-gnu@4.17.2: + resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} + cpu: [s390x] + os: [linux] + requiresBuild: true optional: true - '@rollup/rollup-win32-ia32-msvc@4.17.2': + /@rollup/rollup-linux-x64-gnu@4.17.2: + resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} + cpu: [x64] + os: [linux] + requiresBuild: true optional: true - '@rollup/rollup-win32-ia32-msvc@4.21.3': + /@rollup/rollup-linux-x64-musl@4.17.2: + resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} + cpu: [x64] + os: [linux] + requiresBuild: true optional: true - '@rollup/rollup-win32-x64-msvc@4.12.0': + /@rollup/rollup-win32-arm64-msvc@4.17.2: + resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} + cpu: [arm64] + os: [win32] + requiresBuild: true optional: true - '@rollup/rollup-win32-x64-msvc@4.17.2': + /@rollup/rollup-win32-ia32-msvc@4.17.2: + resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} + cpu: [ia32] + os: [win32] + requiresBuild: true optional: true - '@rollup/rollup-win32-x64-msvc@4.21.3': + /@rollup/rollup-win32-x64-msvc@4.17.2: + resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} + cpu: [x64] + os: [win32] + requiresBuild: true optional: true - '@safe-global/safe-apps-provider@0.18.1(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4)': - dependencies: - '@safe-global/safe-apps-sdk': 8.1.0(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) - events: 3.3.0 - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@safe-global/safe-apps-provider@0.18.1(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8)': - dependencies: - '@safe-global/safe-apps-sdk': 8.1.0(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8) - events: 3.3.0 - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - zod - - '@safe-global/safe-apps-provider@0.18.3(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)': + /@safe-global/safe-apps-provider@0.18.1(typescript@5.4.5): + resolution: {integrity: sha512-V4a05A3EgJcriqtDoJklDz1BOinWhC6P0hjUSxshA4KOZM7rGPCTto/usXs09zr1vvL28evl/NldSTv97j2bmg==} dependencies: - '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) + '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.4.5) events: 3.3.0 transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - zod + dev: false - '@safe-global/safe-apps-sdk@8.1.0(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4)': + /@safe-global/safe-apps-provider@0.18.3(typescript@5.4.5): + resolution: {integrity: sha512-f/0cNv3S4v7p8rowAjj0hDCg8Q8P/wBjp5twkNWeBdvd0RDr7BuRBPPk74LCqmjQ82P+1ltLlkmVFSmxTIT7XQ==} dependencies: - '@safe-global/safe-gateway-typescript-sdk': 3.15.0 - viem: 1.21.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) + '@safe-global/safe-apps-sdk': 9.1.0(typescript@5.4.5) + events: 3.3.0 transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - zod + dev: false - '@safe-global/safe-apps-sdk@8.1.0(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8)': + /@safe-global/safe-apps-sdk@8.1.0(typescript@5.4.5): + resolution: {integrity: sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==} dependencies: - '@safe-global/safe-gateway-typescript-sdk': 3.15.0 - viem: 1.21.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8) + '@safe-global/safe-gateway-typescript-sdk': 3.21.1 + viem: 1.21.4(typescript@5.4.5) transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - zod + dev: false - '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)': + /@safe-global/safe-apps-sdk@9.1.0(typescript@5.4.5): + resolution: {integrity: sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==} dependencies: - '@safe-global/safe-gateway-typescript-sdk': 3.15.0 - viem: 2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) + '@safe-global/safe-gateway-typescript-sdk': 3.21.1 + viem: 2.18.8(typescript@5.4.5)(zod@3.23.6) transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - zod + dev: false - '@safe-global/safe-gateway-typescript-sdk@3.15.0': {} - - '@scure/base@1.1.5': {} + /@safe-global/safe-gateway-typescript-sdk@3.21.1: + resolution: {integrity: sha512-7nakIjcRSs6781LkizYpIfXh1DYlkUDqyALciqz/BjFU/S97sVjZdL4cuKsG9NEarytE+f6p0Qbq2Bo1aocVUA==} + engines: {node: '>=16'} + dev: false - '@scure/base@1.1.8': {} + /@scure/base@1.1.6: + resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} - '@scure/bip32@1.1.5': + /@scure/bip32@1.1.5: + resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==} dependencies: '@noble/hashes': 1.2.0 '@noble/secp256k1': 1.7.1 - '@scure/base': 1.1.5 + '@scure/base': 1.1.6 + dev: false - '@scure/bip32@1.3.2': + /@scure/bip32@1.3.2: + resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==} dependencies: '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.5 + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.6 + dev: false - '@scure/bip32@1.3.3': + /@scure/bip32@1.3.3: + resolution: {integrity: sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==} dependencies: '@noble/curves': 1.3.0 '@noble/hashes': 1.3.3 - '@scure/base': 1.1.8 + '@scure/base': 1.1.6 - '@scure/bip32@1.4.0': + /@scure/bip32@1.4.0: + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} dependencies: '@noble/curves': 1.4.0 '@noble/hashes': 1.4.0 - '@scure/base': 1.1.8 + '@scure/base': 1.1.6 - '@scure/bip39@1.1.1': + /@scure/bip39@1.1.1: + resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==} dependencies: '@noble/hashes': 1.2.0 - '@scure/base': 1.1.5 + '@scure/base': 1.1.6 + dev: false - '@scure/bip39@1.2.1': + /@scure/bip39@1.2.1: + resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} dependencies: - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.5 + '@noble/hashes': 1.3.2 + '@scure/base': 1.1.6 + dev: false - '@scure/bip39@1.2.2': + /@scure/bip39@1.2.2: + resolution: {integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==} dependencies: '@noble/hashes': 1.3.3 - '@scure/base': 1.1.8 + '@scure/base': 1.1.6 - '@scure/bip39@1.4.0': + /@scure/bip39@1.3.0: + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} dependencies: - '@noble/hashes': 1.5.0 - '@scure/base': 1.1.8 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.6 - '@sentry/core@5.30.0': + /@sentry/core@5.30.0: + resolution: {integrity: sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==} + engines: {node: '>=6'} dependencies: '@sentry/hub': 5.30.0 '@sentry/minimal': 5.30.0 '@sentry/types': 5.30.0 '@sentry/utils': 5.30.0 tslib: 1.14.1 + dev: false - '@sentry/hub@5.30.0': + /@sentry/hub@5.30.0: + resolution: {integrity: sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==} + engines: {node: '>=6'} dependencies: '@sentry/types': 5.30.0 '@sentry/utils': 5.30.0 tslib: 1.14.1 + dev: false - '@sentry/minimal@5.30.0': + /@sentry/minimal@5.30.0: + resolution: {integrity: sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==} + engines: {node: '>=6'} dependencies: '@sentry/hub': 5.30.0 '@sentry/types': 5.30.0 tslib: 1.14.1 + dev: false - '@sentry/node@5.30.0': + /@sentry/node@5.30.0: + resolution: {integrity: sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==} + engines: {node: '>=6'} dependencies: '@sentry/core': 5.30.0 '@sentry/hub': 5.30.0 @@ -17760,95 +8864,121 @@ snapshots: tslib: 1.14.1 transitivePeerDependencies: - supports-color + dev: false - '@sentry/tracing@5.30.0': + /@sentry/tracing@5.30.0: + resolution: {integrity: sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==} + engines: {node: '>=6'} dependencies: '@sentry/hub': 5.30.0 '@sentry/minimal': 5.30.0 '@sentry/types': 5.30.0 '@sentry/utils': 5.30.0 tslib: 1.14.1 + dev: false - '@sentry/types@5.30.0': {} + /@sentry/types@5.30.0: + resolution: {integrity: sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==} + engines: {node: '>=6'} + dev: false - '@sentry/utils@5.30.0': + /@sentry/utils@5.30.0: + resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} + engines: {node: '>=6'} dependencies: '@sentry/types': 5.30.0 tslib: 1.14.1 + dev: false - '@shikijs/core@1.17.6': + /@shikijs/core@1.12.1: + resolution: {integrity: sha512-biCz/mnkMktImI6hMfMX3H9kOeqsInxWEyCHbSlL8C/2TR1FqfmGxTLRNwYCKsyCyxWLbB8rEqXRVZuyxuLFmA==} dependencies: - '@shikijs/engine-javascript': 1.17.6 - '@shikijs/engine-oniguruma': 1.17.6 - '@shikijs/types': 1.17.6 - '@shikijs/vscode-textmate': 9.2.2 '@types/hast': 3.0.4 - hast-util-to-html: 9.0.2 + dev: false - '@shikijs/core@1.5.2': {} - - '@shikijs/engine-javascript@1.17.6': - dependencies: - '@shikijs/types': 1.17.6 - oniguruma-to-js: 0.4.3 - - '@shikijs/engine-oniguruma@1.17.6': - dependencies: - '@shikijs/types': 1.17.6 - '@shikijs/vscode-textmate': 9.2.2 - - '@shikijs/types@1.17.6': - dependencies: - '@shikijs/vscode-textmate': 9.2.2 - '@types/hast': 3.0.4 - - '@shikijs/vscode-textmate@9.2.2': {} + /@shikijs/core@1.5.2: + resolution: {integrity: sha512-wSAOgaz48GmhILFElMCeQypSZmj6Ru6DttOOtl3KNkdJ17ApQuGNCfzpk4cClasVrnIu45++2DBwG4LNMQAfaA==} + dev: false - '@sideway/address@4.1.5': + /@sideway/address@4.1.5: + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} dependencies: '@hapi/hoek': 9.3.0 + dev: false + + /@sideway/formula@3.0.1: + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + dev: false - '@sideway/formula@3.0.1': {} + /@sideway/pinpoint@2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + dev: false - '@sideway/pinpoint@2.0.0': {} + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - '@sinclair/typebox@0.27.8': {} + /@sindresorhus/is@4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + dev: true - '@sindresorhus/is@4.6.0': {} + /@sindresorhus/is@5.6.0: + resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} + engines: {node: '>=14.16'} + dev: true - '@sindresorhus/is@5.6.0': {} + /@sindresorhus/merge-streams@2.3.0: + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + dev: true - '@sinonjs/commons@3.0.1': + /@sinonjs/commons@3.0.1: + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} dependencies: type-detect: 4.0.8 + dev: false - '@sinonjs/fake-timers@10.3.0': + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} dependencies: '@sinonjs/commons': 3.0.1 + dev: false - '@smithy/abort-controller@3.0.0': + /@smithy/abort-controller@3.0.0: + resolution: {integrity: sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/chunked-blob-reader-native@3.0.0': + /@smithy/chunked-blob-reader-native@3.0.0: + resolution: {integrity: sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==} dependencies: '@smithy/util-base64': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/chunked-blob-reader@3.0.0': + /@smithy/chunked-blob-reader@3.0.0: + resolution: {integrity: sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==} dependencies: tslib: 2.6.2 + dev: false - '@smithy/config-resolver@3.0.0': + /@smithy/config-resolver@3.0.0: + resolution: {integrity: sha512-2GzOfADwYLQugYkKQhIyZyQlM05K+tMKvRnc6eFfZcpJGRfKoMUMYdPlBKmqHwQFXQKBrGV6cxL9oymWgDzvFw==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/node-config-provider': 3.0.0 '@smithy/types': 3.0.0 '@smithy/util-config-provider': 3.0.0 '@smithy/util-middleware': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/core@2.0.1': + /@smithy/core@2.0.1: + resolution: {integrity: sha512-rcMkjvwxH/bER+oZUPR0yTA0ELD6m3A+d92+CFkdF6HJFCBB1bXo7P5pm21L66XwTN01B6bUhSCQ7cymWRD8zg==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/middleware-endpoint': 3.0.0 '@smithy/middleware-retry': 3.0.1 @@ -17858,95 +8988,135 @@ snapshots: '@smithy/types': 3.0.0 '@smithy/util-middleware': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/credential-provider-imds@3.0.0': + /@smithy/credential-provider-imds@3.0.0: + resolution: {integrity: sha512-lfmBiFQcA3FsDAPxNfY0L7CawcWtbyWsBOHo34nF095728JLkBX4Y9q/VPPE2r7fqMVK+drmDigqE2/SSQeVRA==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/node-config-provider': 3.0.0 '@smithy/property-provider': 3.0.0 '@smithy/types': 3.0.0 '@smithy/url-parser': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/eventstream-codec@3.0.0': + /@smithy/eventstream-codec@3.0.0: + resolution: {integrity: sha512-PUtyEA0Oik50SaEFCZ0WPVtF9tz/teze2fDptW6WRXl+RrEenH8UbEjudOz8iakiMl3lE3lCVqYf2Y+znL8QFQ==} dependencies: '@aws-crypto/crc32': 3.0.0 '@smithy/types': 3.0.0 '@smithy/util-hex-encoding': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/eventstream-serde-browser@3.0.0': + /@smithy/eventstream-serde-browser@3.0.0: + resolution: {integrity: sha512-NB7AFiPN4NxP/YCAnrvYR18z2/ZsiHiF7VtG30gshO9GbFrIb1rC8ep4NGpJSWrz6P64uhPXeo4M0UsCLnZKqw==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/eventstream-serde-universal': 3.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/eventstream-serde-config-resolver@3.0.0': + /@smithy/eventstream-serde-config-resolver@3.0.0: + resolution: {integrity: sha512-RUQG3vQ3LX7peqqHAbmayhgrF5aTilPnazinaSGF1P0+tgM3vvIRWPHmlLIz2qFqB9LqFIxditxc8O2Z6psrRw==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/eventstream-serde-node@3.0.0': + /@smithy/eventstream-serde-node@3.0.0: + resolution: {integrity: sha512-baRPdMBDMBExZXIUAoPGm/hntixjt/VFpU6+VmCyiYJYzRHRxoaI1MN+5XE+hIS8AJ2GCHLMFEIOLzq9xx1EgQ==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/eventstream-serde-universal': 3.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/eventstream-serde-universal@3.0.0': + /@smithy/eventstream-serde-universal@3.0.0: + resolution: {integrity: sha512-HNFfShmotWGeAoW4ujP8meV9BZavcpmerDbPIjkJbxKbN8RsUcpRQ/2OyIxWNxXNH2GWCAxuSB7ynmIGJlQ3Dw==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/eventstream-codec': 3.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/fetch-http-handler@3.0.1': + /@smithy/fetch-http-handler@3.0.1: + resolution: {integrity: sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==} dependencies: '@smithy/protocol-http': 4.0.0 '@smithy/querystring-builder': 3.0.0 '@smithy/types': 3.0.0 '@smithy/util-base64': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/hash-blob-browser@3.0.0': + /@smithy/hash-blob-browser@3.0.0: + resolution: {integrity: sha512-/Wbpdg+bwJvW7lxR/zpWAc1/x/YkcqguuF2bAzkJrvXriZu1vm8r+PUdE4syiVwQg7PPR2dXpi3CLBb9qRDaVQ==} dependencies: '@smithy/chunked-blob-reader': 3.0.0 '@smithy/chunked-blob-reader-native': 3.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/hash-node@3.0.0': + /@smithy/hash-node@3.0.0: + resolution: {integrity: sha512-84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 '@smithy/util-buffer-from': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/hash-stream-node@3.0.0': + /@smithy/hash-stream-node@3.0.0: + resolution: {integrity: sha512-J0i7de+EgXDEGITD4fxzmMX8CyCNETTIRXlxjMiNUvvu76Xn3GJ31wQR85ynlPk2wI1lqoknAFJaD1fiNDlbIA==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/invalid-dependency@3.0.0': + /@smithy/invalid-dependency@3.0.0: + resolution: {integrity: sha512-F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g==} dependencies: '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/is-array-buffer@3.0.0': + /@smithy/is-array-buffer@3.0.0: + resolution: {integrity: sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==} + engines: {node: '>=16.0.0'} dependencies: tslib: 2.6.2 + dev: false - '@smithy/md5-js@3.0.0': + /@smithy/md5-js@3.0.0: + resolution: {integrity: sha512-Tm0vrrVzjlD+6RCQTx7D3Ls58S3FUH1ZCtU1MIh/qQmaOo1H9lMN2as6CikcEwgattnA9SURSdoJJ27xMcEfMA==} dependencies: '@smithy/types': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/middleware-content-length@3.0.0': + /@smithy/middleware-content-length@3.0.0: + resolution: {integrity: sha512-3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/protocol-http': 4.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/middleware-endpoint@3.0.0': + /@smithy/middleware-endpoint@3.0.0: + resolution: {integrity: sha512-aXOAWztw/5qAfp0NcA2OWpv6ZI/E+Dh9mByif7i91D/0iyYNUcKvskmXiowKESFkuZ7PIMd3VOR4fTibZDs2OQ==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/middleware-serde': 3.0.0 '@smithy/node-config-provider': 3.0.0 @@ -17955,8 +9125,11 @@ snapshots: '@smithy/url-parser': 3.0.0 '@smithy/util-middleware': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/middleware-retry@3.0.1': + /@smithy/middleware-retry@3.0.1: + resolution: {integrity: sha512-hBhSEuL841FhJBK/19WpaGk5YWSzFk/P2UaVjANGKRv3eYNO8Y1lANWgqnuPWjOyCEWMPr58vELFDWpxvRKANw==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/node-config-provider': 3.0.0 '@smithy/protocol-http': 4.0.0 @@ -17967,63 +9140,96 @@ snapshots: '@smithy/util-retry': 3.0.0 tslib: 2.6.2 uuid: 9.0.1 + dev: false - '@smithy/middleware-serde@3.0.0': + /@smithy/middleware-serde@3.0.0: + resolution: {integrity: sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/middleware-stack@3.0.0': + /@smithy/middleware-stack@3.0.0: + resolution: {integrity: sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/node-config-provider@3.0.0': + /@smithy/node-config-provider@3.0.0: + resolution: {integrity: sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/property-provider': 3.0.0 '@smithy/shared-ini-file-loader': 3.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/node-http-handler@3.0.0': + /@smithy/node-http-handler@3.0.0: + resolution: {integrity: sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/abort-controller': 3.0.0 '@smithy/protocol-http': 4.0.0 '@smithy/querystring-builder': 3.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/property-provider@3.0.0': + /@smithy/property-provider@3.0.0: + resolution: {integrity: sha512-LmbPgHBswdXCrkWWuUwBm9w72S2iLWyC/5jet9/Y9cGHtzqxi+GVjfCfahkvNV4KXEwgnH8EMpcrD9RUYe0eLQ==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/protocol-http@4.0.0': + /@smithy/protocol-http@4.0.0: + resolution: {integrity: sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/querystring-builder@3.0.0': + /@smithy/querystring-builder@3.0.0: + resolution: {integrity: sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 '@smithy/util-uri-escape': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/querystring-parser@3.0.0': + /@smithy/querystring-parser@3.0.0: + resolution: {integrity: sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/service-error-classification@3.0.0': + /@smithy/service-error-classification@3.0.0: + resolution: {integrity: sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 + dev: false - '@smithy/shared-ini-file-loader@3.0.0': + /@smithy/shared-ini-file-loader@3.0.0: + resolution: {integrity: sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/signature-v4@3.0.0': + /@smithy/signature-v4@3.0.0: + resolution: {integrity: sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/is-array-buffer': 3.0.0 '@smithy/types': 3.0.0 @@ -18032,8 +9238,11 @@ snapshots: '@smithy/util-uri-escape': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/smithy-client@3.0.1': + /@smithy/smithy-client@3.0.1: + resolution: {integrity: sha512-KAiFY4Y4jdHxR+4zerH/VBhaFKM8pbaVmJZ/CWJRwtM/CmwzTfXfvYwf6GoUwiHepdv+lwiOXCuOl6UBDUEINw==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/middleware-endpoint': 3.0.0 '@smithy/middleware-stack': 3.0.0 @@ -18041,49 +9250,73 @@ snapshots: '@smithy/types': 3.0.0 '@smithy/util-stream': 3.0.1 tslib: 2.6.2 + dev: false - '@smithy/types@3.0.0': + /@smithy/types@3.0.0: + resolution: {integrity: sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw==} + engines: {node: '>=16.0.0'} dependencies: tslib: 2.6.2 - '@smithy/url-parser@3.0.0': + /@smithy/url-parser@3.0.0: + resolution: {integrity: sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw==} dependencies: '@smithy/querystring-parser': 3.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/util-base64@3.0.0': + /@smithy/util-base64@3.0.0: + resolution: {integrity: sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/util-buffer-from': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/util-body-length-browser@3.0.0': + /@smithy/util-body-length-browser@3.0.0: + resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==} dependencies: tslib: 2.6.2 + dev: false - '@smithy/util-body-length-node@3.0.0': + /@smithy/util-body-length-node@3.0.0: + resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==} + engines: {node: '>=16.0.0'} dependencies: tslib: 2.6.2 + dev: false - '@smithy/util-buffer-from@3.0.0': + /@smithy/util-buffer-from@3.0.0: + resolution: {integrity: sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/is-array-buffer': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/util-config-provider@3.0.0': + /@smithy/util-config-provider@3.0.0: + resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} + engines: {node: '>=16.0.0'} dependencies: tslib: 2.6.2 + dev: false - '@smithy/util-defaults-mode-browser@3.0.1': + /@smithy/util-defaults-mode-browser@3.0.1: + resolution: {integrity: sha512-nW5kEzdJn1Bn5TF+gOPHh2rcPli8JU9vSSXLbfg7uPnfR1TMRQqs9zlYRhIb87NeSxIbpdXOI94tvXSy+fvDYg==} + engines: {node: '>= 10.0.0'} dependencies: '@smithy/property-provider': 3.0.0 '@smithy/smithy-client': 3.0.1 '@smithy/types': 3.0.0 bowser: 2.11.0 tslib: 2.6.2 + dev: false - '@smithy/util-defaults-mode-node@3.0.1': + /@smithy/util-defaults-mode-node@3.0.1: + resolution: {integrity: sha512-TFk+Qb+elLc/MOhtSp+50fstyfZ6avQbgH2d96xUBpeScu+Al9elxv+UFAjaTHe0HQe5n+wem8ZLpXvU8lwV6Q==} + engines: {node: '>= 10.0.0'} dependencies: '@smithy/config-resolver': 3.0.0 '@smithy/credential-provider-imds': 3.0.0 @@ -18092,29 +9325,44 @@ snapshots: '@smithy/smithy-client': 3.0.1 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/util-endpoints@2.0.0': + /@smithy/util-endpoints@2.0.0: + resolution: {integrity: sha512-+exaXzEY3DNt2qtA2OtRNSDlVrE4p32j1JSsQkzA5AdP0YtJNjkYbYhJxkFmPYcjI1abuwopOZCwUmv682QkiQ==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/node-config-provider': 3.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/util-hex-encoding@3.0.0': + /@smithy/util-hex-encoding@3.0.0: + resolution: {integrity: sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==} + engines: {node: '>=16.0.0'} dependencies: tslib: 2.6.2 + dev: false - '@smithy/util-middleware@3.0.0': + /@smithy/util-middleware@3.0.0: + resolution: {integrity: sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/util-retry@3.0.0': + /@smithy/util-retry@3.0.0: + resolution: {integrity: sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/service-error-classification': 3.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/util-stream@3.0.1': + /@smithy/util-stream@3.0.1: + resolution: {integrity: sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/fetch-http-handler': 3.0.1 '@smithy/node-http-handler': 3.0.0 @@ -18124,35 +9372,56 @@ snapshots: '@smithy/util-hex-encoding': 3.0.0 '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/util-uri-escape@3.0.0': + /@smithy/util-uri-escape@3.0.0: + resolution: {integrity: sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==} + engines: {node: '>=16.0.0'} dependencies: tslib: 2.6.2 + dev: false - '@smithy/util-utf8@3.0.0': + /@smithy/util-utf8@3.0.0: + resolution: {integrity: sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/util-buffer-from': 3.0.0 tslib: 2.6.2 + dev: false - '@smithy/util-waiter@3.0.0': + /@smithy/util-waiter@3.0.0: + resolution: {integrity: sha512-+fEXJxGDLCoqRKVSmo0auGxaqbiCo+8oph+4auefYjaNxjOLKSY2MxVQfRzo65PaZv4fr+5lWg+au7vSuJJ/zw==} + engines: {node: '>=16.0.0'} dependencies: '@smithy/abort-controller': 3.0.0 '@smithy/types': 3.0.0 tslib: 2.6.2 + dev: false - '@socket.io/component-emitter@3.1.0': {} + /@socket.io/component-emitter@3.1.2: + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + dev: false - '@solidity-parser/parser@0.18.0': {} + /@solidity-parser/parser@0.18.0: + resolution: {integrity: sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==} + dev: true - '@stablelib/aead@1.0.1': {} + /@stablelib/aead@1.0.1: + resolution: {integrity: sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==} + dev: false - '@stablelib/binary@1.0.1': + /@stablelib/binary@1.0.1: + resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==} dependencies: '@stablelib/int': 1.0.1 + dev: false - '@stablelib/bytes@1.0.1': {} + /@stablelib/bytes@1.0.1: + resolution: {integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==} + dev: false - '@stablelib/chacha20poly1305@1.0.1': + /@stablelib/chacha20poly1305@1.0.1: + resolution: {integrity: sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==} dependencies: '@stablelib/aead': 1.0.1 '@stablelib/binary': 1.0.1 @@ -18160,294 +9429,474 @@ snapshots: '@stablelib/constant-time': 1.0.1 '@stablelib/poly1305': 1.0.1 '@stablelib/wipe': 1.0.1 + dev: false - '@stablelib/chacha@1.0.1': + /@stablelib/chacha@1.0.1: + resolution: {integrity: sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==} dependencies: '@stablelib/binary': 1.0.1 '@stablelib/wipe': 1.0.1 + dev: false - '@stablelib/constant-time@1.0.1': {} + /@stablelib/constant-time@1.0.1: + resolution: {integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==} + dev: false - '@stablelib/ed25519@1.0.3': + /@stablelib/ed25519@1.0.3: + resolution: {integrity: sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==} dependencies: '@stablelib/random': 1.0.2 '@stablelib/sha512': 1.0.1 '@stablelib/wipe': 1.0.1 + dev: false - '@stablelib/hash@1.0.1': {} + /@stablelib/hash@1.0.1: + resolution: {integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==} + dev: false - '@stablelib/hkdf@1.0.1': + /@stablelib/hkdf@1.0.1: + resolution: {integrity: sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==} dependencies: '@stablelib/hash': 1.0.1 '@stablelib/hmac': 1.0.1 '@stablelib/wipe': 1.0.1 + dev: false - '@stablelib/hmac@1.0.1': + /@stablelib/hmac@1.0.1: + resolution: {integrity: sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==} dependencies: '@stablelib/constant-time': 1.0.1 '@stablelib/hash': 1.0.1 '@stablelib/wipe': 1.0.1 + dev: false - '@stablelib/int@1.0.1': {} + /@stablelib/int@1.0.1: + resolution: {integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==} + dev: false - '@stablelib/keyagreement@1.0.1': + /@stablelib/keyagreement@1.0.1: + resolution: {integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==} dependencies: '@stablelib/bytes': 1.0.1 + dev: false - '@stablelib/poly1305@1.0.1': + /@stablelib/poly1305@1.0.1: + resolution: {integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==} dependencies: '@stablelib/constant-time': 1.0.1 '@stablelib/wipe': 1.0.1 + dev: false - '@stablelib/random@1.0.2': + /@stablelib/random@1.0.2: + resolution: {integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==} dependencies: '@stablelib/binary': 1.0.1 '@stablelib/wipe': 1.0.1 + dev: false - '@stablelib/sha256@1.0.1': + /@stablelib/sha256@1.0.1: + resolution: {integrity: sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==} dependencies: '@stablelib/binary': 1.0.1 '@stablelib/hash': 1.0.1 '@stablelib/wipe': 1.0.1 + dev: false - '@stablelib/sha512@1.0.1': + /@stablelib/sha512@1.0.1: + resolution: {integrity: sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==} dependencies: '@stablelib/binary': 1.0.1 '@stablelib/hash': 1.0.1 '@stablelib/wipe': 1.0.1 + dev: false - '@stablelib/wipe@1.0.1': {} + /@stablelib/wipe@1.0.1: + resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} + dev: false - '@stablelib/x25519@1.0.3': + /@stablelib/x25519@1.0.3: + resolution: {integrity: sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==} dependencies: '@stablelib/keyagreement': 1.0.1 '@stablelib/random': 1.0.2 '@stablelib/wipe': 1.0.1 + dev: false - '@storybook/addon-actions@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-actions@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-wDnMGGmaogAForkNncfCx8BEDiwxeK8zC0lj8HkRPUuH6vTr81U5RIb12Wa2TnnNKLKMFAtyPSnofHf3OAfzZQ==} + peerDependencies: + storybook: ^8.2.7 dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 uuid: 9.0.1 + dev: true - '@storybook/addon-backgrounds@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-backgrounds@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-kEL3kzYB0qNfpznchlGBnQm4iydyzdTYDPlCFsKUAxfUmJFnpz2H52Sl5lB+qJC/4OREp1Usltag7cUjeuyzMQ==} + peerDependencies: + storybook: ^8.2.7 dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 ts-dedent: 2.2.0 + dev: true - '@storybook/addon-controls@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-controls@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-u3MruX0Zh6l1iNkoJdXwx+zPVqpDKypVrC0YdN3qQ3+mtTwqt35rgetYqtOkDnJ8mXKxo8A5giERKPIyzH9iBA==} + peerDependencies: + storybook: ^8.2.7 dependencies: - '@storybook/global': 5.0.0 dequal: 2.0.3 lodash: 4.17.21 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 ts-dedent: 2.2.0 + dev: true - '@storybook/addon-docs@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-docs@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-icLbvUWp95WUxq2sY+0xgJ49MaQ2HqtWY9RUJUZswJ/ZPJTCCpIoa6HP/NOB9A90Oec9n8sW+1CdDL4CxfxfZg==} + peerDependencies: + storybook: ^8.2.7 dependencies: - '@mdx-js/react': 3.0.1(@types/react@18.3.5)(react@18.2.0) - '@storybook/blocks': 8.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/csf-plugin': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + '@babel/core': 7.24.5 + '@mdx-js/react': 3.0.1(@types/react@18.3.3)(react@18.3.1) + '@storybook/blocks': 8.2.7(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.7) + '@storybook/csf-plugin': 8.2.7(storybook@8.2.7) '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 8.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@types/react': 18.3.5 + '@storybook/react-dom-shim': 8.2.7(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.7) + '@types/react': 18.3.3 fs-extra: 11.2.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) rehype-external-links: 3.0.0 rehype-slug: 6.0.0 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 ts-dedent: 2.2.0 transitivePeerDependencies: - - webpack-sources - - '@storybook/addon-essentials@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': - dependencies: - '@storybook/addon-actions': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/addon-backgrounds': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/addon-controls': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/addon-docs': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/addon-highlight': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/addon-measure': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/addon-outline': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/addon-toolbars': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/addon-viewport': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + - supports-color + dev: true + + /@storybook/addon-essentials@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-5qe7La9B2Z4Y9Fet3C35y8zOZwKgrqduNk8yAUmPRAOwopdo8SGKYpnFTnAtTfTCVk6Y+AZlRfQq0yLUk0Wl3g==} + peerDependencies: + storybook: ^8.2.7 + dependencies: + '@storybook/addon-actions': 8.2.7(storybook@8.2.7) + '@storybook/addon-backgrounds': 8.2.7(storybook@8.2.7) + '@storybook/addon-controls': 8.2.7(storybook@8.2.7) + '@storybook/addon-docs': 8.2.7(storybook@8.2.7) + '@storybook/addon-highlight': 8.2.7(storybook@8.2.7) + '@storybook/addon-measure': 8.2.7(storybook@8.2.7) + '@storybook/addon-outline': 8.2.7(storybook@8.2.7) + '@storybook/addon-toolbars': 8.2.7(storybook@8.2.7) + '@storybook/addon-viewport': 8.2.7(storybook@8.2.7) + storybook: 8.2.7 ts-dedent: 2.2.0 transitivePeerDependencies: - - webpack-sources + - supports-color + dev: true - '@storybook/addon-highlight@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-highlight@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-YhiLtyJ3NBNV3FQoQo8RFjj59QGSmmeSwRvCjoac6No2DY5vkMW5a8mW6ORr6QYd7ratRNtd3AsPqksZIehRwQ==} + peerDependencies: + storybook: ^8.2.7 dependencies: '@storybook/global': 5.0.0 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 + dev: true - '@storybook/addon-interactions@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-interactions@8.2.7(storybook@8.2.7)(vitest@1.6.0): + resolution: {integrity: sha512-WZXlwpBNLE483uKuR70A7nm+ZbcZNEmuVz/J1/u7dbi0BUWzmJUa9YIgVeQ/1KTwW8KTkxvB0TuUUH3aA4ZKlA==} + peerDependencies: + storybook: ^8.2.7 dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/test': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + '@storybook/instrumenter': 8.2.7(storybook@8.2.7) + '@storybook/test': 8.2.7(storybook@8.2.7)(vitest@1.6.0) polished: 4.3.1 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@jest/globals' + - '@types/bun' + - '@types/jest' + - jest + - vitest + dev: true - '@storybook/addon-links@8.3.0(react@18.2.0)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-links@8.2.7(react@18.3.1)(storybook@8.2.7): + resolution: {integrity: sha512-BJdR+vdj7S6Rtx8XqBNQzLsRGH/FYHJ6B6BPWGp0awVx0jNWJnxepINQov8i+GAddUVQGCNG+r4LI3QSD3tNAA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.2.7 + peerDependenciesMeta: + react: + optional: true dependencies: '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + react: 18.3.1 + storybook: 8.2.7 ts-dedent: 2.2.0 - optionalDependencies: - react: 18.2.0 + dev: true - '@storybook/addon-measure@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-measure@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-cS5njwlzrgrUjigUKjhbgJMT8bhPmVDK3FwrQqGhw6xYP4cd9/YBJ4RLNPWhOgGJ+EUTz7eFZ/Rkli5mNrhYcQ==} + peerDependencies: + storybook: ^8.2.7 dependencies: '@storybook/global': 5.0.0 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 tiny-invariant: 1.3.3 + dev: true - '@storybook/addon-outline@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-outline@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-oFSo3o5eEUSsdGUSPV22pGoJ5lL0PGcqjcee2hyl0Rc60ovsnB1BEGOoaGk7/bmkywMxRZm8D6j85V8HftA/kg==} + peerDependencies: + storybook: ^8.2.7 dependencies: '@storybook/global': 5.0.0 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 ts-dedent: 2.2.0 + dev: true - '@storybook/addon-themes@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-themes@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-LlQFHfC5CicQ7urPMOjhqGyKN8Tm+4mVw4mI7+FGnPkUUcBwxw85OcbtdXQgzfU4AlRauBkIz0CW/tbhSR8R/A==} + peerDependencies: + storybook: ^8.2.7 dependencies: - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 ts-dedent: 2.2.0 + dev: true - '@storybook/addon-toolbars@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-toolbars@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-lEq0/uiogQSxS8pM5AqIexPiG2mudHUxgBiVWSspbTQDUbGBUxB64VYeYERat50N/GyS2iCymlfSkC+OUXaYLQ==} + peerDependencies: + storybook: ^8.2.7 dependencies: - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 + dev: true - '@storybook/addon-viewport@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/addon-viewport@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-d4+klwM/duTukNED1WCeBgIMqL5Jvm/iUs2rUc5HI1FGMEDYnoLVR2ztjivQs+6f1cJWuGwWZD/toB5pKHuR/A==} + peerDependencies: + storybook: ^8.2.7 dependencies: memoizerific: 1.11.3 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 + dev: true - '@storybook/blocks@8.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/blocks@8.2.7(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.7): + resolution: {integrity: sha512-lZB4EzmY4ftgubkf7hmkALEhmfMhRkDRD5QjrgTZLRpdVXPzFUyljgLlTBhv34YTN+ZLYK618/4uSVJBpgoKeQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.2.7 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true dependencies: '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/icons': 1.2.10(react-dom@18.3.1)(react@18.3.1) '@types/lodash': 4.17.7 color-convert: 2.0.1 dequal: 2.0.3 lodash: 4.17.21 - markdown-to-jsx: 7.5.0(react@18.2.0) + markdown-to-jsx: 7.4.7(react@18.3.1) memoizerific: 1.11.3 polished: 4.3.1 - react-colorful: 5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + react: 18.3.1 + react-colorful: 5.6.1(react-dom@18.3.1)(react@18.3.1) + react-dom: 18.3.1(react@18.3.1) + storybook: 8.2.7 telejson: 7.2.0 ts-dedent: 2.2.0 util-deprecate: 1.0.2 - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + dev: true - '@storybook/builder-vite@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2))': + /@storybook/builder-vite@8.2.7(storybook@8.2.7)(typescript@5.4.5)(vite@5.2.11): + resolution: {integrity: sha512-CoEQjsfAQdZeAavfh1sBTMmC453kUFLKHr1zs6MZAlkejxky+U21t1Zb1qEU+IsEr/AlzvJr60pxUNL/dy6PVQ==} + peerDependencies: + '@preact/preset-vite': '*' + storybook: ^8.2.7 + typescript: '>= 4.3.x' + vite: ^4.0.0 || ^5.0.0 + vite-plugin-glimmerx: '*' + peerDependenciesMeta: + '@preact/preset-vite': + optional: true + typescript: + optional: true + vite-plugin-glimmerx: + optional: true dependencies: - '@storybook/csf-plugin': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + '@storybook/csf-plugin': 8.2.7(storybook@8.2.7) '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 - es-module-lexer: 1.5.3 - express: 4.21.0 + es-module-lexer: 1.5.2 + express: 4.19.2 find-cache-dir: 3.3.2 fs-extra: 11.2.0 magic-string: 0.30.10 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 ts-dedent: 2.2.0 - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) - optionalDependencies: typescript: 5.4.5 + vite: 5.2.11(@types/node@20.12.8) + transitivePeerDependencies: + - supports-color + dev: true + + /@storybook/codemod@8.2.7: + resolution: {integrity: sha512-D2sJcZMUO6Y7DNja4LvdT6uBee4bZbQKB904kEG9Kpr0XF20IHAP9BbkfG8HEFaS0GbJwvGvE03Sg+S1y+vO6Q==} + dependencies: + '@babel/core': 7.24.5 + '@babel/preset-env': 7.24.5(@babel/core@7.24.5) + '@babel/types': 7.24.5 + '@storybook/core': 8.2.7 + '@storybook/csf': 0.1.11 + '@types/cross-spawn': 6.0.6 + cross-spawn: 7.0.3 + globby: 14.0.2 + jscodeshift: 0.15.2(@babel/preset-env@7.24.5) + lodash: 4.17.21 + prettier: 3.2.5 + recast: 0.23.9 + tiny-invariant: 1.3.3 transitivePeerDependencies: + - bufferutil - supports-color - - webpack-sources + - utf-8-validate + dev: true - '@storybook/components@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/components@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-FXhnoHl9S+tKSFc62iUG3EWplQP9ojGQaSMhqP4QTus6xmo53oSsPzuTPQilKVHkGxFQW8eGgKKsfHw3G2NT2g==} + peerDependencies: + storybook: ^8.2.7 dependencies: - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 + dev: true - '@storybook/core@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)': + /@storybook/core@8.2.7: + resolution: {integrity: sha512-vgw5MYN9Bq2/ZsObCOEHbBHwi4RpbYCHPFtKkr4kTnWID++FCSiSVd7jY3xPvcNxWqCxOyH6dThpBi+SsB/ZAA==} dependencies: '@storybook/csf': 0.1.11 '@types/express': 4.17.21 + '@types/node': 18.19.31 browser-assert: 1.2.1 esbuild: 0.21.3 esbuild-register: 3.6.0(esbuild@0.21.3) - express: 4.21.0 + express: 4.19.2 process: 0.11.10 recast: 0.23.9 - semver: 7.6.2 util: 0.12.5 - ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + ws: 8.17.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: true - '@storybook/csf-plugin@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/csf-plugin@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-rBdplL6xcVJcuq+uM0eidomMQ5BtAlVAejYrOTNiqBk/zVh5JSvchYzYG9n6Fo2PdKLLKdlZ874zhsVuNriNBQ==} + peerDependencies: + storybook: ^8.2.7 dependencies: - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) - unplugin: 1.14.1 - transitivePeerDependencies: - - webpack-sources + storybook: 8.2.7 + unplugin: 1.12.0 + dev: true - '@storybook/csf@0.0.1': + /@storybook/csf@0.0.1: + resolution: {integrity: sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==} dependencies: lodash: 4.17.21 + dev: true - '@storybook/csf@0.1.11': + /@storybook/csf@0.1.11: + resolution: {integrity: sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==} dependencies: type-fest: 2.19.0 + dev: true - '@storybook/global@5.0.0': {} + /@storybook/global@5.0.0: + resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} + dev: true - '@storybook/icons@1.2.10(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + /@storybook/icons@1.2.10(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-310apKdDcjbbX2VSLWPwhEwAgjxTzVagrwucVZIdGPErwiAppX8KvBuWZgPo+rQLVrtH8S+pw1dbUwjcE6d7og==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true - '@storybook/instrumenter@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/instrumenter@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-Zm6Ty4uWFTNchKUviuJ9vfcMb7+qU8eyrFXVY80XRpr62JEWkYj4eCwx4OG8GzlQahTh9aSv9+hzV6p/5Ld4mw==} + peerDependencies: + storybook: ^8.2.7 dependencies: '@storybook/global': 5.0.0 - '@vitest/utils': 2.1.1 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + '@vitest/utils': 1.6.0 + storybook: 8.2.7 util: 0.12.5 + dev: true - '@storybook/manager-api@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/manager-api@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-BXjz6eNl1GyFcMwzRQTIokslcIY71AYblJUscPcy03X93oqI0GjFVa1xuSMwYw/oXWn7SHhKmqtqEG19lvBGRQ==} + peerDependencies: + storybook: ^8.2.7 dependencies: - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 + dev: true - '@storybook/preview-api@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/preview-api@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-lNZBTjZaYNSwBY8dEcDZdkOBvq1/JoVWpuvqDEKvGmp5usTe77xAOwGyncEb96Cx1BbXXkMiDrqbV5G23PFRYA==} + peerDependencies: + storybook: ^8.2.7 dependencies: - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + storybook: 8.2.7 + dev: true - '@storybook/react-dom-shim@8.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/react-dom-shim@8.2.7(react-dom@18.3.1)(react@18.3.1)(storybook@8.2.7): + resolution: {integrity: sha512-9VI+NrC09DAr0QQZsFmU5Fd9eqdJp/1AHK+sm9BOZretGGGJwn22xS7UXhHIiFpfXJQnr3TNcYWRzXFyuaE/Sw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^8.2.7 dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + storybook: 8.2.7 + dev: true - '@storybook/svelte-vite@8.3.0(@babel/core@7.25.2)(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.47)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(svelte@4.2.17)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2))': + /@storybook/svelte-vite@8.2.7(@babel/core@7.24.5)(@sveltejs/vite-plugin-svelte@3.1.0)(postcss@8.4.41)(storybook@8.2.7)(svelte@4.2.15)(typescript@5.4.5)(vite@5.2.11): + resolution: {integrity: sha512-K9GC0hYLTV6M1PrRG9uXChKMlcZUT/a8wNs9wDib1IS1/VSp7rDi1WSM06nSdiN7GmPrKnAs8tL3JxxvT+z0rA==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^2.0.0 || ^3.0.0 + storybook: ^8.2.7 + svelte: ^4.0.0 || ^5.0.0-next.65 + vite: ^4.0.0 || ^5.0.0 dependencies: - '@storybook/builder-vite': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) - '@storybook/svelte': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(svelte@4.2.17) - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + '@storybook/builder-vite': 8.2.7(storybook@8.2.7)(typescript@5.4.5)(vite@5.2.11) + '@storybook/svelte': 8.2.7(storybook@8.2.7)(svelte@4.2.15) + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.15)(vite@5.2.11) magic-string: 0.30.10 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) - svelte: 4.2.17 - svelte-preprocess: 5.1.3(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.47)(svelte@4.2.17)(typescript@5.4.5) + storybook: 8.2.7 + svelte: 4.2.15 + svelte-preprocess: 5.1.4(@babel/core@7.24.5)(postcss@8.4.41)(svelte@4.2.15)(typescript@5.4.5) sveltedoc-parser: 4.2.1 ts-dedent: 2.2.0 - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) + vite: 5.2.11(@types/node@20.12.8) transitivePeerDependencies: - '@babel/core' - '@preact/preset-vite' @@ -18462,32 +9911,44 @@ snapshots: - supports-color - typescript - vite-plugin-glimmerx - - webpack-sources + dev: true - '@storybook/svelte@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(svelte@4.2.17)': + /@storybook/svelte@8.2.7(storybook@8.2.7)(svelte@4.2.15): + resolution: {integrity: sha512-2ynotfcsCdLS0thWXSr8uaqia9S4XQ89EwaEaZRvnd41BxwOm2Zon9+B+ZxbT5+I7RebbWrxvONAiNo/Pvdmog==} + engines: {node: '>=18.0.0'} + peerDependencies: + storybook: ^8.2.7 + svelte: ^4.0.0 || ^5.0.0-next.65 dependencies: - '@storybook/components': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) + '@storybook/components': 8.2.7(storybook@8.2.7) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/preview-api': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/theming': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) - svelte: 4.2.17 + '@storybook/manager-api': 8.2.7(storybook@8.2.7) + '@storybook/preview-api': 8.2.7(storybook@8.2.7) + '@storybook/theming': 8.2.7(storybook@8.2.7) + storybook: 8.2.7 + svelte: 4.2.15 sveltedoc-parser: 4.2.1 ts-dedent: 2.2.0 type-fest: 2.19.0 transitivePeerDependencies: - supports-color + dev: true - '@storybook/sveltekit@8.3.0(@babel/core@7.25.2)(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.47)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(svelte@4.2.17)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2))': + /@storybook/sveltekit@8.2.7(@babel/core@7.24.5)(@sveltejs/vite-plugin-svelte@3.1.0)(postcss@8.4.41)(storybook@8.2.7)(svelte@4.2.15)(typescript@5.4.5)(vite@5.2.11): + resolution: {integrity: sha512-2mHHBu8XMVDP++qr9NnRC9fb/SrI2kNtz1OjHOocVenfIINga5QajVZPqmM00KGzzPmYeHR+tKNwSPC1oh70Ww==} + engines: {node: '>=18.0.0'} + peerDependencies: + storybook: ^8.2.7 + svelte: ^4.0.0 || ^5.0.0-next.65 + vite: ^4.0.0 || ^5.0.0 dependencies: - '@storybook/addon-actions': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@storybook/builder-vite': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) - '@storybook/svelte': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(svelte@4.2.17) - '@storybook/svelte-vite': 8.3.0(@babel/core@7.25.2)(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.47)(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(svelte@4.2.17)(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) - svelte: 4.2.17 - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) + '@storybook/addon-actions': 8.2.7(storybook@8.2.7) + '@storybook/builder-vite': 8.2.7(storybook@8.2.7)(typescript@5.4.5)(vite@5.2.11) + '@storybook/svelte': 8.2.7(storybook@8.2.7)(svelte@4.2.15) + '@storybook/svelte-vite': 8.2.7(@babel/core@7.24.5)(@sveltejs/vite-plugin-svelte@3.1.0)(postcss@8.4.41)(storybook@8.2.7)(svelte@4.2.15)(typescript@5.4.5)(vite@5.2.11) + storybook: 8.2.7 + svelte: 4.2.15 + vite: 5.2.11(@types/node@20.12.8) transitivePeerDependencies: - '@babel/core' - '@preact/preset-vite' @@ -18503,1021 +9964,981 @@ snapshots: - supports-color - typescript - vite-plugin-glimmerx - - webpack-sources + dev: true - '@storybook/test@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': + /@storybook/test@8.2.7(storybook@8.2.7)(vitest@1.6.0): + resolution: {integrity: sha512-7xypGR0zjJaM5MkxIz513SYiGs5vDJZL1bbkG1YKeBMff+ZRpa8y8VDYn/WDWuDw76KcFEXoPsPzKwktGhvnpw==} + peerDependencies: + storybook: ^8.2.7 dependencies: '@storybook/csf': 0.1.11 - '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - '@testing-library/dom': 10.4.0 - '@testing-library/jest-dom': 6.5.0 - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) - '@vitest/expect': 2.0.5 - '@vitest/spy': 2.0.5 - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + '@storybook/instrumenter': 8.2.7(storybook@8.2.7) + '@testing-library/dom': 10.1.0 + '@testing-library/jest-dom': 6.4.5(vitest@1.6.0) + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.1.0) + '@vitest/expect': 1.6.0 + '@vitest/spy': 1.6.0 + storybook: 8.2.7 util: 0.12.5 + transitivePeerDependencies: + - '@jest/globals' + - '@types/bun' + - '@types/jest' + - jest + - vitest + dev: true - '@storybook/theming@8.3.0(storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))': - dependencies: - storybook: 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) - - '@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)))': - dependencies: - '@sveltejs/kit': 2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)) - import-meta-resolve: 4.0.0 - - '@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)))': - dependencies: - '@sveltejs/kit': 2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)) - import-meta-resolve: 4.0.0 - - '@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))': + /@storybook/theming@8.2.7(storybook@8.2.7): + resolution: {integrity: sha512-+iqm0GfRkshrjjNSOzwl7AD2m+LtJGXJCr93ke1huDK497WUKbX1hbbw51h5E1tEkx0c2wIqUlaqCM+7XMYcpw==} + peerDependencies: + storybook: ^8.2.7 dependencies: - '@sveltejs/kit': 2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) - import-meta-resolve: 4.0.0 + storybook: 8.2.7 + dev: true - '@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2))': + /@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.22): + resolution: {integrity: sha512-She5nKT47kwHE18v9NMe6pbJcvULr82u0V3yZ0ej3n1laWKGgkgdEABE9/ak5iDPs93LqsBkuIo51kkwCLBjJA==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)) - '@types/cookie': 0.6.0 - cookie: 0.6.0 - devalue: 5.0.0 - esm-env: 1.0.0 + '@sveltejs/kit': 2.5.22(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.11) import-meta-resolve: 4.1.0 - kleur: 4.1.5 - magic-string: 0.30.10 - mrmime: 2.0.0 - sade: 1.8.1 - set-cookie-parser: 2.6.0 - sirv: 2.0.4 - svelte: 4.2.13 - tiny-glob: 0.2.9 - vite: 4.5.3(@types/node@20.12.7)(terser@5.27.2) + dev: true - '@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2))': + /@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@4.5.3): + resolution: {integrity: sha512-PQ98baF2WzvG5yiO4cZKJZJG60XjHTZD1jyho3u9Kmthx2ytdGYyVPPvKXgKXpKSq4wwctD9dl0d2blSbJMcOg==} + engines: {node: '>=18.13'} + hasBin: true + requiresBuild: true + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)) + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.15)(vite@4.5.3) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.0.0 esm-env: 1.0.0 import-meta-resolve: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.10 + magic-string: 0.30.11 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.4 - svelte: 4.2.13 + svelte: 4.2.15 tiny-glob: 0.2.9 - vite: 5.1.3(@types/node@20.12.7)(terser@5.27.2) + vite: 4.5.3 + dev: true - '@sveltejs/kit@2.5.27(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2))': + /@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.11): + resolution: {integrity: sha512-PQ98baF2WzvG5yiO4cZKJZJG60XjHTZD1jyho3u9Kmthx2ytdGYyVPPvKXgKXpKSq4wwctD9dl0d2blSbJMcOg==} + engines: {node: '>=18.13'} + hasBin: true + requiresBuild: true + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.15)(vite@5.2.11) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 5.0.0 esm-env: 1.0.0 import-meta-resolve: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.10 + magic-string: 0.30.11 mrmime: 2.0.0 sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.4 - svelte: 4.2.17 + svelte: 4.2.15 tiny-glob: 0.2.9 - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) + vite: 5.2.11(@types/node@20.12.8) + dev: true - '@sveltejs/package@2.3.5(svelte@4.2.17)(typescript@5.4.5)': + /@sveltejs/package@2.3.2(svelte@4.2.15)(typescript@5.4.5): + resolution: {integrity: sha512-6M8/Te7iXRG7SiH92wugqfyoJpuepjn78L433LnXicUeMso9M/N4vdL9DPK3MfTkVVY4klhNRptVqme3p4oZWA==} + engines: {node: ^16.14 || >=18} + hasBin: true + peerDependencies: + svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 dependencies: - chokidar: 4.0.0 + chokidar: 3.6.0 kleur: 4.1.5 sade: 1.8.1 semver: 7.6.2 - svelte: 4.2.17 - svelte2tsx: 0.7.19(svelte@4.2.17)(typescript@5.4.5) + svelte: 4.2.15 + svelte2tsx: 0.7.15(svelte@4.2.15)(typescript@5.4.5) transitivePeerDependencies: - typescript + dev: true - '@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2))': - dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)) - debug: 4.3.4 - svelte: 4.2.13 - vite: 4.5.3(@types/node@20.12.7)(terser@5.27.2) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2))': - dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)) - debug: 4.3.4 - svelte: 4.2.13 - vite: 5.1.3(@types/node@20.12.7)(terser@5.27.2) - transitivePeerDependencies: - - supports-color - - '@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2))': + /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@4.5.3): + resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.15)(vite@4.5.3) debug: 4.3.4 - svelte: 4.2.17 - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) + svelte: 4.2.15 + vite: 4.5.3 transitivePeerDependencies: - supports-color + dev: true - '@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2))': + /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.11): + resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)) + '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.15)(vite@5.2.11) debug: 4.3.4 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.9 - svelte: 4.2.13 - svelte-hmr: 0.16.0(svelte@4.2.13) - vite: 4.5.3(@types/node@20.12.7)(terser@5.27.2) - vitefu: 0.2.5(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)) + svelte: 4.2.15 + vite: 5.2.11(@types/node@20.12.8) transitivePeerDependencies: - supports-color + dev: true - '@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2))': + /@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@4.5.3): + resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.13)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@4.5.3) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.9 - svelte: 4.2.13 - svelte-hmr: 0.16.0(svelte@4.2.13) - vite: 5.1.3(@types/node@20.12.7)(terser@5.27.2) - vitefu: 0.2.5(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)) + magic-string: 0.30.10 + svelte: 4.2.15 + svelte-hmr: 0.16.0(svelte@4.2.15) + vite: 4.5.3 + vitefu: 0.2.5(vite@4.5.3) transitivePeerDependencies: - supports-color + dev: true - '@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2))': + /@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.15)(vite@5.2.11): + resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)))(svelte@4.2.17)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.15)(vite@5.2.11) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 - magic-string: 0.30.9 - svelte: 4.2.17 - svelte-hmr: 0.16.0(svelte@4.2.17) - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) - vitefu: 0.2.5(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)) + magic-string: 0.30.10 + svelte: 4.2.15 + svelte-hmr: 0.16.0(svelte@4.2.15) + vite: 5.2.11(@types/node@20.12.8) + vitefu: 0.2.5(vite@5.2.11) transitivePeerDependencies: - supports-color + dev: true - '@szmarczak/http-timer@4.0.6': + /@szmarczak/http-timer@4.0.6: + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} dependencies: defer-to-connect: 2.0.1 + dev: true - '@szmarczak/http-timer@5.0.1': + /@szmarczak/http-timer@5.0.1: + resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} + engines: {node: '>=14.16'} dependencies: defer-to-connect: 2.0.1 + dev: true - '@tailwindcss/nesting@0.0.0-insiders.565cd3e(postcss@8.4.38)': + /@tailwindcss/nesting@0.0.0-insiders.565cd3e(postcss@8.4.38): + resolution: {integrity: sha512-WhHoFBx19TnH/c+xLwT/sxei6+4RpdfiyG3MYXfmLaMsADmVqBkF7B6lDalgZD9YdM459MF7DtxVbWkOrV7IaQ==} + peerDependencies: + postcss: ^8.2.15 dependencies: postcss: 8.4.38 postcss-nested: 5.0.6(postcss@8.4.38) + dev: true - '@testing-library/dom@10.4.0': + /@testing-library/dom@10.1.0: + resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} + engines: {node: '>=18'} dependencies: '@babel/code-frame': 7.24.2 - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.5 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 dom-accessibility-api: 0.5.16 lz-string: 1.5.0 pretty-format: 27.5.1 + dev: true - '@testing-library/jest-dom@6.5.0': + /@testing-library/jest-dom@6.4.5(vitest@1.6.0): + resolution: {integrity: sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@jest/globals': '>= 28' + '@types/bun': latest + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/bun': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true dependencies: '@adobe/css-tools': 4.4.0 + '@babel/runtime': 7.24.5 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 + vitest: 1.6.0(jsdom@24.0.0) + dev: true - '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': + /@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0): + resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 10.4.0 + '@testing-library/dom': 10.1.0 + dev: true - '@ts-morph/common@0.20.0': + /@ts-morph/common@0.20.0: + resolution: {integrity: sha512-7uKjByfbPpwuzkstL3L5MQyuXPSKdoNG93Fmi2JoDcTf3pEP731JdRFAduRVkOs8oqxPsXKA+ScrWkdQ8t/I+Q==} dependencies: fast-glob: 3.3.2 minimatch: 7.4.6 mkdirp: 2.1.6 path-browserify: 1.0.1 + dev: true - '@tsconfig/node10@1.0.9': {} + /@tsconfig/node10@1.0.11: + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - '@tsconfig/node12@1.0.11': {} + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - '@tsconfig/node14@1.0.3': {} + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - '@tsconfig/node16@1.0.4': {} + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@types/acorn@4.0.6': + /@types/acorn@4.0.6: + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: '@types/estree': 1.0.5 + dev: false - '@types/aria-query@5.0.4': {} + /@types/aria-query@5.0.4: + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + dev: true - '@types/babel__core@7.20.5': + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 + dev: false - '@types/babel__generator@7.6.8': + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.2 + dev: false - '@types/babel__template@7.4.4': + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + dev: false - '@types/babel__traverse@7.20.5': + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.2 + dev: false - '@types/bn.js@4.11.6': + /@types/bn.js@4.11.6: + resolution: {integrity: sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==} dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.8 + dev: false - '@types/bn.js@5.1.5': + /@types/bn.js@5.1.5: + resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.8 - '@types/body-parser@1.19.5': + /@types/body-parser@1.19.5: + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.12.7 + '@types/node': 20.12.8 + dev: true - '@types/cacheable-request@6.0.3': + /@types/cacheable-request@6.0.3: + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.12.7 + '@types/node': 20.12.8 '@types/responselike': 1.0.3 + dev: true - '@types/chrome@0.0.136': + /@types/connect@3.4.38: + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/filesystem': 0.0.35 - '@types/har-format': 1.2.15 + '@types/node': 20.12.8 + dev: true - '@types/connect@3.4.38': - dependencies: - '@types/node': 20.12.7 + /@types/cookie@0.6.0: + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@types/cookie@0.6.0': {} + /@types/cross-spawn@6.0.6: + resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} + dependencies: + '@types/node': 20.12.8 + dev: true - '@types/debug@4.1.12': + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: '@types/ms': 0.7.34 - '@types/dns-packet@5.6.5': + /@types/dns-packet@5.6.5: + resolution: {integrity: sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q==} dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.8 + dev: false + + /@types/dom-screen-wake-lock@1.0.3: + resolution: {integrity: sha512-3Iten7X3Zgwvk6kh6/NRdwN7WbZ760YgFCsF5AxDifltUQzW1RaW+WRmcVtgwFzLjaNu64H+0MPJ13yRa8g3Dw==} + dev: false - '@types/dom-screen-wake-lock@1.0.3': {} + /@types/emscripten@1.39.13: + resolution: {integrity: sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==} + dev: true - '@types/eslint@8.56.10': + /@types/eslint@8.56.10: + resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 + dev: true - '@types/estree-jsx@1.0.5': + /@types/estree-jsx@1.0.5: + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} dependencies: '@types/estree': 1.0.5 + dev: false - '@types/estree@1.0.5': {} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/express-serve-static-core@4.19.5': + /@types/express-serve-static-core@4.19.5: + resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} dependencies: - '@types/node': 20.12.7 - '@types/qs': 6.9.16 + '@types/node': 20.12.8 + '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 + dev: true - '@types/express@4.17.21': + /@types/express@4.17.21: + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.19.5 - '@types/qs': 6.9.16 + '@types/qs': 6.9.15 '@types/serve-static': 1.15.7 + dev: true - '@types/filesystem@0.0.35': - dependencies: - '@types/filewriter': 0.0.33 - - '@types/filewriter@0.0.33': {} - - '@types/find-cache-dir@3.2.1': {} - - '@types/har-format@1.2.15': {} + /@types/find-cache-dir@3.2.1: + resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} + dev: true - '@types/hast@3.0.4': + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} dependencies: '@types/unist': 3.0.2 - '@types/http-cache-semantics@4.0.4': {} + /@types/http-cache-semantics@4.0.4: + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + dev: true - '@types/http-errors@2.0.4': {} + /@types/http-errors@2.0.4: + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + dev: true - '@types/istanbul-lib-coverage@2.0.6': {} + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - '@types/istanbul-lib-report@3.0.3': + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports@3.0.4': + /@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@29.5.12': + /@types/jest@29.5.12: + resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 + dev: true - '@types/json-schema@7.0.15': {} + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json5@0.0.29': {} + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true - '@types/keyv@3.1.4': + /@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.8 + dev: true - '@types/lodash@4.17.7': {} + /@types/lodash@4.17.7: + resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} + dev: true - '@types/lru-cache@5.1.1': {} + /@types/lru-cache@5.1.1: + resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} + dev: false - '@types/mdast@4.0.4': + /@types/mdast@4.0.4: + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} dependencies: '@types/unist': 3.0.2 + dev: false - '@types/mdx@2.0.13': {} + /@types/mdx@2.0.13: + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/mime@1.3.5': {} + /@types/mime@1.3.5: + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + dev: true - '@types/minimatch@3.0.5': {} + /@types/minimatch@3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + dev: false - '@types/ms@0.7.34': {} + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/nlcst@2.0.3': + /@types/nlcst@2.0.3: + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} dependencies: '@types/unist': 3.0.2 + dev: false - '@types/node@12.20.55': {} + /@types/node-forge@1.3.11: + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + dependencies: + '@types/node': 20.12.8 + dev: false - '@types/node@17.0.45': {} + /@types/node@12.20.55: + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@18.15.13': {} + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: false - '@types/node@18.19.31': + /@types/node@18.19.31: + resolution: {integrity: sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==} dependencies: undici-types: 5.26.5 - '@types/node@20.12.7': + /@types/node@20.12.8: + resolution: {integrity: sha512-NU0rJLJnshZWdE/097cdCBbyW1h4hEg0xpovcoAQYHl8dnEyp/NAOiE45pvc+Bd1Dt+2r94v2eGFpQJ4R7g+2w==} dependencies: undici-types: 5.26.5 - '@types/object-hash@3.0.6': {} - - '@types/parse-json@4.0.2': {} - - '@types/pbkdf2@3.1.2': - dependencies: - '@types/node': 20.12.7 - - '@types/prop-types@15.7.12': {} - - '@types/pug@2.0.10': {} - - '@types/qs@6.9.16': {} - - '@types/range-parser@1.2.7': {} - - '@types/react@18.3.5': - dependencies: - '@types/prop-types': 15.7.12 - csstype: 3.1.3 - - '@types/responselike@1.0.3': - dependencies: - '@types/node': 20.12.7 - - '@types/sax@1.2.7': - dependencies: - '@types/node': 20.12.7 - - '@types/secp256k1@4.0.6': - dependencies: - '@types/node': 20.12.7 - - '@types/semver@7.5.7': {} - - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.12.7 - - '@types/serve-static@1.15.7': - dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 20.12.7 - '@types/send': 0.17.4 - - '@types/stack-utils@2.0.3': {} - - '@types/trusted-types@2.0.7': {} - - '@types/unist@2.0.10': {} - - '@types/unist@3.0.2': {} - - '@types/uuid@10.0.0': {} - - '@types/uuid@9.0.8': {} - - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@15.0.19': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@types/yargs@17.0.32': - dependencies: - '@types/yargs-parser': 21.0.3 - - '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.7.0(eslint@8.55.0)(typescript@5.4.3))(eslint@8.55.0)(typescript@5.4.3)': - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.7.0(eslint@8.55.0)(typescript@5.4.3) - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/type-utils': 7.4.0(eslint@8.55.0)(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.55.0)(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.4.0 - debug: 4.3.4 - eslint: 8.55.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.4.3) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@7.4.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0)(typescript@5.4.3)': - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.7.0(eslint@8.56.0)(typescript@5.4.3) - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/type-utils': 7.4.0(eslint@8.56.0)(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.56.0)(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.4.0 - debug: 4.3.4 - eslint: 8.56.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.4.3) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0)(typescript@5.4.3)': + /@types/node@22.7.5: + resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.9.0(eslint@8.56.0)(typescript@5.4.3) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/type-utils': 7.9.0(eslint@8.56.0)(typescript@5.4.3) - '@typescript-eslint/utils': 7.9.0(eslint@8.56.0)(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.9.0 - eslint: 8.56.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color + undici-types: 6.19.8 + dev: true - '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.9.0(eslint@8.56.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/type-utils': 7.9.0(eslint@8.56.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@8.56.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.9.0 - eslint: 8.56.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color + /@types/object-hash@3.0.6: + resolution: {integrity: sha512-fOBV8C1FIu2ELinoILQ+ApxcUKz4ngq+IWUYrxSGjXzzjUALijilampwkMgEtJ+h2njAW3pi853QpzNVCHB73w==} + dev: true - '@typescript-eslint/parser@7.7.0(eslint@8.55.0)(typescript@5.4.3)': + /@types/pbkdf2@3.1.2: + resolution: {integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==} dependencies: - '@typescript-eslint/scope-manager': 7.7.0 - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.7.0 - debug: 4.3.4 - eslint: 8.55.0 - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color + '@types/node': 20.12.8 - '@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3)': - dependencies: - '@typescript-eslint/scope-manager': 7.7.0 - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.7.0 - debug: 4.3.4 - eslint: 8.56.0 - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color + /@types/prop-types@15.7.12: + resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + dev: true - '@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.3)': - dependencies: - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.3) - '@typescript-eslint/visitor-keys': 7.9.0 - debug: 4.3.4 - eslint: 8.56.0 - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color + /@types/pug@2.0.10: + resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} + dev: true - '@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5)': + /@types/qs@6.9.15: + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + dev: true + + /@types/range-parser@1.2.7: + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + dev: true + + /@types/react@18.3.3: + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} dependencies: - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.9.0 - debug: 4.3.4 - eslint: 8.56.0 - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + dev: true - '@typescript-eslint/scope-manager@5.62.0': + /@types/responselike@1.0.3: + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@types/node': 20.12.8 + dev: true - '@typescript-eslint/scope-manager@7.4.0': + /@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} dependencies: - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/visitor-keys': 7.4.0 + '@types/node': 20.12.8 + dev: false - '@typescript-eslint/scope-manager@7.7.0': + /@types/secp256k1@4.0.6: + resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} dependencies: - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/visitor-keys': 7.7.0 + '@types/node': 20.12.8 + + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@typescript-eslint/scope-manager@7.9.0': + /@types/send@0.17.4: + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 + '@types/mime': 1.3.5 + '@types/node': 20.12.8 + dev: true - '@typescript-eslint/type-utils@7.4.0(eslint@8.55.0)(typescript@5.4.3)': + /@types/serve-static@1.15.7: + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.55.0)(typescript@5.4.3) - debug: 4.3.4 - eslint: 8.55.0 - ts-api-utils: 1.2.1(typescript@5.4.3) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color + '@types/http-errors': 2.0.4 + '@types/node': 20.12.8 + '@types/send': 0.17.4 + dev: true + + /@types/stack-utils@2.0.3: + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + /@types/trusted-types@2.0.7: + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + dev: false + + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: false + + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + + /@types/uuid@9.0.8: + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + dev: true + + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@typescript-eslint/type-utils@7.4.0(eslint@8.56.0)(typescript@5.4.3)': + /@types/yargs@15.0.19: + resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==} dependencies: - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.56.0)(typescript@5.4.3) - debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.2.1(typescript@5.4.3) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color + '@types/yargs-parser': 21.0.3 + dev: false - '@typescript-eslint/type-utils@7.9.0(eslint@8.56.0)(typescript@5.4.3)': + /@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} dependencies: - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.3) - '@typescript-eslint/utils': 7.9.0(eslint@8.56.0)(typescript@5.4.3) - debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color + '@types/yargs-parser': 21.0.3 - '@typescript-eslint/type-utils@7.9.0(eslint@8.56.0)(typescript@5.4.5)': + /@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0)(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@8.56.0)(typescript@5.4.5) + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/type-utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.2 ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/types@5.62.0': {} - - '@typescript-eslint/types@7.4.0': {} - - '@typescript-eslint/types@7.7.0': {} - - '@typescript-eslint/types@7.9.0': {} - - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.3)': + /@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.7(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.3 - tsutils: 3.21.0(typescript@5.4.3) - optionalDependencies: - typescript: 5.4.3 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.8.0 + debug: 4.3.4 + eslint: 8.57.0 + typescript: 5.4.5 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5)': + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.7(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.3 - tsutils: 3.21.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color + dev: true - '@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3)': + /@typescript-eslint/scope-manager@7.8.0: + resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/visitor-keys': 7.4.0 - debug: 4.3.7(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.4.3) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 + dev: true - '@typescript-eslint/typescript-estree@7.7.0(typescript@5.4.3)': + /@typescript-eslint/type-utils@7.8.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/types': 7.7.0 - '@typescript-eslint/visitor-keys': 7.7.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.4.3) - optionalDependencies: - typescript: 5.4.3 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color + dev: true + + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - '@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.3)': + /@typescript-eslint/types@7.8.0: + resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} + engines: {node: ^18.18.0 || >=20.0.0} + dev: true + + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.4 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.4.3) - optionalDependencies: - typescript: 5.4.3 + tsutils: 3.21.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5)': + /@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5): + resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 semver: 7.6.2 ts-api-utils: 1.3.0(typescript@5.4.5) - optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color + dev: true - '@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.4.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.3) - eslint: 8.56.0 - eslint-scope: 5.1.1 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.4.5)': + /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 + '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - eslint: 8.56.0 + eslint: 8.57.0 eslint-scope: 5.1.1 semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript + dev: true - '@typescript-eslint/utils@7.4.0(eslint@8.55.0)(typescript@5.4.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) - eslint: 8.55.0 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@7.4.0(eslint@8.56.0)(typescript@5.4.3)': + /@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) - eslint: 8.56.0 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5) + eslint: 8.57.0 semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript + dev: true - '@typescript-eslint/utils@7.9.0(eslint@8.56.0)(typescript@5.4.3)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.3) - eslint: 8.56.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/utils@7.9.0(eslint@8.56.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - eslint: 8.56.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@5.62.0': + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 + dev: true - '@typescript-eslint/visitor-keys@7.4.0': - dependencies: - '@typescript-eslint/types': 7.4.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@7.7.0': - dependencies: - '@typescript-eslint/types': 7.7.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@7.9.0': + /@typescript-eslint/visitor-keys@7.8.0: + resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/types': 7.8.0 eslint-visitor-keys: 3.4.3 + dev: true - '@ungap/structured-clone@1.2.0': {} + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitest/coverage-v8@1.4.0(vitest@1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2))': + /@vitest/coverage-v8@1.6.0(vitest@1.6.0): + resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==} + peerDependencies: + vitest: 1.6.0 dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 debug: 4.3.4 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.4 istanbul-reports: 3.1.7 - magic-string: 0.30.7 - magicast: 0.3.3 + magic-string: 0.30.10 + magicast: 0.3.4 picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 2.0.0 + strip-literal: 2.1.0 test-exclude: 6.0.0 - v8-to-istanbul: 9.2.0 - vitest: 1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2) + vitest: 1.6.0(jsdom@24.0.0) transitivePeerDependencies: - supports-color + dev: true - '@vitest/expect@1.5.0': - dependencies: - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 - chai: 4.4.1 - - '@vitest/expect@1.6.0': + /@vitest/expect@1.6.0: + resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} dependencies: '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 chai: 4.4.1 + dev: true - '@vitest/expect@2.0.5': - dependencies: - '@vitest/spy': 2.0.5 - '@vitest/utils': 2.0.5 - chai: 5.1.1 - tinyrainbow: 1.2.0 - - '@vitest/pretty-format@2.0.5': - dependencies: - tinyrainbow: 1.2.0 - - '@vitest/pretty-format@2.1.1': - dependencies: - tinyrainbow: 1.2.0 - - '@vitest/runner@1.5.0': - dependencies: - '@vitest/utils': 1.5.0 - p-limit: 5.0.0 - pathe: 1.1.2 - - '@vitest/runner@1.6.0': + /@vitest/runner@1.6.0: + resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} dependencies: '@vitest/utils': 1.6.0 p-limit: 5.0.0 pathe: 1.1.2 + dev: true - '@vitest/snapshot@1.5.0': + /@vitest/snapshot@1.6.0: + resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} dependencies: magic-string: 0.30.10 pathe: 1.1.2 pretty-format: 29.7.0 + dev: true - '@vitest/snapshot@1.6.0': - dependencies: - magic-string: 0.30.9 - pathe: 1.1.2 - pretty-format: 29.7.0 - - '@vitest/spy@1.5.0': - dependencies: - tinyspy: 2.2.0 - - '@vitest/spy@1.6.0': - dependencies: - tinyspy: 2.2.0 - - '@vitest/spy@2.0.5': - dependencies: - tinyspy: 3.0.2 - - '@vitest/utils@1.5.0': + /@vitest/spy@1.6.0: + resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + tinyspy: 2.2.1 + dev: true - '@vitest/utils@1.6.0': + /@vitest/utils@1.6.0: + resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 + dev: true - '@vitest/utils@2.0.5': - dependencies: - '@vitest/pretty-format': 2.0.5 - estree-walker: 3.0.3 - loupe: 3.1.1 - tinyrainbow: 1.2.0 - - '@vitest/utils@2.1.1': - dependencies: - '@vitest/pretty-format': 2.1.1 - loupe: 3.1.1 - tinyrainbow: 1.2.0 - - '@volar/kit@2.4.5(typescript@5.4.5)': + /@volar/kit@2.4.0-alpha.18(typescript@5.4.5): + resolution: {integrity: sha512-dZMSNhesh23lhd61ax2l04IgIcYofAjm8M+5BKAmX47ROweyc8RrrslszCFUJynlmXx6JS1PoHqvo8+E0aAYQQ==} + peerDependencies: + typescript: '*' dependencies: - '@volar/language-service': 2.4.5 - '@volar/typescript': 2.4.5 + '@volar/language-service': 2.4.0-alpha.18 + '@volar/typescript': 2.4.0-alpha.18 typesafe-path: 0.2.2 typescript: 5.4.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 + dev: false - '@volar/language-core@2.4.5': + /@volar/language-core@2.4.0-alpha.18: + resolution: {integrity: sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==} dependencies: - '@volar/source-map': 2.4.5 + '@volar/source-map': 2.4.0-alpha.18 + dev: false - '@volar/language-server@2.4.5': + /@volar/language-server@2.4.0-alpha.18: + resolution: {integrity: sha512-dciHEE/R5kzI0bY71QfkoCVQ3cQI6g9MHfA4oIP6UhnJy0CdleUalWSygOXoD3Nq7Yk6wn2BRrb1PP5MsadY/Q==} dependencies: - '@volar/language-core': 2.4.5 - '@volar/language-service': 2.4.5 - '@volar/typescript': 2.4.5 + '@volar/language-core': 2.4.0-alpha.18 + '@volar/language-service': 2.4.0-alpha.18 + '@volar/snapshot-document': 2.4.0-alpha.18 + '@volar/typescript': 2.4.0-alpha.18 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 + dev: false - '@volar/language-service@2.4.5': + /@volar/language-service@2.4.0-alpha.18: + resolution: {integrity: sha512-EuetrtbEtudi9buinWAG5U3Jam5dY27zXd/7GYnx542kBwanWOBM8i4DAQd0z7M11fOxXgybxPA933uaSyaOog==} dependencies: - '@volar/language-core': 2.4.5 + '@volar/language-core': 2.4.0-alpha.18 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 + dev: false + + /@volar/snapshot-document@2.4.0-alpha.18: + resolution: {integrity: sha512-JAeclEly/wnILhR4Pu9MpgBLInZJH49O1zoy8fU+pk5I+zpv7JIEby5z2UFAS60+sIDnxBdAGd7rZ5VibE70vg==} + dependencies: + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.11 + dev: false - '@volar/source-map@2.4.5': {} + /@volar/source-map@2.4.0-alpha.18: + resolution: {integrity: sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==} + dev: false - '@volar/typescript@2.4.5': + /@volar/typescript@2.4.0-alpha.18: + resolution: {integrity: sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==} dependencies: - '@volar/language-core': 2.4.5 + '@volar/language-core': 2.4.0-alpha.18 path-browserify: 1.0.1 vscode-uri: 3.0.8 + dev: false - '@vscode/emmet-helper@2.9.3': + /@vscode/emmet-helper@2.9.3: + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} dependencies: emmet: 2.4.7 jsonc-parser: 2.3.1 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 2.1.2 + dev: false - '@vscode/l10n@0.0.18': {} + /@vscode/l10n@0.0.18: + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + dev: false - '@wagmi/cli@2.1.15(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)': + /@wagmi/cli@2.1.15(typescript@5.4.5): + resolution: {integrity: sha512-mtTxbuCDRRSd/2tPAklM+4vFOq5E/0zS5OfLE3Ax2KcUWciOnjLJ0m6BAQ6HzqY9YfWo8DXa7UqxzUBkvPYltg==} + hasBin: true + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true dependencies: - abitype: 1.0.6(typescript@5.4.5)(zod@3.23.8) - bundle-require: 4.0.2(esbuild@0.19.12) + abitype: 1.0.5(typescript@5.4.5)(zod@3.23.8) + bundle-require: 4.1.0(esbuild@0.19.12) cac: 6.7.14 change-case: 5.4.4 chokidar: 3.6.0 @@ -19526,7 +10947,7 @@ snapshots: dotenv-expand: 10.0.0 esbuild: 0.19.12 execa: 8.0.1 - fdir: 6.3.0(picomatch@3.0.1) + fdir: 6.2.0(picomatch@3.0.1) find-up: 6.3.0 fs-extra: 11.2.0 ora: 6.3.1 @@ -19534,18 +10955,25 @@ snapshots: picocolors: 1.0.0 picomatch: 3.0.1 prettier: 3.2.5 - viem: 2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) - zod: 3.23.8 - optionalDependencies: typescript: 5.4.5 + viem: 2.18.8(typescript@5.4.5)(zod@3.23.8) + zod: 3.23.8 transitivePeerDependencies: - bufferutil - utf-8-validate + dev: false - '@wagmi/cli@2.1.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)': + /@wagmi/cli@2.1.4(typescript@5.4.5): + resolution: {integrity: sha512-vamvEo/GeBjFxb5oZCvby4YZDOrK/RqD+tcWb5X0pqmJDyWbN2Mkv9DYTtVB+OtfVUzFKciN/8Vhw8luMtOJbw==} + hasBin: true + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true dependencies: - abitype: 0.9.10(typescript@5.4.3)(zod@3.22.4) - bundle-require: 4.0.2(esbuild@0.19.12) + abitype: 0.9.10(typescript@5.4.5)(zod@3.23.6) + bundle-require: 4.1.0(esbuild@0.19.12) cac: 6.7.14 change-case: 4.1.2 chokidar: 3.6.0 @@ -19561,26 +10989,32 @@ snapshots: pathe: 1.1.2 picocolors: 1.0.0 prettier: 3.2.5 - viem: 2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) - zod: 3.22.4 - optionalDependencies: - typescript: 5.4.3 + typescript: 5.4.5 + viem: 2.18.8(typescript@5.4.5)(zod@3.23.6) + zod: 3.23.6 transitivePeerDependencies: - bufferutil - utf-8-validate - '@wagmi/connectors@4.1.18(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(@wagmi/core@2.8.0(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)': + /@wagmi/connectors@4.3.3(@wagmi/core@2.9.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.18.8): + resolution: {integrity: sha512-6u/HbWlIS2MI5lxBYbsqNZIQT4sBleFt8rhzH7mJBrHH6v95LmeZZ3qZFpWdopx4bQ6maNEZOIJnCLhv7k37DQ==} + peerDependencies: + '@wagmi/core': 2.9.1 + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + typescript: + optional: true dependencies: '@coinbase/wallet-sdk': 3.9.1 - '@metamask/sdk': 0.14.3(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(utf-8-validate@5.0.10) - '@safe-global/safe-apps-provider': 0.18.1(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) - '@safe-global/safe-apps-sdk': 8.1.0(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) - '@wagmi/core': 2.8.0(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) - '@walletconnect/ethereum-provider': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) - '@walletconnect/modal': 2.6.2(@types/react@18.3.5)(react@18.2.0) - viem: 2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) - optionalDependencies: - typescript: 5.4.3 + '@metamask/sdk': 0.18.6(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1) + '@safe-global/safe-apps-provider': 0.18.1(typescript@5.4.5) + '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.4.5) + '@wagmi/core': 2.9.1(react@18.3.1)(typescript@5.4.5)(viem@2.18.8) + '@walletconnect/ethereum-provider': 2.11.2(react@18.3.1) + '@walletconnect/modal': 2.6.2(react@18.3.1) + typescript: 5.4.5 + viem: 2.18.8(typescript@5.4.5)(zod@3.23.6) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -19597,26 +11031,37 @@ snapshots: - '@vercel/kv' - bufferutil - encoding + - ioredis - react - react-dom + - react-i18next - react-native - rollup - supports-color + - uWebSockets.js - utf-8-validate - zod + dev: false - '@wagmi/connectors@4.3.10(vnbhrjghrun7rfuxsawo7otej4)': + /@wagmi/connectors@4.3.3(@wagmi/core@2.9.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.9.31): + resolution: {integrity: sha512-6u/HbWlIS2MI5lxBYbsqNZIQT4sBleFt8rhzH7mJBrHH6v95LmeZZ3qZFpWdopx4bQ6maNEZOIJnCLhv7k37DQ==} + peerDependencies: + '@wagmi/core': 2.9.1 + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + typescript: + optional: true dependencies: '@coinbase/wallet-sdk': 3.9.1 - '@metamask/sdk': 0.20.3(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-i18next@13.5.0(i18next@22.5.1)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(utf-8-validate@5.0.10) - '@safe-global/safe-apps-provider': 0.18.1(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8) - '@safe-global/safe-apps-sdk': 8.1.0(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8) - '@wagmi/core': 2.10.2(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) - '@walletconnect/ethereum-provider': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) - '@walletconnect/modal': 2.6.2(@types/react@18.3.5)(react@18.2.0) - viem: 2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8) - optionalDependencies: - typescript: 5.4.3 + '@metamask/sdk': 0.18.6(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1) + '@safe-global/safe-apps-provider': 0.18.1(typescript@5.4.5) + '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.4.5) + '@wagmi/core': 2.9.1(react@18.3.1)(typescript@5.4.5)(viem@2.9.31) + '@walletconnect/ethereum-provider': 2.11.2(react@18.3.1) + '@walletconnect/modal': 2.6.2(react@18.3.1) + typescript: 5.4.5 + viem: 2.9.31(typescript@5.4.5) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -19633,28 +11078,38 @@ snapshots: - '@vercel/kv' - bufferutil - encoding + - ioredis - react - react-dom - react-i18next - react-native - rollup - supports-color + - uWebSockets.js - utf-8-validate - zod + dev: false - '@wagmi/connectors@5.1.10(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(@wagmi/core@2.13.5(@types/react@18.3.5)(react@18.2.0)(typescript@5.4.5)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)': + /@wagmi/connectors@5.1.2(@wagmi/core@2.13.1)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.18.8): + resolution: {integrity: sha512-UX5LqDdGXrTdHBpL9wrJbcjK7/rtpOjx6YSIkO26TdPp6UyxQvEmY2XY6hdgBwHVx9xPaiVNIrWoexa5pRJUNA==} + peerDependencies: + '@wagmi/core': 2.13.1 + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + typescript: + optional: true dependencies: '@coinbase/wallet-sdk': 4.0.4 - '@metamask/sdk': 0.28.2(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(utf-8-validate@5.0.10) - '@safe-global/safe-apps-provider': 0.18.3(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) - '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) - '@wagmi/core': 2.13.5(@types/react@18.3.5)(react@18.2.0)(typescript@5.4.5)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)) - '@walletconnect/ethereum-provider': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) - '@walletconnect/modal': 2.6.2(@types/react@18.3.5)(react@18.2.0) - cbw-sdk: '@coinbase/wallet-sdk@3.9.3' - viem: 2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) - optionalDependencies: + '@metamask/sdk': 0.27.0(react-native@0.74.1)(react@18.3.1) + '@safe-global/safe-apps-provider': 0.18.3(typescript@5.4.5) + '@safe-global/safe-apps-sdk': 9.1.0(typescript@5.4.5) + '@wagmi/core': 2.13.1(react@18.3.1)(typescript@5.4.5)(viem@2.18.8) + '@walletconnect/ethereum-provider': 2.14.0(react@18.3.1) + '@walletconnect/modal': 2.6.2(react@18.3.1) + cbw-sdk: /@coinbase/wallet-sdk@3.9.3 typescript: 5.4.5 + viem: 2.18.8(typescript@5.4.5)(zod@3.23.6) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -19671,51 +11126,57 @@ snapshots: - '@vercel/kv' - bufferutil - encoding + - ioredis - react - react-dom - react-native - rollup - supports-color + - uWebSockets.js - utf-8-validate - zod + dev: false - '@wagmi/core@2.10.2(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8)': - dependencies: - eventemitter3: 5.0.1 - mipd: 0.0.5(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8) - viem: 2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8) - zustand: 4.4.1(@types/react@18.3.5)(react@18.2.0) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - '@types/react' - - bufferutil - - immer - - react - - utf-8-validate - - zod - - '@wagmi/core@2.13.5(@types/react@18.3.5)(react@18.2.0)(typescript@5.4.5)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))': + /@wagmi/core@2.13.1(react@18.3.1)(typescript@5.4.5)(viem@2.18.8): + resolution: {integrity: sha512-6ZdgI6dYfpa+IZPU0DZ3XQEQVzs003tKCERzSUNkxmt5cwSMg0XB1kvF5vU9MuPP96K6IcGkqSwAtgCmM5uy2w==} + peerDependencies: + '@tanstack/query-core': '>=5.0.0' + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + '@tanstack/query-core': + optional: true + typescript: + optional: true dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.4.5) - viem: 2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) - zustand: 4.4.1(@types/react@18.3.5)(react@18.2.0) - optionalDependencies: typescript: 5.4.5 + viem: 2.18.8(typescript@5.4.5)(zod@3.23.6) + zustand: 4.4.1(react@18.3.1) transitivePeerDependencies: - '@types/react' - immer - react + dev: false - '@wagmi/core@2.8.0(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)': + /@wagmi/core@2.9.1(react@18.3.1)(typescript@5.4.5)(viem@2.18.8): + resolution: {integrity: sha512-VUILlj0qFmZEa9XpNsYhIaQe3jsJdFGSRSbn+xsvGBo+yZpNxQXuaLo3+ntuv1kTFdw8Qzk17fLGy2U9a0XFdA==} + peerDependencies: + '@tanstack/query-core': '>=5.0.0' + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + '@tanstack/query-core': + optional: true + typescript: + optional: true dependencies: eventemitter3: 5.0.1 - mipd: 0.0.5(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) - viem: 2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) - zustand: 4.4.1(@types/react@18.3.5)(react@18.2.0) - optionalDependencies: - typescript: 5.4.3 + mipd: 0.0.5(typescript@5.4.5) + typescript: 5.4.5 + viem: 2.18.8(typescript@5.4.5)(zod@3.23.6) + zustand: 4.4.1(react@18.3.1) transitivePeerDependencies: - '@types/react' - bufferutil @@ -19723,15 +11184,25 @@ snapshots: - react - utf-8-validate - zod + dev: false - '@wagmi/core@2.8.0(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@6.0.3)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@6.0.3)(zod@3.23.8))(zod@3.23.8)': + /@wagmi/core@2.9.1(react@18.3.1)(typescript@5.4.5)(viem@2.9.31): + resolution: {integrity: sha512-VUILlj0qFmZEa9XpNsYhIaQe3jsJdFGSRSbn+xsvGBo+yZpNxQXuaLo3+ntuv1kTFdw8Qzk17fLGy2U9a0XFdA==} + peerDependencies: + '@tanstack/query-core': '>=5.0.0' + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + '@tanstack/query-core': + optional: true + typescript: + optional: true dependencies: eventemitter3: 5.0.1 - mipd: 0.0.5(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@6.0.3)(zod@3.23.8) - viem: 2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@6.0.3)(zod@3.23.8) - zustand: 4.4.1(@types/react@18.3.5)(react@18.2.0) - optionalDependencies: - typescript: 5.4.3 + mipd: 0.0.5(typescript@5.4.5) + typescript: 5.4.5 + viem: 2.9.31(typescript@5.4.5) + zustand: 4.4.1(react@18.3.1) transitivePeerDependencies: - '@types/react' - bufferutil @@ -19739,24 +11210,26 @@ snapshots: - react - utf-8-validate - zod + dev: false - '@walletconnect/core@2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@walletconnect/core@2.11.2: + resolution: {integrity: sha512-bB4SiXX8hX3/hyBfVPC5gwZCXCl+OPj+/EDVM71iAO3TDsh78KPbrVAbDnnsbHzZVHlsMohtXX3j5XVsheN3+g==} dependencies: '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/jsonrpc-ws-connection': 1.0.14 + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 - '@walletconnect/relay-api': 1.0.9 + '@walletconnect/relay-api': 1.0.10 '@walletconnect/relay-auth': 1.0.4 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.11.2 + '@walletconnect/utils': 2.11.2 events: 3.3.0 - isomorphic-unfetch: 3.1.0(encoding@0.1.13) + isomorphic-unfetch: 3.1.0 lodash.isequal: 4.5.0 uint8arrays: 3.1.1 transitivePeerDependencies: @@ -19774,26 +11247,29 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/core@2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@walletconnect/core@2.12.2: + resolution: {integrity: sha512-7Adv/b3pp9F42BkvReaaM4KS8NEvlkS7AMtwO3uF/o6aRMKtcfTJq9/jgWdKJh4RP8pPRTRFjCw6XQ/RZtT4aQ==} dependencies: '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/jsonrpc-ws-connection': 1.0.14 + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 - '@walletconnect/relay-api': 1.0.9 + '@walletconnect/relay-api': 1.0.10 '@walletconnect/relay-auth': 1.0.4 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.12.2 + '@walletconnect/utils': 2.12.2 events: 3.3.0 - isomorphic-unfetch: 3.1.0(encoding@0.1.13) + isomorphic-unfetch: 3.1.0 lodash.isequal: 4.5.0 uint8arrays: 3.1.1 transitivePeerDependencies: @@ -19811,26 +11287,29 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/core@2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@walletconnect/core@2.13.0: + resolution: {integrity: sha512-blDuZxQenjeXcVJvHxPznTNl6c/2DO4VNrFnus+qHmO6OtT5lZRowdMtlCaCNb1q0OxzgrmBDcTOCbFcCpio/g==} dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/jsonrpc-ws-connection': 1.0.14 + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.10 '@walletconnect/relay-auth': 1.0.4 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.13.0 + '@walletconnect/utils': 2.13.0 events: 3.3.0 - isomorphic-unfetch: 3.1.0(encoding@0.1.13) + isomorphic-unfetch: 3.1.0 lodash.isequal: 4.5.0 uint8arrays: 3.1.0 transitivePeerDependencies: @@ -19848,25 +11327,29 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/core@2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + /@walletconnect/core@2.14.0: + resolution: {integrity: sha512-E/dgBM9q3judXnTfZQ5ILvDpeSdDpabBLsXtYXa3Nyc26cfNplfLJ2nXm9FgtTdhM1nZ7yx4+zDPiXawBRZl2g==} dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/jsonrpc-ws-connection': 1.0.14 + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 - '@walletconnect/relay-api': 1.0.11 + '@walletconnect/relay-api': 1.0.10 '@walletconnect/relay-auth': 1.0.4 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.14.0 + '@walletconnect/utils': 2.14.0 events: 3.3.0 + isomorphic-unfetch: 3.1.0 lodash.isequal: 4.5.0 uint8arrays: 3.1.0 transitivePeerDependencies: @@ -19883,24 +11366,30 @@ snapshots: - '@upstash/redis' - '@vercel/kv' - bufferutil - - supports-color + - encoding + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/environment@1.0.1': + /@walletconnect/environment@1.0.1: + resolution: {integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==} dependencies: tslib: 1.14.1 + dev: false - '@walletconnect/ethereum-provider@2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)': + /@walletconnect/ethereum-provider@2.11.2(react@18.3.1): + resolution: {integrity: sha512-BUDqee0Uy2rCZVkW5Ao3q6Ado/3fePYnFdryVF+YL6bPhj+xQZ5OfKodl+uvs7Rwq++O5wTX2RqOTzpW7+v+Mg==} dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.7(encoding@0.1.13) + '@walletconnect/jsonrpc-http-connection': 1.0.7 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/modal': 2.6.2(@types/react@18.3.5)(react@18.2.0) - '@walletconnect/sign-client': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/universal-provider': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/utils': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/modal': 2.6.2(react@18.3.1) + '@walletconnect/sign-client': 2.11.2 + '@walletconnect/types': 2.11.2 + '@walletconnect/universal-provider': 2.11.2 + '@walletconnect/utils': 2.11.2 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -19918,21 +11407,24 @@ snapshots: - '@vercel/kv' - bufferutil - encoding + - ioredis - react - - supports-color + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/ethereum-provider@2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)': + /@walletconnect/ethereum-provider@2.12.2(react@18.3.1): + resolution: {integrity: sha512-vBl2zCnNm2iPaomJdr5YT16cT7aa8cH2WFs6879XPngU5i7HXS3bU6TamhyhKKl13sdIfifmCkCC+RWn5GdPMw==} dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.7(encoding@0.1.13) + '@walletconnect/jsonrpc-http-connection': 1.0.7 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/modal': 2.6.2(@types/react@18.3.5)(react@18.2.0) - '@walletconnect/sign-client': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/universal-provider': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/utils': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/modal': 2.6.2(react@18.3.1) + '@walletconnect/sign-client': 2.12.2 + '@walletconnect/types': 2.12.2 + '@walletconnect/universal-provider': 2.12.2 + '@walletconnect/utils': 2.12.2 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -19950,21 +11442,24 @@ snapshots: - '@vercel/kv' - bufferutil - encoding + - ioredis - react - - supports-color + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/ethereum-provider@2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)': + /@walletconnect/ethereum-provider@2.13.0(react@18.3.1): + resolution: {integrity: sha512-dnpW8mmLpWl1AZUYGYZpaAfGw1HFkL0WSlhk5xekx3IJJKn4pLacX2QeIOo0iNkzNQxZfux1AK4Grl1DvtzZEA==} dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) + '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/modal': 2.6.2(@types/react@18.3.5)(react@18.2.0) - '@walletconnect/sign-client': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/universal-provider': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/utils': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/modal': 2.6.2(react@18.3.1) + '@walletconnect/sign-client': 2.13.0 + '@walletconnect/types': 2.13.0 + '@walletconnect/universal-provider': 2.13.0 + '@walletconnect/utils': 2.13.0 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -19982,21 +11477,24 @@ snapshots: - '@vercel/kv' - bufferutil - encoding + - ioredis - react - - supports-color + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/ethereum-provider@2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)': + /@walletconnect/ethereum-provider@2.14.0(react@18.3.1): + resolution: {integrity: sha512-Cc2/DCn85VciA10BrsNWFM//3VC1D8yjwrjfUKjGndLPDz0YIdAxTgYZViIlMjE0lzQC/DMvPYEAnGfW0O1Bwg==} dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) + '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/modal': 2.6.2(@types/react@18.3.5)(react@18.2.0) - '@walletconnect/sign-client': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/universal-provider': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/utils': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/modal': 2.6.2(react@18.3.1) + '@walletconnect/sign-client': 2.14.0 + '@walletconnect/types': 2.14.0 + '@walletconnect/universal-provider': 2.14.0 + '@walletconnect/utils': 2.14.0 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20014,90 +11512,118 @@ snapshots: - '@vercel/kv' - bufferutil - encoding + - ioredis - react - - supports-color + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/events@1.0.1': + /@walletconnect/events@1.0.1: + resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==} dependencies: keyvaluestorage-interface: 1.0.0 tslib: 1.14.1 + dev: false - '@walletconnect/heartbeat@1.2.1': + /@walletconnect/heartbeat@1.2.1: + resolution: {integrity: sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==} dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/time': 1.0.2 tslib: 1.14.1 + dev: false - '@walletconnect/heartbeat@1.2.2': + /@walletconnect/heartbeat@1.2.2: + resolution: {integrity: sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==} dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/time': 1.0.2 events: 3.3.0 + dev: false - '@walletconnect/jsonrpc-http-connection@1.0.7(encoding@0.1.13)': + /@walletconnect/jsonrpc-http-connection@1.0.7: + resolution: {integrity: sha512-qlfh8fCfu8LOM9JRR9KE0s0wxP6ZG9/Jom8M0qsoIQeKF3Ni0FyV4V1qy/cc7nfI46SLQLSl4tgWSfLiE1swyQ==} dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 - cross-fetch: 3.1.8(encoding@0.1.13) + cross-fetch: 3.1.8 tslib: 1.14.1 transitivePeerDependencies: - encoding + dev: false - '@walletconnect/jsonrpc-http-connection@1.0.8(encoding@0.1.13)': + /@walletconnect/jsonrpc-http-connection@1.0.8: + resolution: {integrity: sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==} dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 - cross-fetch: 3.1.8(encoding@0.1.13) + cross-fetch: 3.1.8 events: 3.3.0 transitivePeerDependencies: - encoding + dev: false - '@walletconnect/jsonrpc-provider@1.0.13': + /@walletconnect/jsonrpc-provider@1.0.13: + resolution: {integrity: sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==} dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 tslib: 1.14.1 + dev: false - '@walletconnect/jsonrpc-provider@1.0.14': + /@walletconnect/jsonrpc-provider@1.0.14: + resolution: {integrity: sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==} dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 events: 3.3.0 + dev: false - '@walletconnect/jsonrpc-types@1.0.3': + /@walletconnect/jsonrpc-types@1.0.3: + resolution: {integrity: sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==} dependencies: keyvaluestorage-interface: 1.0.0 tslib: 1.14.1 + dev: false - '@walletconnect/jsonrpc-types@1.0.4': + /@walletconnect/jsonrpc-types@1.0.4: + resolution: {integrity: sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==} dependencies: events: 3.3.0 keyvaluestorage-interface: 1.0.0 + dev: false - '@walletconnect/jsonrpc-utils@1.0.8': + /@walletconnect/jsonrpc-utils@1.0.8: + resolution: {integrity: sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==} dependencies: '@walletconnect/environment': 1.0.1 '@walletconnect/jsonrpc-types': 1.0.3 tslib: 1.14.1 + dev: false - '@walletconnect/jsonrpc-ws-connection@1.0.14(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + /@walletconnect/jsonrpc-ws-connection@1.0.14: + resolution: {integrity: sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==} dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 events: 3.3.0 - ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.9 transitivePeerDependencies: - bufferutil - utf-8-validate + dev: false - '@walletconnect/keyvaluestorage@1.1.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/keyvaluestorage@1.1.1: + resolution: {integrity: sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==} + peerDependencies: + '@react-native-async-storage/async-storage': 1.x + peerDependenciesMeta: + '@react-native-async-storage/async-storage': + optional: true dependencies: '@walletconnect/safe-json': 1.0.2 idb-keyval: 6.2.1 - unstorage: 1.10.1(idb-keyval@6.2.1) - optionalDependencies: - '@react-native-async-storage/async-storage': 1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)) + unstorage: 1.10.2(idb-keyval@6.2.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -20110,52 +11636,56 @@ snapshots: - '@planetscale/database' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/logger@2.1.2': + /@walletconnect/logger@2.1.2: + resolution: {integrity: sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==} dependencies: '@walletconnect/safe-json': 1.0.2 pino: 7.11.0 + dev: false - '@walletconnect/modal-core@2.6.2(@types/react@18.3.5)(react@18.2.0)': + /@walletconnect/modal-core@2.6.2(react@18.3.1): + resolution: {integrity: sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==} dependencies: - valtio: 1.11.2(@types/react@18.3.5)(react@18.2.0) + valtio: 1.11.2(react@18.3.1) transitivePeerDependencies: - '@types/react' - react + dev: false - '@walletconnect/modal-ui@2.6.2(@types/react@18.3.5)(react@18.2.0)': + /@walletconnect/modal-ui@2.6.2(react@18.3.1): + resolution: {integrity: sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==} dependencies: - '@walletconnect/modal-core': 2.6.2(@types/react@18.3.5)(react@18.2.0) + '@walletconnect/modal-core': 2.6.2(react@18.3.1) lit: 2.8.0 motion: 10.16.2 qrcode: 1.5.3 transitivePeerDependencies: - '@types/react' - react + dev: false - '@walletconnect/modal@2.6.2(@types/react@18.3.5)(react@18.2.0)': + /@walletconnect/modal@2.6.2(react@18.3.1): + resolution: {integrity: sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==} dependencies: - '@walletconnect/modal-core': 2.6.2(@types/react@18.3.5)(react@18.2.0) - '@walletconnect/modal-ui': 2.6.2(@types/react@18.3.5)(react@18.2.0) + '@walletconnect/modal-core': 2.6.2(react@18.3.1) + '@walletconnect/modal-ui': 2.6.2(react@18.3.1) transitivePeerDependencies: - '@types/react' - react + dev: false - '@walletconnect/relay-api@1.0.10': - dependencies: - '@walletconnect/jsonrpc-types': 1.0.4 - - '@walletconnect/relay-api@1.0.11': - dependencies: - '@walletconnect/jsonrpc-types': 1.0.4 - - '@walletconnect/relay-api@1.0.9': + /@walletconnect/relay-api@1.0.10: + resolution: {integrity: sha512-tqrdd4zU9VBNqUaXXQASaexklv6A54yEyQQEXYOCr+Jz8Ket0dmPBDyg19LVSNUN2cipAghQc45/KVmfFJ0cYw==} dependencies: '@walletconnect/jsonrpc-types': 1.0.3 - tslib: 1.14.1 + dev: false - '@walletconnect/relay-auth@1.0.4': + /@walletconnect/relay-auth@1.0.4: + resolution: {integrity: sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==} dependencies: '@stablelib/ed25519': 1.0.3 '@stablelib/random': 1.0.2 @@ -20163,21 +11693,25 @@ snapshots: '@walletconnect/time': 1.0.2 tslib: 1.14.1 uint8arrays: 3.1.1 + dev: false - '@walletconnect/safe-json@1.0.2': + /@walletconnect/safe-json@1.0.2: + resolution: {integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==} dependencies: tslib: 1.14.1 + dev: false - '@walletconnect/sign-client@2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@walletconnect/sign-client@2.11.2: + resolution: {integrity: sha512-MfBcuSz2GmMH+P7MrCP46mVE5qhP0ZyWA0FyIH6/WuxQ6G+MgKsGfaITqakpRPsykWOJq8tXMs3XvUPDU413OQ==} dependencies: - '@walletconnect/core': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/core': 2.11.2 '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.11.2 + '@walletconnect/utils': 2.11.2 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20194,19 +11728,22 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/sign-client@2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@walletconnect/sign-client@2.12.2: + resolution: {integrity: sha512-cM0ualXj6nVvLqS4BDNRk+ZWR+lubcsz/IHreH+3wYrQ2sV+C0fN6ctrd7MMGZss0C0qacWCx0pm62ZBuoKvqA==} dependencies: - '@walletconnect/core': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/core': 2.12.2 '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.12.2 + '@walletconnect/utils': 2.12.2 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20223,19 +11760,22 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/sign-client@2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@walletconnect/sign-client@2.13.0: + resolution: {integrity: sha512-En7KSvNUlQFx20IsYGsFgkNJ2lpvDvRsSFOT5PTdGskwCkUfOpB33SQJ6nCrN19gyoKPNvWg80Cy6MJI0TjNYA==} dependencies: - '@walletconnect/core': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@walletconnect/core': 2.13.0 '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.13.0 + '@walletconnect/utils': 2.13.0 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20252,19 +11792,22 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/sign-client@2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + /@walletconnect/sign-client@2.14.0: + resolution: {integrity: sha512-UrB3S3eLjPYfBLCN3WJ5u7+WcZ8kFMe/QIDqLf76Jk6TaLwkSUy563LvnSw4KW/kA+/cY1KBSdUDfX1tzYJJXg==} dependencies: - '@walletconnect/core': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@walletconnect/core': 2.14.0 '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.14.0 + '@walletconnect/utils': 2.14.0 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20280,19 +11823,25 @@ snapshots: - '@upstash/redis' - '@vercel/kv' - bufferutil - - supports-color + - encoding + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/time@1.0.2': + /@walletconnect/time@1.0.2: + resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==} dependencies: tslib: 1.14.1 + dev: false - '@walletconnect/types@2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/types@2.11.2: + resolution: {integrity: sha512-p632MFB+lJbip2cvtXPBQslpUdiw1sDtQ5y855bOlAGquay+6fZ4h1DcDePeKQDQM3P77ax2a9aNPZxV6y/h1Q==} dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -20308,14 +11857,17 @@ snapshots: - '@react-native-async-storage/async-storage' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/types@2.12.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/types@2.12.0: + resolution: {integrity: sha512-uhB3waGmujQVJcPgJvGOpB8RalgYSBT+HpmVbfl4Qe0xJyqpRUo4bPjQa0UYkrHaW20xIw94OuP4+FMLYdeemg==} dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -20331,14 +11883,17 @@ snapshots: - '@react-native-async-storage/async-storage' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/types@2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/types@2.12.2: + resolution: {integrity: sha512-9CmwTlPbrFTzayTL9q7xM7s3KTJkS6kYFtH2m1/fHFgALs6pIUjf1qAx1TF2E4tv7SEzLAIzU4NqgYUt2vWXTg==} dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.1 '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -20354,14 +11909,17 @@ snapshots: - '@react-native-async-storage/async-storage' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/types@2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/types@2.13.0: + resolution: {integrity: sha512-MWaVT0FkZwzYbD3tvk8F+2qpPlz1LUSWHuqbINUtMXnSzJtXN49Y99fR7FuBhNFtDalfuWsEK17GrNA+KnAsPQ==} dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -20377,14 +11935,17 @@ snapshots: - '@react-native-async-storage/async-storage' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/types@2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/types@2.14.0: + resolution: {integrity: sha512-vevMi4jZLJ55vLuFOicQFmBBbLyb+S0sZS4IsaBdZkQflfGIq34HkN13c/KPl4Ye0aoR4/cUcUSitmGIzEQM5g==} dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1 '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -20400,18 +11961,21 @@ snapshots: - '@react-native-async-storage/async-storage' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/universal-provider@2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@walletconnect/universal-provider@2.11.2: + resolution: {integrity: sha512-cNtIn5AVoDxKAJ4PmB8m5adnf5mYQMUamEUPKMVvOPscfGtIMQEh9peKsh2AN5xcRVDbgluC01Id545evFyymw==} dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.7(encoding@0.1.13) + '@walletconnect/jsonrpc-http-connection': 1.0.7 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/sign-client': 2.11.2 + '@walletconnect/types': 2.11.2 + '@walletconnect/utils': 2.11.2 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20428,19 +11992,22 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/universal-provider@2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@walletconnect/universal-provider@2.12.2: + resolution: {integrity: sha512-0k5ZgSkABopQLVhkiwl2gRGG7dAP4SWiI915pIlyN5sRvWV+qX1ALhWAmRcdv0TXWlKHDcDgPJw/q2sCSAHuMQ==} dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.7(encoding@0.1.13) + '@walletconnect/jsonrpc-http-connection': 1.0.7 '@walletconnect/jsonrpc-provider': 1.0.13 '@walletconnect/jsonrpc-types': 1.0.3 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/sign-client': 2.12.2 + '@walletconnect/types': 2.12.2 + '@walletconnect/utils': 2.12.2 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20457,19 +12024,22 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/universal-provider@2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@walletconnect/universal-provider@2.13.0: + resolution: {integrity: sha512-B5QvO8pnk5Bqn4aIt0OukGEQn2Auk9VbHfhQb9cGwgmSCd1GlprX/Qblu4gyT5+TjHMb1Gz5UssUaZWTWbDhBg==} dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) + '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/sign-client': 2.13.0 + '@walletconnect/types': 2.13.0 + '@walletconnect/utils': 2.13.0 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20486,19 +12056,22 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/universal-provider@2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10)': + /@walletconnect/universal-provider@2.14.0: + resolution: {integrity: sha512-Mr8uoTmD6H0+Hh+3gxBu4l3T2uP/nNPR02sVtwEujNum++F727mMk+ifPRIpkVo21V/bvXFEy8sHTs5hqyq5iA==} dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) + '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/sign-client': 2.14.0 + '@walletconnect/types': 2.14.0 + '@walletconnect/utils': 2.14.0 events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20515,20 +12088,23 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@walletconnect/utils@2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/utils@2.11.2: + resolution: {integrity: sha512-LyfdmrnZY6dWqlF4eDrx5jpUwsB2bEPjoqR5Z6rXPiHJKUOdJt7az+mNOn5KTSOlRpd1DmozrBrWr+G9fFLYVw==} dependencies: '@stablelib/chacha20poly1305': 1.0.1 '@stablelib/hkdf': 1.0.1 '@stablelib/random': 1.0.2 '@stablelib/sha256': 1.0.1 '@stablelib/x25519': 1.0.3 - '@walletconnect/relay-api': 1.0.9 + '@walletconnect/relay-api': 1.0.10 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.11.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.11.2 '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 detect-browser: 5.3.0 @@ -20547,9 +12123,12 @@ snapshots: - '@react-native-async-storage/async-storage' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/utils@2.12.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/utils@2.12.0: + resolution: {integrity: sha512-GIpfHUe1Bjp1Tjda0SkJEizKOT2biuv7VPFnKsOLT1T+8QxEP9NruC+K2UUEvijS1Qr/LKH9P5004RYNgrch+w==} dependencies: '@stablelib/chacha20poly1305': 1.0.1 '@stablelib/hkdf': 1.0.1 @@ -20559,7 +12138,7 @@ snapshots: '@walletconnect/relay-api': 1.0.10 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.12.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.12.0 '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 detect-browser: 5.3.0 @@ -20578,19 +12157,22 @@ snapshots: - '@react-native-async-storage/async-storage' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/utils@2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/utils@2.12.2: + resolution: {integrity: sha512-zf50HeS3SfoLv1N9GPl2IXTZ9TsXfet4usVAsZmX9P6/Xzq7d/7QakjVQCHH/Wk1O9XkcsfeoZoUhRxoMJ5uJw==} dependencies: '@stablelib/chacha20poly1305': 1.0.1 '@stablelib/hkdf': 1.0.1 '@stablelib/random': 1.0.2 '@stablelib/sha256': 1.0.1 '@stablelib/x25519': 1.0.3 - '@walletconnect/relay-api': 1.0.9 + '@walletconnect/relay-api': 1.0.10 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.12.2(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.12.2 '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 detect-browser: 5.3.0 @@ -20609,9 +12191,12 @@ snapshots: - '@react-native-async-storage/async-storage' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/utils@2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/utils@2.13.0: + resolution: {integrity: sha512-q1eDCsRHj5iLe7fF8RroGoPZpdo2CYMZzQSrw1iqL+2+GOeqapxxuJ1vaJkmDUkwgklfB22ufqG6KQnz78sD4w==} dependencies: '@stablelib/chacha20poly1305': 1.0.1 '@stablelib/hkdf': 1.0.1 @@ -20621,7 +12206,7 @@ snapshots: '@walletconnect/relay-api': 1.0.10 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.13.0 '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 detect-browser: 5.3.0 @@ -20640,24 +12225,25 @@ snapshots: - '@react-native-async-storage/async-storage' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/utils@2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))': + /@walletconnect/utils@2.14.0: + resolution: {integrity: sha512-vRVomYQEtEAyCK2c5bzzEvtgxaGGITF8mWuIL+WYSAMyEJLY97mirP2urDucNwcUczwxUgI+no9RiNFbUHreQQ==} dependencies: '@stablelib/chacha20poly1305': 1.0.1 '@stablelib/hkdf': 1.0.1 '@stablelib/random': 1.0.2 '@stablelib/sha256': 1.0.1 '@stablelib/x25519': 1.0.3 - '@walletconnect/relay-api': 1.0.11 - '@walletconnect/relay-auth': 1.0.4 + '@walletconnect/relay-api': 1.0.10 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.16.1(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.14.0 '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 detect-browser: 5.3.0 - elliptic: 6.5.7 query-string: 7.1.3 uint8arrays: 3.1.0 transitivePeerDependencies: @@ -20673,73 +12259,108 @@ snapshots: - '@react-native-async-storage/async-storage' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@walletconnect/window-getters@1.0.1': + /@walletconnect/window-getters@1.0.1: + resolution: {integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==} dependencies: tslib: 1.14.1 + dev: false - '@walletconnect/window-metadata@1.0.1': + /@walletconnect/window-metadata@1.0.1: + resolution: {integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==} dependencies: '@walletconnect/window-getters': 1.0.1 tslib: 1.14.1 + dev: false - '@web3modal/common@4.1.11': + /@web3modal/common@4.1.11: + resolution: {integrity: sha512-zcoaixcI3dLC/D0QlhpT8MNCd717O1/3r1AemC5/9Wbk2F+YKXkzJZHmWlXoTvlTw9DH07rJzs9YTPxFyn855w==} dependencies: bignumber.js: 9.1.2 dayjs: 1.11.10 + dev: false - '@web3modal/common@4.2.3': + /@web3modal/common@4.2.3: + resolution: {integrity: sha512-n0lvhoRjViqxmkgpy+iEM6E3HBylUgdxUDJU4hUxGmmrbGZGEP7USBRnQOEgXLqLCtWvxKjUAO33JBV/De+Osw==} dependencies: bignumber.js: 9.1.2 dayjs: 1.11.10 + dev: false - '@web3modal/common@5.1.8': + /@web3modal/common@5.0.11: + resolution: {integrity: sha512-xI6FKrk4/TofM27e0R5F0e7OWMa0YECJshITgFVrX57ZPbgw0O8bTTgLa0yxYG3A5xMnuz6dOYjAAQV+EXrr9w==} dependencies: bignumber.js: 9.1.2 dayjs: 1.11.10 + dev: false - '@web3modal/core@4.1.11(@types/react@18.3.5)(react@18.2.0)': + /@web3modal/core@4.1.11(react@18.3.1): + resolution: {integrity: sha512-e475IIWywEtgH1CCB2Pl1C/wgPu0NzAvtTMOPSGNoHsw1ID2n6j/o4CURQb2HJjOoYQjTKKVkzXa44vFh2p9xw==} dependencies: '@web3modal/common': 4.1.11 '@web3modal/wallet': 4.1.11 - valtio: 1.11.2(@types/react@18.3.5)(react@18.2.0) + valtio: 1.11.2(react@18.3.1) transitivePeerDependencies: - '@types/react' - react + dev: false - '@web3modal/core@4.2.3(@types/react@18.3.5)(react@18.2.0)': + /@web3modal/core@4.2.3(react@18.3.1): + resolution: {integrity: sha512-UykKZTELBpb6ey+IV6fkHWsLkjrIdILmRYzhlznyTPbm9qX5pOR9tH0Z3QGUo7YPFmUqMRH1tC9Irsr3SgIbbw==} dependencies: '@web3modal/common': 4.2.3 '@web3modal/wallet': 4.2.3 - valtio: 1.11.2(@types/react@18.3.5)(react@18.2.0) + valtio: 1.11.2(react@18.3.1) transitivePeerDependencies: - '@types/react' - react + dev: false - '@web3modal/polyfills@4.1.11': + /@web3modal/polyfills@4.1.11: + resolution: {integrity: sha512-+aMmjGrLCKLo4gVAdWgFdOX2ZjExciSLw/YlZ01wLO8Yj3bZbCZ7sjBc9xndHOVMK0QyUzBtpCOpYMJzi+59jg==} dependencies: buffer: 6.0.3 + dev: false - '@web3modal/polyfills@4.2.3': + /@web3modal/polyfills@4.2.3: + resolution: {integrity: sha512-RiGxh2hMLSD1s2aTjoejNK/UL377CJhGf5tzmdF1m5xsYHpil+Dnulpio8Yojnm27cOqQD+QiaYUKnHOxErLjQ==} dependencies: buffer: 6.0.3 + dev: false - '@web3modal/scaffold-react@4.1.11(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + /@web3modal/scaffold-react@4.1.11(react@18.3.1): + resolution: {integrity: sha512-vouJHj77ZNKvR/Uyb3Hfc2UFSA4ZrrHmA0vbioCbgIh+V1rYT5XcAZDEu4AAo1qJ5NBRU1pkClVwAmQuWGY43w==} + peerDependencies: + react: '>=17' + react-dom: '>=17' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true dependencies: - '@web3modal/scaffold': 4.1.11(@types/react@18.3.5)(react@18.2.0) - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@web3modal/scaffold': 4.1.11(react@18.3.1) + react: 18.3.1 transitivePeerDependencies: - '@types/react' + dev: false - '@web3modal/scaffold-react@4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + /@web3modal/scaffold-react@4.2.3(react@18.3.1): + resolution: {integrity: sha512-WRA244mO3qa9wnJtRa+mfXHkfW92VEkEt+HagLQuUcSRTQJH0Q95UF+EXZZ/r1mKbqdqIbpguewuF0dRtL/YrQ==} + peerDependencies: + react: '>=17' + react-dom: '>=17' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true dependencies: - '@web3modal/scaffold': 4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react@18.2.0) - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@web3modal/scaffold': 4.2.3(react@18.3.1) + react: 18.3.1 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -20754,36 +12375,55 @@ snapshots: - '@types/react' - '@upstash/redis' - '@vercel/kv' - - supports-color + - ioredis + - uWebSockets.js + dev: false - '@web3modal/scaffold-utils@4.1.11(@types/react@18.3.5)(react@18.2.0)': + /@web3modal/scaffold-utils@4.1.11(react@18.3.1): + resolution: {integrity: sha512-nsS9yK5tp1N/VfecLLPc8H/dGJCzn0jElWjRS92VfGPhOSiEh5PIrPyCl9o6wUZsp4fH1YUsoSY2EFpPsuCWgw==} dependencies: - '@web3modal/core': 4.1.11(@types/react@18.3.5)(react@18.2.0) + '@web3modal/core': 4.1.11(react@18.3.1) '@web3modal/polyfills': 4.1.11 - valtio: 1.11.2(@types/react@18.3.5)(react@18.2.0) + valtio: 1.11.2(react@18.3.1) transitivePeerDependencies: - '@types/react' - react + dev: false - '@web3modal/scaffold-utils@4.2.3(@types/react@18.3.5)(react@18.2.0)': + /@web3modal/scaffold-utils@4.2.3(react@18.3.1): + resolution: {integrity: sha512-z6t0ggYg1/8hpaKHUm77z2VyacjIZEZTI8IHSQYmHuRFGu5oDPJeAr1thr475JXdoGLYr08hwquZyed/ZINAvw==} dependencies: - '@web3modal/core': 4.2.3(@types/react@18.3.5)(react@18.2.0) + '@web3modal/core': 4.2.3(react@18.3.1) '@web3modal/polyfills': 4.2.3 - valtio: 1.11.2(@types/react@18.3.5)(react@18.2.0) + valtio: 1.11.2(react@18.3.1) transitivePeerDependencies: - '@types/react' - react + dev: false - '@web3modal/scaffold-vue@4.1.11(@types/react@18.3.5)(react@18.2.0)': + /@web3modal/scaffold-vue@4.1.11(react@18.3.1): + resolution: {integrity: sha512-PmIfD2TlKkZZa6V0sqwDtZ7t62BEk5JjCHd380QaZwGTbPEwS99leTWLKBTaxAPShK2p7+aj2Txss63wIXLRFg==} + peerDependencies: + vue: '>=3' + peerDependenciesMeta: + vue: + optional: true dependencies: - '@web3modal/scaffold': 4.1.11(@types/react@18.3.5)(react@18.2.0) + '@web3modal/scaffold': 4.1.11(react@18.3.1) transitivePeerDependencies: - '@types/react' - react + dev: false - '@web3modal/scaffold-vue@4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react@18.2.0)': + /@web3modal/scaffold-vue@4.2.3(react@18.3.1): + resolution: {integrity: sha512-0mlx/t0A7srcuFcxP3xuUt2ACFUUcAhyRIsNImtQHPq7QHx7i5zvabQ38iplDsWS0TA7j83hW5gxHycppa5PXg==} + peerDependencies: + vue: '>=3' + peerDependenciesMeta: + vue: + optional: true dependencies: - '@web3modal/scaffold': 4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react@18.2.0) + '@web3modal/scaffold': 4.2.3(react@18.3.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -20798,26 +12438,31 @@ snapshots: - '@types/react' - '@upstash/redis' - '@vercel/kv' + - ioredis - react - - supports-color + - uWebSockets.js + dev: false - '@web3modal/scaffold@4.1.11(@types/react@18.3.5)(react@18.2.0)': + /@web3modal/scaffold@4.1.11(react@18.3.1): + resolution: {integrity: sha512-n8bP3cJNQxV8OD3s8bSj8QDbZvjn8a1Ui81jo2a3rIxOUAlD/cKRM8ivmNxiUdBMae8GP5CLiWtkIptmSLw40Q==} dependencies: '@web3modal/common': 4.1.11 - '@web3modal/core': 4.1.11(@types/react@18.3.5)(react@18.2.0) - '@web3modal/siwe': 4.1.11(@types/react@18.3.5)(react@18.2.0) + '@web3modal/core': 4.1.11(react@18.3.1) + '@web3modal/siwe': 4.1.11(react@18.3.1) '@web3modal/ui': 4.1.11 '@web3modal/wallet': 4.1.11 lit: 3.1.0 transitivePeerDependencies: - '@types/react' - react + dev: false - '@web3modal/scaffold@4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react@18.2.0)': + /@web3modal/scaffold@4.2.3(react@18.3.1): + resolution: {integrity: sha512-8K+IV+luDUvppKgmlgdA+RbQGT2STdRrgHVHFRsAqsORFoLiIYvlrpQlxvV7J5Xc1bgKEn3KvEXC+BH2NMqF4w==} dependencies: '@web3modal/common': 4.2.3 - '@web3modal/core': 4.2.3(@types/react@18.3.5)(react@18.2.0) - '@web3modal/siwe': 4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react@18.2.0) + '@web3modal/core': 4.2.3(react@18.3.1) + '@web3modal/siwe': 4.2.3(react@18.3.1) '@web3modal/ui': 4.2.3 '@web3modal/wallet': 4.2.3 lit: 3.1.0 @@ -20835,26 +12480,31 @@ snapshots: - '@types/react' - '@upstash/redis' - '@vercel/kv' + - ioredis - react - - supports-color + - uWebSockets.js + dev: false - '@web3modal/siwe@4.1.11(@types/react@18.3.5)(react@18.2.0)': + /@web3modal/siwe@4.1.11(react@18.3.1): + resolution: {integrity: sha512-gndcNA351mkAR0wUsO4dLS9CbpcFo+AQ2CUXF0Jx83DwaBStCVsX3yllfnYKh/gpVetF3B48mRUt9TTTJJ79dA==} dependencies: - '@web3modal/core': 4.1.11(@types/react@18.3.5)(react@18.2.0) - '@web3modal/scaffold-utils': 4.1.11(@types/react@18.3.5)(react@18.2.0) + '@web3modal/core': 4.1.11(react@18.3.1) + '@web3modal/scaffold-utils': 4.1.11(react@18.3.1) lit: 3.1.0 - valtio: 1.11.2(@types/react@18.3.5)(react@18.2.0) + valtio: 1.11.2(react@18.3.1) transitivePeerDependencies: - '@types/react' - react + dev: false - '@web3modal/siwe@4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react@18.2.0)': + /@web3modal/siwe@4.2.3(react@18.3.1): + resolution: {integrity: sha512-uPma0U/OxAy3LwnF7pCYYX8tn+ONBYNcssuVZxEGsusJD1kF4ueS8lK7eyQogyK5nXqOGdNESOjY1NImNNjMVw==} dependencies: - '@walletconnect/utils': 2.12.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))) - '@web3modal/core': 4.2.3(@types/react@18.3.5)(react@18.2.0) - '@web3modal/scaffold-utils': 4.2.3(@types/react@18.3.5)(react@18.2.0) + '@walletconnect/utils': 2.12.0 + '@web3modal/core': 4.2.3(react@18.3.1) + '@web3modal/scaffold-utils': 4.2.3(react@18.3.1) lit: 3.1.0 - valtio: 1.11.2(@types/react@18.3.5)(react@18.2.0) + valtio: 1.11.2(react@18.3.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -20869,68 +12519,115 @@ snapshots: - '@types/react' - '@upstash/redis' - '@vercel/kv' + - ioredis - react - - supports-color + - uWebSockets.js + dev: false - '@web3modal/ui@4.1.11': + /@web3modal/ui@4.1.11: + resolution: {integrity: sha512-lentHZvUpNjVasvNI8/jrVPIAV1M5zJKZ4Q4AeYwUJdEtlRon1uq10MRylmvlZAjWb98U130uJy245Fz87Th/w==} dependencies: lit: 3.1.0 qrcode: 1.5.3 + dev: false - '@web3modal/ui@4.2.3': + /@web3modal/ui@4.2.3: + resolution: {integrity: sha512-QPPgE0hii1gpAldTdnrP63D/ryI78Ohz99zRBp8vi81lawot7rbdUbryMoX13hMPCW9vW7JYyvX+jJN7uO3QwA==} dependencies: lit: 3.1.0 qrcode: 1.5.3 + dev: false - '@web3modal/wagmi@4.1.11(7bejpi3a2bqeihrssz3xbwxki4)': + /@web3modal/wagmi@4.1.11(@wagmi/connectors@4.3.3)(@wagmi/core@2.9.1)(react@18.3.1)(viem@2.18.8): + resolution: {integrity: sha512-VoXV9idD0yV7jx0F2Xk722VXqQNCDKqDc+LR8WsuOU64TiTLJx9UDQpNcoigbC3bYCi/4Cpw41iSGgs7utbgyQ==} + peerDependencies: + '@wagmi/connectors': '>=4.0.0' + '@wagmi/core': '>=2.0.0' + react: '>=17' + react-dom: '>=17' + viem: '>=2.0.0' + vue: '>=3' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + vue: + optional: true dependencies: - '@wagmi/connectors': 4.1.18(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(@wagmi/core@2.8.0(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) - '@wagmi/core': 2.8.0(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + '@wagmi/connectors': 4.3.3(@wagmi/core@2.9.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.18.8) + '@wagmi/core': 2.9.1(react@18.3.1)(typescript@5.4.5)(viem@2.18.8) '@web3modal/polyfills': 4.1.11 - '@web3modal/scaffold': 4.1.11(@types/react@18.3.5)(react@18.2.0) - '@web3modal/scaffold-react': 4.1.11(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@web3modal/scaffold-utils': 4.1.11(@types/react@18.3.5)(react@18.2.0) - '@web3modal/scaffold-vue': 4.1.11(@types/react@18.3.5)(react@18.2.0) - '@web3modal/siwe': 4.1.11(@types/react@18.3.5)(react@18.2.0) - viem: 2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@web3modal/scaffold': 4.1.11(react@18.3.1) + '@web3modal/scaffold-react': 4.1.11(react@18.3.1) + '@web3modal/scaffold-utils': 4.1.11(react@18.3.1) + '@web3modal/scaffold-vue': 4.1.11(react@18.3.1) + '@web3modal/siwe': 4.1.11(react@18.3.1) + react: 18.3.1 + viem: 2.18.8(typescript@5.4.5)(zod@3.23.6) transitivePeerDependencies: - '@types/react' + dev: false - '@web3modal/wagmi@4.1.11(@types/react@18.3.5)(@wagmi/connectors@4.3.10(vnbhrjghrun7rfuxsawo7otej4))(@wagmi/core@2.10.2(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8))': + /@web3modal/wagmi@4.1.11(@wagmi/connectors@4.3.3)(@wagmi/core@2.9.1)(react@18.3.1)(viem@2.9.31): + resolution: {integrity: sha512-VoXV9idD0yV7jx0F2Xk722VXqQNCDKqDc+LR8WsuOU64TiTLJx9UDQpNcoigbC3bYCi/4Cpw41iSGgs7utbgyQ==} + peerDependencies: + '@wagmi/connectors': '>=4.0.0' + '@wagmi/core': '>=2.0.0' + react: '>=17' + react-dom: '>=17' + viem: '>=2.0.0' + vue: '>=3' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + vue: + optional: true dependencies: - '@wagmi/connectors': 4.3.10(vnbhrjghrun7rfuxsawo7otej4) - '@wagmi/core': 2.10.2(@types/react@18.3.5)(bufferutil@4.0.8)(react@18.2.0)(typescript@5.4.3)(utf-8-validate@5.0.10)(viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) + '@wagmi/connectors': 4.3.3(@wagmi/core@2.9.1)(react-i18next@13.5.0)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.9.31) + '@wagmi/core': 2.9.1(react@18.3.1)(typescript@5.4.5)(viem@2.9.31) '@web3modal/polyfills': 4.1.11 - '@web3modal/scaffold': 4.1.11(@types/react@18.3.5)(react@18.2.0) - '@web3modal/scaffold-react': 4.1.11(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@web3modal/scaffold-utils': 4.1.11(@types/react@18.3.5)(react@18.2.0) - '@web3modal/scaffold-vue': 4.1.11(@types/react@18.3.5)(react@18.2.0) - '@web3modal/siwe': 4.1.11(@types/react@18.3.5)(react@18.2.0) - viem: 2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8) - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@web3modal/scaffold': 4.1.11(react@18.3.1) + '@web3modal/scaffold-react': 4.1.11(react@18.3.1) + '@web3modal/scaffold-utils': 4.1.11(react@18.3.1) + '@web3modal/scaffold-vue': 4.1.11(react@18.3.1) + '@web3modal/siwe': 4.1.11(react@18.3.1) + react: 18.3.1 + viem: 2.9.31(typescript@5.4.5) transitivePeerDependencies: - '@types/react' + dev: false - '@web3modal/wagmi@4.2.3(hoyagxhmve75vyxjsj4tjya6zm)': + /@web3modal/wagmi@4.2.3(@wagmi/connectors@5.1.2)(@wagmi/core@2.13.1)(react@18.3.1)(viem@2.18.8): + resolution: {integrity: sha512-oisBCMrOYn8TBgNaSPrumvMmTGox6+3Ii92zxQJalW5U/K9iBTxoejHT033Ss7mFEFybilcfXBAvGNFXfQmtkA==} + peerDependencies: + '@wagmi/connectors': '>=4' + '@wagmi/core': '>=2.0.0' + react: '>=17' + react-dom: '>=17' + viem: '>=2.0.0' + vue: '>=3' + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + vue: + optional: true dependencies: - '@wagmi/connectors': 5.1.10(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(@wagmi/core@2.13.5(@types/react@18.3.5)(react@18.2.0)(typescript@5.4.5)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)))(bufferutil@4.0.8)(encoding@0.1.13)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0)(rollup@4.21.3)(typescript@5.4.5)(utf-8-validate@5.0.10)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8))(zod@3.23.8) - '@wagmi/core': 2.13.5(@types/react@18.3.5)(react@18.2.0)(typescript@5.4.5)(viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8)) - '@walletconnect/ethereum-provider': 2.13.0(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) + '@wagmi/connectors': 5.1.2(@wagmi/core@2.13.1)(react-native@0.74.1)(react@18.3.1)(typescript@5.4.5)(viem@2.18.8) + '@wagmi/core': 2.13.1(react@18.3.1)(typescript@5.4.5)(viem@2.18.8) + '@walletconnect/ethereum-provider': 2.13.0(react@18.3.1) '@web3modal/polyfills': 4.2.3 - '@web3modal/scaffold': 4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react@18.2.0) - '@web3modal/scaffold-react': 4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@web3modal/scaffold-utils': 4.2.3(@types/react@18.3.5)(react@18.2.0) - '@web3modal/scaffold-vue': 4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react@18.2.0) - '@web3modal/siwe': 4.2.3(@react-native-async-storage/async-storage@1.22.0(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)))(@types/react@18.3.5)(react@18.2.0) - viem: 2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8) - optionalDependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + '@web3modal/scaffold': 4.2.3(react@18.3.1) + '@web3modal/scaffold-react': 4.2.3(react@18.3.1) + '@web3modal/scaffold-utils': 4.2.3(react@18.3.1) + '@web3modal/scaffold-vue': 4.2.3(react@18.3.1) + '@web3modal/siwe': 4.2.3(react@18.3.1) + react: 18.3.1 + viem: 2.18.8(typescript@5.4.5)(zod@3.23.6) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -20947,315 +12644,536 @@ snapshots: - '@vercel/kv' - bufferutil - encoding - - supports-color + - ioredis + - uWebSockets.js - utf-8-validate + dev: false - '@web3modal/wallet@4.1.11': + /@web3modal/wallet@4.1.11: + resolution: {integrity: sha512-6eJSpNcrBxufJFEQu9+ZOMUZxPqa8438RvfYKCU9nLXwoBtweo6ecpQw2yhXDlrfG+uJZhFabtPxROabn2M8Kg==} dependencies: '@web3modal/polyfills': 4.1.11 zod: 3.22.4 + dev: false - '@web3modal/wallet@4.2.3': + /@web3modal/wallet@4.2.3: + resolution: {integrity: sha512-V+VpwmhQl9qeJMpzNkjpAaxercAsrr1O9oGRjrjD+c0q72NfdcbTalWSbjSQmqabI1M6N06Hw94FkAQuEfVGsg==} dependencies: '@web3modal/polyfills': 4.2.3 zod: 3.22.4 + dev: false - '@webgpu/types@0.1.21': {} + /@webgpu/types@0.1.21: + resolution: {integrity: sha512-pUrWq3V5PiSGFLeLxoGqReTZmiiXwY3jRkIG5sLLKjyqNxrwm/04b4nw7LSmGWJcKk59XOM/YRTUwOzo4MMlow==} + dev: false - '@zerodevx/svelte-toast@0.9.5(svelte@4.2.13)': + /@yarnpkg/fslib@2.10.3: + resolution: {integrity: sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==} + engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} dependencies: - svelte: 4.2.13 + '@yarnpkg/libzip': 2.3.0 + tslib: 1.14.1 + dev: true - '@zerodevx/svelte-toast@0.9.5(svelte@4.2.17)': + /@yarnpkg/libzip@2.3.0: + resolution: {integrity: sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==} + engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} dependencies: - svelte: 4.2.17 - - abitype@0.9.10(typescript@5.4.3)(zod@3.22.4): - optionalDependencies: - typescript: 5.4.3 - zod: 3.22.4 - - abitype@0.9.8(typescript@5.4.3)(zod@3.22.4): - optionalDependencies: - typescript: 5.4.3 - zod: 3.22.4 + '@types/emscripten': 1.39.13 + tslib: 1.14.1 + dev: true - abitype@0.9.8(typescript@5.4.3)(zod@3.23.8): - optionalDependencies: - typescript: 5.4.3 - zod: 3.23.8 + /@zerodevx/svelte-toast@0.9.5(svelte@4.2.15): + resolution: {integrity: sha512-JLeB/oRdJfT+dz9A5bgd3Z7TuQnBQbeUtXrGIrNWMGqWbabpepBF2KxtWVhL2qtxpRqhae2f6NAOzH7xs4jUSw==} + peerDependencies: + svelte: ^3.57.0 || ^4.0.0 + dependencies: + svelte: 4.2.15 + dev: false - abitype@1.0.0(typescript@5.4.3)(zod@3.22.4): - optionalDependencies: - typescript: 5.4.3 - zod: 3.22.4 + /abitype@0.9.10(typescript@5.4.5)(zod@3.23.6): + resolution: {integrity: sha512-FIS7U4n7qwAT58KibwYig5iFG4K61rbhAqaQh/UWj8v1Y8mjX3F8TC9gd8cz9yT1TYel9f8nS5NO5kZp2RW0jQ==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: + typescript: 5.4.5 + zod: 3.23.6 - abitype@1.0.0(typescript@5.4.3)(zod@3.23.8): - optionalDependencies: - typescript: 5.4.3 - zod: 3.23.8 + /abitype@0.9.8(typescript@5.4.5): + resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.19.1 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: + typescript: 5.4.5 + dev: false - abitype@1.0.2(typescript@5.4.3)(zod@3.23.8): - optionalDependencies: - typescript: 5.4.3 - zod: 3.23.8 + /abitype@1.0.0(typescript@5.4.5): + resolution: {integrity: sha512-NMeMah//6bJ56H5XRj8QCV4AwuW6hB6zqz2LnhhLdcWVQOsXki6/Pn3APeqxCma62nXIcmZWdu1DlHWS74umVQ==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: + typescript: 5.4.5 + dev: false - abitype@1.0.5(typescript@5.4.3)(zod@3.22.4): - optionalDependencies: - typescript: 5.4.3 - zod: 3.22.4 + /abitype@1.0.2(typescript@5.4.5): + resolution: {integrity: sha512-aFt4k2H+eiAKy/zxtnORa9iIb10BMBeWL18l8v4+QuwYEBXPxxjSB1bFZCzQmKPoj8m7j68K705l3uY+E2gAjg==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: + typescript: 5.4.5 + dev: true - abitype@1.0.5(typescript@5.4.5)(zod@3.23.8): - optionalDependencies: + /abitype@1.0.5(typescript@5.4.5)(zod@3.23.6): + resolution: {integrity: sha512-YzDhti7cjlfaBhHutMaboYB21Ha3rXR9QTkNJFzYC4kC8YclaiwPBBBJY8ejFdu2wnJeZCVZSMlQJ7fi8S6hsw==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: typescript: 5.4.5 - zod: 3.23.8 + zod: 3.23.6 - abitype@1.0.6(typescript@5.4.5)(zod@3.23.8): - optionalDependencies: + /abitype@1.0.5(typescript@5.4.5)(zod@3.23.8): + resolution: {integrity: sha512-YzDhti7cjlfaBhHutMaboYB21Ha3rXR9QTkNJFzYC4kC8YclaiwPBBBJY8ejFdu2wnJeZCVZSMlQJ7fi8S6hsw==} + peerDependencies: + typescript: '>=5.0.4' + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + dependencies: typescript: 5.4.5 zod: 3.23.8 + dev: false - abort-controller@3.0.0: + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} dependencies: event-target-shim: 5.0.1 + dev: false - abortcontroller-polyfill@1.7.5: {} + /abortcontroller-polyfill@1.7.5: + resolution: {integrity: sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==} + dev: true - accepts@1.3.8: + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} dependencies: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.11.3): + /acorn-jsx@5.3.2(acorn@8.11.3): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.11.3 + dev: true - acorn-jsx@5.3.2(acorn@8.12.1): + /acorn-jsx@5.3.2(acorn@8.12.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.12.1 + dev: false - acorn-walk@8.3.2: {} + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} - acorn@8.11.3: {} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true - acorn@8.12.1: {} + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true - adm-zip@0.4.16: {} + /adm-zip@0.4.16: + resolution: {integrity: sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==} + engines: {node: '>=0.3.0'} + dev: false - aes-js@3.0.0: {} + /aes-js@3.0.0: + resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} + dev: true - aes-js@4.0.0-beta.5: {} + /aes-js@4.0.0-beta.5: + resolution: {integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==} + dev: true - agent-base@6.0.2: + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color + dev: false - agent-base@7.1.0: + /agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true - aggregate-error@3.1.0: + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 + dev: false - ajv-draft-04@1.0.0(ajv@8.12.0): - optionalDependencies: - ajv: 8.12.0 + /ajv-draft-04@1.0.0(ajv@8.13.0): + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.13.0 + dev: false - ajv@6.12.6: + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + dev: true - ajv@8.12.0: + /ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - amazon-cognito-identity-js@6.3.12(encoding@0.1.13): + /amazon-cognito-identity-js@6.3.12: + resolution: {integrity: sha512-s7NKDZgx336cp+oDeUtB2ZzT8jWJp/v2LWuYl+LQtMEODe22RF1IJ4nRiDATp+rp1pTffCZcm44Quw4jx2bqNg==} dependencies: '@aws-crypto/sha256-js': 1.2.2 buffer: 4.9.2 fast-base64-decode: 1.0.0 - isomorphic-unfetch: 3.1.0(encoding@0.1.13) + isomorphic-unfetch: 3.1.0 js-cookie: 2.2.1 transitivePeerDependencies: - encoding + dev: true - anser@1.4.10: {} + /anser@1.4.10: + resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==} + dev: false - ansi-align@3.0.1: + /ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: string-width: 4.2.3 + dev: false - ansi-colors@4.1.3: {} + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} - ansi-escapes@4.3.2: + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.21.3 + dev: false - ansi-fragments@0.2.1: + /ansi-fragments@0.2.1: + resolution: {integrity: sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==} dependencies: colorette: 1.4.0 slice-ansi: 2.1.0 strip-ansi: 5.2.0 + dev: false - ansi-regex@4.1.1: {} + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + dev: false - ansi-regex@5.0.1: {} + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} - ansi-regex@6.0.1: {} + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} - ansi-styles@3.2.1: + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - ansi-styles@4.3.0: + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} - ansi-styles@6.2.1: {} + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} - antlr4@4.13.1: {} + /antlr4@4.13.1-patch-1: + resolution: {integrity: sha512-OjFLWWLzDMV9rdFhpvroCWR4ooktNg9/nvVYSA5z28wuVpU36QUNuioR1XLnQtcjVlf8npjyz593PxnU/f/Cow==} + engines: {node: '>=16'} + dev: true - any-promise@1.3.0: {} + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - any-signal@3.0.1: {} + /any-signal@3.0.1: + resolution: {integrity: sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==} + dev: false - anymatch@3.1.3: + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - appdirsjs@1.2.7: {} + /appdirsjs@1.2.7: + resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} + dev: false - arg@4.1.3: {} + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - arg@5.0.2: {} + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - argparse@1.0.10: + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 + dev: false - argparse@2.0.1: {} + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: + /aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 - array-buffer-byte-length@1.0.0: + /array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - is-array-buffer: 3.0.2 + is-array-buffer: 3.0.4 + dev: true - array-flatten@1.1.1: {} + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: true - array-includes@3.1.7: + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 is-string: 1.0.7 + dev: true - array-iterate@2.0.1: {} + /array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + dev: false - array-union@2.1.0: {} + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} - array.prototype.findlastindex@1.2.3: + /array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.4 + dev: true - array.prototype.flat@1.3.2: + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 + dev: true - array.prototype.flatmap@1.3.2: + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 + dev: true - arraybuffer.prototype.slice@1.0.2: + /arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} dependencies: - array-buffer-byte-length: 1.0.0 + array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-errors: 1.3.0 get-intrinsic: 1.2.4 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + dev: true - asap@2.0.6: {} + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: false - asn1@0.2.6: + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: safer-buffer: 2.1.2 + dev: true - assert-plus@1.0.0: {} - - assertion-error@1.1.0: {} + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + dev: true - assertion-error@2.0.1: {} + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true - ast-parents@0.0.1: {} + /ast-parents@0.0.1: + resolution: {integrity: sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA==} + dev: true - ast-types@0.15.2: + /ast-types@0.15.2: + resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==} + engines: {node: '>=4'} dependencies: - tslib: 2.6.2 + tslib: 2.7.0 + dev: false - ast-types@0.16.1: + /ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} dependencies: tslib: 2.6.2 + dev: true - astral-regex@1.0.0: {} + /astral-regex@1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} + dev: false - astral-regex@2.0.0: {} + /astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true - astring@1.8.6: {} + /astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + hasBin: true + dev: false - astro-expressive-code@0.35.6(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)): + /astro-expressive-code@0.35.3(astro@4.13.1): + resolution: {integrity: sha512-f1L1m3J3EzZHDEox6TXmuKo5fTSbaNxE/HU0S0UQmvlCowtOKnU/LOsoDwsbQSYGKz+fdLRPsCjFMiKqEoyfcw==} + peerDependencies: + astro: ^4.0.0-beta || ^3.3.0 dependencies: - astro: 4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5) - rehype-expressive-code: 0.35.6 + astro: 4.13.1(typescript@5.4.5) + rehype-expressive-code: 0.35.3 + dev: false - astro-og-canvas@0.5.0(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)): + /astro-og-canvas@0.5.0(astro@4.13.1): + resolution: {integrity: sha512-nrwZpFL9d6tVJRKV5OLZa3xSSh+Cbaaoay/R9jAgHCrJ79WNyN2rgRT/+wtP1O/bCQ+wVP3GC3mBQN7vogImvg==} + engines: {node: '>=18.14.1'} + peerDependencies: + astro: ^3.0.0 || ^4.0.0 dependencies: - astro: 4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5) + astro: 4.13.1(typescript@5.4.5) canvaskit-wasm: 0.39.1 deterministic-object-hash: 2.0.2 entities: 4.5.0 + dev: false - astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5): + /astro@4.13.1(typescript@5.4.5): + resolution: {integrity: sha512-VnMjAc+ykFsIVjgbu9Mt/EA1fMIcPMXbU89h3ATwGOzSIKDsQH72bDgfJkWiwk6u0OE90GeP5EPhAT28Twf9oA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true dependencies: - '@astrojs/compiler': 2.10.3 + '@astrojs/compiler': 2.10.1 '@astrojs/internal-helpers': 0.4.1 '@astrojs/markdown-remark': 5.2.0 '@astrojs/telemetry': 3.1.0 '@babel/core': 7.25.2 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.3 '@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2) - '@babel/types': 7.25.6 - '@oslojs/encoding': 0.4.1 - '@rollup/pluginutils': 5.1.0(rollup@4.21.3) + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 '@types/babel__core': 7.20.5 '@types/cookie': 0.6.0 acorn: 8.12.1 @@ -21267,7 +13185,7 @@ snapshots: common-ancestor-path: 1.0.1 cookie: 0.6.0 cssesc: 3.0.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) deterministic-object-hash: 2.0.2 devalue: 5.0.0 diff: 5.2.0 @@ -21276,8 +13194,8 @@ snapshots: es-module-lexer: 1.5.4 esbuild: 0.21.5 estree-walker: 3.0.3 + execa: 8.0.1 fast-glob: 3.3.2 - fastq: 1.17.1 flattie: 1.1.1 github-slugger: 2.0.0 gray-matter: 4.0.3 @@ -21286,11 +13204,8 @@ snapshots: js-yaml: 4.1.0 kleur: 4.1.5 magic-string: 0.30.11 - magicast: 0.3.5 - micromatch: 4.0.8 mrmime: 2.0.0 - neotraverse: 0.6.18 - ora: 8.1.0 + ora: 8.0.1 p-limit: 6.1.0 p-queue: 8.0.1 path-to-regexp: 6.2.2 @@ -21298,223 +13213,340 @@ snapshots: prompts: 2.4.2 rehype: 13.0.1 semver: 7.6.3 - shiki: 1.17.6 + shiki: 1.12.1 string-width: 7.2.0 strip-ansi: 7.1.0 - tinyexec: 0.3.0 - tsconfck: 3.1.3(typescript@5.4.5) + tsconfck: 3.1.1(typescript@5.4.5) unist-util-visit: 5.0.0 - vfile: 6.0.3 - vite: 5.4.5(@types/node@20.12.7)(terser@5.27.2) - vitefu: 1.0.2(vite@5.4.5(@types/node@20.12.7)(terser@5.27.2)) + vfile: 6.0.2 + vite: 5.3.5 + vitefu: 0.2.5(vite@5.3.5) which-pm: 3.0.0 - xxhash-wasm: 1.0.2 yargs-parser: 21.1.1 zod: 3.23.8 - zod-to-json-schema: 3.23.3(zod@3.23.8) - zod-to-ts: 1.2.0(typescript@5.4.5)(zod@3.23.8) + zod-to-json-schema: 3.23.2(zod@3.23.8) optionalDependencies: sharp: 0.33.3 transitivePeerDependencies: - '@types/node' - less - lightningcss - - rollup - sass - - sass-embedded - stylus - sugarss - supports-color - terser - typescript + dev: false - async-limiter@1.0.1: {} + /async-limiter@1.0.1: + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} - async-mutex@0.2.6: + /async-mutex@0.2.6: + resolution: {integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==} dependencies: tslib: 2.6.2 + dev: false - async-retry@1.3.3: + /async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} dependencies: retry: 0.13.1 + dev: true - async@2.6.4: + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} dependencies: lodash: 4.17.21 + dev: true - async@3.2.3: {} + /async@3.2.3: + resolution: {integrity: sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==} + dev: true - asynckit@0.4.0: {} + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - atomic-sleep@1.0.0: {} + /atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + dev: false - autoprefixer@10.4.18(postcss@8.4.38): + /autoprefixer@10.4.19(postcss@8.4.38): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001593 + caniuse-lite: 1.0.30001615 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 postcss: 8.4.38 postcss-value-parser: 4.2.0 - autoprefixer@10.4.19(postcss@8.4.38): + /autoprefixer@10.4.19(postcss@8.4.41): + resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001614 + caniuse-lite: 1.0.30001615 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.38 + postcss: 8.4.41 postcss-value-parser: 4.2.0 + dev: true - autoprefixer@10.4.19(postcss@8.4.47): + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001614 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.47 - postcss-value-parser: 4.2.0 - - available-typed-arrays@1.0.5: {} + possible-typed-array-names: 1.0.0 - aws-sign2@0.7.0: {} + /aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + dev: true - aws4@1.13.2: {} + /aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + dev: true - axios-proxy-builder@0.1.2: + /axios-proxy-builder@0.1.2: + resolution: {integrity: sha512-6uBVsBZzkB3tCC8iyx59mCjQckhB8+GQrI9Cop8eC7ybIsvs/KtnNgEBfRMSEa7GqK2VBGUzgjNYMdPIfotyPA==} dependencies: tunnel: 0.0.6 + dev: true - axios@1.6.7(debug@4.3.4): + /axios@1.6.8(debug@4.3.4): + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} dependencies: - follow-redirects: 1.15.5(debug@4.3.4) + follow-redirects: 1.15.6(debug@4.3.4) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug + dev: false - axios@1.7.7: + /axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} dependencies: - follow-redirects: 1.15.9(debug@4.3.7) + follow-redirects: 1.15.6(debug@4.3.4) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug + dev: true - axobject-query@4.0.0: + /axobject-query@4.0.0: + resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} dependencies: dequal: 2.0.3 - axobject-query@4.1.0: {} + /axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + dev: false + + /babel-core@7.0.0-bridge.0(@babel/core@7.24.5): + resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + dev: true + + /babel-core@7.0.0-bridge.0(@babel/core@7.25.2): + resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.25.2 + dev: false + + /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.5): + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.5 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true - babel-core@7.0.0-bridge.0(@babel/core@7.25.2): + /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: + '@babel/compat-data': 7.24.4 '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: false - babel-plugin-macros@3.1.0: + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.5): + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/runtime': 7.23.9 - cosmiconfig: 7.1.0 - resolve: 1.22.8 + '@babel/core': 7.24.5 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + core-js-compat: 3.37.0 + transitivePeerDependencies: + - supports-color + dev: true - babel-plugin-polyfill-corejs2@0.4.8(@babel/core@7.25.2): + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.25.2): + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/compat-data': 7.25.4 '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.25.2) - semver: 6.3.1 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + core-js-compat: 3.37.0 transitivePeerDependencies: - supports-color + dev: false - babel-plugin-polyfill-corejs3@0.9.0(@babel/core@7.25.2): + /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.5): + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.25.2) - core-js-compat: 3.36.0 + '@babel/core': 7.24.5 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) transitivePeerDependencies: - supports-color + dev: true - babel-plugin-polyfill-regenerator@0.5.5(@babel/core@7.25.2): + /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.5.0(@babel/core@7.25.2) + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) transitivePeerDependencies: - supports-color + dev: false - babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.25.2): + /babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.25.2): + resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} dependencies: - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.25.2) + '@babel/plugin-syntax-flow': 7.24.1(@babel/core@7.25.2) transitivePeerDependencies: - '@babel/core' + dev: false - bail@2.0.2: {} + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false - balanced-match@1.0.2: {} + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base-64@1.0.0: {} + /base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + dev: false - base-x@3.0.9: + /base-x@3.0.9: + resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} dependencies: safe-buffer: 5.2.1 - base-x@4.0.0: {} + /base-x@4.0.0: + resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + dev: false - base64-js@1.5.1: {} + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - bcp-47-match@2.0.3: {} + /bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + dev: false - bcp-47@2.1.0: + /bcp-47@2.1.0: + resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==} dependencies: is-alphabetical: 2.0.1 is-alphanumerical: 2.0.1 is-decimal: 2.0.1 + dev: false - bcrypt-pbkdf@1.0.2: + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} dependencies: tweetnacl: 0.14.5 + dev: true - bech32@1.1.4: {} + /bech32@1.1.4: + resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} + dev: true - better-path-resolve@1.0.0: + /better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} dependencies: is-windows: 1.0.2 + dev: false - big-integer@1.6.52: {} - - bignumber.js@9.1.2: {} + /bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} - binary-extensions@2.2.0: {} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} - bl@4.1.0: + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 - bl@5.1.0: + /bl@5.1.0: + resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} dependencies: buffer: 6.0.3 inherits: 2.0.4 readable-stream: 3.6.2 - blakejs@1.2.1: {} + /blakejs@1.2.1: + resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} - blob-to-it@2.0.6: + /blob-to-it@2.0.6: + resolution: {integrity: sha512-xveo/z3QNilIJgCZAjzvx2uWWVHE4JzOy7eMp45zkuBsmwZMgjfhn2h/+BsZPaByVFa3u1W/OBUleNiqgMtVpQ==} dependencies: - browser-readablestream-to-it: 2.0.6 + browser-readablestream-to-it: 2.0.7 + dev: false - bluebird@3.7.2: {} + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true - bn.js@4.11.6: {} + /bn.js@4.11.6: + resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==} - bn.js@4.12.0: {} + /bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} - bn.js@5.2.1: {} + /bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} - body-parser@1.20.3: + /body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -21524,18 +13556,25 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.13.0 + qs: 6.11.0 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: - supports-color + dev: true - boolbase@1.0.0: {} + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: false - bowser@2.11.0: {} + /bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + dev: false - boxen@5.1.2: + /boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -21545,8 +13584,11 @@ snapshots: type-fest: 0.20.2 widest-line: 3.1.0 wrap-ansi: 7.0.0 + dev: false - boxen@7.1.1: + /boxen@7.1.1: + resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} + engines: {node: '>=14.16'} dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 @@ -21556,39 +13598,46 @@ snapshots: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 + dev: false - bplist-parser@0.2.0: - dependencies: - big-integer: 1.6.52 - - brace-expansion@1.1.11: + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - braces@3.0.2: + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - brorand@1.1.0: {} + /brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - browser-assert@1.2.1: {} + /browser-assert@1.2.1: + resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} + dev: true - browser-readablestream-to-it@1.0.3: {} + /browser-readablestream-to-it@1.0.3: + resolution: {integrity: sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==} + dev: false - browser-readablestream-to-it@2.0.6: {} + /browser-readablestream-to-it@2.0.7: + resolution: {integrity: sha512-g1Aznml3HmqTLSXylZhGwdfnAa67+vlNAYhT9ROJZkAxY7yYmWusND10olvCMPe4sVhZyVwn5tPkRzOg85kBEg==} + dev: false - browser-stdout@1.3.1: {} + /browser-stdout@1.3.1: + resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} + dev: false - browserify-aes@1.2.0: + /browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} dependencies: buffer-xor: 1.0.3 cipher-base: 1.0.4 @@ -21597,111 +13646,166 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 - browserslist@4.23.0: + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: - caniuse-lite: 1.0.30001593 - electron-to-chromium: 1.4.676 + caniuse-lite: 1.0.30001615 + electron-to-chromium: 1.4.756 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + update-browserslist-db: 1.0.15(browserslist@4.23.0) - browserslist@4.23.3: + /browserslist@4.23.3: + resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true dependencies: - caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.5.23 + caniuse-lite: 1.0.30001649 + electron-to-chromium: 1.5.5 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) - bs58@4.0.1: + /bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} dependencies: base-x: 3.0.9 - bs58@5.0.0: + /bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} dependencies: base-x: 4.0.0 + dev: false - bs58check@2.1.2: + /bs58check@2.1.2: + resolution: {integrity: sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==} dependencies: bs58: 4.0.1 create-hash: 1.2.0 safe-buffer: 5.2.1 - bser@2.1.1: + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: node-int64: 0.4.0 + dev: false - buffer-crc32@0.2.13: {} + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + dev: true - buffer-from@1.1.2: {} + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer-reverse@1.0.1: {} + /buffer-reverse@1.0.1: + resolution: {integrity: sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==} + dev: false - buffer-to-arraybuffer@0.0.5: {} + /buffer-to-arraybuffer@0.0.5: + resolution: {integrity: sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ==} + dev: true - buffer-xor@1.0.3: {} + /buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} - buffer@4.9.2: + /buffer@4.9.2: + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 isarray: 1.0.0 + dev: true - buffer@5.6.0: + /buffer@5.6.0: + resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + dev: false - buffer@5.7.1: + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - buffer@6.0.3: + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - bufferutil@4.0.8: + /bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + engines: {node: '>=6.14.2'} + requiresBuild: true dependencies: - node-gyp-build: 4.8.0 + node-gyp-build: 4.8.1 - builtin-modules@3.3.0: {} + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true - builtins@5.0.1: + /builtins@5.1.0: + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} dependencies: semver: 7.6.3 + dev: true - bundle-name@3.0.0: - dependencies: - run-applescript: 5.0.0 - - bundle-require@4.0.2(esbuild@0.19.12): + /bundle-require@4.1.0(esbuild@0.19.12): + resolution: {integrity: sha512-FeArRFM+ziGkRViKRnSTbHZc35dgmR9yNog05Kn0+ItI59pOAISGvnnIwW1WgFZQW59IxD9QpJnUPkdIPfZuXg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' dependencies: esbuild: 0.19.12 load-tsconfig: 0.2.5 - bytes@3.0.0: {} + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: false - bytes@3.1.2: {} + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} - cac@6.7.14: {} + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} - cacheable-lookup@5.0.4: {} + /cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + dev: true - cacheable-lookup@6.1.0: {} + /cacheable-lookup@6.1.0: + resolution: {integrity: sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==} + engines: {node: '>=10.6.0'} + dev: true - cacheable-lookup@7.0.0: {} + /cacheable-lookup@7.0.0: + resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==} + engines: {node: '>=14.16'} + dev: true - cacheable-request@10.2.14: + /cacheable-request@10.2.14: + resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==} + engines: {node: '>=14.16'} dependencies: '@types/http-cache-semantics': 4.0.4 get-stream: 6.0.1 http-cache-semantics: 4.1.1 keyv: 4.5.4 mimic-response: 4.0.0 - normalize-url: 8.0.0 + normalize-url: 8.0.1 responselike: 3.0.0 + dev: true - cacheable-request@7.0.4: + /cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} dependencies: clone-response: 1.0.3 get-stream: 5.2.0 @@ -21710,65 +13814,106 @@ snapshots: lowercase-keys: 2.0.0 normalize-url: 6.1.0 responselike: 2.0.1 + dev: true - call-bind@1.0.7: + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 - set-function-length: 1.2.1 + set-function-length: 1.2.2 - call-me-maybe@1.0.2: {} + /call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + dev: false - caller-callsite@2.0.0: + /caller-callsite@2.0.0: + resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} + engines: {node: '>=4'} dependencies: callsites: 2.0.0 + dev: false - caller-path@2.0.0: + /caller-path@2.0.0: + resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} + engines: {node: '>=4'} dependencies: caller-callsite: 2.0.0 + dev: false - callsites@2.0.0: {} + /callsites@2.0.0: + resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} + engines: {node: '>=4'} + dev: false - callsites@3.1.0: {} + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true - camel-case@4.1.2: + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 tslib: 2.6.2 - camelcase-css@2.0.1: {} - - camelcase@5.3.1: {} + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} - camelcase@6.3.0: {} + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: false - camelcase@7.0.1: {} + /camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + dev: false - caniuse-lite@1.0.30001593: {} + /camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + dev: false - caniuse-lite@1.0.30001614: {} + /caniuse-lite@1.0.30001615: + resolution: {integrity: sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==} - caniuse-lite@1.0.30001660: {} + /caniuse-lite@1.0.30001649: + resolution: {integrity: sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ==} - canvaskit-wasm@0.39.1: + /canvaskit-wasm@0.39.1: + resolution: {integrity: sha512-Gy3lCmhUdKq+8bvDrs9t8+qf7RvcjuQn+we7vTVVyqgOVO1UVfHpsnBxkTZw+R4ApEJ3D5fKySl9TU11hmjl/A==} dependencies: '@webgpu/types': 0.1.21 + dev: false - capital-case@1.0.4: + /capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} dependencies: no-case: 3.0.4 tslib: 2.6.2 upper-case-first: 2.0.2 - caseless@0.12.0: {} + /caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + dev: true - cborg@4.2.0: {} + /cborg@4.2.0: + resolution: {integrity: sha512-q6cFW5m3KxfP/9xGI3yGLaC1l5DP6DWM9IvjiJojnIwohL5CQDl02EXViPV852mOfQo+7PJGPN01MI87vFGzyA==} + hasBin: true + dev: false - ccount@2.0.1: {} + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false - chai@4.4.1: + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 check-error: 1.0.3 @@ -21777,34 +13922,37 @@ snapshots: loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 + dev: true - chai@5.1.1: - dependencies: - assertion-error: 2.0.1 - check-error: 2.1.1 - deep-eql: 5.0.2 - loupe: 3.1.1 - pathval: 2.0.0 - - chalk@2.4.2: + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - chalk@3.0.0: + /chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: true - chalk@4.1.2: + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - change-case@4.1.2: + /change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} dependencies: camel-case: 4.1.2 capital-case: 1.0.4 @@ -21819,25 +13967,39 @@ snapshots: snake-case: 3.0.4 tslib: 2.6.2 - change-case@5.4.4: {} + /change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + dev: false - character-entities-html4@2.1.0: {} + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false - character-entities-legacy@3.0.0: {} + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false - character-entities@2.0.2: {} + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false - character-reference-invalid@2.0.1: {} + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false - chardet@0.7.0: {} + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: false - check-error@1.0.3: + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} dependencies: get-func-name: 2.0.2 + dev: true - check-error@2.1.1: {} - - chokidar@3.6.0: + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} dependencies: anymatch: 3.1.3 braces: 3.0.2 @@ -21849,136 +14011,215 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chokidar@4.0.0: + /chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} dependencies: - readdirp: 4.0.1 + readdirp: 4.0.2 + dev: false - chownr@1.1.4: {} + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + dev: true - chromatic@11.10.2: {} + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: true - chromatic@11.3.0: {} + /chromatic@11.3.0: + resolution: {integrity: sha512-q1ZtJDJrjLGnz60ivpC16gmd7KFzcaA4eTb7gcytCqbaKqlHhCFr1xQmcUDsm14CK7JsqdkFU6S+JQdOd2ZNJg==} + hasBin: true + peerDependencies: + '@chromatic-com/cypress': ^0.*.* || ^1.0.0 + '@chromatic-com/playwright': ^0.*.* || ^1.0.0 + peerDependenciesMeta: + '@chromatic-com/cypress': + optional: true + '@chromatic-com/playwright': + optional: true + dev: true - chrome-launcher@0.15.2: - dependencies: - '@types/node': 20.12.7 - escape-string-regexp: 4.0.0 - is-wsl: 2.2.0 - lighthouse-logger: 1.4.2 - transitivePeerDependencies: - - supports-color + /chromatic@11.7.0: + resolution: {integrity: sha512-Afblm4MWK6GXutxHPJVWKoY1PxCD98Uw0S3/f1a2wu4VTQy97g4+G8vPVqutSMpZFGzG5NjH9QdzKPFMmZczpw==} + hasBin: true + peerDependencies: + '@chromatic-com/cypress': ^0.*.* || ^1.0.0 + '@chromatic-com/playwright': ^0.*.* || ^1.0.0 + peerDependenciesMeta: + '@chromatic-com/cypress': + optional: true + '@chromatic-com/playwright': + optional: true + dev: true - chromium-edge-launcher@1.0.0: + /chrome-launcher@0.15.2: + resolution: {integrity: sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==} + engines: {node: '>=12.13.0'} + hasBin: true dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.8 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 - mkdirp: 1.0.4 - rimraf: 3.0.2 transitivePeerDependencies: - supports-color + dev: false - ci-info@2.0.0: {} + /ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + dev: false - ci-info@3.9.0: {} + /ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} - ci-info@4.0.0: {} + /ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + dev: false - cids@0.7.5: + /cids@0.7.5: + resolution: {integrity: sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==} + engines: {node: '>=4.0.0', npm: '>=3.0.0'} + deprecated: This module has been superseded by the multiformats module dependencies: buffer: 5.7.1 class-is: 1.1.0 multibase: 0.6.1 multicodec: 1.0.4 multihashes: 0.4.21 + dev: true - cipher-base@1.0.4: + /cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 - citty@0.1.6: + /citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} dependencies: consola: 3.2.3 - class-is@1.1.0: {} + /class-is@1.1.0: + resolution: {integrity: sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==} + dev: true - clean-stack@2.2.0: {} + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + dev: false - cli-boxes@2.2.1: {} + /cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + dev: false - cli-boxes@3.0.0: {} + /cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + dev: false - cli-color@2.0.3: + /cli-color@2.0.4: + resolution: {integrity: sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==} + engines: {node: '>=0.10'} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 + d: 1.0.2 + es5-ext: 0.10.64 es6-iterator: 2.0.3 memoizee: 0.4.15 timers-ext: 0.1.7 - cli-cursor@3.1.0: + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 - cli-cursor@4.0.0: + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: restore-cursor: 4.0.0 - cli-cursor@5.0.0: - dependencies: - restore-cursor: 5.1.0 - - cli-spinners@2.9.2: {} + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} - clipboardy@4.0.0: + /clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} dependencies: execa: 8.0.1 is-wsl: 3.1.0 is64bit: 2.0.0 + dev: false - cliui@6.0.0: + /cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + dev: false - cliui@7.0.4: + /cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: false - cliui@8.0.1: + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + dev: false - clone-deep@4.0.1: + /clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - clone-response@1.0.3: + /clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} dependencies: mimic-response: 1.0.1 + dev: true - clone@1.0.4: {} - - clsx@1.2.1: {} + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} - clsx@2.1.1: {} + /clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + dev: false - cluster-key-slot@1.1.2: {} + /clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + dev: false - code-block-writer@12.0.0: {} + /code-block-writer@12.0.0: + resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} + dev: true - code-error-fragment@0.0.230: {} + /code-error-fragment@0.0.230: + resolution: {integrity: sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==} + engines: {node: '>= 4'} + dev: false - code-red@1.0.4: + /code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 '@types/estree': 1.0.5 @@ -21986,61 +14227,108 @@ snapshots: estree-walker: 3.0.3 periscopic: 3.1.0 - collapse-white-space@2.1.0: {} + /collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + dev: false - color-convert@1.9.3: + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - color-convert@2.0.1: + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - color-name@1.1.3: {} + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: {} + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-string@1.9.1: + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 + dev: false - color@4.2.3: + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} dependencies: color-convert: 2.0.1 color-string: 1.9.1 + dev: false - colorette@1.4.0: {} + /colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + dev: false - colors@1.0.3: {} + /colors@1.0.3: + resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} + engines: {node: '>=0.1.90'} + dev: true - combined-stream@1.0.8: + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 - comma-separated-tokens@2.0.3: {} + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + + /command-exists@1.2.9: + resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} - command-exists@1.2.9: {} + /commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + dev: true - commander@10.0.1: {} + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + dev: false - commander@2.20.3: {} + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} - commander@4.1.1: {} + /commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + dev: true - commander@8.3.0: {} + /commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} - commander@9.5.0: {} + /commander@9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: false - common-ancestor-path@1.0.1: {} + /common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + dev: false - commondir@1.0.1: {} + /commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - compressible@2.0.18: + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 + dev: false - compression@1.7.4: + /compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} dependencies: accepts: 1.3.8 bytes: 3.0.0 @@ -22051,15 +14339,24 @@ snapshots: vary: 1.1.2 transitivePeerDependencies: - supports-color + dev: false - concat-map@0.0.1: {} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - config-chain@1.1.13: + /config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} dependencies: ini: 1.3.8 proto-list: 1.2.4 + dev: true - connect@3.7.0: + /connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} dependencies: debug: 2.6.9 finalhandler: 1.1.2 @@ -22067,90 +14364,115 @@ snapshots: utils-merge: 1.0.1 transitivePeerDependencies: - supports-color + dev: false - consola@3.2.3: {} + /consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} - constant-case@3.0.4: + /constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} dependencies: no-case: 3.0.4 tslib: 2.6.2 upper-case: 2.0.2 - content-disposition@0.5.4: + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 + dev: true - content-hash@2.5.2: + /content-hash@2.5.2: + resolution: {integrity: sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==} dependencies: cids: 0.7.5 multicodec: 0.5.7 multihashes: 0.4.21 + dev: true - content-type@1.0.5: {} - - convert-csv-to-json@2.46.0: {} + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: true - convert-source-map@1.9.0: {} + /convert-csv-to-json@2.46.0: + resolution: {integrity: sha512-Q7PjRjhECa5nBUEGbsKXvB8YaygVUesF/sYnaoCPTWoiwJEDCbLd2CcFDE1y80Q347IaTQukCQSCP2fR5IW+5g==} - convert-source-map@2.0.0: {} + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-es@1.0.0: {} + /cookie-es@1.1.0: + resolution: {integrity: sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw==} + dev: false - cookie-signature@1.0.6: {} + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: true - cookie@0.4.2: {} + /cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + dev: false - cookie@0.6.0: {} + /cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} - core-js-compat@3.36.0: + /core-js-compat@3.37.0: + resolution: {integrity: sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==} dependencies: - browserslist: 4.23.3 + browserslist: 4.23.0 - core-util-is@1.0.2: {} + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + dev: true - core-util-is@1.0.3: {} + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cors@2.8.5: + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} dependencies: object-assign: 4.1.1 vary: 1.1.2 + dev: true - cosmiconfig@5.2.1: + /cosmiconfig@5.2.1: + resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} + engines: {node: '>=4'} dependencies: import-fresh: 2.0.0 is-directory: 0.3.1 js-yaml: 3.14.1 parse-json: 4.0.0 + dev: false - cosmiconfig@7.1.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - - cosmiconfig@8.3.6(typescript@5.4.3): - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.4.3 - - cosmiconfig@8.3.6(typescript@5.4.5): + /cosmiconfig@8.3.6(typescript@5.4.5): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - optionalDependencies: typescript: 5.4.5 + dev: true - crc-32@1.2.2: {} + /crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true - create-hash@1.2.0: + /create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} dependencies: cipher-base: 1.0.4 inherits: 2.0.4 @@ -22158,7 +14480,8 @@ snapshots: ripemd160: 2.0.2 sha.js: 2.4.11 - create-hmac@1.1.7: + /create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} dependencies: cipher-base: 1.0.4 create-hash: 1.2.0 @@ -22167,75 +14490,126 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 - create-require@1.1.1: {} + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cross-fetch@3.1.8(encoding@0.1.13): + /cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} dependencies: - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 transitivePeerDependencies: - encoding - cross-fetch@4.0.0(encoding@0.1.13): + /cross-fetch@4.0.0: + resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} dependencies: - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 transitivePeerDependencies: - encoding - cross-spawn@5.1.0: + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 which: 1.3.1 + dev: false - cross-spawn@7.0.3: + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - crossws@0.1.1: {} + /crossws@0.2.4: + resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==} + peerDependencies: + uWebSockets.js: '*' + peerDependenciesMeta: + uWebSockets.js: + optional: true + dev: false + + /crypto-js@3.3.0: + resolution: {integrity: sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==} + dev: true - crypto-js@3.3.0: {} + /crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + dev: false - crypto-js@4.2.0: {} + /crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true - css-selector-parser@3.0.5: {} + /css-selector-parser@3.0.5: + resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} + dev: false - css-selector-tokenizer@0.8.0: + /css-selector-tokenizer@0.8.0: + resolution: {integrity: sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==} dependencies: cssesc: 3.0.0 fastparse: 1.1.2 - css-tree@2.3.1: + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} dependencies: mdn-data: 2.0.30 source-map-js: 1.2.0 - css.escape@1.5.1: {} + /css.escape@1.5.1: + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + dev: true - cssesc@3.0.0: {} + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true - cssstyle@4.0.1: + /cssstyle@4.0.1: + resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + engines: {node: '>=18'} dependencies: rrweb-cssom: 0.6.0 + dev: true - csstype@3.1.3: {} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: true - culori@3.3.0: {} + /culori@3.3.0: + resolution: {integrity: sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - cycle@1.0.3: {} + /cycle@1.0.3: + resolution: {integrity: sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==} + engines: {node: '>=0.4.0'} + dev: true - d@1.0.1: + /d@1.0.2: + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} dependencies: es5-ext: 0.10.64 - type: 1.2.0 + type: 2.7.2 - dag-jose@4.0.0: + /dag-jose@4.0.0: + resolution: {integrity: sha512-tw595L3UYoOUT9dSJPbBEG/qpRpw24kRZxa5SLRnlnr+g5L7O8oEs1d3W5TiVA1oJZbthVsf0Vi3zFN66qcEBA==} dependencies: '@ipld/dag-cbor': 9.2.0 multiformats: 11.0.2 + dev: false - daisyui@4.10.1(postcss@8.4.38): + /daisyui@4.10.5(postcss@8.4.38): + resolution: {integrity: sha512-eOFUo5yEg0WV+3VK2C/+/XN1WH/OhFV4HzrMG5etAzcnB2hPg3aoR7gF1ZUpIv+b5MglLuAVMgub0rv660EgZg==} + engines: {node: '>=16.9.0'} dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 @@ -22244,7 +14618,9 @@ snapshots: transitivePeerDependencies: - postcss - daisyui@4.11.1(postcss@8.4.38): + /daisyui@4.12.10(postcss@8.4.38): + resolution: {integrity: sha512-jp1RAuzbHhGdXmn957Z2XsTZStXGHzFfF0FgIOZj3Wv9sH7OZgLfXTRZNfKVYxltGUOBsG1kbWAdF5SrqjebvA==} + engines: {node: '>=16.9.0'} dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 @@ -22252,278 +14628,457 @@ snapshots: postcss-js: 4.0.1(postcss@8.4.38) transitivePeerDependencies: - postcss + dev: false - daisyui@4.11.1(postcss@8.4.47): + /daisyui@4.12.10(postcss@8.4.41): + resolution: {integrity: sha512-jp1RAuzbHhGdXmn957Z2XsTZStXGHzFfF0FgIOZj3Wv9sH7OZgLfXTRZNfKVYxltGUOBsG1kbWAdF5SrqjebvA==} + engines: {node: '>=16.9.0'} dependencies: css-selector-tokenizer: 0.8.0 culori: 3.3.0 picocolors: 1.0.0 - postcss-js: 4.0.1(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.41) transitivePeerDependencies: - postcss + dev: false - dashdash@1.14.1: + /dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} dependencies: assert-plus: 1.0.0 + dev: true - data-urls@5.0.0: + /data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} dependencies: whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 + dev: true + + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true - date-fns@2.30.0: + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.5 + dev: false + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: false - dayjs@1.11.10: {} + /dayjs@1.11.11: + resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} + dev: false - debug@2.6.9: + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 - debug@3.2.7: + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 + dev: true - debug@4.3.4: + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.2 - debug@4.3.7(supports-color@8.1.1): + /debug@4.3.6(supports-color@8.1.1): + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: - ms: 2.1.3 - optionalDependencies: + ms: 2.1.2 supports-color: 8.1.1 - decamelize@1.2.0: {} + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: false - decamelize@4.0.0: {} + /decamelize@4.0.0: + resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} + engines: {node: '>=10'} + dev: false - decimal.js@10.4.3: {} + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true - decode-named-character-reference@1.0.2: + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: character-entities: 2.0.2 + dev: false - decode-uri-component@0.2.2: {} + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} - decompress-response@3.3.0: + /decompress-response@3.3.0: + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} + engines: {node: '>=4'} dependencies: mimic-response: 1.0.1 + dev: true - decompress-response@6.0.0: + /decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 + dev: true - dedent-js@1.0.1: {} + /dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + dev: true - dedent@0.7.0: {} + /dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - deep-eql@4.1.3: + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} dependencies: type-detect: 4.0.8 + dev: true - deep-eql@5.0.2: {} - - deep-extend@0.6.0: {} - - deep-is@0.1.4: {} - - deepmerge@4.3.1: {} + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: true - default-browser-id@3.0.0: - dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true - default-browser@4.0.0: - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} - defaults@1.0.4: + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 - defer-to-connect@2.0.1: {} + /defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + dev: true - define-data-property@1.1.4: + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - define-lazy-prop@2.0.0: {} - - define-lazy-prop@3.0.0: {} + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: false - define-properties@1.2.1: + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 + dev: true - defu@6.1.4: {} - - delayed-stream@1.0.0: {} - - denodeify@1.2.1: {} + /defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - denque@2.1.0: {} + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} - depd@2.0.0: {} + /denodeify@1.2.1: + resolution: {integrity: sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==} + dev: false - deprecated-react-native-prop-types@5.0.0: - dependencies: - '@react-native/normalize-colors': 0.73.2 - invariant: 2.2.4 - prop-types: 15.8.1 + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} - dequal@2.0.3: {} + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} - destr@2.0.3: {} + /destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + dev: false - destroy@1.2.0: {} + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-browser@5.3.0: {} + /detect-browser@5.3.0: + resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==} + dev: false - detect-indent@6.1.0: {} + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} - detect-libc@1.0.3: {} + /detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + dev: false - detect-libc@2.0.3: {} + /detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + dev: false - deterministic-object-hash@2.0.2: + /deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} dependencies: base-64: 1.0.0 + dev: false - devalue@5.0.0: {} + /devalue@5.0.0: + resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} - devlop@1.1.0: + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} dependencies: dequal: 2.0.3 + dev: false - didyoumean@1.2.2: {} + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff-sequences@29.6.3: {} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true - diff@4.0.2: {} + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} - diff@5.2.0: {} + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + dev: false - dijkstrajs@1.0.3: {} + /dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + dev: false - dir-glob@3.0.1: + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dependencies: path-type: 4.0.0 - direction@2.0.1: {} + /direction@2.0.1: + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} + hasBin: true + dev: false - dlv@1.1.3: {} + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dns-over-http-resolver@2.1.3: + /dns-over-http-resolver@2.1.3: + resolution: {integrity: sha512-zjRYFhq+CsxPAouQWzOsxNMvEN+SHisjzhX8EMxd2Y0EG3thvn6wXQgMJLnTDImkhe4jhLbOQpXtL10nALBOSA==} dependencies: debug: 4.3.4 - native-fetch: 4.0.2(undici@5.28.3) + native-fetch: 4.0.2(undici@5.28.4) receptacle: 1.3.2 - undici: 5.28.3 + undici: 5.28.4 transitivePeerDependencies: - supports-color + dev: false - dns-packet@5.6.1: + /dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} dependencies: '@leichtgewicht/ip-codec': 2.0.5 + dev: false - doctrine@2.1.0: + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 + dev: true - doctrine@3.0.0: + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 + dev: true - dom-accessibility-api@0.5.16: {} + /dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dev: true - dom-accessibility-api@0.6.3: {} + /dom-accessibility-api@0.6.3: + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + dev: true - dom-serializer@1.4.1: + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 + dev: true - dom-walk@0.1.2: {} + /dom-walk@0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} + dev: true - domelementtype@2.3.0: {} + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true - domhandler@3.3.0: + /domhandler@3.3.0: + resolution: {integrity: sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==} + engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 + dev: true - domhandler@4.3.1: + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} dependencies: domelementtype: 2.3.0 + dev: true - domutils@2.8.0: + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 + dev: true - dot-case@3.0.4: + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 tslib: 2.6.2 - dotenv-expand@10.0.0: {} - - dotenv@16.4.5: {} + /dotenv-expand@10.0.0: + resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + engines: {node: '>=12'} - ds-test@https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0: {} + /dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} - dset@3.1.3: {} + /dset@3.1.3: + resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} + engines: {node: '>=4'} + dev: false - duplexify@4.1.2: + /duplexify@4.1.3: + resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==} dependencies: end-of-stream: 1.4.4 inherits: 2.0.4 readable-stream: 3.6.2 - stream-shift: 1.0.1 + stream-shift: 1.0.3 + dev: false - eastasianwidth@0.2.0: {} + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ecc-jsbn@0.1.2: + /ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} dependencies: jsbn: 0.1.1 safer-buffer: 2.1.2 + dev: true - eciesjs@0.3.18: + /eciesjs@0.3.18: + resolution: {integrity: sha512-RQhegEtLSyIiGJmFTZfvCTHER/fymipXFVx6OwSRYD6hOuy+6Kjpk0dGvIfP9kxn/smBpxQy71uxpGO406ITCw==} dependencies: '@types/secp256k1': 4.0.6 futoin-hkdf: 1.5.3 secp256k1: 5.0.0 + dev: false - ee-first@1.1.1: {} - - eigenlayer-contracts@https://codeload.github.com/Layr-labs/eigenlayer-contracts/tar.gz/30040aa273edeefe83333fa9183a0a26a84cebf0(hardhat@2.22.13(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3))(typescript@5.4.3)(utf-8-validate@5.0.10)): - dependencies: - solidity-docgen: 0.6.0-beta.36(hardhat@2.22.13(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3))(typescript@5.4.3)(utf-8-validate@5.0.10)) - transitivePeerDependencies: - - hardhat - - eigenlayer-middleware@https://codeload.github.com/layr-Labs/eigenlayer-middleware/tar.gz/7d49b5181b09198ed275783453aa082bb3766990: {} + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-fetch@1.9.1: + /electron-fetch@1.9.1: + resolution: {integrity: sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==} + engines: {node: '>=6'} dependencies: encoding: 0.1.13 + dev: false - electron-to-chromium@1.4.676: {} + /electron-to-chromium@1.4.756: + resolution: {integrity: sha512-RJKZ9+vEBMeiPAvKNWyZjuYyUqMndcP1f335oHqn3BEQbs2NFtVrnK5+6Xg5wSM9TknNNpWghGDUCKGYF+xWXw==} - electron-to-chromium@1.5.23: {} + /electron-to-chromium@1.5.5: + resolution: {integrity: sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==} - elliptic@6.5.4: + /elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} dependencies: bn.js: 4.12.0 brorand: 1.1.0 @@ -22533,7 +15088,8 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - elliptic@6.5.7: + /elliptic@6.5.5: + resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} dependencies: bn.js: 4.12.0 brorand: 1.1.0 @@ -22543,196 +15099,266 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - emmet@2.4.7: + /emmet@2.4.7: + resolution: {integrity: sha512-O5O5QNqtdlnQM2bmKHtJgyChcrFMgQuulI+WdiOw2NArzprUqqxUW6bgYtKvzKgrsYpuLWalOkdhNP+1jluhCA==} dependencies: '@emmetio/abbreviation': 2.3.3 '@emmetio/css-abbreviation': 2.1.8 + dev: false - emoji-regex@10.3.0: {} - - emoji-regex@8.0.0: {} + /emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} + dev: false - emoji-regex@9.2.2: {} + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - encode-utf8@1.0.3: {} + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - encodeurl@1.0.2: {} + /encode-utf8@1.0.3: + resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} + dev: false - encodeurl@2.0.0: {} + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} - encoding@0.1.13: + /encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} dependencies: iconv-lite: 0.6.3 + dev: false - end-of-stream@1.4.4: + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 - engine.io-client@6.5.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): - dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.7(supports-color@8.1.1) - engine.io-parser: 5.2.2 - ws: 8.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - xmlhttprequest-ssl: 2.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - engine.io-client@6.5.3(bufferutil@4.0.8)(utf-8-validate@6.0.3): + /engine.io-client@6.5.3: + resolution: {integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==} dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.7(supports-color@8.1.1) + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.4 engine.io-parser: 5.2.2 - ws: 8.11.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + ws: 8.11.0 xmlhttprequest-ssl: 2.0.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: false - engine.io-parser@5.2.2: {} + /engine.io-parser@5.2.2: + resolution: {integrity: sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==} + engines: {node: '>=10.0.0'} + dev: false - enquirer@2.4.1: + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - entities@2.2.0: {} + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true - entities@4.5.0: {} + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} - env-paths@2.2.1: {} + /env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + dev: false - envinfo@7.11.1: {} + /envinfo@7.13.0: + resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} + engines: {node: '>=4'} + hasBin: true - err-code@3.0.1: {} + /err-code@3.0.1: + resolution: {integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==} + dev: false - error-ex@1.3.2: + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 - error-stack-parser@2.1.4: + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} dependencies: stackframe: 1.3.4 + dev: false - errorhandler@1.5.1: + /errorhandler@1.5.1: + resolution: {integrity: sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==} + engines: {node: '>= 0.8'} dependencies: accepts: 1.3.8 escape-html: 1.0.3 + dev: false - es-abstract@1.22.3: + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 call-bind: 1.0.7 - es-set-tostringtag: 2.0.2 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.0 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.1 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 is-callable: 1.2.7 - is-negative-zero: 2.0.2 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 is-string: 1.0.7 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 is-weakref: 1.0.2 object-inspect: 1.13.1 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 + which-typed-array: 1.1.15 + dev: true - es-define-property@1.0.0: + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 - es-errors@1.3.0: {} + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + /es-module-lexer@1.5.2: + resolution: {integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==} + dev: true - es-module-lexer@1.5.3: {} + /es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + dev: false - es-module-lexer@1.5.4: {} + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + dev: true - es-set-tostringtag@2.0.2: + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 - has-tostringtag: 1.0.0 - hasown: 2.0.1 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + dev: true - es-shim-unscopables@1.0.2: + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.1 + hasown: 2.0.2 + dev: true - es-to-primitive@1.2.1: + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 + dev: true - es5-ext@0.10.62: - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - next-tick: 1.1.0 - - es5-ext@0.10.64: + /es5-ext@0.10.64: + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + engines: {node: '>=0.10'} + requiresBuild: true dependencies: es6-iterator: 2.0.3 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 esniff: 2.0.1 next-tick: 1.1.0 - es6-iterator@2.0.3: + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} dependencies: - d: 1.0.1 + d: 1.0.2 es5-ext: 0.10.64 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 - es6-promise@3.3.1: {} + /es6-promise@3.3.1: + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} + dev: true - es6-promise@4.2.8: {} + /es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + dev: true - es6-symbol@3.1.3: + /es6-symbol@3.1.4: + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} dependencies: - d: 1.0.1 + d: 1.0.2 ext: 1.7.0 - es6-weak-map@2.0.3: + /es6-weak-map@2.0.3: + resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 + d: 1.0.2 + es5-ext: 0.10.64 es6-iterator: 2.0.3 - es6-symbol: 3.1.3 + es6-symbol: 3.1.4 - esbuild-register@3.6.0(esbuild@0.21.3): + /esbuild-register@3.6.0(esbuild@0.21.3): + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} + peerDependencies: + esbuild: '>=0.12 <1' dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.4 esbuild: 0.21.3 transitivePeerDependencies: - supports-color + dev: true - esbuild@0.18.20: + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/android-arm': 0.18.20 '@esbuild/android-arm64': 0.18.20 @@ -22756,8 +15382,13 @@ snapshots: '@esbuild/win32-arm64': 0.18.20 '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + dev: true - esbuild@0.19.12: + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.19.12 '@esbuild/android-arm': 0.19.12 @@ -22783,7 +15414,11 @@ snapshots: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 - esbuild@0.20.2: + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.20.2 '@esbuild/android-arm': 0.20.2 @@ -22808,8 +15443,13 @@ snapshots: '@esbuild/win32-arm64': 0.20.2 '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 + dev: true - esbuild@0.21.3: + /esbuild@0.21.3: + resolution: {integrity: sha512-Kgq0/ZsAPzKrbOjCQcjoSmPoWhlcVnGAUo7jvaLHoxW1Drto0KGkR1xBNg2Cp43b9ImvxmPEJZ9xkfcnqPsfBw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.21.3 '@esbuild/android-arm': 0.21.3 @@ -22834,8 +15474,13 @@ snapshots: '@esbuild/win32-arm64': 0.21.3 '@esbuild/win32-ia32': 0.21.3 '@esbuild/win32-x64': 0.21.3 + dev: true - esbuild@0.21.5: + /esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 '@esbuild/android-arm': 0.21.5 @@ -22860,228 +15505,174 @@ snapshots: '@esbuild/win32-arm64': 0.21.5 '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + dev: false - escalade@3.1.2: {} - - escape-html@1.0.3: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@2.0.0: {} - - escape-string-regexp@4.0.0: {} - - escape-string-regexp@5.0.0: {} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} - eslint-compat-utils@0.1.2(eslint@8.55.0): - dependencies: - eslint: 8.55.0 + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - eslint-compat-utils@0.1.2(eslint@8.56.0): - dependencies: - eslint: 8.56.0 + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} - eslint-compat-utils@0.5.0(eslint@8.56.0): - dependencies: - eslint: 8.56.0 - semver: 7.6.0 + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} - eslint-config-prettier@9.1.0(eslint@8.55.0): - dependencies: - eslint: 8.55.0 + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} - eslint-config-prettier@9.1.0(eslint@8.56.0): - dependencies: - eslint: 8.56.0 + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false - eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@7.7.0(eslint@8.55.0)(typescript@5.4.3))(eslint@8.55.0))(eslint-plugin-n@16.6.2(eslint@8.55.0))(eslint-plugin-promise@6.1.1(eslint@8.55.0))(eslint@8.55.0): + /eslint-compat-utils@0.5.0(eslint@8.57.0): + resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' dependencies: - eslint: 8.55.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@7.7.0(eslint@8.55.0)(typescript@5.4.3))(eslint@8.55.0) - eslint-plugin-n: 16.6.2(eslint@8.55.0) - eslint-plugin-promise: 6.1.1(eslint@8.55.0) + eslint: 8.57.0 + semver: 7.6.2 + dev: true - eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0))(eslint-plugin-n@16.6.2(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0): + /eslint-config-prettier@9.1.0(eslint@8.57.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0) - eslint-plugin-n: 16.6.2(eslint@8.56.0) - eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint: 8.57.0 + dev: true - eslint-config-standard@17.1.0(eslint-plugin-import@2.29.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0))(eslint-plugin-n@16.6.2(eslint@8.56.0))(eslint-plugin-promise@6.1.1(eslint@8.56.0))(eslint@8.56.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.2)(eslint-plugin-promise@6.1.1)(eslint@8.57.0): + resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: '^15.0.0 || ^16.0.0 ' + eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.56.0 - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0) - eslint-plugin-n: 16.6.2(eslint@8.56.0) - eslint-plugin-promise: 6.1.1(eslint@8.56.0) + eslint: 8.57.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.8.0)(eslint@8.57.0) + eslint-plugin-n: 16.6.2(eslint@8.57.0) + eslint-plugin-promise: 6.1.1(eslint@8.57.0) + dev: true - eslint-import-resolver-node@0.3.9: + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: debug: 3.2.7 is-core-module: 2.13.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: true - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.7.0(eslint@8.55.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.7.0(eslint@8.55.0)(typescript@5.4.3) - eslint: 8.55.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.7.0(eslint@8.56.0)(typescript@5.4.3) - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.8.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.8.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.9.0(eslint@8.56.0)(typescript@5.4.5) - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color + dev: true - eslint-plugin-es-x@7.5.0(eslint@8.55.0): - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@eslint-community/regexpp': 4.10.0 - eslint: 8.55.0 - eslint-compat-utils: 0.1.2(eslint@8.55.0) - - eslint-plugin-es-x@7.5.0(eslint@8.56.0): + /eslint-plugin-es-x@7.6.0(eslint@8.57.0): + resolution: {integrity: sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 - eslint: 8.56.0 - eslint-compat-utils: 0.1.2(eslint@8.56.0) - - eslint-plugin-es@3.0.1(eslint@8.55.0): - dependencies: - eslint: 8.55.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 + eslint: 8.57.0 + eslint-compat-utils: 0.5.0(eslint@8.57.0) + dev: true - eslint-plugin-es@3.0.1(eslint@8.56.0): + /eslint-plugin-es@3.0.1(eslint@8.57.0): + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-utils: 2.1.0 regexpp: 3.2.0 + dev: true - eslint-plugin-import@2.29.0(@typescript-eslint/parser@7.7.0(eslint@8.55.0)(typescript@5.4.3))(eslint@8.55.0): - dependencies: - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.55.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.7.0(eslint@8.55.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) - hasown: 2.0.1 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.14.2 - optionalDependencies: - '@typescript-eslint/parser': 7.7.0(eslint@8.55.0)(typescript@5.4.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-import@2.29.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint@8.56.0): - dependencies: - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.7.0(eslint@8.56.0)(typescript@5.4.3))(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) - hasown: 2.0.1 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.14.2 - optionalDependencies: - '@typescript-eslint/parser': 7.7.0(eslint@8.56.0)(typescript@5.4.3) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - eslint-plugin-import@2.29.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.8.0)(eslint@8.57.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 + '@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5) + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.9.0(eslint@8.56.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) - hasown: 2.0.1 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.8.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 semver: 6.3.1 - tsconfig-paths: 3.14.2 - optionalDependencies: - '@typescript-eslint/parser': 7.9.0(eslint@8.56.0)(typescript@5.4.5) + tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: true - eslint-plugin-n@16.6.2(eslint@8.55.0): - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - builtins: 5.0.1 - eslint: 8.55.0 - eslint-plugin-es-x: 7.5.0(eslint@8.55.0) - get-tsconfig: 4.7.2 - globals: 13.24.0 - ignore: 5.3.1 - is-builtin-module: 3.2.1 - is-core-module: 2.13.1 - minimatch: 3.1.2 - resolve: 1.22.8 - semver: 7.6.3 - - eslint-plugin-n@16.6.2(eslint@8.56.0): + /eslint-plugin-n@16.6.2(eslint@8.57.0): + resolution: {integrity: sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + eslint: '>=7.0.0' dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - builtins: 5.0.1 - eslint: 8.56.0 - eslint-plugin-es-x: 7.5.0(eslint@8.56.0) - get-tsconfig: 4.7.2 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + builtins: 5.1.0 + eslint: 8.57.0 + eslint-plugin-es-x: 7.6.0(eslint@8.57.0) + get-tsconfig: 4.7.3 globals: 13.24.0 ignore: 5.3.1 is-builtin-module: 3.2.1 @@ -23089,177 +15680,165 @@ snapshots: minimatch: 3.1.2 resolve: 1.22.8 semver: 7.6.3 + dev: true - eslint-plugin-node@11.1.0(eslint@8.55.0): - dependencies: - eslint: 8.55.0 - eslint-plugin-es: 3.0.1(eslint@8.55.0) - eslint-utils: 2.1.0 - ignore: 5.3.1 - minimatch: 3.1.2 - resolve: 1.22.8 - semver: 6.3.1 - - eslint-plugin-node@11.1.0(eslint@8.56.0): + /eslint-plugin-node@11.1.0(eslint@8.57.0): + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' dependencies: - eslint: 8.56.0 - eslint-plugin-es: 3.0.1(eslint@8.56.0) + eslint: 8.57.0 + eslint-plugin-es: 3.0.1(eslint@8.57.0) eslint-utils: 2.1.0 - ignore: 5.3.1 - minimatch: 3.1.2 - resolve: 1.22.8 - semver: 6.3.1 - - eslint-plugin-prettier@5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@8.55.0))(eslint@8.55.0)(prettier@3.2.5): - dependencies: - eslint: 8.55.0 - prettier: 3.2.5 - prettier-linter-helpers: 1.0.0 - synckit: 0.8.6 - optionalDependencies: - '@types/eslint': 8.56.10 - eslint-config-prettier: 9.1.0(eslint@8.55.0) + ignore: 5.3.1 + minimatch: 3.1.2 + resolve: 1.22.8 + semver: 6.3.1 + dev: true - eslint-plugin-prettier@5.1.3(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@8.56.0))(eslint@8.56.0)(prettier@3.2.5): + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true dependencies: - eslint: 8.56.0 + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) prettier: 3.2.5 prettier-linter-helpers: 1.0.0 - synckit: 0.8.6 - optionalDependencies: - '@types/eslint': 8.56.10 - eslint-config-prettier: 9.1.0(eslint@8.56.0) - - eslint-plugin-promise@6.1.1(eslint@8.55.0): - dependencies: - eslint: 8.55.0 - - eslint-plugin-promise@6.1.1(eslint@8.56.0): - dependencies: - eslint: 8.56.0 + synckit: 0.8.8 + dev: true - eslint-plugin-simple-import-sort@12.0.0(eslint@8.56.0): + /eslint-plugin-promise@6.1.1(eslint@8.57.0): + resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 + dev: true - eslint-plugin-storybook@0.8.0(eslint@8.56.0)(typescript@5.4.3): + /eslint-plugin-simple-import-sort@12.1.0(eslint@8.57.0): + resolution: {integrity: sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==} + peerDependencies: + eslint: '>=5.0.0' dependencies: - '@storybook/csf': 0.0.1 - '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.4.3) - eslint: 8.56.0 - requireindex: 1.2.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - - typescript + eslint: 8.57.0 + dev: true - eslint-plugin-storybook@0.8.0(eslint@8.56.0)(typescript@5.4.5): + /eslint-plugin-storybook@0.8.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==} + engines: {node: '>= 18'} + peerDependencies: + eslint: '>=6' dependencies: '@storybook/csf': 0.0.1 - '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.4.5) - eslint: 8.56.0 + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) + eslint: 8.57.0 requireindex: 1.2.0 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color - typescript + dev: true - eslint-plugin-svelte@2.38.0(eslint@8.56.0)(svelte@4.2.13)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)): - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@jridgewell/sourcemap-codec': 1.4.15 - debug: 4.3.4 - eslint: 8.56.0 - eslint-compat-utils: 0.5.0(eslint@8.56.0) - esutils: 2.0.3 - known-css-properties: 0.30.0 - postcss: 8.4.38 - postcss-load-config: 3.1.4(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) - postcss-safe-parser: 6.0.0(postcss@8.4.38) - postcss-selector-parser: 6.0.16 - semver: 7.6.0 - svelte-eslint-parser: 0.35.0(svelte@4.2.13) - optionalDependencies: - svelte: 4.2.13 - transitivePeerDependencies: - - supports-color - - ts-node - - eslint-plugin-svelte@2.38.0(eslint@8.56.0)(svelte@4.2.17)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)): - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@jridgewell/sourcemap-codec': 1.4.15 - debug: 4.3.4 - eslint: 8.56.0 - eslint-compat-utils: 0.5.0(eslint@8.56.0) - esutils: 2.0.3 - known-css-properties: 0.30.0 - postcss: 8.4.38 - postcss-load-config: 3.1.4(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) - postcss-safe-parser: 6.0.0(postcss@8.4.38) - postcss-selector-parser: 6.0.16 - semver: 7.6.0 - svelte-eslint-parser: 0.35.0(svelte@4.2.17) - optionalDependencies: - svelte: 4.2.17 - transitivePeerDependencies: - - supports-color - - ts-node - - eslint-plugin-svelte@2.38.0(eslint@8.56.0)(svelte@4.2.17)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): + /eslint-plugin-svelte@2.38.0(eslint@8.57.0)(svelte@4.2.15): + resolution: {integrity: sha512-IwwxhHzitx3dr0/xo0z4jjDlb2AAHBPKt+juMyKKGTLlKi1rZfA4qixMwnveU20/JTHyipM6keX4Vr7LZFYc9g==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 + peerDependenciesMeta: + svelte: + optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@jridgewell/sourcemap-codec': 1.4.15 debug: 4.3.4 - eslint: 8.56.0 - eslint-compat-utils: 0.5.0(eslint@8.56.0) + eslint: 8.57.0 + eslint-compat-utils: 0.5.0(eslint@8.57.0) esutils: 2.0.3 known-css-properties: 0.30.0 postcss: 8.4.38 - postcss-load-config: 3.1.4(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) + postcss-load-config: 3.1.4(postcss@8.4.38) postcss-safe-parser: 6.0.0(postcss@8.4.38) postcss-selector-parser: 6.0.16 semver: 7.6.0 - svelte-eslint-parser: 0.35.0(svelte@4.2.17) - optionalDependencies: - svelte: 4.2.17 + svelte: 4.2.15 + svelte-eslint-parser: 0.35.0(svelte@4.2.15) transitivePeerDependencies: - supports-color - ts-node + dev: true - eslint-scope@5.1.1: + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 + dev: true - eslint-scope@7.2.2: + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true - eslint-utils@2.1.0: + /eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} dependencies: eslint-visitor-keys: 1.3.0 + dev: true - eslint-utils@3.0.0(eslint@8.4.1): + /eslint-utils@3.0.0(eslint@8.4.1): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' dependencies: eslint: 8.4.1 eslint-visitor-keys: 2.1.0 + dev: true - eslint-visitor-keys@1.3.0: {} + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true - eslint-visitor-keys@2.1.0: {} + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true - eslint-visitor-keys@3.4.3: {} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true - eslint@8.4.1: + /eslint@8.4.1: + resolution: {integrity: sha512-TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true dependencies: '@eslint/eslintrc': 1.4.1 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.4 doctrine: 3.0.0 enquirer: 2.4.1 escape-string-regexp: 4.0.0 @@ -23284,66 +15863,27 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 progress: 2.0.3 regexpp: 3.2.0 - semver: 7.6.3 + semver: 7.6.2 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 v8-compile-cache: 2.4.0 transitivePeerDependencies: - supports-color + dev: true - eslint@8.55.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.55.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.55.0 - '@humanwhocodes/config-array': 0.11.13 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.23.0 - graphemer: 1.4.0 - ignore: 5.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - eslint@8.56.0: + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 + '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -23375,82 +15915,126 @@ snapshots: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color + dev: true - esm-env@1.0.0: {} + /esm-env@1.0.0: + resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} + dev: true - esniff@2.0.1: + /esniff@2.0.1: + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} dependencies: - d: 1.0.1 + d: 1.0.2 es5-ext: 0.10.64 event-emitter: 0.3.5 type: 2.7.2 - espree@9.2.0: + /espree@9.2.0: + resolution: {integrity: sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 + dev: true - espree@9.6.1: + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 + dev: true - esprima@4.0.1: {} + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true - esquery@1.5.0: + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 + dev: true - esrecurse@4.3.0: + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + dev: true - estraverse@4.3.0: {} + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true - estraverse@5.3.0: {} + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + dev: true - estree-util-attach-comments@3.0.0: + /estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} dependencies: '@types/estree': 1.0.5 + dev: false - estree-util-build-jsx@3.0.1: + /estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} dependencies: '@types/estree-jsx': 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 + dev: false - estree-util-is-identifier-name@3.0.0: {} + /estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + dev: false - estree-util-to-js@2.0.0: + /estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} dependencies: '@types/estree-jsx': 1.0.5 astring: 1.8.6 source-map: 0.7.4 + dev: false - estree-util-visit@2.0.0: + /estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} dependencies: '@types/estree-jsx': 1.0.5 '@types/unist': 3.0.2 + dev: false - estree-walker@2.0.2: {} + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - estree-walker@3.0.3: + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: '@types/estree': 1.0.5 - esutils@2.0.3: {} + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} - etag@1.8.1: {} + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} - eth-block-tracker@7.1.0: + /eth-block-tracker@7.1.0: + resolution: {integrity: sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg==} + engines: {node: '>=14.0.0'} dependencies: '@metamask/eth-json-rpc-provider': 1.0.1 '@metamask/safe-event-emitter': 3.1.1 @@ -23459,57 +16043,76 @@ snapshots: pify: 3.0.0 transitivePeerDependencies: - supports-color + dev: false - eth-ens-namehash@2.0.8: + /eth-ens-namehash@2.0.8: + resolution: {integrity: sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==} dependencies: idna-uts46-hx: 2.3.1 js-sha3: 0.5.7 + dev: true - eth-json-rpc-filters@6.0.1: + /eth-json-rpc-filters@6.0.1: + resolution: {integrity: sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig==} + engines: {node: '>=14.0.0'} dependencies: '@metamask/safe-event-emitter': 3.1.1 async-mutex: 0.2.6 eth-query: 2.1.2 json-rpc-engine: 6.1.0 pify: 5.0.0 + dev: false - eth-lib@0.1.29(bufferutil@4.0.8)(utf-8-validate@5.0.10): + /eth-lib@0.1.29: + resolution: {integrity: sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==} dependencies: bn.js: 4.12.0 - elliptic: 6.5.7 + elliptic: 6.5.5 nano-json-stream-parser: 0.1.2 servify: 0.1.12 - ws: 3.3.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 3.3.3 xhr-request-promise: 0.1.3 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: true - eth-lib@0.2.8: + /eth-lib@0.2.8: + resolution: {integrity: sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==} dependencies: bn.js: 4.12.0 - elliptic: 6.5.7 + elliptic: 6.5.5 xhr-request-promise: 0.1.3 + dev: true - eth-query@2.1.2: + /eth-query@2.1.2: + resolution: {integrity: sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==} dependencies: json-rpc-random-id: 1.0.1 xtend: 4.0.2 + dev: false - eth-rpc-errors@4.0.3: + /eth-rpc-errors@4.0.3: + resolution: {integrity: sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==} dependencies: fast-safe-stringify: 2.1.1 + dev: false - ethereum-address@0.0.4: + /ethereum-address@0.0.4: + resolution: {integrity: sha512-3Vwr2CikFLezh/zLAPBV6C51jC0fFnf6vjhkoIWsDms/W5MLgAZNhh9nZUxPmg899K8cVFbklrYQBxcD4JmfrA==} + engines: {node: '>= 4.3.0', npm: '>= 3.7.0'} dependencies: crypto-js: 3.3.0 + dev: true - ethereum-bloom-filters@1.0.10: + /ethereum-bloom-filters@1.1.0: + resolution: {integrity: sha512-J1gDRkLpuGNvWYzWslBQR9cDV4nd4kfvVTE/Wy4Kkm4yb3EYRSlyi0eB/inTsSTTVyA0+HyzHgbr95Fn/Z1fSw==} dependencies: - js-sha3: 0.8.0 + '@noble/hashes': 1.4.0 - ethereum-cryptography@0.1.3: + /ethereum-cryptography@0.1.3: + resolution: {integrity: sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==} dependencies: '@types/pbkdf2': 3.1.2 '@types/secp256k1': 4.0.6 @@ -23527,36 +16130,46 @@ snapshots: secp256k1: 4.0.3 setimmediate: 1.0.5 - ethereum-cryptography@1.2.0: + /ethereum-cryptography@1.2.0: + resolution: {integrity: sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==} dependencies: '@noble/hashes': 1.2.0 '@noble/secp256k1': 1.7.1 '@scure/bip32': 1.1.5 '@scure/bip39': 1.1.1 + dev: false - ethereum-cryptography@2.1.3: + /ethereum-cryptography@2.1.3: + resolution: {integrity: sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==} dependencies: '@noble/curves': 1.3.0 '@noble/hashes': 1.3.3 '@scure/bip32': 1.3.3 '@scure/bip39': 1.2.2 - ethereumjs-abi@0.6.8: + /ethereumjs-abi@0.6.8: + resolution: {integrity: sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==} + deprecated: This library has been deprecated and usage is discouraged. dependencies: bn.js: 4.12.0 ethereumjs-util: 6.2.1 + dev: false - ethereumjs-util@6.2.1: + /ethereumjs-util@6.2.1: + resolution: {integrity: sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==} dependencies: '@types/bn.js': 4.11.6 bn.js: 4.12.0 create-hash: 1.2.0 - elliptic: 6.5.7 + elliptic: 6.5.5 ethereum-cryptography: 0.1.3 ethjs-util: 0.1.6 rlp: 2.2.7 + dev: false - ethereumjs-util@7.1.5: + /ethereumjs-util@7.1.5: + resolution: {integrity: sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==} + engines: {node: '>=10.0.0'} dependencies: '@types/bn.js': 5.1.5 bn.js: 5.2.1 @@ -23564,7 +16177,8 @@ snapshots: ethereum-cryptography: 0.1.3 rlp: 2.2.7 - ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): + /ethers@5.7.2: + resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==} dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -23584,7 +16198,7 @@ snapshots: '@ethersproject/networks': 5.7.1 '@ethersproject/pbkdf2': 5.7.0 '@ethersproject/properties': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@ethersproject/providers': 5.7.2 '@ethersproject/random': 5.7.0 '@ethersproject/rlp': 5.7.0 '@ethersproject/sha2': 5.7.0 @@ -23599,51 +16213,76 @@ snapshots: transitivePeerDependencies: - bufferutil - utf-8-validate + dev: true - ethers@6.13.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): + /ethers@6.13.4: + resolution: {integrity: sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==} + engines: {node: '>=14.0.0'} dependencies: '@adraffy/ens-normalize': 1.10.1 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.2 - '@types/node': 18.15.13 + '@types/node': 22.7.5 aes-js: 4.0.0-beta.5 - tslib: 2.4.0 - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + tslib: 2.7.0 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate + dev: true - ethjs-unit@0.1.6: + /ethjs-unit@0.1.6: + resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} + engines: {node: '>=6.5.0', npm: '>=3'} dependencies: bn.js: 4.11.6 number-to-bn: 1.7.0 - ethjs-util@0.1.6: + /ethjs-util@0.1.6: + resolution: {integrity: sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==} + engines: {node: '>=6.5.0', npm: '>=3'} dependencies: is-hex-prefixed: 1.0.0 strip-hex-prefix: 1.0.0 + dev: false - event-emitter@0.3.5: + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} dependencies: - d: 1.0.1 + d: 1.0.2 es5-ext: 0.10.64 - event-target-shim@5.0.1: {} + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + dev: false - eventemitter2@6.4.9: {} + /eventemitter2@6.4.9: + resolution: {integrity: sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==} + dev: false - eventemitter3@4.0.4: {} + /eventemitter3@4.0.4: + resolution: {integrity: sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==} + dev: true - eventemitter3@5.0.1: {} + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: false - events@3.3.0: {} + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: false - evp_bytestokey@1.0.3: + /evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} dependencies: md5.js: 1.3.5 safe-buffer: 5.2.1 - execa@5.1.1: + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -23655,66 +16294,61 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - execa@7.2.0: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.2.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - - execa@8.0.1: + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: cross-spawn: 7.0.3 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.2.0 + npm-run-path: 5.3.0 onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 - expect@29.7.0: + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/expect-utils': 29.7.0 jest-get-type: 29.6.3 jest-matcher-utils: 29.7.0 jest-message-util: 29.7.0 jest-util: 29.7.0 + dev: true - express@4.21.0: + /express@4.19.2: + resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + engines: {node: '>= 0.10.0'} dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.3 + body-parser: 1.20.2 content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.6.0 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 2.0.0 + encodeurl: 1.0.2 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.3.1 + finalhandler: 1.2.0 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.3 + merge-descriptors: 1.0.1 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.10 + path-to-regexp: 0.1.7 proxy-addr: 2.0.7 - qs: 6.13.0 + qs: 6.11.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 + send: 0.18.0 + serve-static: 1.15.0 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -23722,56 +16356,81 @@ snapshots: vary: 1.1.2 transitivePeerDependencies: - supports-color + dev: true - expressive-code@0.35.6: + /expressive-code@0.35.3: + resolution: {integrity: sha512-XjWWUCxS4uQjPoRM98R7SNWWIYlFEaOeHm1piWv+c7coHCekuWno81thsc3g/UJ+DajNtOEsIQIAAcsBQZ8LMg==} dependencies: - '@expressive-code/core': 0.35.6 - '@expressive-code/plugin-frames': 0.35.6 - '@expressive-code/plugin-shiki': 0.35.6 - '@expressive-code/plugin-text-markers': 0.35.6 + '@expressive-code/core': 0.35.3 + '@expressive-code/plugin-frames': 0.35.3 + '@expressive-code/plugin-shiki': 0.35.3 + '@expressive-code/plugin-text-markers': 0.35.3 + dev: false - ext@1.7.0: + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} dependencies: type: 2.7.2 - extend-shallow@2.0.1: + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} dependencies: is-extendable: 0.1.1 + dev: false - extend@3.0.2: {} - - extendable-error@0.1.7: {} + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - extension-port-stream@2.1.1: - dependencies: - webextension-polyfill: 0.10.0 + /extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + dev: false - extension-port-stream@3.0.0: + /extension-port-stream@3.0.0: + resolution: {integrity: sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==} + engines: {node: '>=12.0.0'} dependencies: readable-stream: 3.6.2 webextension-polyfill: 0.10.0 + dev: false - external-editor@3.1.0: + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 + dev: false - extsprintf@1.3.0: {} - - eyes@0.1.8: {} + /extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + dev: true - fast-base64-decode@1.0.0: {} + /eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + dev: true - fast-deep-equal@2.0.1: {} + /fast-base64-decode@1.0.0: + resolution: {integrity: sha512-qwaScUgUGBYeDNRnbc/KyllVU88Jk1pRHPStuF/lO7B0/RTRLj7U0lkdTAutlBblY08rwZDff6tNU9cjv6j//Q==} + dev: true - fast-deep-equal@3.1.3: {} + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-diff@1.3.0: {} + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true - fast-fifo@1.3.2: {} + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + dev: false - fast-glob@3.3.2: + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -23779,53 +16438,94 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.5 - fast-json-stable-stringify@2.1.0: {} + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true - fast-levenshtein@2.0.6: {} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true - fast-redact@3.3.0: {} + /fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + dev: false - fast-safe-stringify@2.1.1: {} + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + dev: false - fast-xml-parser@4.2.5: + /fast-xml-parser@4.2.5: + resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} + hasBin: true dependencies: strnum: 1.0.5 + dev: false - fast-xml-parser@4.3.4: + /fast-xml-parser@4.3.6: + resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} + hasBin: true dependencies: strnum: 1.0.5 + dev: false - fastparse@1.1.2: {} + /fastparse@1.1.2: + resolution: {integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==} - fastq@1.17.1: + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 - fb-watchman@2.0.2: + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: bser: 2.1.1 + dev: false - fdir@6.3.0(picomatch@3.0.1): - optionalDependencies: + /fd-package-json@1.2.0: + resolution: {integrity: sha512-45LSPmWf+gC5tdCQMNH4s9Sr00bIkiD9aN7dc5hqkrEw1geRYyDQS1v1oMHAW3ysfxfndqGsrDREHHjNNbKUfA==} + dependencies: + walk-up-path: 3.0.1 + dev: true + + /fdir@6.2.0(picomatch@3.0.1): + resolution: {integrity: sha512-9XaWcDl0riOX5j2kYfy0kKdg7skw3IY6kA4LFT8Tk2yF9UdrADUy8D6AJuBLtf7ISm/MksumwAHE3WVbMRyCLw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + dependencies: picomatch: 3.0.1 + dev: false - file-entry-cache@6.0.1: + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 + dev: true - filesize@10.1.1: {} - - fill-range@7.0.1: - dependencies: - to-regex-range: 5.0.1 + /filesize@10.1.1: + resolution: {integrity: sha512-L0cdwZrKlwZQkMSFnCflJ6J2Y+5egO/p3vgRSDQGxQt++QbUZe5gMbRO6kg6gzwQDPvq2Fk9AmoxUNfZ5gdqaQ==} + engines: {node: '>= 10.4.0'} + dev: true - fill-range@7.1.1: + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - filter-obj@1.1.0: {} + /filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} + engines: {node: '>=0.10.0'} + dev: false - finalhandler@1.1.2: + /finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -23836,11 +16536,14 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color + dev: false - finalhandler@1.3.1: + /finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} dependencies: debug: 2.6.9 - encodeurl: 2.0.0 + encodeurl: 1.0.2 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 @@ -23848,238 +16551,408 @@ snapshots: unpipe: 1.0.0 transitivePeerDependencies: - supports-color + dev: true - find-cache-dir@2.1.0: + /find-cache-dir@2.1.0: + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} dependencies: commondir: 1.0.1 make-dir: 2.1.0 pkg-dir: 3.0.0 - find-cache-dir@3.3.2: + /find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} dependencies: commondir: 1.0.1 make-dir: 3.1.0 pkg-dir: 4.2.0 + dev: true - find-root@1.1.0: {} - - find-up-simple@1.0.0: {} + /find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + dev: false - find-up@2.1.0: + /find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} dependencies: locate-path: 2.0.0 + dev: false - find-up@3.0.0: + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} dependencies: locate-path: 3.0.0 - find-up@4.1.0: + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - find-up@5.0.0: + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - find-up@6.3.0: + /find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: locate-path: 7.2.0 path-exists: 5.0.0 - find-yarn-workspace-root2@1.2.16: + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} dependencies: - micromatch: 4.0.8 + micromatch: 4.0.5 pkg-dir: 4.2.0 + dev: false - flat-cache@3.2.0: + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 + dev: true - flat@4.1.1: + /flat@4.1.1: + resolution: {integrity: sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==} + hasBin: true dependencies: is-buffer: 2.0.5 - flat@5.0.2: {} + /flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + dev: false - flatted@3.2.9: {} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + dev: true - flattie@1.1.1: {} + /flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + dev: false - flow-enums-runtime@0.0.6: {} + /flow-enums-runtime@0.0.6: + resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} + dev: false - flow-parser@0.206.0: {} + /flow-parser@0.235.1: + resolution: {integrity: sha512-s04193L4JE+ntEcQXbD6jxRRlyj9QXcgEl2W6xSjH4l9x4b0eHoCHfbYHjqf9LdZFUiM5LhgpiqsvLj/AyOyYQ==} + engines: {node: '>=0.4.0'} - follow-redirects@1.15.5(debug@4.3.4): - optionalDependencies: + /follow-redirects@1.15.6(debug@4.3.4): + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: debug: 4.3.4 - follow-redirects@1.15.9(debug@4.3.7): - optionalDependencies: - debug: 4.3.7(supports-color@8.1.1) + /follow-redirects@1.15.6(debug@4.3.6): + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.6(supports-color@8.1.1) + dev: false - for-each@0.3.3: + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 - foreground-child@3.1.1: + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - forever-agent@0.6.1: {} - - forge-std@https://codeload.github.com/foundry-rs/forge-std/tar.gz/36c303b7ffdd842d06b1ec2744c9b9b5fb3083f3: {} - - forge-std@https://codeload.github.com/foundry-rs/forge-std/tar.gz/8f24d6b04c92975e0795b5868aa0d783251cdeaa: {} + /forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + dev: true - form-data-encoder@1.7.1: {} + /form-data-encoder@1.7.1: + resolution: {integrity: sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==} + dev: true - form-data-encoder@2.1.4: {} + /form-data-encoder@2.1.4: + resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} + engines: {node: '>= 14.17'} + dev: true - form-data@2.3.3: + /form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: true - form-data@4.0.0: + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - forwarded@0.2.0: {} + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: true - fp-ts@1.19.3: {} + /fp-ts@1.19.3: + resolution: {integrity: sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==} + dev: false - fraction.js@4.3.7: {} + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fresh@0.5.2: {} + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} - fs-extra@11.2.0: + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@4.0.3: + /fs-extra@4.0.3: + resolution: {integrity: sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 + dev: true - fs-extra@7.0.1: + /fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 + dev: false - fs-extra@8.1.0: + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} dependencies: graceful-fs: 4.2.11 jsonfile: 4.0.0 universalify: 0.1.2 + dev: false - fs-minipass@1.2.7: + /fs-minipass@1.2.7: + resolution: {integrity: sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==} dependencies: minipass: 2.9.0 + dev: true + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: true - fs.realpath@1.0.0: {} + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - fsevents@2.3.2: + /fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true optional: true - fsevents@2.3.3: + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true optional: true - function-bind@1.1.2: {} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.6: + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 functions-have-names: 1.2.3 + dev: true - functional-red-black-tree@1.0.1: {} + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true - functions-have-names@1.2.3: {} + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true - futoin-hkdf@1.5.3: {} + /futoin-hkdf@1.5.3: + resolution: {integrity: sha512-SewY5KdMpaoCeh7jachEWFsh1nNlaDjNHZXWqL5IGwtpEYHTgkr2+AMCgNwKWkcc0wpSYrZfR7he4WdmHFtDxQ==} + engines: {node: '>=8'} + dev: false - gensync@1.0.0-beta.2: {} + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} - get-caller-file@2.0.5: {} + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: false - get-east-asian-width@1.2.0: {} + /get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + dev: false - get-func-name@2.0.2: {} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + dev: true - get-intrinsic@1.2.4: + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 function-bind: 1.1.2 has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.1 + hasown: 2.0.2 - get-iterator@1.0.2: {} + /get-iterator@1.0.2: + resolution: {integrity: sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==} + dev: false - get-port-please@3.1.2: {} + /get-port-please@3.1.2: + resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + dev: false - get-stream@5.2.0: + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} dependencies: pump: 3.0.0 + dev: true - get-stream@6.0.1: {} + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} - get-stream@8.0.1: {} + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} - get-symbol-description@1.0.0: + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 + es-errors: 1.3.0 get-intrinsic: 1.2.4 + dev: true - get-tsconfig@4.7.2: + /get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} dependencies: resolve-pkg-maps: 1.0.0 + dev: true - getpass@0.1.7: + /getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} dependencies: assert-plus: 1.0.0 + dev: true + + /giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true + dependencies: + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.9 + ohash: 1.1.3 + pathe: 1.1.2 + tar: 6.2.1 + dev: true - github-slugger@2.0.0: {} + /github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - glob-parent@5.1.2: + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - glob-parent@6.0.2: + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 - glob@10.3.10: + /glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 minimatch: 9.0.4 - minipass: 7.0.4 - path-scurry: 1.10.1 + minipass: 7.1.0 + path-scurry: 1.10.2 - glob@11.0.0: + /glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} + hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 4.0.1 + jackspeak: 4.0.2 minimatch: 10.0.1 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 2.0.0 + dev: true - glob@7.2.0: + /glob@7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -24087,8 +16960,10 @@ snapshots: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: false - glob@7.2.3: + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -24097,36 +16972,48 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 5.0.1 + minimatch: 5.1.6 once: 1.4.0 - global@4.4.0: + /global@4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} dependencies: min-document: 2.19.0 process: 0.11.10 + dev: true - globals@11.12.0: {} - - globals@13.23.0: - dependencies: - type-fest: 0.20.2 + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} - globals@13.24.0: + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} dependencies: type-fest: 0.20.2 + dev: true - globalthis@1.0.3: + /globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 + gopd: 1.0.1 + dev: true - globalyzer@0.1.0: {} + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - globby@11.1.0: + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -24135,7 +17022,9 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@13.2.2: + /globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 fast-glob: 3.3.2 @@ -24143,13 +17032,29 @@ snapshots: merge2: 1.4.1 slash: 4.0.0 - globrex@0.1.2: {} + /globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.1 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + dev: true + + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - gopd@1.0.1: + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.4 - got@11.8.6: + /got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} dependencies: '@sindresorhus/is': 4.6.0 '@szmarczak/http-timer': 4.0.6 @@ -24162,8 +17067,11 @@ snapshots: lowercase-keys: 2.0.0 p-cancelable: 2.1.1 responselike: 2.0.1 + dev: true - got@12.1.0: + /got@12.1.0: + resolution: {integrity: sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==} + engines: {node: '>=14.16'} dependencies: '@sindresorhus/is': 4.6.0 '@szmarczak/http-timer': 5.0.1 @@ -24178,8 +17086,11 @@ snapshots: lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 2.0.1 + dev: true - got@12.6.1: + /got@12.6.1: + resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} + engines: {node: '>=14.16'} dependencies: '@sindresorhus/is': 5.6.0 '@szmarczak/http-timer': 5.0.1 @@ -24192,35 +17103,54 @@ snapshots: lowercase-keys: 3.0.0 p-cancelable: 3.0.0 responselike: 3.0.0 + dev: true - graceful-fs@4.2.10: {} + /graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true - graceful-fs@4.2.11: {} + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - grapheme-splitter@1.0.4: {} + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: false - graphemer@1.4.0: {} + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true - gray-matter@4.0.3: + /gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} dependencies: js-yaml: 3.14.1 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 + dev: false - h3@1.10.2: + /h3@1.11.1: + resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} dependencies: - cookie-es: 1.0.0 + cookie-es: 1.1.0 + crossws: 0.2.4 defu: 6.1.4 destr: 2.0.3 - iron-webcrypto: 1.0.0 + iron-webcrypto: 1.1.1 ohash: 1.1.3 - radix3: 1.1.0 - ufo: 1.4.0 + radix3: 1.1.2 + ufo: 1.5.3 uncrypto: 0.1.3 unenv: 1.9.0 + transitivePeerDependencies: + - uWebSockets.js + dev: false - handlebars@4.7.8: + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true dependencies: minimist: 1.2.8 neo-async: 2.6.2 @@ -24228,19 +17158,37 @@ snapshots: wordwrap: 1.0.0 optionalDependencies: uglify-js: 3.19.3 + dev: false - har-schema@2.0.0: {} + /har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + dev: true - har-validator@5.1.5: + /har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported dependencies: ajv: 6.12.6 har-schema: 2.0.0 + dev: true - hardhat@2.22.13(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3))(typescript@5.4.3)(utf-8-validate@5.0.10): + /hardhat@2.22.15(ts-node@10.9.2)(typescript@5.4.5): + resolution: {integrity: sha512-BpTGa9PE/sKAaHi4s/S1e9WGv63DR1m7Lzfd60C8gSEchDPfAJssVRSq0MZ2v2k76ig9m0kHAwVLf5teYwu/Mw==} + hasBin: true + peerDependencies: + ts-node: '*' + typescript: '*' + peerDependenciesMeta: + ts-node: + optional: true + typescript: + optional: true dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 - '@nomicfoundation/edr': 0.6.3 + '@nomicfoundation/edr': 0.6.4 '@nomicfoundation/ethereumjs-common': 4.0.4 '@nomicfoundation/ethereumjs-tx': 5.0.4 '@nomicfoundation/ethereumjs-util': 9.0.4 @@ -24253,9 +17201,9 @@ snapshots: ansi-escapes: 4.3.2 boxen: 5.1.2 chalk: 2.4.2 - chokidar: 4.0.0 + chokidar: 4.0.1 ci-info: 2.0.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) enquirer: 2.4.1 env-paths: 2.2.1 ethereum-cryptography: 1.2.0 @@ -24275,63 +17223,86 @@ snapshots: raw-body: 2.5.2 resolve: 1.17.0 semver: 6.3.1 - solc: 0.8.26(debug@4.3.7) + solc: 0.8.26(debug@4.3.6) source-map-support: 0.5.21 stacktrace-parser: 0.1.10 + ts-node: 10.9.2(@types/node@20.12.8)(typescript@5.4.5) tsort: 0.0.1 - undici: 5.28.3 + typescript: 5.4.5 + undici: 5.28.4 uuid: 8.3.2 - ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) - optionalDependencies: - ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.4.3) - typescript: 5.4.3 + ws: 7.5.9 transitivePeerDependencies: - bufferutil - c-kzg - supports-color - utf-8-validate + dev: false - has-bigints@1.0.2: {} + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true - has-flag@3.0.0: {} + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} - has-flag@4.0.0: {} + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} - has-property-descriptors@1.0.2: + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 - has-proto@1.0.3: {} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} - has-symbols@1.0.3: {} + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} - has-tostringtag@1.0.0: + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - hash-base@3.1.0: + /hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} dependencies: inherits: 2.0.4 readable-stream: 3.6.2 safe-buffer: 5.2.1 - hash.js@1.1.7: + /hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} dependencies: inherits: 2.0.4 minimalistic-assert: 1.0.1 - hashlru@2.3.0: {} + /hashlru@2.3.0: + resolution: {integrity: sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==} + dev: false - hasown@2.0.1: + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 - hast-util-embedded@3.0.0: + /hast-util-embedded@3.0.0: + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} dependencies: '@types/hast': 3.0.4 hast-util-is-element: 3.0.0 + dev: false - hast-util-from-html@2.0.1: + /hast-util-from-html@2.0.1: + resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} dependencies: '@types/hast': 3.0.4 devlop: 1.1.0 @@ -24339,8 +17310,10 @@ snapshots: parse5: 7.1.2 vfile: 6.0.1 vfile-message: 4.0.2 + dev: false - hast-util-from-parse5@8.0.1: + /hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -24350,36 +17323,49 @@ snapshots: vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 + dev: false - hast-util-has-property@3.0.0: + /hast-util-has-property@3.0.0: + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} dependencies: '@types/hast': 3.0.4 + dev: false - hast-util-heading-rank@3.0.0: + /hast-util-heading-rank@3.0.0: + resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} dependencies: '@types/hast': 3.0.4 + dev: true - hast-util-is-body-ok-link@3.0.0: + /hast-util-is-body-ok-link@3.0.0: + resolution: {integrity: sha512-VFHY5bo2nY8HiV6nir2ynmEB1XkxzuUffhEGeVx7orbu/B1KaGyeGgMZldvMVx5xWrDlLLG/kQ6YkJAMkBEx0w==} dependencies: '@types/hast': 3.0.4 + dev: false - hast-util-is-element@3.0.0: + /hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} dependencies: '@types/hast': 3.0.4 - hast-util-parse-selector@4.0.0: + /hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: '@types/hast': 3.0.4 + dev: false - hast-util-phrasing@3.0.1: + /hast-util-phrasing@3.0.1: + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} dependencies: '@types/hast': 3.0.4 hast-util-embedded: 3.0.0 hast-util-has-property: 3.0.0 hast-util-is-body-ok-link: 3.0.0 hast-util-is-element: 3.0.0 + dev: false - hast-util-raw@9.0.3: + /hast-util-raw@9.0.3: + resolution: {integrity: sha512-ICWvVOF2fq4+7CMmtCPD5CM4QKjPbHpPotE6+8tDooV0ZuyJVUzHsrNX+O5NaRbieTf0F7FfeBOMAwi6Td0+yQ==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -24391,11 +17377,13 @@ snapshots: parse5: 7.1.2 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.3 + vfile: 6.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 + dev: false - hast-util-select@6.0.2: + /hast-util-select@6.0.2: + resolution: {integrity: sha512-hT/SD/d/Meu+iobvgkffo1QecV8WeKWxwsNMzcTJsKw1cKTQKSR/7ArJeURLNJF9HDjp9nVoORyNNJxrvBye8Q==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -24413,8 +17401,10 @@ snapshots: space-separated-tokens: 2.0.2 unist-util-visit: 5.0.0 zwitch: 2.0.4 + dev: false - hast-util-to-estree@3.1.0: + /hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} dependencies: '@types/estree': 1.0.5 '@types/estree-jsx': 1.0.5 @@ -24434,8 +17424,10 @@ snapshots: zwitch: 2.0.4 transitivePeerDependencies: - supports-color + dev: false - hast-util-to-html@9.0.1: + /hast-util-to-html@9.0.1: + resolution: {integrity: sha512-hZOofyZANbyWo+9RP75xIDV/gq+OUKx+T46IlwERnKmfpwp81XBFbT9mi26ws+SJchA4RVUQwIBJpqEOBhMzEQ==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 @@ -24449,22 +17441,10 @@ snapshots: space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 + dev: false - hast-util-to-html@9.0.2: - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.2 - ccount: 2.0.1 - comma-separated-tokens: 2.0.3 - hast-util-whitespace: 3.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.1.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.4 - zwitch: 2.0.4 - - hast-util-to-jsx-runtime@2.3.0: + /hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} dependencies: '@types/estree': 1.0.5 '@types/hast': 3.0.4 @@ -24483,8 +17463,10 @@ snapshots: vfile-message: 4.0.2 transitivePeerDependencies: - supports-color + dev: false - hast-util-to-parse5@8.0.0: + /hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -24493,99 +17475,141 @@ snapshots: space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 + dev: false - hast-util-to-string@3.0.0: + /hast-util-to-string@3.0.0: + resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} dependencies: '@types/hast': 3.0.4 - hast-util-to-text@4.0.2: + /hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.2 hast-util-is-element: 3.0.0 unist-util-find-after: 5.0.0 + dev: false - hast-util-whitespace@3.0.0: + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} dependencies: '@types/hast': 3.0.4 + dev: false - hastscript@8.0.0: + /hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.5.0 space-separated-tokens: 2.0.2 + dev: false - hastscript@9.0.0: + /hastscript@9.0.0: + resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.5.0 space-separated-tokens: 2.0.2 + dev: false - he@1.2.0: {} + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: false - header-case@2.0.4: + /header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} dependencies: capital-case: 1.0.4 tslib: 2.6.2 - hermes-estree@0.15.0: {} + /hermes-estree@0.19.1: + resolution: {integrity: sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==} + dev: false - hermes-estree@0.19.1: {} + /hermes-estree@0.20.1: + resolution: {integrity: sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==} + dev: false - hermes-parser@0.15.0: + /hermes-parser@0.19.1: + resolution: {integrity: sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==} dependencies: - hermes-estree: 0.15.0 + hermes-estree: 0.19.1 + dev: false - hermes-parser@0.19.1: + /hermes-parser@0.20.1: + resolution: {integrity: sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==} dependencies: - hermes-estree: 0.19.1 + hermes-estree: 0.20.1 + dev: false - hermes-profile-transformer@0.0.6: + /hermes-profile-transformer@0.0.6: + resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==} + engines: {node: '>=8'} dependencies: source-map: 0.7.4 + dev: false - hey-listen@1.0.8: {} + /hey-listen@1.0.8: + resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==} + dev: false - hmac-drbg@1.0.1: + /hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} dependencies: hash.js: 1.1.7 minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - hoist-non-react-statics@3.3.2: - dependencies: - react-is: 16.13.1 - - html-encoding-sniffer@4.0.0: + /html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} dependencies: whatwg-encoding: 3.1.1 + dev: true - html-escaper@2.0.2: {} + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true - html-escaper@3.0.3: {} + /html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + dev: false - html-parse-stringify@3.0.1: + /html-parse-stringify@3.0.1: + resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} dependencies: void-elements: 3.1.0 + dev: false - html-void-elements@3.0.0: {} + /html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + dev: false - html-whitespace-sensitive-tag-names@3.0.0: {} + /html-whitespace-sensitive-tag-names@3.0.0: + resolution: {integrity: sha512-KlClZ3/Qy5UgvpvVvDomGhnQhNWH5INE8GwvSIQ9CWt1K0zbbXrl7eN5bWaafOZgtmO3jMPwUqmrmEwinhPq1w==} + dev: false - htmlparser2-svelte@4.1.0: + /htmlparser2-svelte@4.1.0: + resolution: {integrity: sha512-+4f4RBFz7Rj2Hp0ZbFbXC+Kzbd6S9PgjiuFtdT76VMNgKogrEZy0pG2UrPycPbrZzVEIM5lAT3lAdkSTCHLPjg==} dependencies: domelementtype: 2.3.0 domhandler: 3.3.0 domutils: 2.8.0 entities: 2.2.0 + dev: true - http-cache-semantics@4.1.1: {} + /http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - http-errors@2.0.0: + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} dependencies: depd: 2.0.0 inherits: 2.0.4 @@ -24593,191 +17617,269 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 - http-https@1.0.0: {} + /http-https@1.0.0: + resolution: {integrity: sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg==} + dev: true - http-proxy-agent@7.0.2: + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true - http-shutdown@1.2.2: {} + /http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + dev: false - http-signature@1.2.0: + /http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} dependencies: assert-plus: 1.0.0 jsprim: 1.4.2 sshpk: 1.18.0 + dev: true - http2-wrapper@1.0.3: + /http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 + dev: true - http2-wrapper@2.2.1: + /http2-wrapper@2.2.1: + resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} + engines: {node: '>=10.19.0'} dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 + dev: true - https-proxy-agent@5.0.1: + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color + dev: false - https-proxy-agent@7.0.4: + /https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: true - human-id@1.0.2: {} - - human-signals@2.1.0: {} - - human-signals@4.3.1: {} + /human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + dev: false - human-signals@5.0.0: {} + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} - i18next-browser-languagedetector@7.1.0: - dependencies: - '@babel/runtime': 7.23.9 + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} - i18next-browser-languagedetector@7.2.0: + /i18next-browser-languagedetector@7.1.0: + resolution: {integrity: sha512-cr2k7u1XJJ4HTOjM9GyOMtbOA47RtUoWRAtt52z43r3AoMs2StYKyjS3URPhzHaf+mn10hY9dZWamga5WPQjhA==} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.5 + dev: false - i18next@22.5.1: + /i18next@22.5.1: + resolution: {integrity: sha512-8TGPgM3pAD+VRsMtUMNknRz3kzqwp/gPALrWMsDnmC1mKqJwpWyooQRLMcbTwq8z8YwSmuj+ZYvc+xCuEpkssA==} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.5 + dev: false - i18next@23.11.5: + /i18next@23.11.5: + resolution: {integrity: sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.5 + dev: false - iconv-lite@0.4.24: + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - iconv-lite@0.6.3: + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 - idb-keyval@6.2.1: {} + /idb-keyval@6.2.1: + resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==} + dev: false - idna-uts46-hx@2.3.1: + /idna-uts46-hx@2.3.1: + resolution: {integrity: sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==} + engines: {node: '>=4.0.0'} dependencies: punycode: 2.1.0 + dev: true - ieee754@1.2.1: {} + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore-walk@5.0.1: + /ignore-walk@5.0.1: + resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: - minimatch: 5.0.1 - - ignore@4.0.6: {} + minimatch: 5.1.6 + dev: true - ignore@5.3.0: {} + /ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + dev: true - ignore@5.3.1: {} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} - image-size@1.1.1: + /image-size@1.1.1: + resolution: {integrity: sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==} + engines: {node: '>=16.x'} + hasBin: true dependencies: queue: 6.0.2 + dev: false - immediate@3.0.6: {} + /immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + dev: true - immutable@4.3.7: {} + /immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + dev: false - import-fresh@2.0.0: + /import-fresh@2.0.0: + resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} + engines: {node: '>=4'} dependencies: caller-path: 2.0.0 resolve-from: 3.0.0 + dev: false - import-fresh@3.3.0: + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: true - import-meta-resolve@4.0.0: {} - - import-meta-resolve@4.1.0: {} + /import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} - imurmurhash@0.1.4: {} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} - indent-string@4.0.0: {} + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} - inflight@1.0.6: + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 - inherits@2.0.4: {} + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ini@1.3.8: {} + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true - inline-style-parser@0.1.1: {} + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + dev: false - inline-style-parser@0.2.3: {} + /inline-style-parser@0.2.3: + resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} + dev: false - interface-datastore@7.0.4: + /interface-datastore@7.0.4: + resolution: {integrity: sha512-Q8LZS/jfFFHz6XyZazLTAc078SSCoa27ZPBOfobWdpDiFO7FqPA2yskitUJIhaCgxNK8C+/lMBUTBNfVIDvLiw==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: interface-store: 3.0.4 nanoid: 4.0.2 uint8arrays: 4.0.10 + dev: false - interface-datastore@8.2.11: + /interface-datastore@8.2.11: + resolution: {integrity: sha512-9E0iXehfp/j0UbZ2mvlYB4K9pP7uQBCppfuy8WHs1EHF6wLQrM9+zwyX+8Qt6HnH4GKZRyXX/CNXm6oD4+QYgA==} dependencies: interface-store: 5.1.8 - uint8arrays: 5.0.3 + uint8arrays: 5.1.0 + dev: false - interface-store@3.0.4: {} + /interface-store@3.0.4: + resolution: {integrity: sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - interface-store@5.1.8: {} + /interface-store@5.1.8: + resolution: {integrity: sha512-7na81Uxkl0vqk0CBPO5PvyTkdaJBaezwUJGsMOz7riPOq0rJt+7W31iaopaMICWea/iykUsvNlPx/Tc+MxC3/w==} + dev: false - internal-slot@1.0.6: + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.4 - hasown: 2.0.1 - side-channel: 1.0.4 + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.6 + dev: true - intl-messageformat@10.5.11: + /intl-messageformat@10.5.11: + resolution: {integrity: sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg==} dependencies: '@formatjs/ecma402-abstract': 1.18.2 '@formatjs/fast-memoize': 2.2.0 '@formatjs/icu-messageformat-parser': 2.7.6 tslib: 2.6.2 - invariant@2.2.4: + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} dependencies: loose-envify: 1.4.0 + dev: false - io-ts@1.10.4: + /io-ts@1.10.4: + resolution: {integrity: sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==} dependencies: fp-ts: 1.19.3 + dev: false - ioredis@5.3.2: - dependencies: - '@ioredis/commands': 1.2.0 - cluster-key-slot: 1.1.2 - debug: 4.3.7(supports-color@8.1.1) - denque: 2.1.0 - lodash.defaults: 4.2.0 - lodash.isarguments: 3.1.0 - redis-errors: 1.2.0 - redis-parser: 3.0.0 - standard-as-callback: 2.1.0 - transitivePeerDependencies: - - supports-color - - ip@1.1.9: {} - - ipaddr.js@1.9.1: {} + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: true - ipfs-core-types@0.14.1: + /ipfs-core-types@0.14.1: + resolution: {integrity: sha512-4ujF8NlM9bYi2I6AIqPP9wfGGX0x/gRCkMoFdOQfxxrFg6HcAdfS+0/irK8mp4e7znOHWReOHeWqCGw+dAPwsw==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details dependencies: '@ipld/dag-pb': 4.1.0 '@libp2p/interface-keychain': 2.0.5 @@ -24791,19 +17893,23 @@ snapshots: multiformats: 11.0.2 transitivePeerDependencies: - supports-color + dev: false - ipfs-core-utils@0.18.1(encoding@0.1.13): + /ipfs-core-utils@0.18.1: + resolution: {integrity: sha512-P7jTpdfvlyBG3JR4o+Th3QJADlmXmwMxbkjszXry6VAjfSfLIIqXsdeYPoVRkV69GFEeQozuz2k/jR+U8cUH/Q==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details dependencies: '@libp2p/logger': 2.1.1 '@multiformats/multiaddr': 11.6.1 '@multiformats/multiaddr-to-uri': 9.0.8 any-signal: 3.0.1 blob-to-it: 2.0.6 - browser-readablestream-to-it: 2.0.6 + browser-readablestream-to-it: 2.0.7 err-code: 3.0.1 ipfs-core-types: 0.14.1 ipfs-unixfs: 9.0.1 - ipfs-utils: 9.0.14(encoding@0.1.13) + ipfs-utils: 9.0.14 it-all: 2.0.1 it-map: 2.0.1 it-peekable: 2.0.1 @@ -24817,8 +17923,12 @@ snapshots: transitivePeerDependencies: - encoding - supports-color + dev: false - ipfs-http-client@60.0.1(encoding@0.1.13): + /ipfs-http-client@60.0.1: + resolution: {integrity: sha512-amwM5TNuf077J+/q27jPHfatC05vJuIbX6ZnlYLjc2QsjOCKsORNBqV3brNw7l+fPrijV1yrwEDLG3JEnKsfMw==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + deprecated: js-IPFS has been deprecated in favour of Helia - please see https://github.com/ipfs/js-ipfs/issues/4336 for details dependencies: '@ipld/dag-cbor': 9.2.0 '@ipld/dag-json': 10.2.0 @@ -24830,8 +17940,8 @@ snapshots: dag-jose: 4.0.0 err-code: 3.0.1 ipfs-core-types: 0.14.1 - ipfs-core-utils: 0.18.1(encoding@0.1.13) - ipfs-utils: 9.0.14(encoding@0.1.13) + ipfs-core-utils: 0.18.1 + ipfs-utils: 9.0.14 it-first: 2.0.1 it-last: 2.0.1 merge-options: 3.0.4 @@ -24842,13 +17952,19 @@ snapshots: transitivePeerDependencies: - encoding - supports-color + dev: false - ipfs-unixfs@9.0.1: + /ipfs-unixfs@9.0.1: + resolution: {integrity: sha512-jh2CbXyxID+v3jLml9CqMwjdSS9ZRnsGfQGGPOfem0/hT/L48xUeTPvh7qLFWkZcIMhZtG+fnS1teei8x5uGBg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: err-code: 3.0.1 - protobufjs: 7.2.6 + protobufjs: 7.3.0 + dev: false - ipfs-utils@9.0.14(encoding@0.1.13): + /ipfs-utils@9.0.14: + resolution: {integrity: sha512-zIaiEGX18QATxgaS0/EOQNoo33W0islREABAcxXE8n7y2MGAlB+hdsxXn4J0hGZge8IqVQhW8sWIb+oJz2yEvg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: any-signal: 3.0.1 browser-readablestream-to-it: 1.0.3 @@ -24862,271 +17978,483 @@ snapshots: it-to-stream: 1.0.0 merge-options: 3.0.4 nanoid: 3.3.7 - native-fetch: 3.0.0(node-fetch@2.7.0(encoding@0.1.13)) - node-fetch: 2.7.0(encoding@0.1.13) + native-fetch: 3.0.0(node-fetch@2.7.0) + node-fetch: 2.7.0 react-native-fetch-api: 3.0.0 stream-to-it: 0.2.4 transitivePeerDependencies: - encoding + dev: false - iron-webcrypto@1.0.0: {} + /iron-webcrypto@1.1.1: + resolution: {integrity: sha512-5xGwQUWHQSy039rFr+5q/zOmj7GP0Ypzvo34Ep+61bPIhaLduEDp/PvLGlU3awD2mzWUR0weN2vJ1mILydFPEg==} + dev: false - is-absolute-url@4.0.1: {} + /is-absolute-url@4.0.1: + resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-alphabetical@2.0.1: {} + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false - is-alphanumerical@2.0.1: + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} dependencies: is-alphabetical: 2.0.1 is-decimal: 2.0.1 + dev: false - is-arguments@1.1.1: + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 - is-array-buffer@3.0.2: + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - is-typed-array: 1.1.12 + dev: true - is-arrayish@0.2.1: {} + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.2: {} + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: false - is-bigint@1.0.4: + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 + dev: true - is-binary-path@2.1.0: + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} dependencies: - binary-extensions: 2.2.0 + binary-extensions: 2.3.0 - is-boolean-object@1.1.2: + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 + dev: true - is-buffer@2.0.5: {} + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} - is-builtin-module@3.2.1: + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} - is-callable@1.2.7: {} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.2 - is-core-module@2.13.1: + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} dependencies: - hasown: 2.0.1 + is-typed-array: 1.1.13 + dev: true - is-date-object@1.0.5: + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 + dev: true - is-decimal@2.0.1: {} + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false - is-directory@0.3.1: {} + /is-directory@0.3.1: + resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} + engines: {node: '>=0.10.0'} + dev: false - is-docker@2.2.1: {} + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: false - is-docker@3.0.0: {} + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: false - is-electron@2.2.2: {} + /is-electron@2.2.2: + resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} + dev: false - is-extendable@0.1.1: {} + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: false - is-extglob@2.1.1: {} + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} - is-fullwidth-code-point@2.0.0: {} + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + dev: false - is-fullwidth-code-point@3.0.0: {} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} - is-function@1.0.2: {} + /is-function@1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + dev: true - is-generator-function@1.0.10: + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 - is-glob@4.0.3: + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - is-hex-prefixed@1.0.0: {} + /is-hex-prefixed@1.0.0: + resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} + engines: {node: '>=6.5.0', npm: '>=3'} - is-hexadecimal@2.0.1: {} + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false - is-inside-container@1.0.0: + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true dependencies: is-docker: 3.0.0 + dev: false - is-interactive@1.0.0: {} + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} - is-interactive@2.0.0: {} + /is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} - is-negative-zero@2.0.2: {} + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + dev: true - is-number-object@1.0.7: + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 + dev: true - is-number@7.0.0: {} + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} - is-path-inside@3.0.3: {} + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true - is-plain-obj@2.1.0: {} + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: false - is-plain-obj@4.1.0: {} + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false - is-plain-object@2.0.4: + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} dependencies: isobject: 3.0.1 - is-potential-custom-element-name@1.0.1: {} + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true - is-promise@2.2.2: {} + /is-promise@2.2.2: + resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} - is-reference@3.0.2: + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: '@types/estree': 1.0.5 - is-regex@1.1.4: + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 + dev: true - is-shared-array-buffer@1.0.2: + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 + dev: true - is-stream@2.0.1: {} + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} - is-stream@3.0.0: {} + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-string@1.0.7: + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 + dev: true - is-subdir@1.2.0: + /is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} dependencies: better-path-resolve: 1.0.0 + dev: false - is-symbol@1.0.4: + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 + dev: true - is-typed-array@1.1.12: + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.13 + which-typed-array: 1.1.15 - is-typedarray@1.0.0: {} + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + dev: true - is-unicode-supported@0.1.0: {} + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} - is-unicode-supported@1.3.0: {} + /is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} - is-unicode-supported@2.0.0: {} + /is-unicode-supported@2.0.0: + resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==} + engines: {node: '>=18'} + dev: false - is-weakref@1.0.2: + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.7 + dev: true - is-windows@1.0.2: {} + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: false - is-wsl@1.1.0: {} + /is-wsl@1.1.0: + resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} + engines: {node: '>=4'} + dev: false - is-wsl@2.2.0: + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: false - is-wsl@3.1.0: + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} dependencies: is-inside-container: 1.0.0 + dev: false - is64bit@2.0.0: + /is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} dependencies: system-architecture: 0.1.0 + dev: false - isarray@1.0.0: {} + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: {} + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true - isexe@2.0.0: {} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isexe@3.1.1: {} + /isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + dev: true - iso-url@1.2.1: {} + /iso-url@1.2.1: + resolution: {integrity: sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==} + engines: {node: '>=12'} + dev: false - isobject@3.0.1: {} + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} - isomorphic-unfetch@3.1.0(encoding@0.1.13): + /isomorphic-unfetch@3.1.0: + resolution: {integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==} dependencies: - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 unfetch: 4.2.0 transitivePeerDependencies: - encoding - isows@1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): - dependencies: - ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - - isows@1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)): + /isows@1.0.3(ws@8.13.0): + resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==} + peerDependencies: + ws: '*' dependencies: - ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + ws: 8.13.0 + dev: false - isows@1.0.4(ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + /isows@1.0.4(ws@8.17.1): + resolution: {integrity: sha512-hEzjY+x9u9hPmBom9IIAqdJCwNLax+xrPb51vEPpERoFlIxgmZcHzsT5jKG06nvInKOBGvReAVz80Umed5CczQ==} + peerDependencies: + ws: '*' dependencies: - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 8.17.1 - isstream@0.1.2: {} + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + dev: true - istanbul-lib-coverage@3.2.2: {} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + dev: true - istanbul-lib-report@3.0.1: + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 + dev: true - istanbul-lib-source-maps@5.0.4: + /istanbul-lib-source-maps@5.0.4: + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} + engines: {node: '>=10'} dependencies: '@jridgewell/trace-mapping': 0.3.25 debug: 4.3.4 istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color + dev: true - istanbul-reports@3.1.7: + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + dev: true - it-all@1.0.6: {} + /it-all@1.0.6: + resolution: {integrity: sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==} + dev: false - it-all@2.0.1: {} + /it-all@2.0.1: + resolution: {integrity: sha512-9UuJcCRZsboz+HBQTNOau80Dw+ryGaHYFP/cPYzFBJBFcfDathMYnhHk4t52en9+fcyDGPTdLB+lFc1wzQIroA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - it-first@2.0.1: {} + /it-first@2.0.1: + resolution: {integrity: sha512-noC1oEQcWZZMUwq7VWxHNLML43dM+5bviZpfmkxkXlvBe60z7AFRqpZSga9uQBo792jKv9otnn1IjA4zwgNARw==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - it-glob@1.0.2: + /it-glob@1.0.2: + resolution: {integrity: sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==} dependencies: '@types/minimatch': 3.0.5 minimatch: 3.1.2 + dev: false - it-last@2.0.1: {} + /it-last@2.0.1: + resolution: {integrity: sha512-uVMedYW0wa2Cx0TAmcOCLbfuLLII7+vyURmhKa8Zovpd+aBTMsmINtsta2n364wJ5qsEDBH+akY1sUtAkaYBlg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - it-map@2.0.1: {} + /it-map@2.0.1: + resolution: {integrity: sha512-a2GcYDHiAh/eSU628xlvB56LA98luXZnniH2GlD0IdBzf15shEq9rBeb0Rg3o1SWtNILUAwqmQxEXcewGCdvmQ==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - it-peekable@2.0.1: {} + /it-peekable@2.0.1: + resolution: {integrity: sha512-fJ/YTU9rHRhGJOM2hhQKKEfRM6uKB9r4yGGFLBHqp72ACC8Yi6+7/FhuBAMG8cpN6mLoj9auVX7ZJ3ul6qFpTA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - it-pushable@3.2.3: + /it-pushable@3.2.3: + resolution: {integrity: sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==} dependencies: p-defer: 4.0.1 + dev: false - it-stream-types@1.0.5: {} + /it-stream-types@1.0.5: + resolution: {integrity: sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - it-stream-types@2.0.1: {} + /it-stream-types@2.0.1: + resolution: {integrity: sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - it-to-stream@1.0.0: + /it-to-stream@1.0.0: + resolution: {integrity: sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==} dependencies: buffer: 6.0.3 fast-fifo: 1.3.2 @@ -25134,45 +18462,62 @@ snapshots: p-defer: 3.0.0 p-fifo: 1.0.0 readable-stream: 3.6.2 + dev: false - jackspeak@2.3.6: + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.0.1: + /jackspeak@4.0.2: + resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} + engines: {node: 20 || >=22} dependencies: '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + dev: true - jest-diff@29.7.0: + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-environment-node@29.7.0: + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.12.7 + '@types/node': 20.12.8 jest-mock: 29.7.0 jest-util: 29.7.0 + dev: false - jest-get-type@29.6.3: {} + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-matcher-utils@29.7.0: + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 jest-diff: 29.7.0 jest-get-type: 29.6.3 pretty-format: 29.7.0 + dev: true - jest-message-util@29.7.0: + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.24.2 '@jest/types': 29.6.3 @@ -25184,22 +18529,29 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@29.7.0: + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.7 + '@types/node': 20.12.8 jest-util: 29.7.0 + dev: false - jest-util@29.7.0: + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.12.7 + '@types/node': 20.12.8 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 - jest-validate@29.7.0: + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 camelcase: 6.3.0 @@ -25207,66 +18559,97 @@ snapshots: jest-get-type: 29.6.3 leven: 3.1.0 pretty-format: 29.7.0 + dev: false - jest-worker@29.7.0: + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.12.7 + '@types/node': 20.12.8 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 + dev: false - jiti@1.21.0: {} + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true - joi@17.12.1: + /joi@17.13.1: + resolution: {integrity: sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==} dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 '@sideway/address': 4.1.5 '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 + dev: false - js-cookie@2.2.1: {} + /js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + dev: true - js-sha3@0.5.7: {} + /js-sha3@0.5.7: + resolution: {integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g==} + dev: true - js-sha3@0.8.0: {} + /js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - js-tokens@4.0.0: {} + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@8.0.3: {} + /js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + dev: true - js-yaml@3.14.1: + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 + dev: false - js-yaml@4.1.0: + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true dependencies: argparse: 2.0.1 - jsbn@0.1.1: {} + /jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + dev: true - jsc-android@250231.0.0: {} + /jsc-android@250231.0.0: + resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==} + dev: false - jsc-safe-url@0.2.4: {} + /jsc-safe-url@0.2.4: + resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} + dev: false - jscodeshift@0.14.0(@babel/preset-env@7.23.9(@babel/core@7.25.2)): + /jscodeshift@0.14.0(@babel/preset-env@7.24.5): + resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==} + hasBin: true + peerDependencies: + '@babel/preset-env': ^7.1.6 dependencies: '@babel/core': 7.25.2 - '@babel/parser': 7.25.6 + '@babel/parser': 7.25.3 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2) '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.25.2) - '@babel/preset-env': 7.23.9(@babel/core@7.25.2) - '@babel/preset-flow': 7.23.3(@babel/core@7.25.2) - '@babel/preset-typescript': 7.23.3(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.25.2) + '@babel/preset-env': 7.24.5(@babel/core@7.25.2) + '@babel/preset-flow': 7.24.1(@babel/core@7.25.2) + '@babel/preset-typescript': 7.24.1(@babel/core@7.25.2) '@babel/register': 7.23.7(@babel/core@7.25.2) babel-core: 7.0.0-bridge.0(@babel/core@7.25.2) chalk: 4.1.2 - flow-parser: 0.206.0 + flow-parser: 0.235.1 graceful-fs: 4.2.11 - micromatch: 4.0.8 + micromatch: 4.0.5 neo-async: 2.6.2 node-dir: 0.1.17 recast: 0.21.5 @@ -25274,36 +18657,50 @@ snapshots: write-file-atomic: 2.4.3 transitivePeerDependencies: - supports-color + dev: false - jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + /jscodeshift@0.15.2(@babel/preset-env@7.24.5): + resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==} + hasBin: true + peerDependencies: + '@babel/preset-env': ^7.1.6 + peerDependenciesMeta: + '@babel/preset-env': + optional: true dependencies: - cssstyle: 4.0.1 - data-urls: 5.0.0 - decimal.js: 10.4.3 - form-data: 4.0.0 - html-encoding-sniffer: 4.0.0 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.7 - parse5: 7.1.2 - rrweb-cssom: 0.6.0 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.3 - w3c-xmlserializer: 5.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 3.1.1 - whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 - ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - xml-name-validator: 5.0.0 + '@babel/core': 7.24.5 + '@babel/parser': 7.24.5 + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.5) + '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.5) + '@babel/preset-env': 7.24.5(@babel/core@7.24.5) + '@babel/preset-flow': 7.24.1(@babel/core@7.24.5) + '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) + '@babel/register': 7.23.7(@babel/core@7.24.5) + babel-core: 7.0.0-bridge.0(@babel/core@7.24.5) + chalk: 4.1.2 + flow-parser: 0.235.1 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + neo-async: 2.6.2 + node-dir: 0.1.17 + recast: 0.23.9 + temp: 0.8.4 + write-file-atomic: 2.4.3 transitivePeerDependencies: - - bufferutil - supports-color - - utf-8-validate + dev: true - jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3): + /jsdom@24.0.0: + resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true dependencies: cssstyle: 4.0.1 data-urls: 5.0.0 @@ -25313,156 +18710,260 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.7 + nwsapi: 2.2.9 parse5: 7.1.2 rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.3 + tough-cookie: 4.1.4 w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 - ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + ws: 8.17.0 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - optional: true + dev: true - jsesc@0.5.0: {} + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true - jsesc@2.5.2: {} + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true - json-buffer@3.0.1: {} + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true - json-parse-better-errors@1.0.2: {} + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: false - json-parse-even-better-errors@2.3.1: {} + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true - json-rpc-engine@6.1.0: + /json-rpc-engine@6.1.0: + resolution: {integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==} + engines: {node: '>=10.0.0'} dependencies: '@metamask/safe-event-emitter': 2.0.0 eth-rpc-errors: 4.0.3 + dev: false - json-rpc-middleware-stream@4.2.3: - dependencies: - '@metamask/safe-event-emitter': 3.1.1 - json-rpc-engine: 6.1.0 - readable-stream: 2.3.8 - - json-rpc-random-id@1.0.1: {} + /json-rpc-random-id@1.0.1: + resolution: {integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==} + dev: false - json-schema-traverse@0.4.1: {} + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true - json-schema-traverse@1.0.0: {} + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-schema@0.4.0: {} + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + dev: true - json-stable-stringify-without-jsonify@1.0.1: {} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true - json-stream-stringify@3.1.6: {} + /json-stream-stringify@3.1.6: + resolution: {integrity: sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==} + engines: {node: '>=7.10.1'} + dev: false - json-stringify-safe@5.0.1: {} + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + dev: true - json-to-ast@2.1.0: + /json-to-ast@2.1.0: + resolution: {integrity: sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==} + engines: {node: '>= 4'} dependencies: code-error-fragment: 0.0.230 grapheme-splitter: 1.0.4 + dev: false - json5@1.0.2: + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true dependencies: minimist: 1.2.8 + dev: true - json5@2.2.3: {} - - jsonc-parser@2.3.1: {} + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true - jsonc-parser@3.2.0: {} + /jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + dev: false - jsonfile@4.0.0: + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.1.0: + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - jsonpointer@5.0.1: {} + /jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + dev: false - jsprim@1.4.2: + /jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} dependencies: assert-plus: 1.0.0 extsprintf: 1.3.0 json-schema: 0.4.0 verror: 1.10.0 + dev: true - jszip@3.10.1: + /jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} dependencies: lie: 3.3.0 pako: 1.0.11 readable-stream: 2.3.8 setimmediate: 1.0.5 + dev: true - keccak256@1.0.6: + /keccak256@1.0.6: + resolution: {integrity: sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==} dependencies: bn.js: 5.2.1 buffer: 6.0.3 keccak: 3.0.4 + dev: true - keccak@3.0.4: + /keccak@3.0.4: + resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} + engines: {node: '>=10.0.0'} + requiresBuild: true dependencies: node-addon-api: 2.0.2 - node-gyp-build: 4.8.0 + node-gyp-build: 4.8.1 readable-stream: 3.6.2 - keyv@4.5.4: + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 + dev: true - keyvaluestorage-interface@1.0.0: {} + /keyvaluestorage-interface@1.0.0: + resolution: {integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==} + dev: false - kind-of@6.0.3: {} + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} - kleur@3.0.3: {} + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} - kleur@4.1.5: {} + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} - known-css-properties@0.30.0: {} + /known-css-properties@0.30.0: + resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==} + dev: true - latest-version@7.0.0: + /latest-version@7.0.0: + resolution: {integrity: sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==} + engines: {node: '>=14.16'} dependencies: package-json: 8.1.1 + dev: true - lefthook-darwin-arm64@1.6.10: + /lefthook-darwin-arm64@1.6.10: + resolution: {integrity: sha512-Hh11OkoKG7FEOByS1dcgNV7ETq45VmwBbw0VPTiBznyfOG4k+pi0fIdc1qbmbxvYqNE0r420QR/Q3bimaa4Kxg==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true optional: true - lefthook-darwin-x64@1.6.10: + /lefthook-darwin-x64@1.6.10: + resolution: {integrity: sha512-FiOB0t5OBcQ8OnG/LSdfUYj736SJdlLjWuOZ4wTlJ7EUrHditieap6VNAxwMmFVyQN0X2ZwKWytwY35y+Hflhw==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true optional: true - lefthook-freebsd-arm64@1.6.10: + /lefthook-freebsd-arm64@1.6.10: + resolution: {integrity: sha512-IxGgS3RrNwk3Kr83o5SQhGxqppQi7fu2t//nsp6ocgnJeStrTtXZJOrel2VohzrFxpzQdJVXBGgUGLXtY8t8qw==} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - lefthook-freebsd-x64@1.6.10: + /lefthook-freebsd-x64@1.6.10: + resolution: {integrity: sha512-sFSe+dGLa4iBblWAhAGTP9moarcbFtFAH6aaCeyqSX51O6p9VPdGjqNtcE8aGbGAk4lO6v1ScRjk5ogMSinJwQ==} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true optional: true - lefthook-linux-arm64@1.6.10: + /lefthook-linux-arm64@1.6.10: + resolution: {integrity: sha512-fXnKiNdRIW+FRvc1keVrvWX5EqIhVFfPjcy+PbsKdxiWRXgjtidi6LPmQ8eosH0DC9PxZ0mpdCMf40FHEZLbQA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true optional: true - lefthook-linux-x64@1.6.10: + /lefthook-linux-x64@1.6.10: + resolution: {integrity: sha512-bm6l2GOFnmYreZxmHb47QeOiFAItttOOxvCEX1okIRD7JbUC+lGC9evW5GJv/ltjZBoTDYEtQAUa+BpHTGuY2A==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true optional: true - lefthook-windows-arm64@1.6.10: + /lefthook-windows-arm64@1.6.10: + resolution: {integrity: sha512-pFxT8KbOMzGxj6cz4glHYwQSNC7XCuy9RDqIO0AxPlpATsCpapkF4ngDxBT1iFv2VhdeweMa7RXUDsMAGQA4Qw==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true optional: true - lefthook-windows-x64@1.6.10: + /lefthook-windows-x64@1.6.10: + resolution: {integrity: sha512-fcDnUSTv95AdLvm0NIrn3jBWXuRq8SlbDDjkkB5OHLiSmjz4eOr6wyD7xceDp33zZgZmWFzHebJngxxcIaUuHw==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true optional: true - lefthook@1.6.10: + /lefthook@1.6.10: + resolution: {integrity: sha512-HeVjsDCrHLe9htQHbLuQJu2YdLK6Tl5bh36fOpmXqckEXTI0BDR0Y5JYc7G5Inj4YXQsc51a9dUDZMeniSnSag==} + hasBin: true + requiresBuild: true optionalDependencies: lefthook-darwin-arm64: 1.6.10 lefthook-darwin-x64: 1.6.10 @@ -25472,284 +18973,402 @@ snapshots: lefthook-linux-x64: 1.6.10 lefthook-windows-arm64: 1.6.10 lefthook-windows-x64: 1.6.10 + dev: true - leven@3.1.0: {} + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} - levn@0.4.1: + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true - lie@3.3.0: + /lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} dependencies: immediate: 3.0.6 + dev: true - lighthouse-logger@1.4.2: + /lighthouse-logger@1.4.2: + resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} dependencies: debug: 2.6.9 marky: 1.2.5 transitivePeerDependencies: - supports-color + dev: false - lilconfig@2.1.0: {} + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} - lilconfig@3.1.1: {} + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} - lines-and-columns@1.2.4: {} + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - listhen@1.6.0: + /listhen@1.7.2: + resolution: {integrity: sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g==} + hasBin: true dependencies: - '@parcel/watcher': 2.4.0 - '@parcel/watcher-wasm': 2.4.0 + '@parcel/watcher': 2.4.1 + '@parcel/watcher-wasm': 2.4.1 citty: 0.1.6 clipboardy: 4.0.0 consola: 3.2.3 - crossws: 0.1.1 + crossws: 0.2.4 defu: 6.1.4 get-port-please: 3.1.2 - h3: 1.10.2 + h3: 1.11.1 http-shutdown: 1.2.2 jiti: 1.21.0 - mlly: 1.5.0 + mlly: 1.7.0 node-forge: 1.3.1 pathe: 1.1.2 std-env: 3.7.0 - ufo: 1.4.0 + ufo: 1.5.3 untun: 0.1.3 uqr: 0.1.2 + transitivePeerDependencies: + - uWebSockets.js + dev: false - lit-element@3.3.3: + /lit-element@3.3.3: + resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} dependencies: '@lit-labs/ssr-dom-shim': 1.2.0 '@lit/reactive-element': 1.6.3 lit-html: 2.8.0 + dev: false - lit-element@4.0.4: + /lit-element@4.0.5: + resolution: {integrity: sha512-iTWskWZEtn9SyEf4aBG6rKT8GABZMrTWop1+jopsEOgEcugcXJGKuX5bEbkq9qfzY+XB4MAgCaSPwnNpdsNQ3Q==} dependencies: '@lit-labs/ssr-dom-shim': 1.2.0 '@lit/reactive-element': 2.0.4 - lit-html: 3.1.2 + lit-html: 3.1.3 + dev: false - lit-html@2.8.0: + /lit-html@2.8.0: + resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==} dependencies: '@types/trusted-types': 2.0.7 + dev: false - lit-html@3.1.2: + /lit-html@3.1.3: + resolution: {integrity: sha512-FwIbqDD8O/8lM4vUZ4KvQZjPPNx7V1VhT7vmRB8RBAO0AU6wuTVdoXiu2CivVjEGdugvcbPNBLtPE1y0ifplHA==} dependencies: '@types/trusted-types': 2.0.7 + dev: false - lit@2.8.0: + /lit@2.8.0: + resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==} dependencies: '@lit/reactive-element': 1.6.3 lit-element: 3.3.3 lit-html: 2.8.0 + dev: false - lit@3.1.0: + /lit@3.1.0: + resolution: {integrity: sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==} dependencies: '@lit/reactive-element': 2.0.4 - lit-element: 4.0.4 - lit-html: 3.1.2 + lit-element: 4.0.5 + lit-html: 3.1.3 + dev: false - load-tsconfig@0.2.5: {} + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - load-yaml-file@0.2.0: + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 + dev: false - local-pkg@0.5.0: + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} dependencies: - mlly: 1.5.0 - pkg-types: 1.0.3 + mlly: 1.7.0 + pkg-types: 1.1.0 + dev: true - locate-character@3.0.0: {} + /locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - locate-path@2.0.0: + /locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} dependencies: p-locate: 2.0.0 path-exists: 3.0.0 + dev: false - locate-path@3.0.0: + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} dependencies: p-locate: 3.0.0 path-exists: 3.0.0 - locate-path@5.0.0: + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} dependencies: p-locate: 4.1.0 - locate-path@6.0.0: + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} dependencies: p-locate: 5.0.0 - locate-path@7.2.0: + /locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-locate: 6.0.0 - lodash.debounce@4.0.8: {} - - lodash.defaults@4.2.0: {} - - lodash.isarguments@3.1.0: {} + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - lodash.isequal@4.5.0: {} + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false - lodash.merge@4.6.2: {} + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true - lodash.startcase@4.4.0: {} + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: false - lodash.throttle@4.1.1: {} + /lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + dev: false - lodash.truncate@4.4.2: {} + /lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + dev: true - lodash@4.17.21: {} + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-symbols@4.1.0: + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} dependencies: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log-symbols@5.1.0: + /log-symbols@5.1.0: + resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} + engines: {node: '>=12'} dependencies: chalk: 5.3.0 is-unicode-supported: 1.3.0 - log-symbols@6.0.0: + /log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} dependencies: chalk: 5.3.0 is-unicode-supported: 1.3.0 + dev: false - logkitty@0.7.1: + /logkitty@0.7.1: + resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==} + hasBin: true dependencies: ansi-fragments: 0.2.1 - dayjs: 1.11.10 + dayjs: 1.11.11 yargs: 15.4.1 + dev: false - lokijs@1.5.12: {} + /lokijs@1.5.12: + resolution: {integrity: sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==} + dev: true - long@5.2.3: {} + /long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + dev: false - longest-streak@3.1.0: {} + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false - loose-envify@1.4.0: + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true dependencies: js-tokens: 4.0.0 - loupe@2.3.7: - dependencies: - get-func-name: 2.0.2 - - loupe@3.1.1: + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: get-func-name: 2.0.2 + dev: true - lower-case@2.0.2: + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: tslib: 2.6.2 - lowercase-keys@2.0.0: {} + /lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + dev: true - lowercase-keys@3.0.0: {} + /lowercase-keys@3.0.0: + resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - lru-cache@10.2.0: {} + /lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + engines: {node: 14 || >=16.14} - lru-cache@11.0.1: {} + /lru-cache@11.0.1: + resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} + engines: {node: 20 || >=22} + dev: true - lru-cache@4.1.5: + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: pseudomap: 1.0.2 yallist: 2.1.2 + dev: false - lru-cache@5.1.1: + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 - lru-cache@6.0.0: + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} dependencies: yallist: 4.0.0 - lru-queue@0.1.0: - dependencies: - es5-ext: 0.10.62 - - lru_map@0.3.3: {} - - lz-string@1.5.0: {} - - magic-string@0.30.10: + /lru-queue@0.1.0: + resolution: {integrity: sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + es5-ext: 0.10.64 - magic-string@0.30.11: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + /lru_map@0.3.3: + resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} + dev: false - magic-string@0.30.7: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: true - magic-string@0.30.9: + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - magicast@0.3.3: + /magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} dependencies: - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 - source-map-js: 1.2.0 + '@jridgewell/sourcemap-codec': 1.5.0 - magicast@0.3.5: + /magicast@0.3.4: + resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.24.5 + '@babel/types': 7.24.5 source-map-js: 1.2.0 + dev: true - make-dir@2.1.0: + /make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} dependencies: pify: 4.0.1 semver: 5.7.2 - make-dir@3.1.0: + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} dependencies: semver: 6.3.1 + dev: true - make-dir@4.0.0: + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} dependencies: - semver: 7.6.3 + semver: 7.6.2 + dev: true - make-error@1.3.6: {} + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - makeerror@1.0.12: + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: tmpl: 1.0.5 + dev: false - map-or-similar@1.5.0: {} + /map-or-similar@1.5.0: + resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} + dev: true - markdown-extensions@2.0.0: {} + /markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + dev: false - markdown-table@3.0.3: {} + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false - markdown-to-jsx@7.5.0(react@18.2.0): + /markdown-to-jsx@7.4.7(react@18.3.1): + resolution: {integrity: sha512-0+ls1IQZdU6cwM1yu0ZjjiVWYtkbExSyUIFU2ZeDIFuZM1W42Mh4OlJ4nb4apX4H8smxDHRdFaoIVJGwfv5hkg==} + engines: {node: '>= 10'} + peerDependencies: + react: '>= 0.14.0' dependencies: - react: 18.2.0 + react: 18.3.1 + dev: true - marky@1.2.5: {} + /marky@1.2.5: + resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} + dev: false - md5.js@1.3.5: + /md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} dependencies: hash-base: 3.1.0 inherits: 2.0.4 safe-buffer: 5.2.1 - mdast-util-definitions@6.0.0: + /mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 unist-util-visit: 5.0.0 + dev: false - mdast-util-directive@3.0.0: + /mdast-util-directive@3.0.0: + resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 @@ -25761,15 +19380,19 @@ snapshots: unist-util-visit-parents: 6.0.1 transitivePeerDependencies: - supports-color + dev: false - mdast-util-find-and-replace@3.0.1: + /mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} dependencies: '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + dev: false - mdast-util-from-markdown@2.0.0: + /mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 @@ -25785,16 +19408,20 @@ snapshots: unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-autolink-literal@2.0.0: + /mdast-util-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} dependencies: '@types/mdast': 4.0.4 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 micromark-util-character: 2.1.0 + dev: false - mdast-util-gfm-footnote@2.0.0: + /mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -25803,16 +19430,20 @@ snapshots: micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-strikethrough@2.0.0: + /mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.0 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-table@2.0.0: + /mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -25821,8 +19452,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm-task-list-item@2.0.0: + /mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -25830,8 +19463,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-gfm@3.0.0: + /mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-gfm-autolink-literal: 2.0.0 @@ -25842,8 +19477,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-mdx-expression@2.0.0: + /mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -25853,8 +19490,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-mdx-jsx@3.1.2: + /mdast-util-mdx-jsx@3.1.2: + resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -25871,8 +19510,10 @@ snapshots: vfile-message: 4.0.2 transitivePeerDependencies: - supports-color + dev: false - mdast-util-mdx@3.0.0: + /mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} dependencies: mdast-util-from-markdown: 2.0.0 mdast-util-mdx-expression: 2.0.0 @@ -25881,8 +19522,10 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-mdxjs-esm@2.0.1: + /mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -25892,13 +19535,17 @@ snapshots: mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color + dev: false - mdast-util-phrasing@4.1.0: + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} dependencies: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 + dev: false - mdast-util-to-hast@13.1.0: + /mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -25908,9 +19555,11 @@ snapshots: trim-lines: 3.0.1 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.3 + vfile: 6.0.2 + dev: false - mdast-util-to-markdown@2.1.0: + /mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.2 @@ -25920,21 +19569,31 @@ snapshots: micromark-util-decode-string: 2.0.0 unist-util-visit: 5.0.0 zwitch: 2.0.4 + dev: false - mdast-util-to-string@4.0.0: + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} dependencies: '@types/mdast': 4.0.4 + dev: false - mdn-data@2.0.30: {} + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - media-typer@0.3.0: {} + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true - memoize-one@5.2.1: {} + /memoize-one@5.2.1: + resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} + dev: false - memoizee@0.4.15: + /memoizee@0.4.15: + resolution: {integrity: sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==} dependencies: - d: 1.0.1 - es5-ext: 0.10.62 + d: 1.0.2 + es5-ext: 0.10.64 es6-weak-map: 2.0.3 event-emitter: 0.3.5 is-promise: 2.2.2 @@ -25942,68 +19601,103 @@ snapshots: next-tick: 1.1.0 timers-ext: 0.1.7 - memoizerific@1.11.3: + /memoizerific@1.11.3: + resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} dependencies: map-or-similar: 1.5.0 + dev: true - memorystream@0.3.1: {} + /memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} - merge-descriptors@1.0.3: {} + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: true - merge-options@3.0.4: + /merge-options@3.0.4: + resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} + engines: {node: '>=10'} dependencies: is-plain-obj: 2.1.0 + dev: false - merge-stream@2.0.0: {} + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: {} + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} - merkletreejs@0.4.0: + /merkletreejs@0.4.0: + resolution: {integrity: sha512-a48Ta5kWiVNBgeEbZVMm6FB1hBlp6vEuou/XnZdlkmd2zq6NZR6Sh2j+kR1B0iOZIXrTMcigBYzZ39MLdYhm1g==} + engines: {node: '>= 7.6.0'} dependencies: bignumber.js: 9.1.2 buffer-reverse: 1.0.1 crypto-js: 4.2.0 treeify: 1.1.0 web3-utils: 1.10.4 + dev: false - methods@1.1.2: {} + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true - metro-babel-transformer@0.80.6: + /metro-babel-transformer@0.80.9: + resolution: {integrity: sha512-d76BSm64KZam1nifRZlNJmtwIgAeZhZG3fi3K+EmPOlrR8rDtBxQHDSN3fSGeNB9CirdTyabTMQCkCup6BXFSQ==} + engines: {node: '>=18'} dependencies: '@babel/core': 7.25.2 - hermes-parser: 0.19.1 + hermes-parser: 0.20.1 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color + dev: false - metro-cache-key@0.80.6: {} + /metro-cache-key@0.80.9: + resolution: {integrity: sha512-hRcYGhEiWIdM87hU0fBlcGr+tHDEAT+7LYNCW89p5JhErFt/QaAkVx4fb5bW3YtXGv5BTV7AspWPERoIb99CXg==} + engines: {node: '>=18'} + dev: false - metro-cache@0.80.6: + /metro-cache@0.80.9: + resolution: {integrity: sha512-ujEdSI43QwI+Dj2xuNax8LMo8UgKuXJEdxJkzGPU6iIx42nYa1byQ+aADv/iPh5sh5a//h5FopraW5voXSgm2w==} + engines: {node: '>=18'} dependencies: - metro-core: 0.80.6 + metro-core: 0.80.9 rimraf: 3.0.2 + dev: false - metro-config@0.80.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10): + /metro-config@0.80.9: + resolution: {integrity: sha512-28wW7CqS3eJrunRGnsibWldqgwRP9ywBEf7kg+uzUHkSFJNKPM1K3UNSngHmH0EZjomizqQA2Zi6/y6VdZMolg==} + engines: {node: '>=18'} dependencies: connect: 3.7.0 cosmiconfig: 5.2.1 jest-validate: 29.7.0 - metro: 0.80.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - metro-cache: 0.80.6 - metro-core: 0.80.6 - metro-runtime: 0.80.6 + metro: 0.80.9 + metro-cache: 0.80.9 + metro-core: 0.80.9 + metro-runtime: 0.80.9 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate + dev: false - metro-core@0.80.6: + /metro-core@0.80.9: + resolution: {integrity: sha512-tbltWQn+XTdULkGdzHIxlxk4SdnKxttvQQV3wpqqFbHDteR4gwCyTR2RyYJvxgU7HELfHtrVbqgqAdlPByUSbg==} + engines: {node: '>=18'} dependencies: lodash.throttle: 4.1.1 - metro-resolver: 0.80.6 + metro-resolver: 0.80.9 + dev: false - metro-file-map@0.80.6: + /metro-file-map@0.80.9: + resolution: {integrity: sha512-sBUjVtQMHagItJH/wGU9sn3k2u0nrCl0CdR4SFMO1tksXLKbkigyQx4cbpcyPVOAmGTVuy3jyvBlELaGCAhplQ==} + engines: {node: '>=18'} dependencies: anymatch: 3.1.3 debug: 2.6.9 @@ -26011,7 +19705,7 @@ snapshots: graceful-fs: 4.2.11 invariant: 2.2.4 jest-worker: 29.7.0 - micromatch: 4.0.8 + micromatch: 4.0.5 node-abort-controller: 3.1.1 nullthrows: 1.1.1 walker: 1.0.8 @@ -26019,80 +19713,106 @@ snapshots: fsevents: 2.3.3 transitivePeerDependencies: - supports-color + dev: false - metro-minify-terser@0.80.6: + /metro-minify-terser@0.80.9: + resolution: {integrity: sha512-FEeCeFbkvvPuhjixZ1FYrXtO0araTpV6UbcnGgDUpH7s7eR5FG/PiJz3TsuuPP/HwCK19cZtQydcA2QrCw446A==} + engines: {node: '>=18'} dependencies: - terser: 5.27.2 + terser: 5.31.0 + dev: false - metro-resolver@0.80.6: {} + /metro-resolver@0.80.9: + resolution: {integrity: sha512-wAPIjkN59BQN6gocVsAvvpZ1+LQkkqUaswlT++cJafE/e54GoVkMNCmrR4BsgQHr9DknZ5Um/nKueeN7kaEz9w==} + engines: {node: '>=18'} + dev: false - metro-runtime@0.80.6: + /metro-runtime@0.80.9: + resolution: {integrity: sha512-8PTVIgrVcyU+X/rVCy/9yxNlvXsBCk5JwwkbAm/Dm+Abo6NBGtNjWF0M1Xo/NWCb4phamNWcD7cHdR91HhbJvg==} + engines: {node: '>=18'} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.5 + dev: false - metro-source-map@0.80.6: + /metro-source-map@0.80.9: + resolution: {integrity: sha512-RMn+XS4VTJIwMPOUSj61xlxgBvPeY4G6s5uIn6kt6HB6A/k9ekhr65UkkDD7WzHYs3a9o869qU8tvOZvqeQzgw==} + engines: {node: '>=18'} dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 invariant: 2.2.4 - metro-symbolicate: 0.80.6 + metro-symbolicate: 0.80.9 nullthrows: 1.1.1 - ob1: 0.80.6 + ob1: 0.80.9 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: - supports-color + dev: false - metro-symbolicate@0.80.6: + /metro-symbolicate@0.80.9: + resolution: {integrity: sha512-Ykae12rdqSs98hg41RKEToojuIW85wNdmSe/eHUgMkzbvCFNVgcC0w3dKZEhSsqQOXapXRlLtHkaHLil0UD/EA==} + engines: {node: '>=18'} + hasBin: true dependencies: invariant: 2.2.4 - metro-source-map: 0.80.6 + metro-source-map: 0.80.9 nullthrows: 1.1.1 source-map: 0.5.7 through2: 2.0.5 vlq: 1.0.1 transitivePeerDependencies: - supports-color + dev: false - metro-transform-plugins@0.80.6: + /metro-transform-plugins@0.80.9: + resolution: {integrity: sha512-UlDk/uc8UdfLNJhPbF3tvwajyuuygBcyp+yBuS/q0z3QSuN/EbLllY3rK8OTD9n4h00qZ/qgxGv/lMFJkwP4vg==} + engines: {node: '>=18'} dependencies: '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 + '@babel/generator': 7.25.0 '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.25.3 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color + dev: false - metro-transform-worker@0.80.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10): + /metro-transform-worker@0.80.9: + resolution: {integrity: sha512-c/IrzMUVnI0hSVVit4TXzt3A1GiUltGVlzCmLJWxNrBGHGrJhvgePj38+GXl1Xf4Fd4vx6qLUkKMQ3ux73bFLQ==} + engines: {node: '>=18'} dependencies: '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 - metro: 0.80.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - metro-babel-transformer: 0.80.6 - metro-cache: 0.80.6 - metro-cache-key: 0.80.6 - metro-minify-terser: 0.80.6 - metro-source-map: 0.80.6 - metro-transform-plugins: 0.80.6 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.3 + '@babel/types': 7.25.2 + metro: 0.80.9 + metro-babel-transformer: 0.80.9 + metro-cache: 0.80.9 + metro-cache-key: 0.80.9 + metro-minify-terser: 0.80.9 + metro-source-map: 0.80.9 + metro-transform-plugins: 0.80.9 nullthrows: 1.1.1 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate + dev: false - metro@0.80.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10): + /metro@0.80.9: + resolution: {integrity: sha512-Bc57Xf3GO2Xe4UWQsBj/oW6YfLPABEu8jfDVDiNmJvoQW4CO34oDPuYKe4KlXzXhcuNsqOtSxpbjCRRVjhhREg==} + engines: {node: '>=18'} + hasBin: true dependencies: '@babel/code-frame': 7.24.7 '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 + '@babel/generator': 7.25.0 + '@babel/parser': 7.25.3 '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.3 + '@babel/types': 7.25.2 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -26101,43 +19821,46 @@ snapshots: denodeify: 1.2.1 error-stack-parser: 2.1.4 graceful-fs: 4.2.11 - hermes-parser: 0.19.1 + hermes-parser: 0.20.1 image-size: 1.1.1 invariant: 2.2.4 jest-worker: 29.7.0 jsc-safe-url: 0.2.4 lodash.throttle: 4.1.1 - metro-babel-transformer: 0.80.6 - metro-cache: 0.80.6 - metro-cache-key: 0.80.6 - metro-config: 0.80.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - metro-core: 0.80.6 - metro-file-map: 0.80.6 - metro-resolver: 0.80.6 - metro-runtime: 0.80.6 - metro-source-map: 0.80.6 - metro-symbolicate: 0.80.6 - metro-transform-plugins: 0.80.6 - metro-transform-worker: 0.80.6(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) + metro-babel-transformer: 0.80.9 + metro-cache: 0.80.9 + metro-cache-key: 0.80.9 + metro-config: 0.80.9 + metro-core: 0.80.9 + metro-file-map: 0.80.9 + metro-resolver: 0.80.9 + metro-runtime: 0.80.9 + metro-source-map: 0.80.9 + metro-symbolicate: 0.80.9 + metro-transform-plugins: 0.80.9 + metro-transform-worker: 0.80.9 mime-types: 2.1.35 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 nullthrows: 1.1.1 rimraf: 3.0.2 serialize-error: 2.1.0 source-map: 0.5.7 strip-ansi: 6.0.1 throat: 5.0.0 - ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.9 yargs: 17.7.2 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate + dev: false - micro-ftch@0.3.1: {} + /micro-ftch@0.3.1: + resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} - micromark-core-commonmark@2.0.1: + /micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} dependencies: decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -26155,8 +19878,10 @@ snapshots: micromark-util-subtokenize: 2.0.1 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-directive@3.0.0: + /micromark-extension-directive@3.0.0: + resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 @@ -26165,15 +19890,19 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 parse-entities: 4.0.1 + dev: false - micromark-extension-gfm-autolink-literal@2.0.0: + /micromark-extension-gfm-autolink-literal@2.0.0: + resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} dependencies: micromark-util-character: 2.1.0 micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-footnote@2.0.0: + /micromark-extension-gfm-footnote@2.0.0: + resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} dependencies: devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -26183,8 +19912,10 @@ snapshots: micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-strikethrough@2.0.0: + /micromark-extension-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 @@ -26192,28 +19923,36 @@ snapshots: micromark-util-resolve-all: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-table@2.0.0: + /micromark-extension-gfm-table@2.0.0: + resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-tagfilter@2.0.0: + /micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} dependencies: micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm-task-list-item@2.0.1: + /micromark-extension-gfm-task-list-item@2.0.1: + resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-gfm@3.0.0: + /micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} dependencies: micromark-extension-gfm-autolink-literal: 2.0.0 micromark-extension-gfm-footnote: 2.0.0 @@ -26223,8 +19962,10 @@ snapshots: micromark-extension-gfm-task-list-item: 2.0.1 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-mdx-expression@3.0.0: + /micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -26234,8 +19975,10 @@ snapshots: micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-extension-mdx-jsx@3.0.0: + /micromark-extension-mdx-jsx@3.0.0: + resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -26247,12 +19990,16 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 vfile-message: 4.0.2 + dev: false - micromark-extension-mdx-md@2.0.0: + /micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} dependencies: micromark-util-types: 2.0.0 + dev: false - micromark-extension-mdxjs-esm@3.0.0: + /micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -26263,8 +20010,10 @@ snapshots: micromark-util-types: 2.0.0 unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 + dev: false - micromark-extension-mdxjs@3.0.0: + /micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} dependencies: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) @@ -26274,21 +20023,27 @@ snapshots: micromark-extension-mdxjs-esm: 3.0.0 micromark-util-combine-extensions: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-factory-destination@2.0.0: + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-factory-label@2.0.0: + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} dependencies: devlop: 1.1.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-factory-mdx-expression@2.0.1: + /micromark-factory-mdx-expression@2.0.1: + resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} dependencies: '@types/estree': 1.0.5 devlop: 1.1.0 @@ -26298,60 +20053,82 @@ snapshots: micromark-util-types: 2.0.0 unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 + dev: false - micromark-factory-space@2.0.0: + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} dependencies: micromark-util-character: 2.1.0 micromark-util-types: 2.0.0 + dev: false - micromark-factory-title@2.0.0: + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-factory-whitespace@2.0.0: + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} dependencies: micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-util-character@2.1.0: + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} dependencies: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-util-chunked@2.0.0: + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} dependencies: micromark-util-symbol: 2.0.0 + dev: false - micromark-util-classify-character@2.0.0: + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} dependencies: micromark-util-character: 2.1.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-util-combine-extensions@2.0.0: + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} dependencies: micromark-util-chunked: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-util-decode-numeric-character-reference@2.0.1: + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} dependencies: micromark-util-symbol: 2.0.0 + dev: false - micromark-util-decode-string@2.0.0: + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} dependencies: decode-named-character-reference: 1.0.2 micromark-util-character: 2.1.0 micromark-util-decode-numeric-character-reference: 2.0.1 micromark-util-symbol: 2.0.0 + dev: false - micromark-util-encode@2.0.0: {} + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false - micromark-util-events-to-acorn@2.0.2: + /micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} dependencies: '@types/acorn': 4.0.6 '@types/estree': 1.0.5 @@ -26361,38 +20138,54 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 vfile-message: 4.0.2 + dev: false - micromark-util-html-tag-name@2.0.0: {} + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: false - micromark-util-normalize-identifier@2.0.0: + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} dependencies: micromark-util-symbol: 2.0.0 + dev: false - micromark-util-resolve-all@2.0.0: + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} dependencies: micromark-util-types: 2.0.0 + dev: false - micromark-util-sanitize-uri@2.0.0: + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} dependencies: micromark-util-character: 2.1.0 micromark-util-encode: 2.0.0 micromark-util-symbol: 2.0.0 + dev: false - micromark-util-subtokenize@2.0.1: + /micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + dev: false - micromark-util-symbol@2.0.0: {} + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false - micromark-util-types@2.0.0: {} + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false - micromark@4.0.0: + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} dependencies: '@types/debug': 4.1.12 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.4 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -26410,159 +20203,247 @@ snapshots: micromark-util-types: 2.0.0 transitivePeerDependencies: - supports-color + dev: false - micromatch@4.0.5: + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.1 - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime-db@1.52.0: {} + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} - mime-types@2.1.35: + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - mime@1.6.0: {} - - mime@2.6.0: {} + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true - mime@3.0.0: {} + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: false - mimic-fn@2.1.0: {} + /mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + dev: false - mimic-fn@4.0.0: {} + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} - mimic-function@5.0.1: {} + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} - mimic-response@1.0.1: {} + /mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: true - mimic-response@3.1.0: {} + /mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: true - mimic-response@4.0.0: {} + /mimic-response@4.0.0: + resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true - min-document@2.19.0: + /min-document@2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} dependencies: dom-walk: 0.1.2 + dev: true - min-indent@1.0.1: {} + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true - minidenticons@4.2.1: {} + /minidenticons@4.2.1: + resolution: {integrity: sha512-oWfFivA0lOx/V/bO/YIJbthB26lV8JXYvhnv9zM2hNd3fzsHTXQ6c6bWZPcvhD3nnOB+lQk/D9lF43BXixrN8g==} + engines: {node: '>=15.14.0'} + dev: false - minimalistic-assert@1.0.1: {} + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - minimalistic-crypto-utils@1.0.1: {} + /minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@10.0.1: + /minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} dependencies: brace-expansion: 2.0.1 + dev: true - minimatch@3.1.2: + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - minimatch@5.0.1: - dependencies: - brace-expansion: 2.0.1 - - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.1 - - minimatch@7.4.6: + /minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 - minimatch@9.0.3: + /minimatch@7.4.6: + resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} + engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 + dev: true - minimatch@9.0.4: + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - minimist@1.2.8: {} + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minipass@2.9.0: + /minipass@2.9.0: + resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==} dependencies: safe-buffer: 5.2.1 yallist: 3.1.1 + dev: true - minipass@7.0.4: {} + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: true + + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: true + + /minipass@7.1.0: + resolution: {integrity: sha512-oGZRv2OT1lO2UF1zUcwdTb3wqUwI0kBGTgt/T7OdSj6M6N5m3o5uPf0AIW6lVxGGoiWUR7e2AwTE+xiwK8WQig==} + engines: {node: '>=16 || 14 >=14.17'} - minipass@7.1.2: {} + /minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true - minizlib@1.3.3: + /minizlib@1.3.3: + resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==} dependencies: minipass: 2.9.0 + dev: true - mipd@0.0.5(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4): + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} dependencies: - viem: 1.21.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod + minipass: 3.3.6 + yallist: 4.0.0 + dev: true - mipd@0.0.5(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8): + /mipd@0.0.5(typescript@5.4.5): + resolution: {integrity: sha512-gbKA784D2WKb5H/GtqEv+Ofd1S9Zj+Z/PGDIl1u1QAbswkxD28BQ5bSXQxkeBzPBABg1iDSbiwGG1XqlOxRspA==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true dependencies: - viem: 1.21.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8) - optionalDependencies: - typescript: 5.4.3 + typescript: 5.4.5 + viem: 1.21.4(typescript@5.4.5) transitivePeerDependencies: - bufferutil - utf-8-validate - zod + dev: false - mipd@0.0.5(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@6.0.3)(zod@3.23.8): + /mipd@0.0.7(typescript@5.4.5): + resolution: {integrity: sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true dependencies: - viem: 1.21.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@6.0.3)(zod@3.23.8) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - - mipd@0.0.7(typescript@5.4.5): - optionalDependencies: typescript: 5.4.5 + dev: false - mkdirp-promise@5.0.1: + /mkdirp-promise@5.0.1: + resolution: {integrity: sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==} + engines: {node: '>=4'} + deprecated: This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that. dependencies: mkdirp: 2.1.6 + dev: true - mkdirp@0.5.6: + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true dependencies: minimist: 1.2.8 - mkdirp@1.0.4: {} + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + /mkdirp@2.1.6: + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} + engines: {node: '>=10'} + hasBin: true + dev: true - mkdirp@2.1.6: {} + /mlly@1.7.0: + resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.1.0 + ufo: 1.5.3 - mlly@1.5.0: + /mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} dependencies: acorn: 8.11.3 pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.4.0 + pkg-types: 1.1.3 + ufo: 1.5.3 + dev: true - mnemonist@0.38.5: + /mnemonist@0.38.5: + resolution: {integrity: sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==} dependencies: obliterator: 2.0.4 + dev: false - mocha@10.7.3: + /mocha@10.7.3: + resolution: {integrity: sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==} + engines: {node: '>= 14.0.0'} + hasBin: true dependencies: ansi-colors: 4.1.3 browser-stdout: 1.3.1 chokidar: 3.6.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) diff: 5.2.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 @@ -26579,330 +20460,524 @@ snapshots: yargs: 16.2.0 yargs-parser: 20.2.9 yargs-unparser: 2.0.0 + dev: false - mock-fs@4.14.0: {} - - moralis@2.26.2(debug@4.3.4): - dependencies: - '@moralisweb3/api-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/aptos-api': 2.26.2(debug@4.3.4) - '@moralisweb3/auth': 2.26.2(debug@4.3.4) - '@moralisweb3/common-aptos-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-auth-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-core': 2.26.2(debug@4.3.4) - '@moralisweb3/common-evm-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-sol-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/common-streams-utils': 2.26.2(debug@4.3.4) - '@moralisweb3/evm-api': 2.26.2(debug@4.3.4) - '@moralisweb3/sol-api': 2.26.2(debug@4.3.4) - '@moralisweb3/streams': 2.26.2(debug@4.3.4) + /mock-fs@4.14.0: + resolution: {integrity: sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==} + dev: true + + /moralis@2.26.1(debug@4.3.4): + resolution: {integrity: sha512-6aY1D/ZJwpys3H1tKhxbuRvnHXTOK07uqPrBQS2OPbCyxYjW33NFJPJXiLRXsmpDjFM+xq6vYRKrQSy5Zf4yog==} + dependencies: + '@moralisweb3/api-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/aptos-api': 2.26.1(debug@4.3.4) + '@moralisweb3/auth': 2.26.1(debug@4.3.4) + '@moralisweb3/common-aptos-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-auth-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-core': 2.26.1(debug@4.3.4) + '@moralisweb3/common-evm-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-sol-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/common-streams-utils': 2.26.1(debug@4.3.4) + '@moralisweb3/evm-api': 2.26.1(debug@4.3.4) + '@moralisweb3/sol-api': 2.26.1(debug@4.3.4) + '@moralisweb3/streams': 2.26.1(debug@4.3.4) '@moralisweb3/streams-typings': 1.0.7 transitivePeerDependencies: - debug + dev: false - motion@10.16.2: + /motion@10.16.2: + resolution: {integrity: sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==} dependencies: - '@motionone/animation': 10.16.3 - '@motionone/dom': 10.16.4 + '@motionone/animation': 10.17.0 + '@motionone/dom': 10.17.0 '@motionone/svelte': 10.16.4 - '@motionone/types': 10.16.3 - '@motionone/utils': 10.16.3 + '@motionone/types': 10.17.0 + '@motionone/utils': 10.17.0 '@motionone/vue': 10.16.4 + dev: false - mri@1.2.0: {} + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} - mrmime@2.0.0: {} + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} - ms@2.0.0: {} + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: {} + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: {} + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - muggle-string@0.4.1: {} + /muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + dev: false - multibase@0.6.1: + /multibase@0.6.1: + resolution: {integrity: sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==} + deprecated: This module has been superseded by the multiformats module dependencies: base-x: 3.0.9 buffer: 5.7.1 + dev: true - multibase@0.7.0: + /multibase@0.7.0: + resolution: {integrity: sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==} + deprecated: This module has been superseded by the multiformats module dependencies: base-x: 3.0.9 buffer: 5.7.1 + dev: true - multicodec@0.5.7: + /multicodec@0.5.7: + resolution: {integrity: sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==} + deprecated: This module has been superseded by the multiformats module dependencies: varint: 5.0.2 + dev: true - multicodec@1.0.4: + /multicodec@1.0.4: + resolution: {integrity: sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==} + deprecated: This module has been superseded by the multiformats module dependencies: buffer: 5.7.1 varint: 5.0.2 + dev: true - multiformats@11.0.2: {} + /multiformats@11.0.2: + resolution: {integrity: sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - multiformats@12.1.3: {} + /multiformats@12.1.3: + resolution: {integrity: sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - multiformats@13.1.0: {} + /multiformats@13.1.0: + resolution: {integrity: sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ==} + dev: false - multiformats@9.9.0: {} + /multiformats@9.9.0: + resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} + dev: false - multihashes@0.4.21: + /multihashes@0.4.21: + resolution: {integrity: sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==} dependencies: buffer: 5.7.1 multibase: 0.7.0 varint: 5.0.2 + dev: true - murky@https://codeload.github.com/dmfxyz/murky/tar.gz/5feccd1253d7da820f7cccccdedf64471025455d: {} - - mute-stream@0.0.8: {} + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true - mz@2.7.0: + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 - nano-json-stream-parser@0.1.2: {} + /nano-json-stream-parser@0.1.2: + resolution: {integrity: sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew==} + dev: true - nanoid@3.3.7: {} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true - nanoid@4.0.2: {} + /nanoid@4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + dev: false - native-fetch@3.0.0(node-fetch@2.7.0(encoding@0.1.13)): - dependencies: - node-fetch: 2.7.0(encoding@0.1.13) + /napi-wasm@1.1.0: + resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} + dev: false - native-fetch@4.0.2(undici@5.28.3): + /native-fetch@3.0.0(node-fetch@2.7.0): + resolution: {integrity: sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==} + peerDependencies: + node-fetch: '*' dependencies: - undici: 5.28.3 + node-fetch: 2.7.0 + dev: false - natural-compare@1.4.0: {} + /native-fetch@4.0.2(undici@5.28.4): + resolution: {integrity: sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==} + peerDependencies: + undici: '*' + dependencies: + undici: 5.28.4 + dev: false - negotiator@0.6.3: {} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true - neo-async@2.6.2: {} + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} - neotraverse@0.6.18: {} + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - next-tick@1.1.0: {} + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - nlcst-to-string@4.0.0: + /nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} dependencies: '@types/nlcst': 2.0.3 + dev: false - no-case@3.0.4: + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 tslib: 2.6.2 - nocache@3.0.4: {} + /nocache@3.0.4: + resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==} + engines: {node: '>=12.0.0'} + dev: false - node-abort-controller@3.1.1: {} + /node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} + dev: false - node-addon-api@2.0.2: {} + /node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} - node-addon-api@5.1.0: {} + /node-addon-api@5.1.0: + resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + dev: false - node-addon-api@7.1.0: {} + /node-addon-api@7.1.0: + resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} + engines: {node: ^16 || ^18 || >= 20} + dev: false - node-dir@0.1.17: + /node-dir@0.1.17: + resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} + engines: {node: '>= 0.10.5'} dependencies: minimatch: 3.1.2 - node-fetch-native@1.6.2: {} + /node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} - node-fetch@2.7.0(encoding@0.1.13): + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true dependencies: whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 - node-forge@1.3.1: {} + /node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + dev: false - node-gyp-build@4.8.0: {} + /node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + hasBin: true - node-int64@0.4.0: {} + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: false - node-releases@2.0.14: {} + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - node-releases@2.0.18: {} + /node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - node-stream-zip@1.15.0: {} + /node-stream-zip@1.15.0: + resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} + engines: {node: '>=0.12.0'} + dev: false - normalize-path@3.0.0: {} + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} - normalize-range@0.1.2: {} + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} - normalize-url@6.1.0: {} + /normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: true - normalize-url@8.0.0: {} + /normalize-url@8.0.1: + resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} + engines: {node: '>=14.16'} + dev: true - not@0.1.0: {} + /not@0.1.0: + resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} + dev: false - npm-bundled@2.0.1: + /npm-bundled@2.0.1: + resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: npm-normalize-package-bin: 2.0.0 + dev: true - npm-normalize-package-bin@2.0.0: {} + /npm-normalize-package-bin@2.0.0: + resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dev: true - npm-packlist@5.1.3: + /npm-packlist@5.1.3: + resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true dependencies: glob: 8.1.0 ignore-walk: 5.0.1 npm-bundled: 2.0.1 npm-normalize-package-bin: 2.0.0 + dev: true - npm-run-path@4.0.1: + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} dependencies: path-key: 3.1.1 - npm-run-path@5.2.0: + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 - nth-check@2.1.1: + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 + dev: false - nullthrows@1.1.1: {} + /nullthrows@1.1.1: + resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} + dev: false - number-to-bn@1.7.0: + /number-to-bn@1.7.0: + resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==} + engines: {node: '>=6.5.0', npm: '>=3'} dependencies: bn.js: 4.11.6 strip-hex-prefix: 1.0.0 - nwsapi@2.2.7: {} + /nwsapi@2.2.9: + resolution: {integrity: sha512-2f3F0SEEer8bBu0dsNCFF50N0cTThV1nWFYcEYFZttdW0lDAoybv9cQoK7X7/68Z89S7FoRrVjP1LPX4XRf9vg==} + dev: true + + /nypm@0.3.9: + resolution: {integrity: sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + dependencies: + citty: 0.1.6 + consola: 3.2.3 + execa: 8.0.1 + pathe: 1.1.2 + pkg-types: 1.1.3 + ufo: 1.5.3 + dev: true - oauth-sign@0.9.0: {} + /oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + dev: true - ob1@0.80.6: {} + /ob1@0.80.9: + resolution: {integrity: sha512-v9yOxowkZbxWhKOaaTyLjIm1aLy4ebMNcSn4NYJKOAI/Qv+SkfEfszpLr2GIxsccmb2Y2HA9qtsqiIJ80ucpVA==} + engines: {node: '>=18'} + dev: false - obj-multiplex@1.0.0: + /obj-multiplex@1.0.0: + resolution: {integrity: sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 readable-stream: 2.3.8 + dev: false - object-assign@4.1.1: {} + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} - object-hash@3.0.0: {} + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} - object-inspect@1.13.1: {} + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true - object-keys@1.1.1: {} + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true - object.assign@4.1.5: + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 + dev: true - object.fromentries@2.0.7: + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true - object.groupby@1.0.1: + /object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.4 + es-abstract: 1.23.3 + dev: true - object.values@1.1.7: + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 + dev: true - obliterator@2.0.4: {} + /obliterator@2.0.4: + resolution: {integrity: sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==} + dev: false - oboe@2.1.5: + /oboe@2.1.5: + resolution: {integrity: sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==} dependencies: http-https: 1.0.0 + dev: true - ofetch@1.3.3: + /ofetch@1.3.4: + resolution: {integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw==} dependencies: destr: 2.0.3 - node-fetch-native: 1.6.2 - ufo: 1.4.0 + node-fetch-native: 1.6.4 + ufo: 1.5.3 + dev: false - ohash@1.1.3: {} + /ohash@1.1.3: + resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} - on-exit-leak-free@0.2.0: {} + /on-exit-leak-free@0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} + dev: false - on-finished@2.3.0: + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 + dev: false - on-finished@2.4.1: + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 - on-headers@1.0.2: {} + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: false - once@1.4.0: + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - onetime@5.1.2: + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - onetime@6.0.0: + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 - onetime@7.0.0: - dependencies: - mimic-function: 5.0.1 - - oniguruma-to-js@0.4.3: - dependencies: - regex: 4.3.2 - - open@6.4.0: + /open@6.4.0: + resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==} + engines: {node: '>=8'} dependencies: is-wsl: 1.1.0 + dev: false - open@7.4.2: + /open@7.4.2: + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} dependencies: is-docker: 2.2.1 is-wsl: 2.2.0 + dev: false - open@8.4.2: + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: false - open@9.1.0: - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - - openapi-types@12.1.3: {} - - optimism@https://codeload.github.com/ethereum-optimism/optimism/tar.gz/ab3a54febb36398539fd3b849c222b7e70169dc8: - dependencies: - '@changesets/cli': 2.27.8 + /openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + dev: false - optionator@0.9.3: + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + word-wrap: 1.2.5 + dev: true - ora@5.4.1: + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} dependencies: bl: 4.1.0 chalk: 4.1.2 @@ -26914,7 +20989,9 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - ora@6.3.1: + /ora@6.3.1: + resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: chalk: 5.3.0 cli-cursor: 4.0.0 @@ -26926,10 +21003,12 @@ snapshots: strip-ansi: 7.1.0 wcwidth: 1.0.1 - ora@8.1.0: + /ora@8.0.1: + resolution: {integrity: sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ==} + engines: {node: '>=18'} dependencies: chalk: 5.3.0 - cli-cursor: 5.0.0 + cli-cursor: 4.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 is-unicode-supported: 2.0.0 @@ -26937,126 +21016,207 @@ snapshots: stdin-discarder: 0.2.2 string-width: 7.2.0 strip-ansi: 7.1.0 + dev: false - os-tmpdir@1.0.2: {} + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} - outdent@0.5.0: {} + /outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + dev: false - p-cancelable@2.1.1: {} + /p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + dev: true - p-cancelable@3.0.0: {} + /p-cancelable@3.0.0: + resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} + engines: {node: '>=12.20'} + dev: true - p-defer@3.0.0: {} + /p-defer@3.0.0: + resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} + engines: {node: '>=8'} + dev: false - p-defer@4.0.1: {} + /p-defer@4.0.1: + resolution: {integrity: sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==} + engines: {node: '>=12'} + dev: false - p-fifo@1.0.0: + /p-fifo@1.0.0: + resolution: {integrity: sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==} dependencies: fast-fifo: 1.3.2 p-defer: 3.0.0 + dev: false - p-filter@2.1.0: + /p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} dependencies: p-map: 2.1.0 + dev: false - p-limit@1.3.0: + /p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} dependencies: p-try: 1.0.0 + dev: false - p-limit@2.3.0: + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} dependencies: p-try: 2.2.0 - p-limit@3.1.0: + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 - p-limit@5.0.0: + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} dependencies: yocto-queue: 1.0.0 + dev: true - p-limit@6.1.0: + /p-limit@6.1.0: + resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} + engines: {node: '>=18'} dependencies: yocto-queue: 1.1.1 + dev: false - p-locate@2.0.0: + /p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} dependencies: p-limit: 1.3.0 + dev: false - p-locate@3.0.0: + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} dependencies: p-limit: 2.3.0 - p-locate@4.1.0: + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} dependencies: p-limit: 2.3.0 - p-locate@5.0.0: + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} dependencies: p-limit: 3.1.0 - p-locate@6.0.0: + /p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: p-limit: 4.0.0 - p-map@2.1.0: {} + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: false - p-map@4.0.0: + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} dependencies: aggregate-error: 3.1.0 + dev: false - p-map@7.0.2: {} + /p-map@7.0.2: + resolution: {integrity: sha512-z4cYYMMdKHzw4O5UkWJImbZynVIo0lSGTXc7bzB1e/rrDqkgGUNysK/o4bTr+0+xKvvLoTyGqYC4Fgljy9qe1Q==} + engines: {node: '>=18'} + dev: true - p-queue@8.0.1: + /p-queue@8.0.1: + resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + engines: {node: '>=18'} dependencies: eventemitter3: 5.0.1 p-timeout: 6.1.2 + dev: false - p-timeout@6.1.2: {} - - p-try@1.0.0: {} + /p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} + engines: {node: '>=14.16'} + dev: false - p-try@2.2.0: {} + /p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + dev: false - p256-verifier#v0.1.0@https://codeload.github.com/taikoxyz/p256-verifier/tar.gz/6ef45b117642786b08a37b4c37c6a6ce151166da: {} + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} - package-json-from-dist@1.0.0: {} + /package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + dev: true - package-json@8.1.1: + /package-json@8.1.1: + resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} + engines: {node: '>=14.16'} dependencies: got: 12.6.1 registry-auth-token: 5.0.2 registry-url: 6.0.1 - semver: 7.6.2 - - package-manager-detector@0.2.0: {} + semver: 7.6.3 + dev: true - pagefind@1.1.0: + /pagefind@1.1.0: + resolution: {integrity: sha512-1nmj0/vfYcMxNEQj0YDRp6bTVv9hI7HLdPhK/vBBYlrnwjATndQvHyicj5Y7pUHrpCFZpFnLVQXIF829tpFmaw==} + hasBin: true optionalDependencies: '@pagefind/darwin-arm64': 1.1.0 '@pagefind/darwin-x64': 1.1.0 '@pagefind/linux-arm64': 1.1.0 '@pagefind/linux-x64': 1.1.0 '@pagefind/windows-x64': 1.1.0 + dev: false - pako@1.0.11: {} + /pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: true - param-case@3.0.4: + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 tslib: 2.6.2 - parent-module@1.0.1: + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} dependencies: callsites: 3.1.0 + dev: true - parse-duration@1.1.0: {} + /parse-duration@1.1.0: + resolution: {integrity: sha512-z6t9dvSJYaPoQq7quMzdEagSFtpGu+utzHqqxmpVWNNZRIXnvqyCvn9XsTdh7c/w0Bqmdz3RB3YnRaKtpRtEXQ==} + dev: false - parse-entities@4.0.1: + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} dependencies: '@types/unist': 2.0.10 character-entities: 2.0.2 @@ -27066,85 +21226,134 @@ snapshots: is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 + dev: false - parse-headers@2.0.5: {} + /parse-headers@2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + dev: true - parse-json@4.0.0: + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} dependencies: error-ex: 1.3.2 json-parse-better-errors: 1.0.2 + dev: false - parse-json@5.2.0: + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: true - parse-latin@7.0.0: + /parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} dependencies: '@types/nlcst': 2.0.3 '@types/unist': 3.0.2 nlcst-to-string: 4.0.0 unist-util-modify-children: 4.0.0 unist-util-visit-children: 3.0.0 - vfile: 6.0.3 + vfile: 6.0.2 + dev: false - parse5@7.1.2: + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} dependencies: entities: 4.5.0 - parseurl@1.3.3: {} + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} - pascal-case@3.1.2: + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 tslib: 2.6.2 - path-browserify@1.0.1: {} + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - path-case@3.0.4: + /path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} dependencies: dot-case: 3.0.4 tslib: 2.6.2 - path-exists@3.0.0: {} + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} - path-exists@4.0.0: {} + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} - path-exists@5.0.0: {} + /path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-is-absolute@1.0.1: {} + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} - path-key@3.1.1: {} + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} - path-key@4.0.0: {} + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} - path-parse@1.0.7: {} + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.1: + /path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.2.0 - minipass: 7.0.4 + lru-cache: 10.2.2 + minipass: 7.1.0 - path-scurry@2.0.0: + /path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} dependencies: lru-cache: 11.0.1 minipass: 7.1.2 + dev: true - path-to-regexp@0.1.10: {} + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: true - path-to-regexp@6.2.2: {} + /path-to-regexp@6.2.2: + resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + dev: false - path-type@4.0.0: {} + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} - pathe@1.1.2: {} + /path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + dev: true - pathval@1.1.1: {} + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathval@2.0.0: {} + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true - pbkdf2@3.1.2: + /pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} dependencies: create-hash: 1.2.0 create-hmac: 1.1.7 @@ -27152,41 +21361,67 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 - performance-now@2.1.0: {} + /performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + dev: true - periscopic@3.1.0: + /periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: '@types/estree': 1.0.5 estree-walker: 3.0.3 is-reference: 3.0.2 - picocolors@1.0.0: {} + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - picocolors@1.1.0: {} + /picocolors@1.0.1: + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - picomatch@2.3.1: {} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} - picomatch@3.0.1: {} + /picomatch@3.0.1: + resolution: {integrity: sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==} + engines: {node: '>=10'} + dev: false - pify@2.3.0: {} + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} - pify@3.0.0: {} + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + dev: false - pify@4.0.1: {} + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} - pify@5.0.0: {} + /pify@5.0.0: + resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} + engines: {node: '>=10'} + dev: false - pino-abstract-transport@0.5.0: + /pino-abstract-transport@0.5.0: + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} dependencies: - duplexify: 4.1.2 + duplexify: 4.1.3 split2: 4.2.0 + dev: false - pino-std-serializers@4.0.0: {} + /pino-std-serializers@4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} + dev: false - pino@7.11.0: + /pino@7.11.0: + resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} + hasBin: true dependencies: atomic-sleep: 1.0.0 - fast-redact: 3.3.0 + fast-redact: 3.5.0 on-exit-leak-free: 0.2.0 pino-abstract-transport: 0.5.0 pino-std-serializers: 4.0.0 @@ -27196,247 +21431,377 @@ snapshots: safe-stable-stringify: 2.4.3 sonic-boom: 2.8.0 thread-stream: 0.15.2 + dev: false - pirates@4.0.6: {} + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} - pkg-dir@3.0.0: + /pkg-dir@3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} dependencies: find-up: 3.0.0 - pkg-dir@4.2.0: + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} dependencies: find-up: 4.1.0 - pkg-types@1.0.3: + /pkg-types@1.1.0: + resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} + dependencies: + confbox: 0.1.7 + mlly: 1.7.0 + pathe: 1.1.2 + + /pkg-types@1.1.3: + resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} dependencies: - jsonc-parser: 3.2.0 - mlly: 1.5.0 + confbox: 0.1.7 + mlly: 1.7.1 pathe: 1.1.2 + dev: true - playwright-core@1.43.1: {} + /playwright-core@1.43.1: + resolution: {integrity: sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==} + engines: {node: '>=16'} + hasBin: true + dev: true - playwright@1.43.1: + /playwright@1.43.1: + resolution: {integrity: sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==} + engines: {node: '>=16'} + hasBin: true dependencies: playwright-core: 1.43.1 optionalDependencies: fsevents: 2.3.2 + dev: true - pluralize@8.0.0: {} + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true - pngjs@5.0.0: {} + /pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + dev: false - polished@4.3.1: + /polished@4.3.1: + resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} + engines: {node: '>=10'} dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.5 + dev: true + + /pony-cause@2.1.11: + resolution: {integrity: sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==} + engines: {node: '>=12.0.0'} + dev: false - pony-cause@2.1.10: {} + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} - postcss-import@15.1.0(postcss@8.4.38): + /postcss-import@15.1.0(postcss@8.4.38): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-import@16.1.0(postcss@8.4.38): + /postcss-import@16.1.0(postcss@8.4.38): + resolution: {integrity: sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==} + engines: {node: '>=18.0.0'} + peerDependencies: + postcss: ^8.0.0 dependencies: postcss: 8.4.38 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 + dev: true - postcss-js@4.0.1(postcss@8.4.38): + /postcss-js@4.0.1(postcss@8.4.38): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 postcss: 8.4.38 - postcss-js@4.0.1(postcss@8.4.47): + /postcss-js@4.0.1(postcss@8.4.41): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.47 + postcss: 8.4.41 + dev: false - postcss-load-config@3.1.4(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)): + /postcss-load-config@3.1.4(postcss@8.4.38): + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true dependencies: lilconfig: 2.1.0 - yaml: 1.10.2 - optionalDependencies: postcss: 8.4.38 - ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.4.3) - - postcss-load-config@3.1.4(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): - dependencies: - lilconfig: 2.1.0 yaml: 1.10.2 - optionalDependencies: - postcss: 8.4.38 - ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) - - postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)): - dependencies: - lilconfig: 3.1.1 - yaml: 2.3.4 - optionalDependencies: - postcss: 8.4.38 - ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.4.3) + dev: true - postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): + /postcss-load-config@4.0.2(postcss@8.4.38): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true dependencies: lilconfig: 3.1.1 - yaml: 2.3.4 - optionalDependencies: postcss: 8.4.38 - ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) - - postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): - dependencies: - lilconfig: 3.1.1 - yaml: 2.3.4 - optionalDependencies: - postcss: 8.4.47 - ts-node: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) - optional: true + yaml: 2.4.2 - postcss-nested@5.0.6(postcss@8.4.38): + /postcss-nested@5.0.6(postcss@8.4.38): + resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 + dev: true - postcss-nested@6.0.1(postcss@8.4.38): + /postcss-nested@6.0.1(postcss@8.4.38): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 dependencies: postcss: 8.4.38 postcss-selector-parser: 6.0.16 - postcss-nesting@12.1.0(postcss@8.4.38): + /postcss-nesting@12.1.2(postcss@8.4.38): + resolution: {integrity: sha512-FUmTHGDNundodutB4PUBxt/EPuhgtpk8FJGRsBhOuy+6FnkR2A8RZWIsyyy6XmhvX2DZQQWIkvu+HB4IbJm+Ew==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 dependencies: - '@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.0.15) - '@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.15) + '@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.0.16) + '@csstools/selector-specificity': 3.0.3(postcss-selector-parser@6.0.16) postcss: 8.4.38 - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.16 + dev: true - postcss-safe-parser@6.0.0(postcss@8.4.38): + /postcss-safe-parser@6.0.0(postcss@8.4.38): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 dependencies: postcss: 8.4.38 + dev: true - postcss-scss@4.0.9(postcss@8.4.38): + /postcss-scss@4.0.9(postcss@8.4.38): + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.4.29 dependencies: postcss: 8.4.38 + dev: true - postcss-selector-parser@6.0.15: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-selector-parser@6.0.16: + /postcss-selector-parser@6.0.16: + resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} + engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-value-parser@4.2.0: {} + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.38: + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.2.0 - postcss@8.4.47: + /postcss@8.4.41: + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.1.0 - source-map-js: 1.2.1 + picocolors: 1.0.1 + source-map-js: 1.2.0 - preact@10.19.5: {} + /preact@10.21.0: + resolution: {integrity: sha512-aQAIxtzWEwH8ou+OovWVSVNlFImL7xUCwJX3YMqA3U8iKCNC34999fFOnWjYNsylgfPgMexpbk7WYOLtKr/mxg==} + dev: false + + /preferred-pm@3.1.3: + resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 + dev: false - preferred-pm@4.0.0: + /preferred-pm@4.0.0: + resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} + engines: {node: '>=18.12'} dependencies: find-up-simple: 1.0.0 find-yarn-workspace-root2: 1.2.16 which-pm: 3.0.0 + dev: false - prelude-ls@1.2.1: {} + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true - prettier-linter-helpers@1.0.0: + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} dependencies: fast-diff: 1.3.0 + dev: true - prettier-plugin-svelte@3.2.2(prettier@3.2.5)(svelte@4.2.13): - dependencies: - prettier: 3.2.5 - svelte: 4.2.13 - - prettier-plugin-svelte@3.2.3(prettier@3.2.5)(svelte@4.2.17): + /prettier-plugin-svelte@3.2.3(prettier@3.2.5)(svelte@4.2.15): + resolution: {integrity: sha512-wJq8RunyFlWco6U0WJV5wNCM7zpBFakS76UBSbmzMGpncpK98NZABaE+s7n8/APDCEVNHXC5Mpq+MLebQtsRlg==} + peerDependencies: + prettier: ^3.0.0 + svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 dependencies: prettier: 3.2.5 - svelte: 4.2.17 - - prettier@2.8.7: - optional: true + svelte: 4.2.15 + dev: true - prettier@2.8.8: {} + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + requiresBuild: true - prettier@3.2.5: {} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} + engines: {node: '>=14'} + hasBin: true - pretty-format@26.6.2: + /pretty-format@26.6.2: + resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} + engines: {node: '>= 10'} dependencies: '@jest/types': 26.6.2 ansi-regex: 5.0.1 ansi-styles: 4.3.0 react-is: 17.0.2 + dev: false - pretty-format@27.5.1: + /pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: ansi-regex: 5.0.1 ansi-styles: 5.2.0 react-is: 17.0.2 + dev: true - pretty-format@29.7.0: + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 18.2.0 - - prismjs@1.29.0: {} + react-is: 18.3.1 - process-nextick-args@1.0.7: {} + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: false - process-nextick-args@2.0.1: {} + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-warning@1.0.0: {} + /process-warning@1.0.0: + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} + dev: false - process@0.11.10: {} + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + dev: true - progress-events@1.0.0: {} + /progress-events@1.0.0: + resolution: {integrity: sha512-zIB6QDrSbPfRg+33FZalluFIowkbV5Xh1xSuetjG+rlC5he6u2dc6VQJ0TbMdlN3R1RHdpOqxEFMKTnQ+itUwA==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + dev: false - progress@2.0.3: {} + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true - promise@8.3.0: + /promise@8.3.0: + resolution: {integrity: sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==} dependencies: asap: 2.0.6 + dev: false - prompt@1.3.0: + /prompt@1.3.0: + resolution: {integrity: sha512-ZkaRWtaLBZl7KKAKndKYUL8WqNT+cQHKRZnT4RYYms48jQkFw3rrBL+/N5K/KtdEveHkxs982MX2BkDKub2ZMg==} + engines: {node: '>= 6.0.0'} dependencies: '@colors/colors': 1.5.0 async: 3.2.3 read: 1.0.7 revalidator: 0.1.8 winston: 2.4.7 + dev: true - prompts@2.4.2: + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - property-information@6.5.0: {} + /property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + dev: false - proto-list@1.2.4: {} + /proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + dev: true - protobufjs@7.2.6: + /protobufjs@7.3.0: + resolution: {integrity: sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g==} + engines: {node: '>=12.0.0'} + requiresBuild: true dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -27448,196 +21813,307 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.12.7 + '@types/node': 20.12.8 long: 5.2.3 + dev: false - proxy-addr@2.0.7: + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 + dev: true - proxy-compare@2.5.1: {} + /proxy-compare@2.5.1: + resolution: {integrity: sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==} + dev: false - proxy-from-env@1.1.0: {} + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - pseudomap@1.0.2: {} + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + dev: false - psl@1.9.0: {} + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true - publint@0.1.16: + /publint@0.1.16: + resolution: {integrity: sha512-wJgk7HnXDT5Ap0DjFYbGz78kPkN44iQvDiaq8P63IEEyNU9mYXvaMd2cAyIM6OgqXM/IA3CK6XWIsRq+wjNpgw==} + engines: {node: '>=16'} + hasBin: true dependencies: npm-packlist: 5.1.3 picocolors: 1.0.0 sade: 1.8.1 + dev: true - pump@3.0.0: + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 - punycode@2.1.0: {} + /punycode@2.1.0: + resolution: {integrity: sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==} + engines: {node: '>=6'} + dev: true - punycode@2.3.1: {} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} - qr-code-styling@1.6.0-rc.1: + /qr-code-styling@1.6.0-rc.1: + resolution: {integrity: sha512-ModRIiW6oUnsP18QzrRYZSc/CFKFKIdj7pUs57AEVH20ajlglRpN3HukjHk0UbNMTlKGuaYl7Gt6/O5Gg2NU2Q==} dependencies: qrcode-generator: 1.4.4 + dev: false - qrcode-generator@1.4.4: {} + /qrcode-generator@1.4.4: + resolution: {integrity: sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==} + dev: false - qrcode-terminal-nooctal@0.12.1: {} + /qrcode-terminal-nooctal@0.12.1: + resolution: {integrity: sha512-jy/kkD0iIMDjTucB+5T6KBsnirlhegDH47vHgrj5MejchSQmi/EAMM0xMFeePgV9CJkkAapNakpVUWYgHvtdKg==} + hasBin: true + dev: false - qrcode@1.5.3: + /qrcode@1.5.3: + resolution: {integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==} + engines: {node: '>=10.13.0'} + hasBin: true dependencies: dijkstrajs: 1.0.3 encode-utf8: 1.0.3 pngjs: 5.0.0 yargs: 15.4.1 + dev: false - qs@6.13.0: + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} dependencies: side-channel: 1.0.6 + dev: true - qs@6.5.3: {} + /qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + dev: true - query-string@5.1.1: + /query-string@5.1.1: + resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} + engines: {node: '>=0.10.0'} dependencies: decode-uri-component: 0.2.2 object-assign: 4.1.1 strict-uri-encode: 1.1.0 + dev: true - query-string@7.1.3: + /query-string@7.1.3: + resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} + engines: {node: '>=6'} dependencies: decode-uri-component: 0.2.2 filter-obj: 1.1.0 split-on-first: 1.1.0 strict-uri-encode: 2.0.0 + dev: false - querystringify@2.2.0: {} + /querystring@0.2.1: + resolution: {integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==} + engines: {node: '>=0.4.x'} + deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. + dev: false + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true - queue-microtask@1.2.3: {} + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue@6.0.2: + /queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} dependencies: inherits: 2.0.4 + dev: false - quick-format-unescaped@4.0.4: {} + /quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + dev: false - quick-lru@5.1.1: {} + /quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true - radix3@1.1.0: {} + /radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + dev: false - randombytes@2.1.0: + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 - range-parser@1.2.1: {} + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} - raw-body@2.5.2: + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - rc@1.2.8: + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 + dev: true - react-colorful@5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + /react-colorful@5.6.1(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: true - react-confetti@6.1.0(react@18.2.0): + /react-confetti@6.1.0(react@18.3.1): + resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} + engines: {node: '>=10.18'} + peerDependencies: + react: ^16.3.0 || ^17.0.1 || ^18.0.0 dependencies: - react: 18.2.0 + react: 18.3.1 tween-functions: 1.2.0 + dev: true - react-devtools-core@4.28.5(bufferutil@4.0.8)(utf-8-validate@5.0.10): + /react-devtools-core@5.1.0: + resolution: {integrity: sha512-NRtLBqYVLrIY+lOa2oTpFiAhI7Hru0AUXI0tP9neCyaPPAzlZyeH0i+VZ0shIyRTJbpvyqbD/uCsewA2hpfZHw==} dependencies: shell-quote: 1.8.1 - ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.9 transitivePeerDependencies: - bufferutil - utf-8-validate + dev: false - react-dom@18.2.0(react@18.2.0): + /react-dom@18.3.1(react@18.3.1): + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 dependencies: loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 + react: 18.3.1 + scheduler: 0.23.2 + dev: true - react-i18next@13.5.0(i18next@22.5.1)(react-dom@18.2.0(react@18.2.0))(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0): + /react-i18next@13.5.0(i18next@22.5.1)(react-native@0.74.1)(react@18.3.1): + resolution: {integrity: sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==} + peerDependencies: + i18next: '>= 23.2.3' + react: '>= 16.8.0' + react-dom: '*' + react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.5 html-parse-stringify: 3.0.1 i18next: 22.5.1 - react: 18.2.0 - optionalDependencies: - react-dom: 18.2.0(react@18.2.0) - react-native: 0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) - - react-is@16.13.1: {} + react: 18.3.1 + react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.24.5)(react@18.3.1) + dev: false - react-is@17.0.2: {} + /react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-is@18.2.0: {} + /react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-native-fetch-api@3.0.0: + /react-native-fetch-api@3.0.0: + resolution: {integrity: sha512-g2rtqPjdroaboDKTsJCTlcmtw54E25OjyaunUP0anOZn4Fuo2IKs8BVfe02zVggA/UysbmfSnRJIqtNkAgggNA==} dependencies: p-defer: 3.0.0 + dev: false - react-native-webview@11.26.1(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10))(react@18.2.0): + /react-native-webview@11.26.1(react-native@0.74.1)(react@18.3.1): + resolution: {integrity: sha512-hC7BkxOpf+z0UKhxFSFTPAM4shQzYmZHoELa6/8a/MspcjEP7ukYKpuSUTLDywQditT8yI9idfcKvfZDKQExGw==} + peerDependencies: + react: '*' + react-native: '*' dependencies: escape-string-regexp: 2.0.0 invariant: 2.2.4 - react: 18.2.0 - react-native: 0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10) + react: 18.3.1 + react-native: 0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.24.5)(react@18.3.1) + dev: false - react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10): + /react-native@0.74.1(@babel/core@7.25.2)(@babel/preset-env@7.24.5)(react@18.3.1): + resolution: {integrity: sha512-0H2XpmghwOtfPpM2LKqHIN7gxy+7G/r1hwJHKLV6uoyXGC/gCojRtoo5NqyKrWpFC8cqyT6wTYCLuG7CxEKilg==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@types/react': ^18.2.6 + react: 18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native-community/cli': 12.3.2(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@react-native-community/cli-platform-android': 12.3.2(encoding@0.1.13) - '@react-native-community/cli-platform-ios': 12.3.2(encoding@0.1.13) - '@react-native/assets-registry': 0.73.1 - '@react-native/codegen': 0.73.3(@babel/preset-env@7.23.9(@babel/core@7.25.2)) - '@react-native/community-cli-plugin': 0.73.16(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@react-native/gradle-plugin': 0.73.4 - '@react-native/js-polyfills': 0.73.1 - '@react-native/normalize-colors': 0.73.2 - '@react-native/virtualized-lists': 0.73.4(react-native@0.73.4(@babel/core@7.25.2)(@babel/preset-env@7.23.9(@babel/core@7.25.2))(bufferutil@4.0.8)(encoding@0.1.13)(react@18.2.0)(utf-8-validate@5.0.10)) + '@react-native-community/cli': 13.6.6 + '@react-native-community/cli-platform-android': 13.6.6 + '@react-native-community/cli-platform-ios': 13.6.6 + '@react-native/assets-registry': 0.74.83 + '@react-native/codegen': 0.74.83(@babel/preset-env@7.24.5) + '@react-native/community-cli-plugin': 0.74.83(@babel/core@7.25.2)(@babel/preset-env@7.24.5) + '@react-native/gradle-plugin': 0.74.83 + '@react-native/js-polyfills': 0.74.83 + '@react-native/normalize-colors': 0.74.83 + '@react-native/virtualized-lists': 0.74.83(react-native@0.74.1)(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 base64-js: 1.5.1 chalk: 4.1.2 - deprecated-react-native-prop-types: 5.0.0 event-target-shim: 5.0.1 flow-enums-runtime: 0.0.6 invariant: 2.2.4 jest-environment-node: 29.7.0 jsc-android: 250231.0.0 memoize-one: 5.2.1 - metro-runtime: 0.80.6 - metro-source-map: 0.80.6 + metro-runtime: 0.80.9 + metro-source-map: 0.80.9 mkdirp: 0.5.6 nullthrows: 1.1.1 pretty-format: 26.6.2 promise: 8.3.0 - react: 18.2.0 - react-devtools-core: 4.28.5(bufferutil@4.0.8)(utf-8-validate@5.0.10) - react-refresh: 0.14.0 - react-shallow-renderer: 16.15.0(react@18.2.0) + react: 18.3.1 + react-devtools-core: 5.1.0 + react-refresh: 0.14.2 + react-shallow-renderer: 16.15.0(react@18.3.1) regenerator-runtime: 0.13.11 scheduler: 0.24.0-canary-efb381bbf-20230505 stacktrace-parser: 0.1.10 whatwg-fetch: 3.6.20 - ws: 6.2.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 6.2.2 yargs: 17.7.2 transitivePeerDependencies: - '@babel/core' @@ -27646,45 +22122,53 @@ snapshots: - encoding - supports-color - utf-8-validate + dev: false - react-refresh@0.14.0: {} + /react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + dev: false - react-shallow-renderer@16.15.0(react@18.2.0): + /react-shallow-renderer@16.15.0(react@18.3.1): + resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: object-assign: 4.1.1 - react: 18.2.0 - react-is: 18.2.0 + react: 18.3.1 + react-is: 18.3.1 + dev: false - react@18.2.0: + /react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 - read-cache@1.0.0: + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: pify: 2.3.0 - read-yaml-file@1.1.0: + /read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} dependencies: graceful-fs: 4.2.11 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 + dev: false - read@1.0.7: + /read@1.0.7: + resolution: {integrity: sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==} + engines: {node: '>=0.8'} dependencies: mute-stream: 0.0.8 + dev: true - readable-stream@2.3.3: - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 1.0.7 - safe-buffer: 5.1.2 - string_decoder: 1.0.3 - util-deprecate: 1.0.2 - - readable-stream@2.3.8: + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -27694,77 +22178,108 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 - readable-stream@3.6.2: + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - readdirp@3.6.0: + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - readdirp@4.0.1: {} + /readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + dev: false - readline@1.3.0: {} + /readline@1.3.0: + resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} + dev: false - real-require@0.1.0: {} + /real-require@0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} + engines: {node: '>= 12.13.0'} + dev: false - recast@0.21.5: + /recast@0.21.5: + resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} + engines: {node: '>= 4'} dependencies: ast-types: 0.15.2 esprima: 4.0.1 source-map: 0.6.1 - tslib: 2.6.2 + tslib: 2.7.0 + dev: false - recast@0.23.9: + /recast@0.23.9: + resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} + engines: {node: '>= 4'} dependencies: ast-types: 0.16.1 esprima: 4.0.1 source-map: 0.6.1 tiny-invariant: 1.3.3 tslib: 2.6.2 + dev: true - receptacle@1.3.2: + /receptacle@1.3.2: + resolution: {integrity: sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==} dependencies: ms: 2.1.3 + dev: false - redent@3.0.0: + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 + dev: true - redis-errors@1.2.0: {} - - redis-parser@3.0.0: - dependencies: - redis-errors: 1.2.0 - - regenerate-unicode-properties@10.1.1: + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} dependencies: regenerate: 1.4.2 - regenerate@1.4.2: {} + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-runtime@0.13.11: {} + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: false - regenerator-runtime@0.14.1: {} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regenerator-transform@0.15.2: + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.23.9 - - regex@4.3.2: {} + '@babel/runtime': 7.24.5 - regexp.prototype.flags@1.5.1: + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - set-function-name: 2.0.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + dev: true - regexpp@3.2.0: {} + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true - regexpu-core@5.3.2: + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} dependencies: '@babel/regjsgen': 0.8.0 regenerate: 1.4.2 @@ -27773,23 +22288,34 @@ snapshots: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 - registry-auth-token@5.0.2: + /registry-auth-token@5.0.2: + resolution: {integrity: sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==} + engines: {node: '>=14'} dependencies: '@pnpm/npm-conf': 2.2.2 + dev: true - registry-url@6.0.1: + /registry-url@6.0.1: + resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} + engines: {node: '>=12'} dependencies: rc: 1.2.8 + dev: true - regjsparser@0.9.1: + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true dependencies: jsesc: 0.5.0 - rehype-expressive-code@0.35.6: + /rehype-expressive-code@0.35.3: + resolution: {integrity: sha512-kj43Rg+WzYUs8RRr6XyBr60pnrIZEgbmn9yJoV6qka1UDpcx7r8icn6Q2uSAgaLtlEUy+HCPgQJraOZrA53LOQ==} dependencies: - expressive-code: 0.35.6 + expressive-code: 0.35.3 + dev: false - rehype-external-links@3.0.0: + /rehype-external-links@3.0.0: + resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} dependencies: '@types/hast': 3.0.4 '@ungap/structured-clone': 1.2.0 @@ -27797,8 +22323,10 @@ snapshots: is-absolute-url: 4.0.1 space-separated-tokens: 2.0.2 unist-util-visit: 5.0.0 + dev: true - rehype-format@5.0.0: + /rehype-format@5.0.0: + resolution: {integrity: sha512-kM4II8krCHmUhxrlvzFSptvaWh280Fr7UGNJU5DCMuvmAwGCNmGfi9CvFAQK6JDjsNoRMWQStglK3zKJH685Wg==} dependencies: '@types/hast': 3.0.4 hast-util-embedded: 3.0.0 @@ -27808,76 +22336,96 @@ snapshots: html-whitespace-sensitive-tag-names: 3.0.0 rehype-minify-whitespace: 6.0.0 unist-util-visit-parents: 6.0.1 + dev: false - rehype-minify-whitespace@6.0.0: + /rehype-minify-whitespace@6.0.0: + resolution: {integrity: sha512-i9It4YHR0Sf3GsnlR5jFUKXRr9oayvEk9GKQUkwZv6hs70OH9q3OCZrq9PpLvIGKt3W+JxBOxCidNVpH/6rWdA==} dependencies: '@types/hast': 3.0.4 hast-util-embedded: 3.0.0 hast-util-is-element: 3.0.0 hast-util-whitespace: 3.0.0 unist-util-is: 6.0.0 + dev: false - rehype-parse@9.0.0: + /rehype-parse@9.0.0: + resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} dependencies: '@types/hast': 3.0.4 hast-util-from-html: 2.0.1 - unified: 11.0.5 + unified: 11.0.4 + dev: false - rehype-raw@7.0.0: + /rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.0.3 - vfile: 6.0.3 + vfile: 6.0.2 + dev: false - rehype-slug@6.0.0: + /rehype-slug@6.0.0: + resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} dependencies: '@types/hast': 3.0.4 github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 hast-util-to-string: 3.0.0 unist-util-visit: 5.0.0 + dev: true - rehype-stringify@10.0.0: + /rehype-stringify@10.0.0: + resolution: {integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==} dependencies: '@types/hast': 3.0.4 hast-util-to-html: 9.0.1 - unified: 11.0.5 + unified: 11.0.4 + dev: false - rehype@13.0.1: + /rehype@13.0.1: + resolution: {integrity: sha512-AcSLS2mItY+0fYu9xKxOu1LhUZeBZZBx8//5HKzF+0XP+eP8+6a5MXn2+DW2kfXR6Dtp1FEXMVrjyKAcvcU8vg==} dependencies: '@types/hast': 3.0.4 rehype-parse: 9.0.0 rehype-stringify: 10.0.0 - unified: 11.0.5 + unified: 11.0.4 + dev: false - remark-directive@3.0.0: + /remark-directive@3.0.0: + resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} dependencies: '@types/mdast': 4.0.4 mdast-util-directive: 3.0.0 micromark-extension-directive: 3.0.0 - unified: 11.0.5 + unified: 11.0.4 transitivePeerDependencies: - supports-color + dev: false - remark-gfm@4.0.0: + /remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} dependencies: '@types/mdast': 4.0.4 mdast-util-gfm: 3.0.0 micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 - unified: 11.0.5 + unified: 11.0.4 transitivePeerDependencies: - supports-color + dev: false - remark-mdx@3.0.1: + /remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} dependencies: mdast-util-mdx: 3.0.0 micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color + dev: false - remark-parse@11.0.0: + /remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.0 @@ -27885,33 +22433,44 @@ snapshots: unified: 11.0.5 transitivePeerDependencies: - supports-color + dev: false - remark-rehype@11.1.0: + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 mdast-util-to-hast: 13.1.0 unified: 11.0.5 - vfile: 6.0.3 + vfile: 6.0.2 + dev: false - remark-smartypants@3.0.2: + /remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} dependencies: retext: 9.0.0 - retext-smartypants: 6.1.1 - unified: 11.0.5 + retext-smartypants: 6.1.0 + unified: 11.0.4 unist-util-visit: 5.0.0 + dev: false - remark-stringify@11.0.0: + /remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} dependencies: '@types/mdast': 4.0.4 mdast-util-to-markdown: 2.1.0 - unified: 11.0.5 - - request-light@0.5.8: {} + unified: 11.0.4 + dev: false - request-light@0.7.0: {} + /request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + dev: false - request@2.88.2: + /request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 dependencies: aws-sign2: 0.7.0 aws4: 1.13.2 @@ -27933,153 +22492,212 @@ snapshots: tough-cookie: 2.5.0 tunnel-agent: 0.6.0 uuid: 3.4.0 + dev: true - require-directory@2.1.1: {} + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: false - require-from-string@2.0.2: {} + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} - require-main-filename@2.0.0: {} + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: false - requireindex@1.2.0: {} + /requireindex@1.2.0: + resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} + engines: {node: '>=0.10.5'} + dev: true - requires-port@1.0.0: {} + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true - resolve-alpn@1.2.1: {} + /resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + dev: true - resolve-from@3.0.0: {} + /resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} + engines: {node: '>=4'} + dev: false - resolve-from@4.0.0: {} + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true - resolve-from@5.0.0: {} + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: false - resolve-pkg-maps@1.0.0: {} + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true - resolve@1.17.0: + /resolve@1.17.0: + resolution: {integrity: sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==} dependencies: path-parse: 1.0.7 + dev: false - resolve@1.22.8: + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - responselike@2.0.1: + /responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} dependencies: lowercase-keys: 2.0.0 + dev: true - responselike@3.0.0: + /responselike@3.0.0: + resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==} + engines: {node: '>=14.16'} dependencies: lowercase-keys: 3.0.0 + dev: true - restore-cursor@3.1.0: + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - restore-cursor@4.0.0: + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - restore-cursor@5.1.0: - dependencies: - onetime: 7.0.0 - signal-exit: 4.1.0 - - retext-latin@4.0.0: + /retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} dependencies: '@types/nlcst': 2.0.3 parse-latin: 7.0.0 - unified: 11.0.5 + unified: 11.0.4 + dev: false - retext-smartypants@6.1.1: + /retext-smartypants@6.1.0: + resolution: {integrity: sha512-LDPXg95346bqFZnDMHo0S7Rq5p64+B+N8Vz733+wPMDtwb9rCOs9LIdIEhrUOU+TAywX9St+ocQWJt8wrzivcQ==} dependencies: '@types/nlcst': 2.0.3 nlcst-to-string: 4.0.0 unist-util-visit: 5.0.0 + dev: false - retext-stringify@4.0.0: + /retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} dependencies: '@types/nlcst': 2.0.3 nlcst-to-string: 4.0.0 - unified: 11.0.5 + unified: 11.0.4 + dev: false - retext@9.0.0: + /retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} dependencies: '@types/nlcst': 2.0.3 retext-latin: 4.0.0 retext-stringify: 4.0.0 - unified: 11.0.5 + unified: 11.0.4 + dev: false - retimer@3.0.0: {} + /retimer@3.0.0: + resolution: {integrity: sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==} + dev: false - retry@0.13.1: {} + /retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + dev: true - reusify@1.0.4: {} + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - revalidator@0.1.8: {} + /revalidator@0.1.8: + resolution: {integrity: sha512-xcBILK2pA9oh4SiinPEZfhP8HfrB/ha+a2fTMyl7Om2WjlDVrOQy99N2MXXlUHqGJz4qEu2duXxHJjDWuK/0xg==} + engines: {node: '>= 0.4.0'} + dev: true - rimraf@2.6.3: + /rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true dependencies: glob: 7.2.3 - rimraf@2.7.1: + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true dependencies: glob: 7.2.3 + dev: true - rimraf@3.0.2: + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true dependencies: glob: 7.2.3 - rimraf@5.0.10: + /rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true dependencies: - glob: 10.3.10 + glob: 10.3.12 + dev: true - ripemd160@2.0.2: + /ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} dependencies: hash-base: 3.1.0 inherits: 2.0.4 - risc0-ethereum#v1.1.2@https://codeload.github.com/risc0/risc0-ethereum/tar.gz/b8a14213d92fff07dacda993804e7edb7946ca58: {} - - rlp@2.2.7: + /rlp@2.2.7: + resolution: {integrity: sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==} + hasBin: true dependencies: bn.js: 5.2.1 - rollup-plugin-visualizer@5.12.0(rollup@4.21.3): + /rollup-plugin-visualizer@5.12.0: + resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rollup: + optional: true dependencies: open: 8.4.2 picomatch: 2.3.1 source-map: 0.7.4 yargs: 17.7.2 - optionalDependencies: - rollup: 4.21.3 - - rollup@3.29.4: - optionalDependencies: - fsevents: 2.3.3 + dev: false - rollup@4.12.0: - dependencies: - '@types/estree': 1.0.5 + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.0 - '@rollup/rollup-android-arm64': 4.12.0 - '@rollup/rollup-darwin-arm64': 4.12.0 - '@rollup/rollup-darwin-x64': 4.12.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 - '@rollup/rollup-linux-arm64-gnu': 4.12.0 - '@rollup/rollup-linux-arm64-musl': 4.12.0 - '@rollup/rollup-linux-riscv64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-musl': 4.12.0 - '@rollup/rollup-win32-arm64-msvc': 4.12.0 - '@rollup/rollup-win32-ia32-msvc': 4.12.0 - '@rollup/rollup-win32-x64-msvc': 4.12.0 fsevents: 2.3.3 + dev: true - rollup@4.17.2: + /rollup@4.17.2: + resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: @@ -28101,116 +22719,151 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.17.2 fsevents: 2.3.3 - rollup@4.21.3: - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.3 - '@rollup/rollup-android-arm64': 4.21.3 - '@rollup/rollup-darwin-arm64': 4.21.3 - '@rollup/rollup-darwin-x64': 4.21.3 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.3 - '@rollup/rollup-linux-arm-musleabihf': 4.21.3 - '@rollup/rollup-linux-arm64-gnu': 4.21.3 - '@rollup/rollup-linux-arm64-musl': 4.21.3 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.3 - '@rollup/rollup-linux-riscv64-gnu': 4.21.3 - '@rollup/rollup-linux-s390x-gnu': 4.21.3 - '@rollup/rollup-linux-x64-gnu': 4.21.3 - '@rollup/rollup-linux-x64-musl': 4.21.3 - '@rollup/rollup-win32-arm64-msvc': 4.21.3 - '@rollup/rollup-win32-ia32-msvc': 4.21.3 - '@rollup/rollup-win32-x64-msvc': 4.21.3 - fsevents: 2.3.3 - - rrweb-cssom@0.6.0: {} - - run-applescript@5.0.0: - dependencies: - execa: 5.1.1 + /rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true - run-parallel@1.2.0: + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 - sade@1.8.1: + /sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} dependencies: mri: 1.2.0 - safe-array-concat@1.0.1: + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 + dev: true - safe-buffer@5.1.2: {} + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - safe-buffer@5.2.1: {} + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.0: + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - get-intrinsic: 1.2.4 + es-errors: 1.3.0 is-regex: 1.1.4 + dev: true - safe-stable-stringify@2.4.3: {} + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: false - safer-buffer@2.1.2: {} + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sander@0.5.1: + /sander@0.5.1: + resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} dependencies: es6-promise: 3.3.1 graceful-fs: 4.2.11 mkdirp: 0.5.6 rimraf: 2.7.1 + dev: true - sax@1.3.0: {} + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - saxes@6.0.0: + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} dependencies: xmlchars: 2.2.0 + dev: true - scheduler@0.23.0: + /scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} dependencies: loose-envify: 1.4.0 + dev: true - scheduler@0.24.0-canary-efb381bbf-20230505: + /scheduler@0.24.0-canary-efb381bbf-20230505: + resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==} dependencies: loose-envify: 1.4.0 + dev: false - scrypt-js@3.0.1: {} + /scrypt-js@3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} - secp256k1@4.0.3: + /secp256k1@4.0.3: + resolution: {integrity: sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==} + engines: {node: '>=10.0.0'} + requiresBuild: true dependencies: - elliptic: 6.5.7 + elliptic: 6.5.5 node-addon-api: 2.0.2 - node-gyp-build: 4.8.0 + node-gyp-build: 4.8.1 - secp256k1@5.0.0: + /secp256k1@5.0.0: + resolution: {integrity: sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==} + engines: {node: '>=14.0.0'} + requiresBuild: true dependencies: - elliptic: 6.5.4 + elliptic: 6.5.5 node-addon-api: 5.1.0 - node-gyp-build: 4.8.0 + node-gyp-build: 4.8.1 + dev: false - section-matter@1.0.0: + /section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} dependencies: extend-shallow: 2.0.1 kind-of: 6.0.3 + dev: false + + /selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + dev: false - semver@5.7.2: {} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true - semver@6.3.1: {} + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true - semver@7.6.0: + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true dependencies: lru-cache: 6.0.0 - semver@7.6.2: {} + /semver@7.6.2: + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} + hasBin: true - semver@7.6.3: {} + /semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true - send@0.19.0: + /send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} dependencies: debug: 2.6.9 depd: 2.0.0 @@ -28228,28 +22881,39 @@ snapshots: transitivePeerDependencies: - supports-color - sentence-case@3.0.4: + /sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} dependencies: no-case: 3.0.4 tslib: 2.6.2 upper-case-first: 2.0.2 - serialize-error@2.1.0: {} + /serialize-error@2.1.0: + resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} + engines: {node: '>=0.10.0'} + dev: false - serialize-javascript@6.0.2: + /serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} dependencies: randombytes: 2.1.0 + dev: false - serve-static@1.16.2: + /serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} dependencies: - encodeurl: 2.0.0 + encodeurl: 1.0.2 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.19.0 + send: 0.18.0 transitivePeerDependencies: - supports-color - serverless@4.4.3: + /serverless@4.4.3: + resolution: {integrity: sha512-Re/PCfW/vkWnY+IhelN7HUpt3r5l+6m4IrKE6SOKGawhODGYGqdGBZSkMNyNkvHdeq158zDNohcsM+Be7K9sBg==} + engines: {node: '>=18.0.0'} + hasBin: true dependencies: axios: 1.7.7 axios-proxy-builder: 0.1.2 @@ -28257,22 +22921,32 @@ snapshots: xml2js: 0.6.2 transitivePeerDependencies: - debug + dev: true - servify@0.1.12: + /servify@0.1.12: + resolution: {integrity: sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==} + engines: {node: '>=6'} dependencies: - body-parser: 1.20.3 + body-parser: 1.20.2 cors: 2.8.5 - express: 4.21.0 + express: 4.19.2 request: 2.88.2 xhr: 2.6.0 transitivePeerDependencies: - supports-color + dev: true - set-blocking@2.0.0: {} + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: false - set-cookie-parser@2.6.0: {} + /set-cookie-parser@2.6.0: + resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} + dev: true - set-function-length@1.2.1: + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 @@ -28281,26 +22955,39 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.2 - set-function-name@2.0.1: + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 + es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + dev: true - setimmediate@1.0.5: {} + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - setprototypeof@1.2.0: {} + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sha.js@2.4.11: + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 - shallow-clone@3.0.1: + /shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} dependencies: kind-of: 6.0.3 - sharp@0.33.3: + /sharp@0.33.3: + resolution: {integrity: sha512-vHUeXJU1UvlO/BNwTpT0x/r53WkLUVxrmb5JTgW92fdFCFk0ispLMAeu/jPO2vjkXM1fYUi3K7/qcLF47pwM1A==} + engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} + requiresBuild: true dependencies: color: 4.2.3 detect-libc: 2.0.3 @@ -28325,188 +23012,209 @@ snapshots: '@img/sharp-wasm32': 0.33.3 '@img/sharp-win32-ia32': 0.33.3 '@img/sharp-win32-x64': 0.33.3 + dev: false - shebang-command@1.2.0: + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} dependencies: shebang-regex: 1.0.0 + dev: false - shebang-command@2.0.0: + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - shebang-regex@1.0.0: {} + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + dev: false - shebang-regex@3.0.0: {} + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} - shell-quote@1.8.1: {} + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: false - shiki@1.17.6: + /shiki@1.12.1: + resolution: {integrity: sha512-nwmjbHKnOYYAe1aaQyEBHvQymJgfm86ZSS7fT8OaPRr4sbAcBNz7PbfAikMEFSDQ6se2j2zobkXvVKcBOm0ysg==} dependencies: - '@shikijs/core': 1.17.6 - '@shikijs/engine-javascript': 1.17.6 - '@shikijs/engine-oniguruma': 1.17.6 - '@shikijs/types': 1.17.6 - '@shikijs/vscode-textmate': 9.2.2 + '@shikijs/core': 1.12.1 '@types/hast': 3.0.4 + dev: false - shiki@1.5.2: + /shiki@1.5.2: + resolution: {integrity: sha512-fpPbuSaatinmdGijE7VYUD3hxLozR3ZZ+iAx8Iy2X6REmJGyF5hQl94SgmiUNTospq346nXUVZx0035dyGvIVw==} dependencies: '@shikijs/core': 1.5.2 + dev: false - side-channel@1.0.4: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - object-inspect: 1.13.1 - - side-channel@1.0.6: + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 + dev: true - siginfo@2.0.0: {} + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true - signal-exit@3.0.7: {} + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: {} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} - simple-concat@1.0.1: {} + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: true - simple-get@2.8.2: + /simple-get@2.8.2: + resolution: {integrity: sha512-Ijd/rV5o+mSBBs4F/x9oDPtTx9Zb6X9brmnXvMW4J7IR15ngi9q5xxqWBKU744jTZiaXtxaPL7uHG6vtN8kUkw==} dependencies: decompress-response: 3.3.0 once: 1.4.0 simple-concat: 1.0.1 + dev: true - simple-swizzle@0.2.2: + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} dependencies: is-arrayish: 0.3.2 + dev: false - sirv@2.0.4: + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} dependencies: - '@polka/url': 1.0.0-next.24 + '@polka/url': 1.0.0-next.25 mrmime: 2.0.0 totalist: 3.0.1 + dev: true - sisteransi@1.0.5: {} + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - sitemap@7.1.2: + /sitemap@7.1.2: + resolution: {integrity: sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true dependencies: '@types/node': 17.0.45 '@types/sax': 1.2.7 arg: 5.0.2 sax: 1.3.0 + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} - slash@3.0.0: {} + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} - slash@4.0.0: {} + /slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + dev: true - slice-ansi@2.1.0: + /slice-ansi@2.1.0: + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} + engines: {node: '>=6'} dependencies: ansi-styles: 3.2.1 astral-regex: 1.0.0 is-fullwidth-code-point: 2.0.0 + dev: false - slice-ansi@4.0.0: + /slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 + dev: true - snake-case@3.0.4: + /snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 tslib: 2.6.2 - socket.io-client@4.7.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): - dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.7(supports-color@8.1.1) - engine.io-client: 6.5.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) - socket.io-parser: 4.2.4 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - socket.io-client@4.7.4(bufferutil@4.0.8)(utf-8-validate@6.0.3): + /socket.io-client@4.7.5: + resolution: {integrity: sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==} + engines: {node: '>=10.0.0'} dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.7(supports-color@8.1.1) - engine.io-client: 6.5.3(bufferutil@4.0.8)(utf-8-validate@6.0.3) + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.4 + engine.io-client: 6.5.3 socket.io-parser: 4.2.4 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: false - socket.io-parser@4.2.4: + /socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} dependencies: - '@socket.io/component-emitter': 3.1.0 - debug: 4.3.7(supports-color@8.1.1) + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: false - solady@https://codeload.github.com/Vectorized/solady/tar.gz/a12a2575c899a328c1bafdada632dabbff27cf6b: {} - - solady@https://codeload.github.com/Vectorized/solady/tar.gz/de0f336d2033d04e0f77c923d639c7fbffd48b6d: {} - - solc@0.8.24: + /solc@0.8.24: + resolution: {integrity: sha512-G5yUqjTUPc8Np74sCFwfsevhBPlUifUOfhYrgyu6CmYlC6feSw0YS6eZW47XDT23k3JYdKx5nJ+Q7whCEmNcoA==} + engines: {node: '>=10.0.0'} + hasBin: true dependencies: command-exists: 1.2.9 commander: 8.3.0 - follow-redirects: 1.15.5(debug@4.3.4) + follow-redirects: 1.15.6(debug@4.3.4) js-sha3: 0.8.0 memorystream: 0.3.1 semver: 5.7.2 tmp: 0.0.33 transitivePeerDependencies: - debug + dev: true - solc@0.8.26(debug@4.3.7): + /solc@0.8.26(debug@4.3.6): + resolution: {integrity: sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==} + engines: {node: '>=10.0.0'} + hasBin: true dependencies: command-exists: 1.2.9 commander: 8.3.0 - follow-redirects: 1.15.9(debug@4.3.7) + follow-redirects: 1.15.6(debug@4.3.6) js-sha3: 0.8.0 memorystream: 0.3.1 semver: 5.7.2 tmp: 0.0.33 transitivePeerDependencies: - debug + dev: false - solhint@4.5.4(typescript@5.4.3): - dependencies: - '@solidity-parser/parser': 0.18.0 - ajv: 6.12.6 - antlr4: 4.13.1 - ast-parents: 0.0.1 - chalk: 4.1.2 - commander: 10.0.1 - cosmiconfig: 8.3.6(typescript@5.4.3) - fast-diff: 1.3.0 - glob: 8.1.0 - ignore: 5.3.1 - js-yaml: 4.1.0 - latest-version: 7.0.0 - lodash: 4.17.21 - pluralize: 8.0.0 - semver: 7.6.0 - strip-ansi: 6.0.1 - table: 6.8.1 - text-table: 0.2.0 - optionalDependencies: - prettier: 2.8.8 - transitivePeerDependencies: - - typescript - - solhint@4.5.4(typescript@5.4.5): + /solhint@4.5.4(typescript@5.4.5): + resolution: {integrity: sha512-Cu1XiJXub2q1eCr9kkJ9VPv1sGcmj3V7Zb76B0CoezDOB9bu3DxKIFFH7ggCl9fWpEPD6xBmRLfZrYijkVmujQ==} + hasBin: true dependencies: '@solidity-parser/parser': 0.18.0 ajv: 6.12.6 - antlr4: 4.13.1 + antlr4: 4.13.1-patch-1 ast-parents: 0.0.1 chalk: 4.1.2 commander: 10.0.1 @@ -28518,24 +23226,27 @@ snapshots: latest-version: 7.0.0 lodash: 4.17.21 pluralize: 8.0.0 - semver: 7.6.0 + semver: 7.6.2 strip-ansi: 6.0.1 - table: 6.8.1 + table: 6.8.2 text-table: 0.2.0 optionalDependencies: prettier: 2.8.8 transitivePeerDependencies: - typescript + dev: true - solhint@5.0.3(typescript@5.4.3): + /solhint@5.0.3(typescript@5.4.5): + resolution: {integrity: sha512-OLCH6qm/mZTCpplTXzXTJGId1zrtNuDYP5c2e6snIv/hdRVxPfBBz/bAlL91bY/Accavkayp2Zp2BaDSrLVXTQ==} + hasBin: true dependencies: '@solidity-parser/parser': 0.18.0 ajv: 6.12.6 - antlr4: 4.13.1 + antlr4: 4.13.1-patch-1 ast-parents: 0.0.1 chalk: 4.1.2 commander: 10.0.1 - cosmiconfig: 8.3.6(typescript@5.4.3) + cosmiconfig: 8.3.6(typescript@5.4.5) fast-diff: 1.3.0 glob: 8.1.0 ignore: 5.3.1 @@ -28543,67 +23254,98 @@ snapshots: latest-version: 7.0.0 lodash: 4.17.21 pluralize: 8.0.0 - semver: 7.6.2 + semver: 7.6.3 strip-ansi: 6.0.1 - table: 6.8.1 + table: 6.8.2 text-table: 0.2.0 optionalDependencies: prettier: 2.8.8 transitivePeerDependencies: - typescript + dev: true - solidity-ast@0.4.59: {} + /solidity-ast@0.4.59: + resolution: {integrity: sha512-I+CX0wrYUN9jDfYtcgWSe+OAowaXy8/1YQy7NS4ni5IBDmIYBq7ZzaP/7QqouLjzZapmQtvGLqCaYgoUWqBo5g==} + dev: false - solidity-docgen@0.6.0-beta.36(hardhat@2.22.13(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3))(typescript@5.4.3)(utf-8-validate@5.0.10)): + /solidity-docgen@0.6.0-beta.36(hardhat@2.22.15): + resolution: {integrity: sha512-f/I5G2iJgU1h0XrrjRD0hHMr7C10u276vYvm//rw1TzFcYQ4xTOyAoi9oNAHRU0JU4mY9eTuxdVc2zahdMuhaQ==} + peerDependencies: + hardhat: ^2.8.0 dependencies: handlebars: 4.7.8 - hardhat: 2.22.13(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3))(typescript@5.4.3)(utf-8-validate@5.0.10) + hardhat: 2.22.15(ts-node@10.9.2)(typescript@5.4.5) solidity-ast: 0.4.59 + dev: false - solidity-stringutils@https://codeload.github.com/Arachnid/solidity-stringutils/tar.gz/4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461: {} - - sonic-boom@2.8.0: + /sonic-boom@2.8.0: + resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} dependencies: atomic-sleep: 1.0.0 + dev: false - sorcery@0.11.0: + /sorcery@0.11.0: + resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} + hasBin: true dependencies: '@jridgewell/sourcemap-codec': 1.4.15 buffer-crc32: 0.2.13 minimist: 1.2.8 sander: 0.5.1 + dev: true - source-map-js@1.2.0: {} - - source-map-js@1.2.1: {} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} - source-map-support@0.5.21: + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - source-map@0.5.7: {} - - source-map@0.6.1: {} + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + dev: false - source-map@0.7.4: {} + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} - sp1-contracts#v3.0.0@https://codeload.github.com/succinctlabs/sp1-contracts/tar.gz/1c4acaeab86789995ae5c6baced66f81e4a57f4d: {} + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: false - space-separated-tokens@2.0.2: {} + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spawndamnit@2.0.0: + /spawndamnit@2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 + dev: false - split-on-first@1.1.0: {} + /split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} + engines: {node: '>=6'} + dev: false - split2@4.2.0: {} + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + dev: false - sprintf-js@1.0.3: {} + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: false - sshpk@1.18.0: + /sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true dependencies: asn1: 0.2.6 assert-plus: 1.0.0 @@ -28614,27 +23356,42 @@ snapshots: jsbn: 0.1.1 safer-buffer: 2.1.2 tweetnacl: 0.14.5 + dev: true - stack-trace@0.0.10: {} + /stack-trace@0.0.10: + resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==} + dev: true - stack-utils@2.0.6: + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 - stackback@0.0.2: {} + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true - stackframe@1.3.4: {} + /stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + dev: false - stacktrace-parser@0.1.10: + /stacktrace-parser@0.1.10: + resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} + engines: {node: '>=6'} dependencies: type-fest: 0.7.1 + dev: false - standard-as-callback@2.1.0: {} - - starlight-links-validator@0.8.0(@astrojs/starlight@0.25.5(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)))(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)): + /starlight-links-validator@0.8.0(@astrojs/starlight@0.25.3)(astro@4.13.1): + resolution: {integrity: sha512-FYZ5cfV7jSL4wOsWmIkpR+9dH0Z8fxslSQl8IiAv5URfkxLgsaFzjx51FBeSaaS5uVmO5WgfkUjx3N52Jl1/TQ==} + engines: {node: '>=18.14.1'} + peerDependencies: + '@astrojs/starlight': '>=0.15.0' + astro: '>=4.0.0' dependencies: - '@astrojs/starlight': 0.25.5(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)) - astro: 4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5) + '@astrojs/starlight': 0.25.3(astro@4.13.1) + astro: 4.13.1(typescript@5.4.5) github-slugger: 2.0.0 hast-util-from-html: 2.0.1 hast-util-has-property: 3.0.0 @@ -28642,228 +23399,316 @@ snapshots: kleur: 4.1.5 mdast-util-to-string: 4.0.0 unist-util-visit: 5.0.0 + dev: false - starlight-openapi@0.6.3(@astrojs/markdown-remark@5.2.0)(@astrojs/starlight@0.25.5(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)))(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5))(openapi-types@12.1.3): + /starlight-openapi@0.6.3(@astrojs/markdown-remark@5.2.0)(@astrojs/starlight@0.25.3)(astro@4.13.1)(openapi-types@12.1.3): + resolution: {integrity: sha512-AHTbCJeGHzzhwVVi7UMgFgNKkvio2bbi9zQVtcI7CrMXVdd4jqL/L+R7MUxtr/DtzWG7PCCRsKPriwYubJ1ZPQ==} + engines: {node: '>=18.14.1'} + peerDependencies: + '@astrojs/markdown-remark': '>=4.2.0' + '@astrojs/starlight': '>=0.19.0' + astro: '>=4.2.7' dependencies: '@astrojs/markdown-remark': 5.2.0 - '@astrojs/starlight': 0.25.5(astro@4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5)) + '@astrojs/starlight': 0.25.3(astro@4.13.1) '@readme/openapi-parser': 2.5.0(openapi-types@12.1.3) - astro: 4.15.6(@types/node@20.12.7)(rollup@4.21.3)(terser@5.27.2)(typescript@5.4.5) + astro: 4.13.1(typescript@5.4.5) github-slugger: 2.0.0 transitivePeerDependencies: - openapi-types + dev: false - statuses@1.5.0: {} + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: false - statuses@2.0.1: {} + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} - std-env@3.7.0: {} + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - stdin-discarder@0.1.0: + /stdin-discarder@0.1.0: + resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: bl: 5.1.0 - stdin-discarder@0.2.2: {} + /stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + dev: false - storybook@8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3): + /storybook@8.2.7: + resolution: {integrity: sha512-Jb9DXue1sr3tKkpuq66VP5ItOKTpxL6t99ze1wXDbjCvPiInTdPA5AyFEjBuKjOBIh28bayYoOZa6/xbMJV+Wg==} + hasBin: true dependencies: - '@storybook/core': 8.3.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) + '@babel/core': 7.24.5 + '@babel/types': 7.24.5 + '@storybook/codemod': 8.2.7 + '@storybook/core': 8.2.7 + '@types/semver': 7.5.8 + '@yarnpkg/fslib': 2.10.3 + '@yarnpkg/libzip': 2.3.0 + chalk: 4.1.2 + commander: 6.2.1 + cross-spawn: 7.0.3 + detect-indent: 6.1.0 + envinfo: 7.13.0 + execa: 5.1.1 + fd-package-json: 1.2.0 + find-up: 5.0.0 + fs-extra: 11.2.0 + giget: 1.2.3 + globby: 14.0.2 + jscodeshift: 0.15.2(@babel/preset-env@7.24.5) + leven: 3.1.0 + ora: 5.4.1 + prettier: 3.2.5 + prompts: 2.4.2 + semver: 7.6.2 + strip-json-comments: 3.1.1 + tempy: 3.1.0 + tiny-invariant: 1.3.3 + ts-dedent: 2.2.0 transitivePeerDependencies: + - '@babel/preset-env' - bufferutil - supports-color - utf-8-validate + dev: true - stream-browserify@3.0.0: + /stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} dependencies: inherits: 2.0.4 readable-stream: 3.6.2 + dev: false - stream-replace-string@2.0.0: {} + /stream-replace-string@2.0.0: + resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} + dev: false - stream-shift@1.0.1: {} + /stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + dev: false - stream-to-it@0.2.4: + /stream-to-it@0.2.4: + resolution: {integrity: sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==} dependencies: get-iterator: 1.0.2 + dev: false - strict-uri-encode@1.1.0: {} + /strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + dev: true - strict-uri-encode@2.0.0: {} + /strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} + dev: false - string-width@4.2.3: + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string-width@7.2.0: + /string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} dependencies: emoji-regex: 10.3.0 get-east-asian-width: 1.2.0 strip-ansi: 7.1.0 + dev: false - string.prototype.trim@1.2.8: + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + dev: true - string.prototype.trimend@1.0.7: + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 + dev: true - string.prototype.trimstart@1.0.7: + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-object-atoms: 1.0.0 + dev: true - string_decoder@1.0.3: - dependencies: - safe-buffer: 5.1.2 - - string_decoder@1.1.1: + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 - string_decoder@1.3.0: + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - stringify-entities@4.0.4: + /stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 + dev: false - strip-ansi@5.2.0: + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} dependencies: ansi-regex: 4.1.1 + dev: false - strip-ansi@6.0.1: + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - strip-bom-string@1.0.0: {} + /strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + dev: false - strip-bom@3.0.0: {} + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} - strip-final-newline@2.0.0: {} + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} - strip-final-newline@3.0.0: {} + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} - strip-hex-prefix@1.0.0: + /strip-hex-prefix@1.0.0: + resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} + engines: {node: '>=6.5.0', npm: '>=3'} dependencies: is-hex-prefixed: 1.0.0 - strip-indent@3.0.0: + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} dependencies: min-indent: 1.0.1 + dev: true - strip-json-comments@2.0.1: {} + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true - strip-json-comments@3.1.1: {} + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} - strip-literal@2.0.0: + /strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} dependencies: - js-tokens: 8.0.3 + js-tokens: 9.0.0 + dev: true - strnum@1.0.5: {} + /strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + dev: false - style-to-object@0.4.4: + /style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} dependencies: inline-style-parser: 0.1.1 + dev: false - style-to-object@1.0.6: + /style-to-object@1.0.6: + resolution: {integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==} dependencies: inline-style-parser: 0.2.3 + dev: false - stylis@4.2.0: {} - - sucrase@3.35.0: + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true dependencies: - '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.3.10 + glob: 10.3.12 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 - sudo-prompt@9.2.1: {} + /sudo-prompt@9.2.1: + resolution: {integrity: sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==} + dev: false - superstruct@1.0.3: {} + /superstruct@1.0.4: + resolution: {integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==} + engines: {node: '>=14.0.0'} + dev: false - supports-color@5.5.0: + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - supports-color@7.2.0: + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - supports-color@8.1.1: + /supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} dependencies: has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} - - svelte-check@3.7.1(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)))(postcss@8.4.38)(svelte@4.2.13): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - chokidar: 3.6.0 - fast-glob: 3.3.2 - import-fresh: 3.3.0 - picocolors: 1.0.0 - sade: 1.8.1 - svelte: 4.2.13 - svelte-preprocess: 5.1.3(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)))(postcss@8.4.38)(svelte@4.2.13)(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss - - svelte-check@3.7.1(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)))(postcss@8.4.38)(svelte@4.2.17): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - chokidar: 3.6.0 - fast-glob: 3.3.2 - import-fresh: 3.3.0 - picocolors: 1.0.0 - sade: 1.8.1 - svelte: 4.2.17 - svelte-preprocess: 5.1.3(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)))(postcss@8.4.38)(svelte@4.2.17)(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} - svelte-check@3.7.1(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.38)(svelte@4.2.17): + /svelte-check@3.7.1(@babel/core@7.24.5)(postcss@8.4.41)(svelte@4.2.15): + resolution: {integrity: sha512-U4uJoLCzmz2o2U33c7mPDJNhRYX/DNFV11XTUDlFxaKLsO7P+40gvJHMPpoRfa24jqZfST4/G9fGNcUGMO8NAQ==} + hasBin: true + peerDependencies: + svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 3.6.0 @@ -28871,8 +23716,8 @@ snapshots: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.2.17 - svelte-preprocess: 5.1.3(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.38)(svelte@4.2.17)(typescript@5.4.5) + svelte: 4.2.15 + svelte-preprocess: 5.1.4(@babel/core@7.24.5)(postcss@8.4.41)(svelte@4.2.15)(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - '@babel/core' @@ -28884,8 +23729,13 @@ snapshots: - sass - stylus - sugarss + dev: true - svelte-check@3.7.1(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.47)(svelte@4.2.17): + /svelte-check@3.7.1(@babel/core@7.25.2)(postcss@8.4.38)(svelte@4.2.15): + resolution: {integrity: sha512-U4uJoLCzmz2o2U33c7mPDJNhRYX/DNFV11XTUDlFxaKLsO7P+40gvJHMPpoRfa24jqZfST4/G9fGNcUGMO8NAQ==} + hasBin: true + peerDependencies: + svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 dependencies: '@jridgewell/trace-mapping': 0.3.25 chokidar: 3.6.0 @@ -28893,8 +23743,8 @@ snapshots: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.2.17 - svelte-preprocess: 5.1.3(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.47)(svelte@4.2.17)(typescript@5.4.5) + svelte: 4.2.15 + svelte-preprocess: 5.1.4(@babel/core@7.25.2)(postcss@8.4.38)(svelte@4.2.15)(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - '@babel/core' @@ -28906,156 +23756,181 @@ snapshots: - sass - stylus - sugarss + dev: true - svelte-copy@1.4.2(svelte@4.2.13): - dependencies: - svelte: 4.2.13 - - svelte-copy@1.4.2(svelte@4.2.17): - dependencies: - svelte: 4.2.17 - - svelte-eslint-parser@0.35.0(svelte@4.2.13): - dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - postcss: 8.4.38 - postcss-scss: 4.0.9(postcss@8.4.38) - optionalDependencies: - svelte: 4.2.13 + /svelte-copy@1.4.2(svelte@4.2.15): + resolution: {integrity: sha512-Q99JvWDzB58JlbVWX2VxjHX/CQ5ayDLUGGJgL2EqU1+3c9CDOtxLrKFZx5CVN5bN/DDl62nxtazz0j3nGX1Xew==} + peerDependencies: + svelte: ^3.55.0 || ^4.0.0 + dependencies: + svelte: 4.2.15 + dev: true - svelte-eslint-parser@0.35.0(svelte@4.2.17): + /svelte-eslint-parser@0.35.0(svelte@4.2.15): + resolution: {integrity: sha512-CtbPseajW0gjwEvHiuzYJkPDjAcHz2FaHt540j6RVYrZgnE6xWkzUBodQ4I3nV+G5AS0Svt8K6aIA/CIU9xT2Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 + peerDependenciesMeta: + svelte: + optional: true dependencies: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 postcss: 8.4.38 postcss-scss: 4.0.9(postcss@8.4.38) - optionalDependencies: - svelte: 4.2.17 - - svelte-hmr@0.16.0(svelte@4.2.13): - dependencies: - svelte: 4.2.13 - - svelte-hmr@0.16.0(svelte@4.2.17): - dependencies: - svelte: 4.2.17 + svelte: 4.2.15 + dev: true - svelte-i18n@4.0.0(svelte@4.2.13): + /svelte-hmr@0.16.0(svelte@4.2.15): + resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} + engines: {node: ^12.20 || ^14.13.1 || >= 16} + peerDependencies: + svelte: ^3.19.0 || ^4.0.0 dependencies: - cli-color: 2.0.3 - deepmerge: 4.3.1 - esbuild: 0.19.12 - estree-walker: 2.0.2 - intl-messageformat: 10.5.11 - sade: 1.8.1 - svelte: 4.2.13 - tiny-glob: 0.2.9 + svelte: 4.2.15 + dev: true - svelte-i18n@4.0.0(svelte@4.2.17): + /svelte-i18n@4.0.0(svelte@4.2.15): + resolution: {integrity: sha512-4vivjKZADUMRIhTs38JuBNy3unbnh9AFRxWFLxq62P4NHic+/BaIZZlAsvqsCdnp7IdJf5EoSiH6TNdItcjA6g==} + engines: {node: '>= 16'} + hasBin: true + peerDependencies: + svelte: ^3 || ^4 dependencies: - cli-color: 2.0.3 + cli-color: 2.0.4 deepmerge: 4.3.1 esbuild: 0.19.12 estree-walker: 2.0.2 intl-messageformat: 10.5.11 sade: 1.8.1 - svelte: 4.2.17 + svelte: 4.2.15 tiny-glob: 0.2.9 - svelte-preprocess@5.1.3(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)))(postcss@8.4.38)(svelte@4.2.13)(typescript@5.4.5): + /svelte-preprocess@5.1.4(@babel/core@7.24.5)(postcss@8.4.41)(svelte@4.2.15)(typescript@5.4.5): + resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} + engines: {node: '>= 16.0.0'} + requiresBuild: true + peerDependencies: + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 || ^4.0.0 + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.55.0 + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 + svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 + typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + optional: true + postcss: + optional: true + postcss-load-config: + optional: true + pug: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + typescript: + optional: true dependencies: + '@babel/core': 7.24.5 '@types/pug': 2.0.10 detect-indent: 6.1.0 - magic-string: 0.30.9 + magic-string: 0.30.10 + postcss: 8.4.41 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.2.13 - optionalDependencies: - '@babel/core': 7.25.2 - postcss: 8.4.38 - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) + svelte: 4.2.15 typescript: 5.4.5 + dev: true - svelte-preprocess@5.1.3(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)))(postcss@8.4.38)(svelte@4.2.17)(typescript@5.4.5): + /svelte-preprocess@5.1.4(@babel/core@7.25.2)(postcss@8.4.38)(svelte@4.2.15)(typescript@5.4.5): + resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} + engines: {node: '>= 16.0.0'} + requiresBuild: true + peerDependencies: + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 || ^4.0.0 + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.55.0 + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 + svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 + typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + optional: true + postcss: + optional: true + postcss-load-config: + optional: true + pug: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + typescript: + optional: true dependencies: - '@types/pug': 2.0.10 - detect-indent: 6.1.0 - magic-string: 0.30.9 - sorcery: 0.11.0 - strip-indent: 3.0.0 - svelte: 4.2.17 - optionalDependencies: '@babel/core': 7.25.2 - postcss: 8.4.38 - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) - typescript: 5.4.5 - - svelte-preprocess@5.1.3(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.38)(svelte@4.2.17)(typescript@5.4.5): - dependencies: '@types/pug': 2.0.10 detect-indent: 6.1.0 - magic-string: 0.30.9 - sorcery: 0.11.0 - strip-indent: 3.0.0 - svelte: 4.2.17 - optionalDependencies: - '@babel/core': 7.25.2 + magic-string: 0.30.10 postcss: 8.4.38 - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) - typescript: 5.4.5 - - svelte-preprocess@5.1.3(@babel/core@7.25.2)(postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)))(postcss@8.4.47)(svelte@4.2.17)(typescript@5.4.5): - dependencies: - '@types/pug': 2.0.10 - detect-indent: 6.1.0 - magic-string: 0.30.9 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.2.17 - optionalDependencies: - '@babel/core': 7.25.2 - postcss: 8.4.47 - postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) + svelte: 4.2.15 typescript: 5.4.5 + dev: true - svelte-scrolling@1.4.0(svelte@4.2.13): - dependencies: - svelte: 4.2.13 - - svelte-scrolling@1.4.0(svelte@4.2.17): + /svelte-scrolling@1.4.0(svelte@4.2.15): + resolution: {integrity: sha512-1721UrmTODAIhybCR5p/l6lQNSmuk66VgtgxdAEdQiGuYU1wCcKB/9kba0VXlxIeh5vhEaoODAOCizRRtHKQoQ==} + peerDependencies: + svelte: ^3 || ^4 dependencies: - svelte: 4.2.17 + svelte: 4.2.15 + dev: true - svelte2tsx@0.7.19(svelte@4.2.17)(typescript@5.4.5): + /svelte2tsx@0.7.15(svelte@4.2.15)(typescript@5.4.5): + resolution: {integrity: sha512-91RbLJI448FR1UEZqXSS3ucVMERuWo8ACOhxfkBPK1CL2ocGMOC5bwc8tzFvb/Ji8NqZ7wmSGfvRebcUsiauKA==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 4.2.17 + svelte: 4.2.15 typescript: 5.4.5 + dev: true - svelte@4.2.13: - dependencies: - '@ampproject/remapping': 2.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - '@types/estree': 1.0.5 - acorn: 8.11.3 - aria-query: 5.3.0 - axobject-query: 4.0.0 - code-red: 1.0.4 - css-tree: 2.3.1 - estree-walker: 3.0.3 - is-reference: 3.0.2 - locate-character: 3.0.0 - magic-string: 0.30.9 - periscopic: 3.1.0 - - svelte@4.2.17: + /svelte@4.2.15: + resolution: {integrity: sha512-j9KJSccHgLeRERPlhMKrCXpk2TqL2m5Z+k+OBTQhZOhIdCCd3WfqV+ylPWeipEwq17P/ekiSFWwrVQv93i3bsg==} + engines: {node: '>=16'} dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 '@types/estree': 1.0.5 @@ -29067,22 +23942,26 @@ snapshots: estree-walker: 3.0.3 is-reference: 3.0.2 locate-character: 3.0.0 - magic-string: 0.30.9 + magic-string: 0.30.10 periscopic: 3.1.0 - sveltedoc-parser@4.2.1: + /sveltedoc-parser@4.2.1: + resolution: {integrity: sha512-sWJRa4qOfRdSORSVw9GhfDEwsbsYsegnDzBevUCF6k/Eis/QqCu9lJ6I0+d/E2wOWCjOhlcJ3+jl/Iur+5mmCw==} + engines: {node: '>=10.0.0'} dependencies: eslint: 8.4.1 espree: 9.2.0 htmlparser2-svelte: 4.1.0 transitivePeerDependencies: - supports-color + dev: true - swarm-js@0.1.42(bufferutil@4.0.8)(utf-8-validate@5.0.10): + /swarm-js@0.1.42: + resolution: {integrity: sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ==} dependencies: bluebird: 3.7.2 buffer: 5.7.1 - eth-lib: 0.1.29(bufferutil@4.0.8)(utf-8-validate@5.0.10) + eth-lib: 0.1.29 fs-extra: 4.0.3 got: 11.8.6 mime-types: 2.1.35 @@ -29095,57 +23974,46 @@ snapshots: - bufferutil - supports-color - utf-8-validate + dev: true - symbol-tree@3.2.4: {} + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true - synckit@0.8.6: + /synckit@0.8.8: + resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} + engines: {node: ^14.18.0 || >=16.0.0} dependencies: - '@pkgr/utils': 2.4.2 + '@pkgr/core': 0.1.1 tslib: 2.6.2 + dev: true - system-architecture@0.1.0: {} + /system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + dev: false - table@6.8.1: + /table@6.8.2: + resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} + engines: {node: '>=10.0.0'} dependencies: - ajv: 8.12.0 + ajv: 8.13.0 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: true - tailwindcss-image-rendering@1.0.2: + /tailwindcss-image-rendering@1.0.2: + resolution: {integrity: sha512-WC3hJd2RbHBYIqtJxwpQ5z94wUNyBrJn1eFz3J/jR7OGrQB8WYbJGvJQ9scNNVzoHEYGoNdZbUI90l9YgpBCwg==} dependencies: flat: 4.1.1 lodash: 4.17.21 - tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)): - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.2 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.0 - lilconfig: 2.1.0 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.38 - postcss-import: 15.1.0(postcss@8.4.38) - postcss-js: 4.0.1(postcss@8.4.38) - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3)) - postcss-nested: 6.0.1(postcss@8.4.38) - postcss-selector-parser: 6.0.15 - resolve: 1.22.8 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node - - tailwindcss@3.4.3(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)): + /tailwindcss@3.4.3: + resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} + engines: {node: '>=14.0.0'} + hasBin: true dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -29164,15 +24032,17 @@ snapshots: postcss: 8.4.38 postcss-import: 15.1.0(postcss@8.4.38) postcss-js: 4.0.1(postcss@8.4.38) - postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5)) + postcss-load-config: 4.0.2(postcss@8.4.38) postcss-nested: 6.0.1(postcss@8.4.38) - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.16 resolve: 1.22.8 sucrase: 3.35.0 transitivePeerDependencies: - ts-node - tar@4.4.19: + /tar@4.4.19: + resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} + engines: {node: '>=4.5'} dependencies: chownr: 1.1.4 fs-minipass: 1.2.7 @@ -29181,176 +24051,275 @@ snapshots: mkdirp: 0.5.6 safe-buffer: 5.2.1 yallist: 3.1.1 + dev: true - telejson@7.2.0: + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + + /telejson@7.2.0: + resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} dependencies: memoizerific: 1.11.3 + dev: true + + /temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + dev: false - temp-dir@2.0.0: {} + /temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + dev: true - temp@0.8.4: + /temp@0.8.4: + resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} + engines: {node: '>=6.0.0'} dependencies: rimraf: 2.6.3 - term-size@2.2.1: {} + /tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} + engines: {node: '>=14.16'} + dependencies: + is-stream: 3.0.0 + temp-dir: 3.0.0 + type-fest: 2.19.0 + unique-string: 3.0.0 + dev: true + + /term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + dev: false - terser@5.27.2: + /terser@5.31.0: + resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} + engines: {node: '>=10'} + hasBin: true dependencies: - '@jridgewell/source-map': 0.3.5 + '@jridgewell/source-map': 0.3.6 acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 + dev: false - test-exclude@6.0.0: + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 + dev: true - text-table@0.2.0: {} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true - thenify-all@1.6.0: + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} dependencies: thenify: 3.3.1 - thenify@3.3.1: + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} dependencies: any-promise: 1.3.0 - thread-stream@0.15.2: + /thread-stream@0.15.2: + resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} dependencies: real-require: 0.1.0 + dev: false - throat@5.0.0: {} + /throat@5.0.0: + resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} + dev: false - through2@2.0.5: + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: readable-stream: 2.3.8 xtend: 4.0.2 + dev: false - timed-out@4.0.1: {} + /timed-out@4.0.1: + resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} + engines: {node: '>=0.10.0'} + dev: true - timeout-abort-controller@3.0.0: + /timeout-abort-controller@3.0.0: + resolution: {integrity: sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==} dependencies: retimer: 3.0.0 + dev: false - timers-ext@0.1.7: + /timers-ext@0.1.7: + resolution: {integrity: sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==} dependencies: - es5-ext: 0.10.62 + es5-ext: 0.10.64 next-tick: 1.1.0 - tiny-glob@0.2.9: + /tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} dependencies: globalyzer: 0.1.0 globrex: 0.1.2 - tiny-invariant@1.3.3: {} - - tinybench@2.6.0: {} - - tinyexec@0.3.0: {} - - tinypool@0.8.3: {} - - tinyrainbow@1.2.0: {} + /tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + dev: true - tinyspy@2.2.0: {} + /tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + dev: true - tinyspy@3.0.2: {} + /tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} + dev: true - titleize@3.0.0: {} + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} + dev: true - tmp@0.0.33: + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 - tmpl@1.0.5: {} + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: false - to-fast-properties@2.0.0: {} + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} - to-regex-range@5.0.1: + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - toidentifier@1.0.1: {} + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} - totalist@3.0.1: {} + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true - tough-cookie@2.5.0: + /tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} dependencies: psl: 1.9.0 punycode: 2.3.1 + dev: true - tough-cookie@4.1.3: + /tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} dependencies: psl: 1.9.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 + dev: true - tr46@0.0.3: {} + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@5.0.0: + /tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} dependencies: punycode: 2.3.1 + dev: true - treeify@1.1.0: {} + /treeify@1.1.0: + resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} + engines: {node: '>=0.6'} + dev: false - trim-lines@3.0.1: {} + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false - trough@2.2.0: {} + /trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + dev: false - ts-api-utils@1.2.1(typescript@5.4.3): + /ts-api-utils@1.3.0(typescript@5.4.5): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' dependencies: - typescript: 5.4.3 + typescript: 5.4.5 + dev: true - ts-api-utils@1.3.0(typescript@5.4.3): - dependencies: - typescript: 5.4.3 + /ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + dev: true - ts-api-utils@1.3.0(typescript@5.4.5): + /ts-essentials@9.4.2(typescript@5.4.5): + resolution: {integrity: sha512-mB/cDhOvD7pg3YCLk2rOtejHjjdSi9in/IBYE13S+8WA5FBSraYf4V/ws55uvs0IvQ/l0wBOlXy5yBNZ9Bl8ZQ==} + peerDependencies: + typescript: '>=4.1.0' + peerDependenciesMeta: + typescript: + optional: true dependencies: typescript: 5.4.5 + dev: true - ts-dedent@2.2.0: {} - - ts-essentials@9.4.1(typescript@5.4.3): - optionalDependencies: - typescript: 5.4.3 - - ts-interface-checker@0.1.13: {} + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-morph@19.0.0: + /ts-morph@19.0.0: + resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} dependencies: '@ts-morph/common': 0.20.0 code-block-writer: 12.0.0 + dev: true - ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.3): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.12.7 - acorn: 8.11.3 - acorn-walk: 8.3.2 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.4.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - - ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5): + /ts-node@10.9.2(@types/node@20.12.8)(typescript@5.4.5): + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 + '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.12.7 + '@types/node': 20.12.8 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 @@ -29361,190 +24330,331 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - tsconfck@3.0.3(typescript@5.4.3): - optionalDependencies: - typescript: 5.4.3 - - tsconfck@3.0.3(typescript@5.4.5): - optionalDependencies: + /tsconfck@3.0.3(typescript@5.4.5): + resolution: {integrity: sha512-4t0noZX9t6GcPTfBAbIbbIU4pfpCwh0ueq3S4O/5qXI1VwK1outmxhe9dOiEWqMz3MW2LKgDTpqWV+37IWuVbA==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: typescript: 5.4.5 + dev: true - tsconfck@3.1.3(typescript@5.4.5): - optionalDependencies: + /tsconfck@3.1.1(typescript@5.4.5): + resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + dependencies: typescript: 5.4.5 + dev: false - tsconfig-paths@3.14.2: + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 + dev: true - tslib@1.14.1: {} - - tslib@2.4.0: {} + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.6.2: {} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - tsort@0.0.1: {} + /tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - tsutils@3.21.0(typescript@5.4.3): - dependencies: - tslib: 1.14.1 - typescript: 5.4.3 + /tsort@0.0.1: + resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} + dev: false - tsutils@3.21.0(typescript@5.4.5): + /tsutils@3.21.0(typescript@5.4.5): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 typescript: 5.4.5 + dev: true - tunnel-agent@0.6.0: + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: safe-buffer: 5.2.1 + dev: true - tunnel@0.0.6: {} + /tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + dev: true - tween-functions@1.2.0: {} + /tween-functions@1.2.0: + resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} + dev: true - tweetnacl-util@0.15.1: {} + /tweetnacl-util@0.15.1: + resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} + dev: false - tweetnacl@0.14.5: {} + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + dev: true - tweetnacl@1.0.3: {} + /tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + dev: false - type-check@0.4.0: + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 + dev: true - type-detect@4.0.8: {} + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} - type-fest@0.20.2: {} + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: false - type-fest@0.21.3: {} + /type-fest@0.7.1: + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} + dev: false - type-fest@0.7.1: {} + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true - type-fest@2.19.0: {} + /type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} - type-is@1.6.18: + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} dependencies: media-typer: 0.3.0 mime-types: 2.1.35 + dev: true - type@1.2.0: {} - - type@2.7.2: {} + /type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - typed-array-buffer@1.0.0: + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-typed-array: 1.1.12 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + dev: true - typed-array-byte-length@1.0.0: + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 + gopd: 1.0.1 has-proto: 1.0.3 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 + dev: true - typed-array-byte-offset@1.0.0: + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 + available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 + gopd: 1.0.1 has-proto: 1.0.3 - is-typed-array: 1.1.12 + is-typed-array: 1.1.13 + dev: true - typed-array-length@1.0.4: + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 - is-typed-array: 1.1.12 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + dev: true - typedarray-to-buffer@3.1.5: + /typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: is-typedarray: 1.0.0 + dev: true - typesafe-path@0.2.2: {} + /typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + dev: false - typescript-auto-import-cache@0.3.3: + /typescript-auto-import-cache@0.3.3: + resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} dependencies: - semver: 7.6.3 - - typescript@5.4.3: {} + semver: 7.6.2 + dev: false - typescript@5.4.5: {} + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true - ufo@1.4.0: {} + /ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - uglify-js@3.19.3: + /uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: false optional: true - uint8-varint@2.0.4: + /uint8-varint@2.0.4: + resolution: {integrity: sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==} dependencies: uint8arraylist: 2.4.8 - uint8arrays: 5.0.3 + uint8arrays: 5.1.0 + dev: false - uint8arraylist@2.4.8: + /uint8arraylist@2.4.8: + resolution: {integrity: sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==} dependencies: - uint8arrays: 5.0.3 + uint8arrays: 5.1.0 + dev: false - uint8arrays@3.1.0: + /uint8arrays@3.1.0: + resolution: {integrity: sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==} dependencies: multiformats: 9.9.0 + dev: false - uint8arrays@3.1.1: + /uint8arrays@3.1.1: + resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} dependencies: multiformats: 9.9.0 + dev: false - uint8arrays@4.0.10: + /uint8arrays@4.0.10: + resolution: {integrity: sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==} dependencies: multiformats: 12.1.3 + dev: false - uint8arrays@5.0.3: + /uint8arrays@5.1.0: + resolution: {integrity: sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==} dependencies: multiformats: 13.1.0 + dev: false - ultron@1.1.1: {} + /ultron@1.1.1: + resolution: {integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==} + dev: true - unbox-primitive@1.0.2: + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + dev: true + + /uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + dev: false - uncrypto@0.1.3: {} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@5.26.5: {} + /undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + dev: true - undici@5.28.3: + /undici@5.28.4: + resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} + engines: {node: '>=14.0'} dependencies: - '@fastify/busboy': 2.1.0 + '@fastify/busboy': 2.1.1 + dev: false - unenv@1.9.0: + /unenv@1.9.0: + resolution: {integrity: sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g==} dependencies: consola: 3.2.3 defu: 6.1.4 mime: 3.0.0 - node-fetch-native: 1.6.2 + node-fetch-native: 1.6.4 pathe: 1.1.2 + dev: false - unfetch@4.2.0: {} + /unfetch@4.2.0: + resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} - unicode-canonical-property-names-ecmascript@2.0.0: {} + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} - unicode-match-property-ecmascript@2.0.0: + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - unicode-match-property-value-ecmascript@2.1.0: {} + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + /unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + dev: true - unicode-property-aliases-ecmascript@2.1.0: {} + /unified@11.0.4: + resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} + dependencies: + '@types/unist': 3.0.2 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.1 + dev: false - unified@11.0.5: + /unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} dependencies: '@types/unist': 3.0.2 bail: 2.0.2 @@ -29552,371 +24662,459 @@ snapshots: extend: 3.0.2 is-plain-obj: 4.1.0 trough: 2.2.0 - vfile: 6.0.3 + vfile: 6.0.2 + dev: false + + /unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + dependencies: + crypto-random-string: 4.0.0 + dev: true - unist-util-find-after@5.0.0: + /unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 + dev: false - unist-util-is@6.0.0: + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} dependencies: '@types/unist': 3.0.2 - unist-util-modify-children@4.0.0: + /unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} dependencies: '@types/unist': 3.0.2 array-iterate: 2.0.1 + dev: false - unist-util-position-from-estree@2.0.0: + /unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} dependencies: '@types/unist': 3.0.2 + dev: false - unist-util-position@5.0.0: + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} dependencies: '@types/unist': 3.0.2 + dev: false - unist-util-remove-position@5.0.0: + /unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} dependencies: '@types/unist': 3.0.2 unist-util-visit: 5.0.0 + dev: false - unist-util-stringify-position@4.0.0: + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} dependencies: '@types/unist': 3.0.2 + dev: false - unist-util-visit-children@3.0.0: + /unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} dependencies: '@types/unist': 3.0.2 + dev: false - unist-util-visit-parents@6.0.1: + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 - unist-util-visit@5.0.0: + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} dependencies: '@types/unist': 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - universalify@0.1.2: {} + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} - universalify@0.2.0: {} + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true - universalify@2.0.1: {} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} - unpipe@1.0.0: {} + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} - unplugin@1.14.1: + /unplugin@1.12.0: + resolution: {integrity: sha512-KeczzHl2sATPQUx1gzo+EnUkmN4VmGBYRRVOZSGvGITE9rGHRDGqft6ONceP3vgXcyJ2XjX5axG5jMWUwNCYLw==} + engines: {node: '>=14.0.0'} dependencies: acorn: 8.12.1 + chokidar: 3.6.0 + webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.2 + dev: true - unstorage@1.10.1(idb-keyval@6.2.1): + /unstorage@1.10.2(idb-keyval@6.2.1): + resolution: {integrity: sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ==} + peerDependencies: + '@azure/app-configuration': ^1.5.0 + '@azure/cosmos': ^4.0.0 + '@azure/data-tables': ^13.2.2 + '@azure/identity': ^4.0.1 + '@azure/keyvault-secrets': ^4.8.0 + '@azure/storage-blob': ^12.17.0 + '@capacitor/preferences': ^5.0.7 + '@netlify/blobs': ^6.5.0 || ^7.0.0 + '@planetscale/database': ^1.16.0 + '@upstash/redis': ^1.28.4 + '@vercel/kv': ^1.0.1 + idb-keyval: ^6.2.1 + ioredis: ^5.3.2 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/kv': + optional: true + idb-keyval: + optional: true + ioredis: + optional: true dependencies: anymatch: 3.1.3 chokidar: 3.6.0 destr: 2.0.3 - h3: 1.10.2 - ioredis: 5.3.2 - listhen: 1.6.0 - lru-cache: 10.2.0 - mri: 1.2.0 - node-fetch-native: 1.6.2 - ofetch: 1.3.3 - ufo: 1.4.0 - optionalDependencies: + h3: 1.11.1 idb-keyval: 6.2.1 + listhen: 1.7.2 + lru-cache: 10.2.2 + mri: 1.2.0 + node-fetch-native: 1.6.4 + ofetch: 1.3.4 + ufo: 1.5.3 transitivePeerDependencies: - - supports-color + - uWebSockets.js + dev: false - untildify@4.0.0: {} - - untun@0.1.3: + /untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true dependencies: citty: 0.1.6 consola: 3.2.3 pathe: 1.1.2 + dev: false - update-browserslist-db@1.0.13(browserslist@4.23.0): + /update-browserslist-db@1.0.15(browserslist@4.23.0): + resolution: {integrity: sha512-K9HWH62x3/EalU1U6sjSZiylm9C8tgq2mSvshZpqc7QE69RaA2qjhkW2HlNA0tFpEbtyFz7HTqbSdN4MSwUodA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.0 escalade: 3.1.2 picocolors: 1.0.0 - update-browserslist-db@1.1.0(browserslist@4.23.3): + /update-browserslist-db@1.1.0(browserslist@4.23.3): + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' dependencies: browserslist: 4.23.3 escalade: 3.1.2 - picocolors: 1.1.0 + picocolors: 1.0.1 - upper-case-first@2.0.2: + /upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} dependencies: tslib: 2.6.2 - upper-case@2.0.2: + /upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} dependencies: tslib: 2.6.2 - uqr@0.1.2: {} + /uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + dev: false - uri-js@4.4.1: + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 - url-parse@1.5.10: + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + dev: true - url-set-query@1.0.0: {} + /url-set-query@1.0.0: + resolution: {integrity: sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg==} + dev: true - use-sync-external-store@1.2.0(react@18.2.0): + /use-sync-external-store@1.2.0(react@18.3.1): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - react: 18.2.0 + react: 18.3.1 + dev: false - utf-8-validate@5.0.10: + /utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + requiresBuild: true dependencies: - node-gyp-build: 4.8.0 + node-gyp-build: 4.8.1 - utf-8-validate@6.0.3: + /utf-8-validate@6.0.3: + resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==} + engines: {node: '>=6.14.2'} + requiresBuild: true dependencies: - node-gyp-build: 4.8.0 + node-gyp-build: 4.8.1 + dev: false - utf8@3.0.0: {} + /utf8@3.0.0: + resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} - util-deprecate@1.0.2: {} + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - util@0.12.5: + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} dependencies: inherits: 2.0.4 is-arguments: 1.1.1 is-generator-function: 1.0.10 - is-typed-array: 1.1.12 - which-typed-array: 1.1.13 - - utils-merge@1.0.1: {} + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 - uuid@3.4.0: {} + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} - uuid@8.3.2: {} + /uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + dev: true - uuid@9.0.1: {} + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false - v8-compile-cache-lib@3.0.1: {} + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true - v8-compile-cache@2.4.0: {} + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8-to-istanbul@9.2.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 + /v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + dev: true - valtio@1.11.2(@types/react@18.3.5)(react@18.2.0): + /valtio@1.11.2(react@18.3.1): + resolution: {integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=16.8' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true dependencies: proxy-compare: 2.5.1 - use-sync-external-store: 1.2.0(react@18.2.0) - optionalDependencies: - '@types/react': 18.3.5 - react: 18.2.0 + react: 18.3.1 + use-sync-external-store: 1.2.0(react@18.3.1) + dev: false - varint@5.0.2: {} + /varint@5.0.2: + resolution: {integrity: sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==} + dev: true - varint@6.0.0: {} + /varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + dev: false - vary@1.1.2: {} + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} - verror@1.10.0: + /verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} dependencies: assert-plus: 1.0.0 core-util-is: 1.0.2 extsprintf: 1.3.0 + dev: true - vfile-location@5.0.2: + /vfile-location@5.0.2: + resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} dependencies: '@types/unist': 3.0.2 vfile: 6.0.1 + dev: false - vfile-message@4.0.2: + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 + dev: false - vfile@6.0.1: + /vfile@6.0.1: + resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 + dev: false - vfile@6.0.3: + /vfile@6.0.2: + resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} dependencies: '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 + dev: false - viem@1.21.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4): - dependencies: - '@adraffy/ens-normalize': 1.10.0 - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 - '@scure/bip32': 1.3.2 - '@scure/bip39': 1.2.1 - abitype: 0.9.8(typescript@5.4.3)(zod@3.22.4) - isows: 1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - - viem@1.21.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8): - dependencies: - '@adraffy/ens-normalize': 1.10.0 - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 - '@scure/bip32': 1.3.2 - '@scure/bip39': 1.2.1 - abitype: 0.9.8(typescript@5.4.3)(zod@3.23.8) - isows: 1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - - viem@1.21.4(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@6.0.3)(zod@3.23.8): + /viem@1.21.4(typescript@5.4.5): + resolution: {integrity: sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@adraffy/ens-normalize': 1.10.0 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.2 '@scure/bip32': 1.3.2 '@scure/bip39': 1.2.1 - abitype: 0.9.8(typescript@5.4.3)(zod@3.23.8) - isows: 1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) - optionalDependencies: - typescript: 5.4.3 + abitype: 0.9.8(typescript@5.4.5) + isows: 1.0.3(ws@8.13.0) + typescript: 5.4.5 + ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate - zod + dev: false - viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4): + /viem@2.18.8(typescript@5.4.5)(zod@3.23.6): + resolution: {integrity: sha512-Fi5d9fd/LBiVtJ5eV2c99yrdt4dJH5Vbkf2JajwCqHYuV4ErSk/sm+L6Ru3rzT67rfRHSOQibTZxByEBua/WLw==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@adraffy/ens-normalize': 1.10.0 '@noble/curves': 1.4.0 '@noble/hashes': 1.4.0 '@scure/bip32': 1.4.0 - '@scure/bip39': 1.4.0 - abitype: 1.0.5(typescript@5.4.3)(zod@3.22.4) - isows: 1.0.4(ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@scure/bip39': 1.3.0 + abitype: 1.0.5(typescript@5.4.5)(zod@3.23.6) + isows: 1.0.4(ws@8.17.1) + typescript: 5.4.5 webauthn-p256: 0.0.5 - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - optionalDependencies: - typescript: 5.4.3 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate - zod - viem@2.21.7(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10)(zod@3.23.8): + /viem@2.18.8(typescript@5.4.5)(zod@3.23.8): + resolution: {integrity: sha512-Fi5d9fd/LBiVtJ5eV2c99yrdt4dJH5Vbkf2JajwCqHYuV4ErSk/sm+L6Ru3rzT67rfRHSOQibTZxByEBua/WLw==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@adraffy/ens-normalize': 1.10.0 '@noble/curves': 1.4.0 '@noble/hashes': 1.4.0 '@scure/bip32': 1.4.0 - '@scure/bip39': 1.4.0 + '@scure/bip39': 1.3.0 abitype: 1.0.5(typescript@5.4.5)(zod@3.23.8) - isows: 1.0.4(ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - webauthn-p256: 0.0.5 - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) - optionalDependencies: + isows: 1.0.4(ws@8.17.1) typescript: 5.4.5 + webauthn-p256: 0.0.5 + ws: 8.17.1 transitivePeerDependencies: - bufferutil - utf-8-validate - zod + dev: false - viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.22.4): - dependencies: - '@adraffy/ens-normalize': 1.10.0 - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 - '@scure/bip32': 1.3.2 - '@scure/bip39': 1.2.1 - abitype: 1.0.0(typescript@5.4.3)(zod@3.22.4) - isows: 1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - - viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@5.0.10)(zod@3.23.8): - dependencies: - '@adraffy/ens-normalize': 1.10.0 - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 - '@scure/bip32': 1.3.2 - '@scure/bip39': 1.2.1 - abitype: 1.0.0(typescript@5.4.3)(zod@3.23.8) - isows: 1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) - ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - optionalDependencies: - typescript: 5.4.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - zod - - viem@2.9.29(bufferutil@4.0.8)(typescript@5.4.3)(utf-8-validate@6.0.3)(zod@3.23.8): + /viem@2.9.31(typescript@5.4.5): + resolution: {integrity: sha512-8aJ8Dm/591Czwb/nRayo0z8Ls5KxqC4QYE33fmHwhx2tDUWC/hHcPZqjLRSTWFtAfi0aZKvP7BeB6UZ3ZkTRhQ==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true dependencies: '@adraffy/ens-normalize': 1.10.0 '@noble/curves': 1.2.0 '@noble/hashes': 1.3.2 '@scure/bip32': 1.3.2 '@scure/bip39': 1.2.1 - abitype: 1.0.0(typescript@5.4.3)(zod@3.23.8) - isows: 1.0.3(ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@6.0.3)) - ws: 8.13.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) - optionalDependencies: - typescript: 5.4.3 + abitype: 1.0.0(typescript@5.4.5) + isows: 1.0.3(ws@8.13.0) + typescript: 5.4.5 + ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate - zod + dev: false - vite-node@1.5.0(@types/node@20.12.7)(terser@5.27.2): - dependencies: - cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - vite-node@1.6.0(@types/node@20.12.7)(terser@5.27.2): + /vite-node@1.6.0(@types/node@20.12.8): + resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) + vite: 5.2.11(@types/node@20.12.8) transitivePeerDependencies: - '@types/node' - less @@ -29926,190 +25124,230 @@ snapshots: - sugarss - supports-color - terser + dev: true - vite-tsconfig-paths@4.3.2(typescript@5.4.3)(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)): - dependencies: - debug: 4.3.4 - globrex: 0.1.2 - tsconfck: 3.0.3(typescript@5.4.3) - optionalDependencies: - vite: 4.5.3(@types/node@20.12.7)(terser@5.27.2) - transitivePeerDependencies: - - supports-color - - typescript - - vite-tsconfig-paths@4.3.2(typescript@5.4.3)(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)): - dependencies: - debug: 4.3.4 - globrex: 0.1.2 - tsconfck: 3.0.3(typescript@5.4.3) - optionalDependencies: - vite: 5.1.3(@types/node@20.12.7)(terser@5.27.2) - transitivePeerDependencies: - - supports-color - - typescript - - vite-tsconfig-paths@4.3.2(typescript@5.4.3)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)): + /vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@4.5.3): + resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} + peerDependencies: + vite: '*' + peerDependenciesMeta: + vite: + optional: true dependencies: debug: 4.3.4 globrex: 0.1.2 - tsconfck: 3.0.3(typescript@5.4.3) - optionalDependencies: - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) + tsconfck: 3.0.3(typescript@5.4.5) + vite: 4.5.3 transitivePeerDependencies: - supports-color - typescript + dev: true - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)): + /vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.11): + resolution: {integrity: sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==} + peerDependencies: + vite: '*' + peerDependenciesMeta: + vite: + optional: true dependencies: debug: 4.3.4 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.5) - optionalDependencies: - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) + vite: 5.2.11(@types/node@20.12.8) transitivePeerDependencies: - supports-color - typescript + dev: true - vite@4.5.3(@types/node@20.12.7)(terser@5.27.2): + /vite@4.5.3: + resolution: {integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true dependencies: esbuild: 0.18.20 postcss: 8.4.38 rollup: 3.29.4 optionalDependencies: - '@types/node': 20.12.7 - fsevents: 2.3.3 - terser: 5.27.2 - - vite@5.1.3(@types/node@20.12.7)(terser@5.27.2): - dependencies: - esbuild: 0.19.12 - postcss: 8.4.38 - rollup: 4.12.0 - optionalDependencies: - '@types/node': 20.12.7 fsevents: 2.3.3 - terser: 5.27.2 + dev: true - vite@5.2.11(@types/node@20.12.7)(terser@5.27.2): + /vite@5.2.11(@types/node@20.12.8): + resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true dependencies: + '@types/node': 20.12.8 esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.17.2 optionalDependencies: - '@types/node': 20.12.7 fsevents: 2.3.3 - terser: 5.27.2 + dev: true - vite@5.4.5(@types/node@20.12.7)(terser@5.27.2): + /vite@5.3.5: + resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true dependencies: esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.21.3 + postcss: 8.4.41 + rollup: 4.17.2 optionalDependencies: - '@types/node': 20.12.7 fsevents: 2.3.3 - terser: 5.27.2 + dev: false - vitefu@0.2.5(vite@4.5.3(@types/node@20.12.7)(terser@5.27.2)): - optionalDependencies: - vite: 4.5.3(@types/node@20.12.7)(terser@5.27.2) - - vitefu@0.2.5(vite@5.1.3(@types/node@20.12.7)(terser@5.27.2)): - optionalDependencies: - vite: 5.1.3(@types/node@20.12.7)(terser@5.27.2) - - vitefu@0.2.5(vite@5.2.11(@types/node@20.12.7)(terser@5.27.2)): - optionalDependencies: - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) - - vitefu@1.0.2(vite@5.4.5(@types/node@20.12.7)(terser@5.27.2)): - optionalDependencies: - vite: 5.4.5(@types/node@20.12.7)(terser@5.27.2) + /vitefu@0.2.5(vite@4.5.3): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + vite: 4.5.3 + dev: true - vitest-fetch-mock@0.2.2(encoding@0.1.13)(vitest@1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2)): + /vitefu@0.2.5(vite@5.2.11): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true dependencies: - cross-fetch: 3.1.8(encoding@0.1.13) - vitest: 1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2) - transitivePeerDependencies: - - encoding + vite: 5.2.11(@types/node@20.12.8) + dev: true - vitest-mock-extended@1.3.1(typescript@5.4.3)(vitest@1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2)): + /vitefu@0.2.5(vite@5.3.5): + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true dependencies: - ts-essentials: 9.4.1(typescript@5.4.3) - typescript: 5.4.3 - vitest: 1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2) + vite: 5.3.5 + dev: false - vitest@1.5.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2): + /vitest-fetch-mock@0.2.2(vitest@1.6.0): + resolution: {integrity: sha512-XmH6QgTSjCWrqXoPREIdbj40T7i1xnGmAsTAgfckoO75W1IEHKR8hcPCQ7SO16RsdW1t85oUm6pcQRLeBgjVYQ==} + engines: {node: '>=14.14.0'} + peerDependencies: + vitest: '>=0.16.0' dependencies: - '@vitest/expect': 1.5.0 - '@vitest/runner': 1.5.0 - '@vitest/snapshot': 1.5.0 - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.9 - pathe: 1.1.2 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.6.0 - tinypool: 0.8.3 - vite: 5.1.3(@types/node@20.12.7)(terser@5.27.2) - vite-node: 1.5.0(@types/node@20.12.7)(terser@5.27.2) - why-is-node-running: 2.2.2 - optionalDependencies: - '@types/node': 20.12.7 - jsdom: 24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + cross-fetch: 3.1.8 + vitest: 1.6.0(jsdom@24.0.0) transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser + - encoding + dev: true - vitest@1.5.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.27.2): + /vitest-mock-extended@1.3.1(typescript@5.4.5)(vitest@1.6.0): + resolution: {integrity: sha512-OpghYjh4BDuQ/Mzs3lFMQ1QRk9D8/2O9T47MLUA5eLn7K4RWIy+MfIivYOWEyxjTENjsBnzgMihDjyNalN/K0Q==} + peerDependencies: + typescript: 3.x || 4.x || 5.x + vitest: '>=0.31.1' dependencies: - '@vitest/expect': 1.5.0 - '@vitest/runner': 1.5.0 - '@vitest/snapshot': 1.5.0 - '@vitest/spy': 1.5.0 - '@vitest/utils': 1.5.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.9 - pathe: 1.1.2 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.6.0 - tinypool: 0.8.3 - vite: 5.1.3(@types/node@20.12.7)(terser@5.27.2) - vite-node: 1.5.0(@types/node@20.12.7)(terser@5.27.2) - why-is-node-running: 2.2.2 - optionalDependencies: - '@types/node': 20.12.7 - jsdom: 24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser + ts-essentials: 9.4.2(typescript@5.4.5) + typescript: 5.4.5 + vitest: 1.6.0(jsdom@24.0.0) + dev: true - vitest@1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(terser@5.27.2): + /vitest@1.6.0(@types/node@20.12.8): + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true dependencies: + '@types/node': 20.12.8 '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 '@vitest/snapshot': 1.6.0 @@ -30124,15 +25362,12 @@ snapshots: pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.6.0 - tinypool: 0.8.3 - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) - vite-node: 1.6.0(@types/node@20.12.7)(terser@5.27.2) + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.11(@types/node@20.12.8) + vite-node: 1.6.0(@types/node@20.12.8) why-is-node-running: 2.2.2 - optionalDependencies: - '@types/node': 20.12.7 - jsdom: 24.0.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - less - lightningcss @@ -30141,8 +25376,32 @@ snapshots: - sugarss - supports-color - terser + dev: true - vitest@1.6.0(@types/node@20.12.7)(jsdom@24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3))(terser@5.27.2): + /vitest@1.6.0(jsdom@24.0.0): + resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.6.0 + '@vitest/ui': 1.6.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -30153,20 +25412,18 @@ snapshots: chai: 4.4.1 debug: 4.3.4 execa: 8.0.1 + jsdom: 24.0.0 local-pkg: 0.5.0 magic-string: 0.30.10 pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 2.0.0 - tinybench: 2.6.0 - tinypool: 0.8.3 - vite: 5.2.11(@types/node@20.12.7)(terser@5.27.2) - vite-node: 1.6.0(@types/node@20.12.7)(terser@5.27.2) + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.11(@types/node@20.12.8) + vite-node: 1.6.0(@types/node@20.12.8) why-is-node-running: 2.2.2 - optionalDependencies: - '@types/node': 20.12.7 - jsdom: 24.0.0(bufferutil@4.0.8)(utf-8-validate@6.0.3) transitivePeerDependencies: - less - lightningcss @@ -30175,208 +25432,293 @@ snapshots: - sugarss - supports-color - terser + dev: true - vlq@1.0.1: {} + /vlq@1.0.1: + resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} + dev: false - void-elements@3.1.0: {} + /void-elements@3.1.0: + resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} + engines: {node: '>=0.10.0'} + dev: false - volar-service-css@0.0.61(@volar/language-service@2.4.5): + /volar-service-css@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-gLNjJnECbalPvQB7qeJjhkDN8sR5M3ItbVYjnyio61aHaWptIiXm/HfDahcQ2ApwmvWidkMWWegjGq5L0BENDA==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true dependencies: - vscode-css-languageservice: 6.3.1 + '@volar/language-service': 2.4.0-alpha.18 + vscode-css-languageservice: 6.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - optionalDependencies: - '@volar/language-service': 2.4.5 + dev: false - volar-service-emmet@0.0.61(@volar/language-service@2.4.5): + /volar-service-emmet@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-6EynHcuMwMBETpK29TbZvIMmvzdVG+Tkokk9VWfZeI+SwDptk2tgdhEqiXXvIkqYNgbuu73Itp66lpH76cAU+Q==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 + '@volar/language-service': 2.4.0-alpha.18 '@vscode/emmet-helper': 2.9.3 vscode-uri: 3.0.8 - optionalDependencies: - '@volar/language-service': 2.4.5 + dev: false - volar-service-html@0.0.61(@volar/language-service@2.4.5): + /volar-service-html@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-hEXOsYpILDlITZxnqRLV9OepVWD63GZBsyjMxszwdzlxvGZjzbGcBBinJGGJRwFIV8djdJwnt91bkdg1V5tj6Q==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true dependencies: - vscode-html-languageservice: 5.3.1 + '@volar/language-service': 2.4.0-alpha.18 + vscode-html-languageservice: 5.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - optionalDependencies: - '@volar/language-service': 2.4.5 + dev: false - volar-service-prettier@0.0.61(@volar/language-service@2.4.5)(prettier@3.2.5): + /volar-service-prettier@0.0.59(@volar/language-service@2.4.0-alpha.18)(prettier@3.2.5): + resolution: {integrity: sha512-FmBR4lsgFRGR3V0LnxZZal0WqdOJjuLL6mQSj4p57M15APtQwuocG/FiF+ONGFnwRXMOIBDBTCARdth+TKgL3A==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true dependencies: - vscode-uri: 3.0.8 - optionalDependencies: - '@volar/language-service': 2.4.5 + '@volar/language-service': 2.4.0-alpha.18 prettier: 3.2.5 + vscode-uri: 3.0.8 + dev: false - volar-service-typescript-twoslash-queries@0.0.61(@volar/language-service@2.4.5): + /volar-service-typescript-twoslash-queries@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-skm8e6yhCIkqLwJB6S9MqT5lO9LNFuMD3dYxKpmOZs1CKbXmCZZTmLfEaD5VkJae1xdleEDZFFTHl2O5HLjOGQ==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true dependencies: + '@volar/language-service': 2.4.0-alpha.18 vscode-uri: 3.0.8 - optionalDependencies: - '@volar/language-service': 2.4.5 + dev: false - volar-service-typescript@0.0.61(@volar/language-service@2.4.5): + /volar-service-typescript@0.0.59(@volar/language-service@2.4.0-alpha.18): + resolution: {integrity: sha512-VCOpfiu+lUo5lapWLB5L5vmQGtwzmNWn5MueV915eku7blpphmE+Z7hCNcL1NApn7AetXWhiblv8ZhmUx/dGIA==} + peerDependencies: + '@volar/language-service': ~2.4.0-alpha.12 + peerDependenciesMeta: + '@volar/language-service': + optional: true dependencies: + '@volar/language-service': 2.4.0-alpha.18 path-browserify: 1.0.1 semver: 7.6.2 typescript-auto-import-cache: 0.3.3 vscode-languageserver-textdocument: 1.0.11 vscode-nls: 5.2.0 vscode-uri: 3.0.8 - optionalDependencies: - '@volar/language-service': 2.4.5 - - volar-service-yaml@0.0.61(@volar/language-service@2.4.5): - dependencies: - vscode-uri: 3.0.8 - yaml-language-server: 1.15.0 - optionalDependencies: - '@volar/language-service': 2.4.5 + dev: false - vscode-css-languageservice@6.3.1: + /vscode-css-languageservice@6.3.0: + resolution: {integrity: sha512-nU92imtkgzpCL0xikrIb8WvedV553F2BENzgz23wFuok/HLN5BeQmroMy26pUwFxV2eV8oNRmYCUv8iO7kSMhw==} dependencies: '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 + dev: false - vscode-html-languageservice@5.2.0: + /vscode-html-languageservice@5.2.0: + resolution: {integrity: sha512-cdNMhyw57/SQzgUUGSIMQ66jikqEN6nBNyhx5YuOyj9310+eY9zw8Q0cXpiKzDX8aHYFewQEXRnigl06j/TVwQ==} dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 + dev: false - vscode-html-languageservice@5.3.1: + /vscode-html-languageservice@5.3.0: + resolution: {integrity: sha512-C4Z3KsP5Ih+fjHpiBc5jxmvCl+4iEwvXegIrzu2F5pktbWvQaBT3YkVPk8N+QlSSMk8oCG6PKtZ/Sq2YHb5e8g==} dependencies: '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.0.8 - - vscode-json-languageservice@4.1.8: - dependencies: - jsonc-parser: 3.2.0 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 - vscode-nls: 5.2.0 vscode-uri: 3.0.8 + dev: false - vscode-jsonrpc@6.0.0: {} - - vscode-jsonrpc@8.2.0: {} - - vscode-languageserver-protocol@3.16.0: - dependencies: - vscode-jsonrpc: 6.0.0 - vscode-languageserver-types: 3.16.0 + /vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + dev: false - vscode-languageserver-protocol@3.17.5: + /vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} dependencies: vscode-jsonrpc: 8.2.0 vscode-languageserver-types: 3.17.5 + dev: false - vscode-languageserver-textdocument@1.0.11: {} - - vscode-languageserver-textdocument@1.0.12: {} - - vscode-languageserver-types@3.16.0: {} - - vscode-languageserver-types@3.17.5: {} + /vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + dev: false - vscode-languageserver@7.0.0: - dependencies: - vscode-languageserver-protocol: 3.16.0 + /vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + dev: false - vscode-languageserver@9.0.1: + /vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true dependencies: vscode-languageserver-protocol: 3.17.5 + dev: false - vscode-nls@5.2.0: {} + /vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + dev: false - vscode-uri@2.1.2: {} + /vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + dev: false - vscode-uri@3.0.8: {} + /vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + dev: false - w3c-xmlserializer@5.0.0: + /w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} dependencies: xml-name-validator: 5.0.0 + dev: true + + /walk-up-path@3.0.1: + resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} + dev: true - walker@1.0.8: + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: makeerror: 1.0.12 + dev: false - wcwidth@1.0.1: + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 - web-namespaces@2.0.1: {} + /web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: false - web3-bzz@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): + /web3-bzz@1.10.4: + resolution: {integrity: sha512-ZZ/X4sJ0Uh2teU9lAGNS8EjveEppoHNQiKlOXAjedsrdWuaMErBPdLQjXfcrYvN6WM6Su9PMsAxf3FXXZ+HwQw==} + engines: {node: '>=8.0.0'} + requiresBuild: true dependencies: '@types/node': 12.20.55 got: 12.1.0 - swarm-js: 0.1.42(bufferutil@4.0.8)(utf-8-validate@5.0.10) + swarm-js: 0.1.42 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate + dev: true + + /web3-core-helpers@1.10.3: + resolution: {integrity: sha512-Yv7dQC3B9ipOc5sWm3VAz1ys70Izfzb8n9rSiQYIPjpqtJM+3V4EeK6ghzNR6CO2es0+Yu9CtCkw0h8gQhrTxA==} + engines: {node: '>=8.0.0'} + dependencies: + web3-eth-iban: 1.10.3 + web3-utils: 1.10.3 + dev: true - web3-core-helpers@1.10.4: + /web3-core-helpers@1.10.4: + resolution: {integrity: sha512-r+L5ylA17JlD1vwS8rjhWr0qg7zVoVMDvWhajWA5r5+USdh91jRUYosp19Kd1m2vE034v7Dfqe1xYRoH2zvG0g==} + engines: {node: '>=8.0.0'} dependencies: web3-eth-iban: 1.10.4 web3-utils: 1.10.4 + dev: true - web3-core-method@1.10.4: + /web3-core-method@1.10.4: + resolution: {integrity: sha512-uZTb7flr+Xl6LaDsyTeE2L1TylokCJwTDrIVfIfnrGmnwLc6bmTWCCrm71sSrQ0hqs6vp/MKbQYIYqUN0J8WyA==} + engines: {node: '>=8.0.0'} dependencies: '@ethersproject/transactions': 5.7.0 web3-core-helpers: 1.10.4 web3-core-promievent: 1.10.4 web3-core-subscriptions: 1.10.4 web3-utils: 1.10.4 + dev: true - web3-core-promievent@1.10.4: + /web3-core-promievent@1.10.4: + resolution: {integrity: sha512-2de5WnJQ72YcIhYwV/jHLc4/cWJnznuoGTJGD29ncFQHAfwW/MItHFSVKPPA5v8AhJe+r6y4Y12EKvZKjQVBvQ==} + engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.4 + dev: true - web3-core-requestmanager@1.10.4(encoding@0.1.13): + /web3-core-requestmanager@1.10.4: + resolution: {integrity: sha512-vqP6pKH8RrhT/2MoaU+DY/OsYK9h7HmEBNCdoMj+4ZwujQtw/Mq2JifjwsJ7gits7Q+HWJwx8q6WmQoVZAWugg==} + engines: {node: '>=8.0.0'} dependencies: util: 0.12.5 web3-core-helpers: 1.10.4 - web3-providers-http: 1.10.4(encoding@0.1.13) + web3-providers-http: 1.10.4 web3-providers-ipc: 1.10.4 web3-providers-ws: 1.10.4 transitivePeerDependencies: - encoding - supports-color + dev: true - web3-core-subscriptions@1.10.4: + /web3-core-subscriptions@1.10.4: + resolution: {integrity: sha512-o0lSQo/N/f7/L76C0HV63+S54loXiE9fUPfHFcTtpJRQNDBVsSDdWRdePbWwR206XlsBqD5VHApck1//jEafTw==} + engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.4 web3-core-helpers: 1.10.4 + dev: true - web3-core@1.10.4(encoding@0.1.13): + /web3-core@1.10.4: + resolution: {integrity: sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==} + engines: {node: '>=8.0.0'} dependencies: '@types/bn.js': 5.1.5 '@types/node': 12.20.55 bignumber.js: 9.1.2 web3-core-helpers: 1.10.4 web3-core-method: 1.10.4 - web3-core-requestmanager: 1.10.4(encoding@0.1.13) + web3-core-requestmanager: 1.10.4 web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color + dev: true - web3-eth-abi@1.10.4: + /web3-eth-abi@1.10.4: + resolution: {integrity: sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==} + engines: {node: '>=8.0.0'} dependencies: '@ethersproject/abi': 5.7.0 web3-utils: 1.10.4 - web3-eth-accounts@1.10.4(encoding@0.1.13): + /web3-eth-accounts@1.10.4: + resolution: {integrity: sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==} + engines: {node: '>=8.0.0'} dependencies: '@ethereumjs/common': 2.6.5 '@ethereumjs/tx': 3.5.2 @@ -30384,18 +25726,21 @@ snapshots: eth-lib: 0.2.8 scrypt-js: 3.0.1 uuid: 9.0.1 - web3-core: 1.10.4(encoding@0.1.13) + web3-core: 1.10.4 web3-core-helpers: 1.10.4 web3-core-method: 1.10.4 web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color + dev: true - web3-eth-contract@1.10.4(encoding@0.1.13): + /web3-eth-contract@1.10.4: + resolution: {integrity: sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==} + engines: {node: '>=8.0.0'} dependencies: '@types/bn.js': 5.1.5 - web3-core: 1.10.4(encoding@0.1.13) + web3-core: 1.10.4 web3-core-helpers: 1.10.4 web3-core-method: 1.10.4 web3-core-promievent: 1.10.4 @@ -30405,143 +25750,210 @@ snapshots: transitivePeerDependencies: - encoding - supports-color + dev: true - web3-eth-ens@1.10.4(encoding@0.1.13): + /web3-eth-ens@1.10.4: + resolution: {integrity: sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==} + engines: {node: '>=8.0.0'} dependencies: content-hash: 2.5.2 eth-ens-namehash: 2.0.8 - web3-core: 1.10.4(encoding@0.1.13) + web3-core: 1.10.4 web3-core-helpers: 1.10.4 web3-core-promievent: 1.10.4 web3-eth-abi: 1.10.4 - web3-eth-contract: 1.10.4(encoding@0.1.13) + web3-eth-contract: 1.10.4 web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color + dev: true + + /web3-eth-iban@1.10.3: + resolution: {integrity: sha512-ZCfOjYKAjaX2TGI8uif5ah+J3BYFuo+47JOIV1RIz2l7kD9VfnxvRH5UiQDRyMALQC7KFd2hUqIEtHklapNyKA==} + engines: {node: '>=8.0.0'} + dependencies: + bn.js: 5.2.1 + web3-utils: 1.10.3 + dev: true - web3-eth-iban@1.10.4: + /web3-eth-iban@1.10.4: + resolution: {integrity: sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==} + engines: {node: '>=8.0.0'} dependencies: bn.js: 5.2.1 web3-utils: 1.10.4 + dev: true - web3-eth-personal@1.10.4(encoding@0.1.13): + /web3-eth-personal@1.10.4: + resolution: {integrity: sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==} + engines: {node: '>=8.0.0'} dependencies: '@types/node': 12.20.55 - web3-core: 1.10.4(encoding@0.1.13) + web3-core: 1.10.4 web3-core-helpers: 1.10.4 web3-core-method: 1.10.4 - web3-net: 1.10.4(encoding@0.1.13) + web3-net: 1.10.4 web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color + dev: true - web3-eth@1.10.4(encoding@0.1.13): + /web3-eth@1.10.4: + resolution: {integrity: sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==} + engines: {node: '>=8.0.0'} dependencies: - web3-core: 1.10.4(encoding@0.1.13) + web3-core: 1.10.4 web3-core-helpers: 1.10.4 web3-core-method: 1.10.4 web3-core-subscriptions: 1.10.4 web3-eth-abi: 1.10.4 - web3-eth-accounts: 1.10.4(encoding@0.1.13) - web3-eth-contract: 1.10.4(encoding@0.1.13) - web3-eth-ens: 1.10.4(encoding@0.1.13) + web3-eth-accounts: 1.10.4 + web3-eth-contract: 1.10.4 + web3-eth-ens: 1.10.4 web3-eth-iban: 1.10.4 - web3-eth-personal: 1.10.4(encoding@0.1.13) - web3-net: 1.10.4(encoding@0.1.13) + web3-eth-personal: 1.10.4 + web3-net: 1.10.4 web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color + dev: true - web3-net@1.10.4(encoding@0.1.13): + /web3-net@1.10.4: + resolution: {integrity: sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==} + engines: {node: '>=8.0.0'} dependencies: - web3-core: 1.10.4(encoding@0.1.13) + web3-core: 1.10.4 web3-core-method: 1.10.4 web3-utils: 1.10.4 transitivePeerDependencies: - encoding - supports-color + dev: true - web3-providers-http@1.10.4(encoding@0.1.13): + /web3-providers-http@1.10.4: + resolution: {integrity: sha512-m2P5Idc8hdiO0l60O6DSCPw0kw64Zgi0pMjbEFRmxKIck2Py57RQMu4bxvkxJwkF06SlGaEQF8rFZBmuX7aagQ==} + engines: {node: '>=8.0.0'} dependencies: abortcontroller-polyfill: 1.7.5 - cross-fetch: 4.0.0(encoding@0.1.13) + cross-fetch: 4.0.0 es6-promise: 4.2.8 web3-core-helpers: 1.10.4 transitivePeerDependencies: - encoding + dev: true - web3-providers-ipc@1.10.4: + /web3-providers-ipc@1.10.4: + resolution: {integrity: sha512-YRF/bpQk9z3WwjT+A6FI/GmWRCASgd+gC0si7f9zbBWLXjwzYAKG73bQBaFRAHex1hl4CVcM5WUMaQXf3Opeuw==} + engines: {node: '>=8.0.0'} dependencies: oboe: 2.1.5 web3-core-helpers: 1.10.4 + dev: true - web3-providers-ws@1.10.4: + /web3-providers-ws@1.10.4: + resolution: {integrity: sha512-j3FBMifyuFFmUIPVQR4pj+t5ILhAexAui0opgcpu9R5LxQrLRUZxHSnU+YO25UycSOa/NAX8A+qkqZNpcFAlxA==} + engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.4 web3-core-helpers: 1.10.4 websocket: 1.0.35 transitivePeerDependencies: - supports-color + dev: true - web3-shh@1.10.4(encoding@0.1.13): + /web3-shh@1.10.4: + resolution: {integrity: sha512-cOH6iFFM71lCNwSQrC3niqDXagMqrdfFW85hC9PFUrAr3PUrIem8TNstTc3xna2bwZeWG6OBy99xSIhBvyIACw==} + engines: {node: '>=8.0.0'} + requiresBuild: true dependencies: - web3-core: 1.10.4(encoding@0.1.13) + web3-core: 1.10.4 web3-core-method: 1.10.4 web3-core-subscriptions: 1.10.4 - web3-net: 1.10.4(encoding@0.1.13) + web3-net: 1.10.4 transitivePeerDependencies: - encoding - supports-color + dev: true - web3-utils@1.10.4: + /web3-utils@1.10.3: + resolution: {integrity: sha512-OqcUrEE16fDBbGoQtZXWdavsPzbGIDc5v3VrRTZ0XrIpefC/viZ1ZU9bGEemazyS0catk/3rkOOxpzTfY+XsyQ==} + engines: {node: '>=8.0.0'} dependencies: '@ethereumjs/util': 8.1.0 bn.js: 5.2.1 - ethereum-bloom-filters: 1.0.10 + ethereum-bloom-filters: 1.1.0 ethereum-cryptography: 2.1.3 ethjs-unit: 0.1.6 number-to-bn: 1.7.0 randombytes: 2.1.0 utf8: 3.0.0 + dev: true - web3@1.10.4(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10): + /web3-utils@1.10.4: + resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} + engines: {node: '>=8.0.0'} dependencies: - web3-bzz: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) - web3-core: 1.10.4(encoding@0.1.13) - web3-eth: 1.10.4(encoding@0.1.13) - web3-eth-personal: 1.10.4(encoding@0.1.13) - web3-net: 1.10.4(encoding@0.1.13) - web3-shh: 1.10.4(encoding@0.1.13) + '@ethereumjs/util': 8.1.0 + bn.js: 5.2.1 + ethereum-bloom-filters: 1.1.0 + ethereum-cryptography: 2.1.3 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + utf8: 3.0.0 + + /web3@1.10.4: + resolution: {integrity: sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==} + engines: {node: '>=8.0.0'} + requiresBuild: true + dependencies: + web3-bzz: 1.10.4 + web3-core: 1.10.4 + web3-eth: 1.10.4 + web3-eth-personal: 1.10.4 + web3-net: 1.10.4 + web3-shh: 1.10.4 web3-utils: 1.10.4 transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate + dev: true - webauthn-p256@0.0.5: + /webauthn-p256@0.0.5: + resolution: {integrity: sha512-drMGNWKdaixZNobeORVIqq7k5DsRC9FnG201K2QjeOoQLmtSDaSsVZdkg6n5jUALJKcAG++zBPJXmv6hy0nWFg==} dependencies: '@noble/curves': 1.4.0 '@noble/hashes': 1.4.0 - webextension-polyfill-ts@0.25.0: - dependencies: - webextension-polyfill: 0.7.0 - - webextension-polyfill@0.10.0: {} + /webextension-polyfill@0.10.0: + resolution: {integrity: sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==} + dev: false - webextension-polyfill@0.7.0: {} + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@3.0.1: {} + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true - webidl-conversions@7.0.0: {} + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true - webpack-virtual-modules@0.6.2: {} + /webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + dev: true - websocket@1.0.35: + /websocket@1.0.35: + resolution: {integrity: sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==} + engines: {node: '>=4.0.0'} dependencies: bufferutil: 4.0.8 debug: 2.6.9 @@ -30551,75 +25963,130 @@ snapshots: yaeti: 0.0.6 transitivePeerDependencies: - supports-color + dev: true - whatwg-encoding@3.1.1: + /whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} dependencies: iconv-lite: 0.6.3 + dev: true - whatwg-fetch@3.6.20: {} + /whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + dev: false - whatwg-mimetype@4.0.0: {} + /whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + dev: true - whatwg-url@14.0.0: + /whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} dependencies: tr46: 5.0.0 webidl-conversions: 7.0.0 + dev: true - whatwg-url@5.0.0: + /whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-boxed-primitive@1.0.2: + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 + dev: true + + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: false - which-module@2.0.1: {} + /which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + dev: false - which-pm-runs@1.1.0: {} + /which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + dev: false - which-pm@3.0.0: + /which-pm@3.0.0: + resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} + engines: {node: '>=18.12'} dependencies: load-yaml-file: 0.2.0 + dev: false - which-typed-array@1.1.13: + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.5 + available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 - which@1.3.1: + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true dependencies: isexe: 2.0.0 + dev: false - which@2.0.2: + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true dependencies: isexe: 2.0.0 - which@4.0.0: + /which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true dependencies: isexe: 3.1.1 + dev: true - why-is-node-running@2.2.2: + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true dependencies: siginfo: 2.0.0 stackback: 0.0.2 + dev: true - widest-line@3.1.0: + /widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} dependencies: string-width: 4.2.3 + dev: false - widest-line@4.0.1: + /widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} dependencies: string-width: 5.1.2 + dev: false - winston@2.4.7: + /winston@2.4.7: + resolution: {integrity: sha512-vLB4BqzCKDnnZH9PHGoS2ycawueX4HLqENXQitvFHczhgW2vFpSOn31LZtVr1KU8YTw7DS4tM+cqyovxo8taVg==} + engines: {node: '>= 0.10.0'} dependencies: async: 2.6.4 colors: 1.0.3 @@ -30627,103 +26094,171 @@ snapshots: eyes: 0.1.8 isstream: 0.1.2 stack-trace: 0.0.10 + dev: true + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true - wordwrap@1.0.0: {} + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: false - workerpool@6.5.1: {} + /workerpool@6.5.1: + resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} + dev: false - wrap-ansi@6.2.0: + /wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 + dev: false - wrap-ansi@7.0.0: + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - wrappy@1.0.2: {} + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@2.4.3: + /write-file-atomic@2.4.3: + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} dependencies: graceful-fs: 4.2.11 imurmurhash: 0.1.4 signal-exit: 3.0.7 - ws@3.3.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + /ws@3.3.3: + resolution: {integrity: sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true dependencies: async-limiter: 1.0.1 safe-buffer: 5.1.2 ultron: 1.1.1 - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 5.0.10 + dev: true - ws@6.2.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): + /ws@6.2.2: + resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true dependencies: async-limiter: 1.0.1 - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 5.0.10 - - ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 5.0.10 - - ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 5.0.10 - - ws@8.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 5.0.10 + dev: false - ws@8.11.0(bufferutil@4.0.8)(utf-8-validate@6.0.3): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 6.0.3 + /ws@7.4.6: + resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true - ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 5.0.10 + /ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false - ws@8.13.0(bufferutil@4.0.8)(utf-8-validate@6.0.3): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 6.0.3 + /ws@8.11.0: + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false - ws@8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 5.0.10 + /ws@8.13.0: + resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false - ws@8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.3): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 6.0.3 + /ws@8.17.0: + resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: true - ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 5.0.10 + /ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true - xhr-request-promise@0.1.3: + /xhr-request-promise@0.1.3: + resolution: {integrity: sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==} dependencies: xhr-request: 1.1.0 + dev: true - xhr-request@1.1.0: + /xhr-request@1.1.0: + resolution: {integrity: sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==} dependencies: buffer-to-arraybuffer: 0.0.5 object-assign: 4.1.1 @@ -30732,83 +26267,113 @@ snapshots: timed-out: 4.0.1 url-set-query: 1.0.0 xhr: 2.6.0 + dev: true - xhr@2.6.0: + /xhr@2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} dependencies: global: 4.4.0 is-function: 1.0.2 parse-headers: 2.0.5 xtend: 4.0.2 + dev: true - xml-name-validator@5.0.0: {} + /xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + dev: true - xml2js@0.6.2: + /xml2js@0.6.2: + resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} + engines: {node: '>=4.0.0'} dependencies: sax: 1.3.0 xmlbuilder: 11.0.1 + dev: true - xmlbuilder@11.0.1: {} - - xmlchars@2.2.0: {} - - xmlhttprequest-ssl@2.0.0: {} - - xtend@4.0.2: {} - - xxhash-wasm@1.0.2: {} + /xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: true - y18n@4.0.3: {} + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true - y18n@5.0.8: {} + /xmlhttprequest-ssl@2.0.0: + resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==} + engines: {node: '>=0.4.0'} + dev: false - yaeti@0.0.6: {} + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} - yallist@2.1.2: {} + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: false - yallist@3.1.1: {} + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: false - yallist@4.0.0: {} + /yaeti@0.0.6: + resolution: {integrity: sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==} + engines: {node: '>=0.10.32'} + dev: true - yaml-language-server@1.15.0: - dependencies: - ajv: 8.12.0 - lodash: 4.17.21 - request-light: 0.5.8 - vscode-json-languageservice: 4.1.8 - vscode-languageserver: 7.0.0 - vscode-languageserver-textdocument: 1.0.11 - vscode-languageserver-types: 3.17.5 - vscode-nls: 5.2.0 - vscode-uri: 3.0.8 - yaml: 2.2.2 - optionalDependencies: - prettier: 2.8.7 + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: false - yaml@1.10.2: {} + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.2.2: {} + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.3.4: {} + /yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true - yaml@2.5.1: {} + /yaml@2.4.2: + resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} + engines: {node: '>= 14'} + hasBin: true - yargs-parser@18.1.3: + /yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} dependencies: camelcase: 5.3.1 decamelize: 1.2.0 + dev: false - yargs-parser@20.2.9: {} + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: false - yargs-parser@21.1.1: {} + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: false - yargs-unparser@2.0.0: + /yargs-unparser@2.0.0: + resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} + engines: {node: '>=10'} dependencies: camelcase: 6.3.0 decamelize: 4.0.0 flat: 5.0.2 is-plain-obj: 2.1.0 + dev: false - yargs@15.4.1: + /yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} dependencies: cliui: 6.0.0 decamelize: 1.2.0 @@ -30821,8 +26386,11 @@ snapshots: which-module: 2.0.1 y18n: 4.0.3 yargs-parser: 18.1.3 + dev: false - yargs@16.2.0: + /yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} dependencies: cliui: 7.0.4 escalade: 3.1.2 @@ -30831,8 +26399,11 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 + dev: false - yargs@17.7.2: + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} dependencies: cliui: 8.0.1 escalade: 3.1.2 @@ -30841,33 +26412,150 @@ snapshots: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + dev: false - yn@3.1.1: {} + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} - yocto-queue@0.1.0: {} + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} - yocto-queue@1.0.0: {} + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} - yocto-queue@1.1.1: {} + /yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + dev: false - zod-to-json-schema@3.23.3(zod@3.23.8): + /zod-to-json-schema@3.23.2(zod@3.23.8): + resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==} + peerDependencies: + zod: ^3.23.3 dependencies: zod: 3.23.8 + dev: false + + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + dev: false + + /zod@3.23.6: + resolution: {integrity: sha512-RTHJlZhsRbuA8Hmp/iNL7jnfc4nZishjsanDAfEY1QpDQZCahUp3xDzl+zfweE9BklxMUcgBgS1b7Lvie/ZVwA==} + + /zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + dev: false - zod-to-ts@1.2.0(typescript@5.4.5)(zod@3.23.8): + /zustand@4.4.1(react@18.3.1): + resolution: {integrity: sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true dependencies: - typescript: 5.4.5 - zod: 3.23.8 + react: 18.3.1 + use-sync-external-store: 1.2.0(react@18.3.1) + dev: false - zod@3.22.4: {} + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false - zod@3.23.8: {} + github.com/Arachnid/solidity-stringutils/4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461: + resolution: {tarball: https://codeload.github.com/Arachnid/solidity-stringutils/tar.gz/4b2fcc43fa0426e19ce88b1f1ec16f5903a2e461} + name: solidity-stringutils + version: 0.0.0 + dev: false - zustand@4.4.1(@types/react@18.3.5)(react@18.2.0): + github.com/Layr-labs/eigenlayer-contracts/957eb2dd437d0434e5e316e5925f0f8efac41f14(hardhat@2.22.15): + resolution: {tarball: https://codeload.github.com/Layr-labs/eigenlayer-contracts/tar.gz/957eb2dd437d0434e5e316e5925f0f8efac41f14} + id: github.com/Layr-labs/eigenlayer-contracts/957eb2dd437d0434e5e316e5925f0f8efac41f14 + name: eigenlayer-contracts + version: 1.0.0 dependencies: - use-sync-external-store: 1.2.0(react@18.2.0) - optionalDependencies: - '@types/react': 18.3.5 - react: 18.2.0 + solidity-docgen: 0.6.0-beta.36(hardhat@2.22.15) + transitivePeerDependencies: + - hardhat + dev: false - zwitch@2.0.4: {} + github.com/Vectorized/solady/a12a2575c899a328c1bafdada632dabbff27cf6b: + resolution: {tarball: https://codeload.github.com/Vectorized/solady/tar.gz/a12a2575c899a328c1bafdada632dabbff27cf6b} + name: solady + version: 0.0.231 + dev: false + + github.com/Vectorized/solady/de0f336d2033d04e0f77c923d639c7fbffd48b6d: + resolution: {tarball: https://codeload.github.com/Vectorized/solady/tar.gz/de0f336d2033d04e0f77c923d639c7fbffd48b6d} + name: solady + version: 0.0.167 + dev: false + + github.com/dapphub/ds-test/e282159d5170298eb2455a6c05280ab5a73a4ef0: + resolution: {tarball: https://codeload.github.com/dapphub/ds-test/tar.gz/e282159d5170298eb2455a6c05280ab5a73a4ef0} + name: ds-test + version: 1.0.0 + dev: false + + github.com/dmfxyz/murky/5feccd1253d7da820f7cccccdedf64471025455d: + resolution: {tarball: https://codeload.github.com/dmfxyz/murky/tar.gz/5feccd1253d7da820f7cccccdedf64471025455d} + name: murky + version: 0.0.0 + dev: false + + github.com/ethereum-optimism/optimism/ab3a54febb36398539fd3b849c222b7e70169dc8: + resolution: {tarball: https://codeload.github.com/ethereum-optimism/optimism/tar.gz/ab3a54febb36398539fd3b849c222b7e70169dc8} + name: optimism + version: 1.0.0 + engines: {node: '>=16', pnpm: '>=9'} + requiresBuild: true + dependencies: + '@changesets/cli': 2.27.7 + dev: false + + github.com/foundry-rs/forge-std/0e7097750918380d84dd3cfdef595bee74dabb70: + resolution: {tarball: https://codeload.github.com/foundry-rs/forge-std/tar.gz/0e7097750918380d84dd3cfdef595bee74dabb70} + name: forge-std + version: 1.9.4 + dev: false + + github.com/foundry-rs/forge-std/36c303b7ffdd842d06b1ec2744c9b9b5fb3083f3: + resolution: {tarball: https://codeload.github.com/foundry-rs/forge-std/tar.gz/36c303b7ffdd842d06b1ec2744c9b9b5fb3083f3} + name: forge-std + version: 1.7.5 + dev: false + + github.com/layr-Labs/eigenlayer-middleware/7d49b5181b09198ed275783453aa082bb3766990: + resolution: {tarball: https://codeload.github.com/layr-Labs/eigenlayer-middleware/tar.gz/7d49b5181b09198ed275783453aa082bb3766990} + name: eigenlayer-middleware + version: 0.0.0 + dev: false + + github.com/risc0/risc0-ethereum/b8a14213d92fff07dacda993804e7edb7946ca58: + resolution: {tarball: https://codeload.github.com/risc0/risc0-ethereum/tar.gz/b8a14213d92fff07dacda993804e7edb7946ca58} + name: risc0-ethereum#v1.1.2 + version: 0.0.0 + dev: false + + github.com/succinctlabs/sp1-contracts/1c4acaeab86789995ae5c6baced66f81e4a57f4d: + resolution: {tarball: https://codeload.github.com/succinctlabs/sp1-contracts/tar.gz/1c4acaeab86789995ae5c6baced66f81e4a57f4d} + name: sp1-contracts#v3.0.0 + version: 0.0.0 + dev: false + + github.com/taikoxyz/p256-verifier/6ef45b117642786b08a37b4c37c6a6ce151166da: + resolution: {tarball: https://codeload.github.com/taikoxyz/p256-verifier/tar.gz/6ef45b117642786b08a37b4c37c6a6ce151166da} + name: p256-verifier#v0.1.0 + version: 0.0.0 + dev: false