From f1d037e97e50782555e0752618a909f1c2c5d319 Mon Sep 17 00:00:00 2001 From: Dominic Fournier Date: Fri, 19 Jul 2024 11:35:38 -0400 Subject: [PATCH] Added tests, added RPC poller, and more... --- data/chains/V1/alfajores.json | 1 + data/chains/V1/amoy.json | 1 + data/chains/V1/arbgoerli.json | 1 + data/chains/V1/arbone.json | 1 + data/chains/V1/arbsepolia.json | 1 + data/chains/V1/arweave.json | 1 + data/chains/V1/avalanche.json | 1 + data/chains/V1/base.json | 1 + data/chains/V1/bitcoin.json | 1 + data/chains/V1/bsc.json | 1 + data/chains/V1/celo.json | 1 + data/chains/V1/chains.json | 50 + data/chains/V1/chapel.json | 1 + data/chains/V1/chiado-cl.json | 1 + data/chains/V1/chiado.json | 1 + data/chains/V1/cosmoshub.json | 1 + data/chains/V1/decimal.json | 1 + data/chains/V1/eos.json | 1 + data/chains/V1/eth-cl.json | 1 + data/chains/V1/eth.json | 1 + data/chains/V1/fantom.json | 1 + data/chains/V1/gnosis-cl.json | 1 + data/chains/V1/gnosis.json | 1 + data/chains/V1/goerli-cl.json | 1 + data/chains/V1/goerli.json | 1 + data/chains/V1/holesky-cl.json | 1 + data/chains/V1/holesky.json | 1 + data/chains/V1/jungle4.json | 1 + data/chains/V1/juno.json | 1 + data/chains/V1/kava.json | 1 + data/chains/V1/kylin.json | 1 + data/chains/V1/moonbeam.json | 1 + data/chains/V1/mumbai.json | 1 + data/chains/V1/near.json | 1 + data/chains/V1/neartest.json | 1 + data/chains/V1/optimism.json | 1 + data/chains/V1/ore.json | 1 + data/chains/V1/orestage.json | 1 + data/chains/V1/osmosis.json | 1 + data/chains/V1/polygon.json | 1 + data/chains/V1/scroll.json | 1 + data/chains/V1/sepolia-cl.json | 1 + data/chains/V1/sepolia.json | 1 + data/chains/V1/starknet.json | 1 + data/chains/V1/telos.json | 1 + data/chains/V1/telostest.json | 1 + data/chains/V1/theta.json | 1 + data/chains/V1/ux.json | 1 + data/chains/V1/wax.json | 1 + data/chains/V1/waxtest.json | 1 + data/chains/V1/zkatana.json | 1 + data/chains/V2/arbone/meta.ts | 5 +- .../V2/arbone/testnets/arbgoerli/meta.ts | 5 +- .../V2/arbone/testnets/arbsepolia/meta.ts | 5 +- data/chains/V2/arweave/meta.ts | 5 +- data/chains/V2/avalanche/meta.ts | 5 +- data/chains/V2/base/meta.ts | 5 +- data/chains/V2/bitcoin/meta.ts | 5 +- data/chains/V2/blast/meta.ts | 5 +- data/chains/V2/boba/meta.ts | 5 +- .../V2/boba/testnets/bobasepolia/meta.ts | 21 + data/chains/V2/bsc/meta.ts | 5 +- data/chains/V2/bsc/testnets/chapel/meta.ts | 5 +- data/chains/V2/cardano/meta.ts | 5 +- data/chains/V2/celo/meta.ts | 5 +- .../chains/V2/celo/testnets/alfajores/meta.ts | 5 +- data/chains/V2/chains.json | 573 +- data/chains/V2/cosmoshub/meta.ts | 5 +- .../chains/V2/cosmoshub/testnets/juno/meta.ts | 5 +- .../V2/cosmoshub/testnets/theta/meta.ts | 5 +- data/chains/V2/cronos/meta.ts | 5 +- data/chains/V2/decimal/meta.ts | 5 +- data/chains/V2/eos/evms/eosevm/meta.ts | 4 +- data/chains/V2/eos/meta.ts | 5 +- data/chains/V2/eos/testnets/jungle4/meta.ts | 5 +- data/chains/V2/eos/testnets/kylin/meta.ts | 5 +- data/chains/V2/eth/consensus/eth-cl/meta.ts | 5 +- .../chains/V2/eth/consensus/goerli-cl/meta.ts | 5 +- .../V2/eth/consensus/holesky-cl/meta.ts | 5 +- .../V2/eth/consensus/sepolia-cl/meta.ts | 5 +- data/chains/V2/eth/meta.ts | 5 +- data/chains/V2/eth/testnets/goerli/meta.ts | 5 +- data/chains/V2/eth/testnets/holesky/meta.ts | 5 +- data/chains/V2/eth/testnets/sepolia/meta.ts | 5 +- data/chains/V2/fantom/meta.ts | 5 +- data/chains/V2/fuse/meta.ts | 5 +- .../V2/gnosis/consensus/chiado-cl/meta.ts | 5 +- .../V2/gnosis/consensus/gnosis-cl/meta.ts | 5 +- data/chains/V2/gnosis/meta.ts | 5 +- data/chains/V2/gnosis/testnets/chiado/meta.ts | 5 +- data/chains/V2/index.ts | 5 + data/chains/V2/kava/meta.ts | 5 +- data/chains/V2/linea/meta.ts | 5 +- data/chains/V2/litecoin/meta.ts | 5 +- data/chains/V2/mode/meta.ts | 5 +- data/chains/V2/moonbeam/meta.ts | 5 +- data/chains/V2/near/meta.ts | 5 +- data/chains/V2/near/testnets/neartest/meta.ts | 5 +- data/chains/V2/optimism/meta.ts | 5 +- data/chains/V2/ore/meta.ts | 5 +- data/chains/V2/ore/testnets/orestage/meta.ts | 5 +- data/chains/V2/osmosis/meta.ts | 5 +- data/chains/V2/polygon/meta.ts | 5 +- data/chains/V2/polygon/testnets/amoy/meta.ts | 5 +- .../chains/V2/polygon/testnets/mumbai/meta.ts | 5 +- data/chains/V2/ronin/meta.ts | 5 +- data/chains/V2/scroll/meta.ts | 5 +- data/chains/V2/sei/meta.ts | 5 +- data/chains/V2/starknet/meta.ts | 13 +- data/chains/V2/telos/meta.ts | 5 +- .../V2/telos/testnets/telostest/meta.ts | 5 +- data/chains/V2/wax/meta.ts | 5 +- data/chains/V2/wax/testnets/waxtest/meta.ts | 5 +- data/chains/V2/x-layer/meta.ts | 5 +- data/chains/V2/xai/meta.ts | 5 +- data/chains/V2/zkastar/meta.ts | 5 +- .../V2/zkastar/testnets/zkatana/meta.ts | 5 +- .../chains/V2/zkastar/testnets/zkyoto/meta.ts | 5 +- data/chains/V2/zksync/meta.ts | 8 +- data/chains/V2/zora/meta.ts | 5 +- data/index.config.ts | 4 +- package-lock.json | 6716 ++++++++++++++++- package.json | 2 + scripts/generate/V2/data_index.ts | 5 + scripts/generate/V2/data_json.ts | 66 +- tests/assert_deprecated_filter.test.ts | 1 - .../assert_flatten_filter_sort_chain.test.ts | 107 - .../assert_no_substreams_wo_firehose.test.ts | 2 - tests/assert_supported_utils.test.ts | 4 - tests/assert_unexported_chains.test.ts | 2 - tests/assert_unique_index.test.ts | 1 - tests/assert_valid_icons.test.ts | 2 - tests/chain_exported.test.ts | 32 + tests/chain_find_by_id.test.ts | 51 + tests/chain_has_full_block.test.ts | 39 + ...hain_has_no_substreams_wo_firehose.test.ts | 30 + tests/chain_is_consensus_layer.test.ts | 41 + tests/chain_is_deprecated.test.ts | 48 + tests/chain_is_service_beta.test.ts | 57 + tests/chain_is_service_deprecated.test.ts | 48 + tests/chain_is_service_supported.test.ts | 48 + tests/chain_is_supported.test.ts | 48 + types/chain.types.ts | 94 +- types/graph.types.ts | 8 +- types/pinax.types.ts | 3 +- types/service.types.ts | 21 +- utils/chains.ts | 320 +- 147 files changed, 7764 insertions(+), 1075 deletions(-) create mode 100644 data/chains/V2/boba/testnets/bobasepolia/meta.ts delete mode 100644 tests/assert_deprecated_filter.test.ts delete mode 100644 tests/assert_flatten_filter_sort_chain.test.ts delete mode 100644 tests/assert_no_substreams_wo_firehose.test.ts delete mode 100644 tests/assert_supported_utils.test.ts delete mode 100644 tests/assert_unexported_chains.test.ts delete mode 100644 tests/assert_unique_index.test.ts delete mode 100644 tests/assert_valid_icons.test.ts create mode 100644 tests/chain_exported.test.ts create mode 100644 tests/chain_find_by_id.test.ts create mode 100644 tests/chain_has_full_block.test.ts create mode 100644 tests/chain_has_no_substreams_wo_firehose.test.ts create mode 100644 tests/chain_is_consensus_layer.test.ts create mode 100644 tests/chain_is_deprecated.test.ts create mode 100644 tests/chain_is_service_beta.test.ts create mode 100644 tests/chain_is_service_deprecated.test.ts create mode 100644 tests/chain_is_service_supported.test.ts create mode 100644 tests/chain_is_supported.test.ts diff --git a/data/chains/V1/alfajores.json b/data/chains/V1/alfajores.json index 4d7d155..cf12481 100644 --- a/data/chains/V1/alfajores.json +++ b/data/chains/V1/alfajores.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "celo", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/amoy.json b/data/chains/V1/amoy.json index 6a49256..364859c 100644 --- a/data/chains/V1/amoy.json +++ b/data/chains/V1/amoy.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "polygon", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/arbgoerli.json b/data/chains/V1/arbgoerli.json index 1f24aa1..46c68a3 100644 --- a/data/chains/V1/arbgoerli.json +++ b/data/chains/V1/arbgoerli.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "arbitrum", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/arbone.json b/data/chains/V1/arbone.json index d314931..33b2edc 100644 --- a/data/chains/V1/arbone.json +++ b/data/chains/V1/arbone.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "arbitrum", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/arbsepolia.json b/data/chains/V1/arbsepolia.json index b59fdf6..f9d2cf5 100644 --- a/data/chains/V1/arbsepolia.json +++ b/data/chains/V1/arbsepolia.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "arbitrum", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/arweave.json b/data/chains/V1/arweave.json index 0fa46ce..9427116 100644 --- a/data/chains/V1/arweave.json +++ b/data/chains/V1/arweave.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "arweave", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.arweave.type.v1.Block", "url": "https://buf.build/pinax/firehose-arweave/docs/main:sf.arweave.type.v1" diff --git a/data/chains/V1/avalanche.json b/data/chains/V1/avalanche.json index fb6b4ad..19ece6f 100644 --- a/data/chains/V1/avalanche.json +++ b/data/chains/V1/avalanche.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "avalanche", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/base.json b/data/chains/V1/base.json index 9b23a2c..78df459 100644 --- a/data/chains/V1/base.json +++ b/data/chains/V1/base.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "base", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/bitcoin.json b/data/chains/V1/bitcoin.json index dbb7514..ddbf301 100644 --- a/data/chains/V1/bitcoin.json +++ b/data/chains/V1/bitcoin.json @@ -6,6 +6,7 @@ "alt_names": ["btc"], "mainnet": "bitcoin", "standard": "brc20", + "rpc_poller": true, "block_type": { "label": "sf.bitcoin.type.v1.Block", "url": "https://buf.build/streamingfast/firehose-bitcoin/docs/main:sf.bitcoin.type.v1" diff --git a/data/chains/V1/bsc.json b/data/chains/V1/bsc.json index 29da2d2..5f10a03 100644 --- a/data/chains/V1/bsc.json +++ b/data/chains/V1/bsc.json @@ -6,6 +6,7 @@ "alt_names": ["bsc", "binance"], "mainnet": "bsc", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/celo.json b/data/chains/V1/celo.json index 33cba65..f99a83e 100644 --- a/data/chains/V1/celo.json +++ b/data/chains/V1/celo.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "celo", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/chains.json b/data/chains/V1/chains.json index ed46c84..7428761 100644 --- a/data/chains/V1/chains.json +++ b/data/chains/V1/chains.json @@ -7,6 +7,7 @@ "alt_names": [], "mainnet": "celo", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -38,6 +39,7 @@ "alt_names": [], "mainnet": "polygon", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -68,6 +70,7 @@ "alt_names": [], "mainnet": "arbitrum", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -98,6 +101,7 @@ "alt_names": [], "mainnet": "arbitrum", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -128,6 +132,7 @@ "alt_names": [], "mainnet": "arbitrum", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -158,6 +163,7 @@ "alt_names": [], "mainnet": "arweave", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.arweave.type.v1.Block", "url": "https://buf.build/pinax/firehose-arweave/docs/main:sf.arweave.type.v1" @@ -189,6 +195,7 @@ "alt_names": [], "mainnet": "avalanche", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -220,6 +227,7 @@ "alt_names": [], "mainnet": "base", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -253,6 +261,7 @@ ], "mainnet": "bitcoin", "standard": "brc20", + "rpc_poller": true, "block_type": { "label": "sf.bitcoin.type.v1.Block", "url": "https://buf.build/streamingfast/firehose-bitcoin/docs/main:sf.bitcoin.type.v1" @@ -286,6 +295,7 @@ ], "mainnet": "bsc", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -316,6 +326,7 @@ "alt_names": [], "mainnet": "celo", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -347,6 +358,7 @@ "alt_names": [], "mainnet": "bsc", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -377,6 +389,7 @@ "alt_names": [], "mainnet": "arbitrum", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -407,6 +420,7 @@ "alt_names": [], "mainnet": "arbitrum", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -437,6 +451,7 @@ "alt_names": [], "mainnet": "cosmoshub", "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" @@ -467,6 +482,7 @@ "alt_names": [], "mainnet": "decimal", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -497,6 +513,7 @@ "alt_names": [], "mainnet": "eos", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -528,6 +545,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -559,6 +577,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -590,6 +609,7 @@ "alt_names": [], "mainnet": "fantom", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -621,6 +641,7 @@ "alt_names": [], "mainnet": "gnosis", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -652,6 +673,7 @@ "alt_names": [], "mainnet": "gnosis", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -683,6 +705,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -714,6 +737,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -745,6 +769,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -776,6 +801,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -807,6 +833,7 @@ "alt_names": [], "mainnet": "eos", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -837,6 +864,7 @@ "alt_names": [], "mainnet": "juno", "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" @@ -868,6 +896,7 @@ "alt_names": [], "mainnet": "kava", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -898,6 +927,7 @@ "alt_names": [], "mainnet": "eos", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -928,6 +958,7 @@ "alt_names": [], "mainnet": "moonbeam", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -958,6 +989,7 @@ "alt_names": [], "mainnet": "polygon", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -988,6 +1020,7 @@ "alt_names": [], "mainnet": "near", "standard": "near", + "rpc_poller": false, "block_type": { "label": "sf.near.type.v1.Block", "url": "https://buf.build/streamingfast/firehose-near/docs/main:sf.near.type.v1" @@ -1019,6 +1052,7 @@ "alt_names": [], "mainnet": "near", "standard": "near", + "rpc_poller": false, "block_type": { "label": "sf.near.type.v1.Block", "url": "https://buf.build/streamingfast/firehose-near/docs/main:sf.near.type.v1" @@ -1050,6 +1084,7 @@ "alt_names": [], "mainnet": "optimism", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1080,6 +1115,7 @@ "alt_names": [], "mainnet": "ore", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1110,6 +1146,7 @@ "alt_names": [], "mainnet": "ore", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1140,6 +1177,7 @@ "alt_names": [], "mainnet": "osmosis", "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" @@ -1172,6 +1210,7 @@ ], "mainnet": "polygon", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1202,6 +1241,7 @@ "alt_names": [], "mainnet": "scroll", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1233,6 +1273,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1264,6 +1305,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1295,6 +1337,7 @@ "alt_names": [], "mainnet": "starknet", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1325,6 +1368,7 @@ "alt_names": [], "mainnet": "telos", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1355,6 +1399,7 @@ "alt_names": [], "mainnet": "telos", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1385,6 +1430,7 @@ "alt_names": [], "mainnet": "cosmoshub", "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" @@ -1415,6 +1461,7 @@ "alt_names": [], "mainnet": "ux", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1445,6 +1492,7 @@ "alt_names": [], "mainnet": "wax", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1475,6 +1523,7 @@ "alt_names": [], "mainnet": "wax", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1505,6 +1554,7 @@ "alt_names": [], "mainnet": "zkatana", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/chapel.json b/data/chains/V1/chapel.json index ae9e352..46879cd 100644 --- a/data/chains/V1/chapel.json +++ b/data/chains/V1/chapel.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "bsc", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/chiado-cl.json b/data/chains/V1/chiado-cl.json index 68ed350..7da86c5 100644 --- a/data/chains/V1/chiado-cl.json +++ b/data/chains/V1/chiado-cl.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "arbitrum", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/chiado.json b/data/chains/V1/chiado.json index 5166256..4be0d7a 100644 --- a/data/chains/V1/chiado.json +++ b/data/chains/V1/chiado.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "arbitrum", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/cosmoshub.json b/data/chains/V1/cosmoshub.json index 810f921..bd5e846 100644 --- a/data/chains/V1/cosmoshub.json +++ b/data/chains/V1/cosmoshub.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "cosmoshub", "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" diff --git a/data/chains/V1/decimal.json b/data/chains/V1/decimal.json index 2aa25e4..bdd904c 100644 --- a/data/chains/V1/decimal.json +++ b/data/chains/V1/decimal.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "decimal", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/eos.json b/data/chains/V1/eos.json index 3e1ac0f..3e33173 100644 --- a/data/chains/V1/eos.json +++ b/data/chains/V1/eos.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eos", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" diff --git a/data/chains/V1/eth-cl.json b/data/chains/V1/eth-cl.json index 8bd94e8..6c69da7 100644 --- a/data/chains/V1/eth-cl.json +++ b/data/chains/V1/eth-cl.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/eth.json b/data/chains/V1/eth.json index 8851205..2b0fc5b 100644 --- a/data/chains/V1/eth.json +++ b/data/chains/V1/eth.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/fantom.json b/data/chains/V1/fantom.json index 78087c9..cfebad0 100644 --- a/data/chains/V1/fantom.json +++ b/data/chains/V1/fantom.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "fantom", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/gnosis-cl.json b/data/chains/V1/gnosis-cl.json index c524750..e3bf0f4 100644 --- a/data/chains/V1/gnosis-cl.json +++ b/data/chains/V1/gnosis-cl.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "gnosis", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/gnosis.json b/data/chains/V1/gnosis.json index ed5c220..ca53f78 100644 --- a/data/chains/V1/gnosis.json +++ b/data/chains/V1/gnosis.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "gnosis", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/goerli-cl.json b/data/chains/V1/goerli-cl.json index cddd318..f51771a 100644 --- a/data/chains/V1/goerli-cl.json +++ b/data/chains/V1/goerli-cl.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/goerli.json b/data/chains/V1/goerli.json index 1234949..ce1f372 100644 --- a/data/chains/V1/goerli.json +++ b/data/chains/V1/goerli.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/holesky-cl.json b/data/chains/V1/holesky-cl.json index b247870..05266bc 100644 --- a/data/chains/V1/holesky-cl.json +++ b/data/chains/V1/holesky-cl.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/holesky.json b/data/chains/V1/holesky.json index 0535a78..1f36ea1 100644 --- a/data/chains/V1/holesky.json +++ b/data/chains/V1/holesky.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/jungle4.json b/data/chains/V1/jungle4.json index 8665590..1dab48e 100644 --- a/data/chains/V1/jungle4.json +++ b/data/chains/V1/jungle4.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eos", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" diff --git a/data/chains/V1/juno.json b/data/chains/V1/juno.json index e43258e..9efb016 100644 --- a/data/chains/V1/juno.json +++ b/data/chains/V1/juno.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "juno", "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" diff --git a/data/chains/V1/kava.json b/data/chains/V1/kava.json index a97157a..8e67bb9 100644 --- a/data/chains/V1/kava.json +++ b/data/chains/V1/kava.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "kava", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/kylin.json b/data/chains/V1/kylin.json index 011f912..dcf740a 100644 --- a/data/chains/V1/kylin.json +++ b/data/chains/V1/kylin.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eos", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" diff --git a/data/chains/V1/moonbeam.json b/data/chains/V1/moonbeam.json index 503ddf1..78a5e97 100644 --- a/data/chains/V1/moonbeam.json +++ b/data/chains/V1/moonbeam.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "moonbeam", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/mumbai.json b/data/chains/V1/mumbai.json index 4cc6621..0076df3 100644 --- a/data/chains/V1/mumbai.json +++ b/data/chains/V1/mumbai.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "polygon", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/near.json b/data/chains/V1/near.json index 5d32731..206b0f1 100644 --- a/data/chains/V1/near.json +++ b/data/chains/V1/near.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "near", "standard": "near", + "rpc_poller": false, "block_type": { "label": "sf.near.type.v1.Block", "url": "https://buf.build/streamingfast/firehose-near/docs/main:sf.near.type.v1" diff --git a/data/chains/V1/neartest.json b/data/chains/V1/neartest.json index e58146d..8474e24 100644 --- a/data/chains/V1/neartest.json +++ b/data/chains/V1/neartest.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "near", "standard": "near", + "rpc_poller": false, "block_type": { "label": "sf.near.type.v1.Block", "url": "https://buf.build/streamingfast/firehose-near/docs/main:sf.near.type.v1" diff --git a/data/chains/V1/optimism.json b/data/chains/V1/optimism.json index f04de2a..b16e5e1 100644 --- a/data/chains/V1/optimism.json +++ b/data/chains/V1/optimism.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "optimism", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/ore.json b/data/chains/V1/ore.json index 434d98a..942582f 100644 --- a/data/chains/V1/ore.json +++ b/data/chains/V1/ore.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "ore", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" diff --git a/data/chains/V1/orestage.json b/data/chains/V1/orestage.json index ab0cca6..6e57c67 100644 --- a/data/chains/V1/orestage.json +++ b/data/chains/V1/orestage.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "ore", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" diff --git a/data/chains/V1/osmosis.json b/data/chains/V1/osmosis.json index a46a773..1144bb4 100644 --- a/data/chains/V1/osmosis.json +++ b/data/chains/V1/osmosis.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "osmosis", "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" diff --git a/data/chains/V1/polygon.json b/data/chains/V1/polygon.json index 9bdef19..d899fdb 100644 --- a/data/chains/V1/polygon.json +++ b/data/chains/V1/polygon.json @@ -6,6 +6,7 @@ "alt_names": ["matic"], "mainnet": "polygon", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/scroll.json b/data/chains/V1/scroll.json index 6cb1bf9..7edab89 100644 --- a/data/chains/V1/scroll.json +++ b/data/chains/V1/scroll.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "scroll", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/sepolia-cl.json b/data/chains/V1/sepolia-cl.json index 4a1d8fa..76da148 100644 --- a/data/chains/V1/sepolia-cl.json +++ b/data/chains/V1/sepolia-cl.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/sepolia.json b/data/chains/V1/sepolia.json index f8375e2..faa07bd 100644 --- a/data/chains/V1/sepolia.json +++ b/data/chains/V1/sepolia.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "eth", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/starknet.json b/data/chains/V1/starknet.json index 2975585..8518485 100644 --- a/data/chains/V1/starknet.json +++ b/data/chains/V1/starknet.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "starknet", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V1/telos.json b/data/chains/V1/telos.json index 100ad33..878dd79 100644 --- a/data/chains/V1/telos.json +++ b/data/chains/V1/telos.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "telos", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" diff --git a/data/chains/V1/telostest.json b/data/chains/V1/telostest.json index f928e92..3053b14 100644 --- a/data/chains/V1/telostest.json +++ b/data/chains/V1/telostest.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "telos", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" diff --git a/data/chains/V1/theta.json b/data/chains/V1/theta.json index 0b3cbb4..754249d 100644 --- a/data/chains/V1/theta.json +++ b/data/chains/V1/theta.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "cosmoshub", "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" diff --git a/data/chains/V1/ux.json b/data/chains/V1/ux.json index 8a320c8..c30d3fa 100644 --- a/data/chains/V1/ux.json +++ b/data/chains/V1/ux.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "ux", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" diff --git a/data/chains/V1/wax.json b/data/chains/V1/wax.json index 93660ec..e5161e1 100644 --- a/data/chains/V1/wax.json +++ b/data/chains/V1/wax.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "wax", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" diff --git a/data/chains/V1/waxtest.json b/data/chains/V1/waxtest.json index b69441b..11bcc39 100644 --- a/data/chains/V1/waxtest.json +++ b/data/chains/V1/waxtest.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "wax", "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" diff --git a/data/chains/V1/zkatana.json b/data/chains/V1/zkatana.json index 8e416bf..8adbc6a 100644 --- a/data/chains/V1/zkatana.json +++ b/data/chains/V1/zkatana.json @@ -6,6 +6,7 @@ "alt_names": [], "mainnet": "zkatana", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" diff --git a/data/chains/V2/arbone/meta.ts b/data/chains/V2/arbone/meta.ts index e674207..634b98f 100644 --- a/data/chains/V2/arbone/meta.ts +++ b/data/chains/V2/arbone/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'arbone', graph_id: 'arbitrum-one', name: 'Arbitrum One', alt_names: [], standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/arbone/testnets/arbgoerli/meta.ts b/data/chains/V2/arbone/testnets/arbgoerli/meta.ts index c6d6837..d3df6ee 100644 --- a/data/chains/V2/arbone/testnets/arbgoerli/meta.ts +++ b/data/chains/V2/arbone/testnets/arbgoerli/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'arbgoerli', graph_id: null, name: 'Arbitrum Goerli', alt_names: [], standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/arbone/testnets/arbsepolia/meta.ts b/data/chains/V2/arbone/testnets/arbsepolia/meta.ts index 8e5cf94..4b0542a 100644 --- a/data/chains/V2/arbone/testnets/arbsepolia/meta.ts +++ b/data/chains/V2/arbone/testnets/arbsepolia/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'arbsepolia', graph_id: 'arbitrum-sepolia', name: 'Arbitrum Sepolia', alt_names: [], standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/arweave/meta.ts b/data/chains/V2/arweave/meta.ts index 7a7761e..b32edf4 100644 --- a/data/chains/V2/arweave/meta.ts +++ b/data/chains/V2/arweave/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'arweave', graph_id: 'arweave-mainnet', name: 'Arweave', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.arweave.type.v1.Block', url: 'https://buf.build/pinax/firehose-arweave/docs/main:sf.arweave.type.v1', diff --git a/data/chains/V2/avalanche/meta.ts b/data/chains/V2/avalanche/meta.ts index 3ca826c..0302428 100644 --- a/data/chains/V2/avalanche/meta.ts +++ b/data/chains/V2/avalanche/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'avalanche', graph_id: 'avalanche', name: 'Avalanche', alt_names: [], standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/base/meta.ts b/data/chains/V2/base/meta.ts index 3d7c121..2618491 100644 --- a/data/chains/V2/base/meta.ts +++ b/data/chains/V2/base/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'base', graph_id: 'base', name: 'Base', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/bitcoin/meta.ts b/data/chains/V2/bitcoin/meta.ts index 002a665..22bbdc3 100644 --- a/data/chains/V2/bitcoin/meta.ts +++ b/data/chains/V2/bitcoin/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'bitcoin', graph_id: null, name: 'Bitcoin', alt_names: ['btc'], standard: 'brc20', + rpc_poller: true, block_type: { label: 'sf.bitcoin.type.v1.Block', url: 'https://buf.build/streamingfast/firehose-bitcoin/docs/main:sf.bitcoin.type.v1', diff --git a/data/chains/V2/blast/meta.ts b/data/chains/V2/blast/meta.ts index f22b538..464b181 100644 --- a/data/chains/V2/blast/meta.ts +++ b/data/chains/V2/blast/meta.ts @@ -1,12 +1,13 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'blast', name: 'Blast Network', alt_names: [], graph_id: 'blast-mainnet', index: 0, standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/boba/meta.ts b/data/chains/V2/boba/meta.ts index c45e893..9464454 100644 --- a/data/chains/V2/boba/meta.ts +++ b/data/chains/V2/boba/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'boba', name: 'Boba Network', alt_names: [], graph_id: 'boba', standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/boba/testnets/bobasepolia/meta.ts b/data/chains/V2/boba/testnets/bobasepolia/meta.ts new file mode 100644 index 0000000..0d061ad --- /dev/null +++ b/data/chains/V2/boba/testnets/bobasepolia/meta.ts @@ -0,0 +1,21 @@ +import { ___InternalTestnet } from '../../../../../../types/chain.types'; + +const meta: ___InternalTestnet = { + id: 'bobasepolia', + graph_id: null, + name: 'Boba Sepolia', + alt_names: [], + standard: 'erc20', + rpc_poller: true, + block_type: { + label: 'sf.ethereum.type.v2.Block', + url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', + }, + supported_services: { + rpc: 'unreleased', + firehose: 'unreleased', + substreams: 'unreleased', + }, +}; + +export default meta; diff --git a/data/chains/V2/bsc/meta.ts b/data/chains/V2/bsc/meta.ts index 7f30f60..2e48b0d 100644 --- a/data/chains/V2/bsc/meta.ts +++ b/data/chains/V2/bsc/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'bsc', graph_id: 'bsc', name: 'BNB', alt_names: ['bsc', 'binance'], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/bsc/testnets/chapel/meta.ts b/data/chains/V2/bsc/testnets/chapel/meta.ts index 8730394..056ff45 100644 --- a/data/chains/V2/bsc/testnets/chapel/meta.ts +++ b/data/chains/V2/bsc/testnets/chapel/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'chapel', graph_id: 'chapel', name: 'Chapel', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/cardano/meta.ts b/data/chains/V2/cardano/meta.ts index 1aa6475..6947748 100644 --- a/data/chains/V2/cardano/meta.ts +++ b/data/chains/V2/cardano/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'cardano', graph_id: null, name: 'Cardano', alt_names: [], standard: 'cardano', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/celo/meta.ts b/data/chains/V2/celo/meta.ts index 203b4b4..f93d054 100644 --- a/data/chains/V2/celo/meta.ts +++ b/data/chains/V2/celo/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'celo', graph_id: 'celo', name: 'Celo', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/celo/testnets/alfajores/meta.ts b/data/chains/V2/celo/testnets/alfajores/meta.ts index 85b6275..df38152 100644 --- a/data/chains/V2/celo/testnets/alfajores/meta.ts +++ b/data/chains/V2/celo/testnets/alfajores/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'alfajores', graph_id: null, name: 'Alfajores', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/chains.json b/data/chains/V2/chains.json index 0925853..7f66c0f 100644 --- a/data/chains/V2/chains.json +++ b/data/chains/V2/chains.json @@ -5,6 +5,7 @@ "name": "Ethereum", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -19,18 +20,18 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.593Z", - "full_released_at": "2024-06-03T13:24:30.593Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.593Z", - "full_released_at": "2024-06-03T13:24:30.593Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.593Z", - "full_released_at": "2024-06-03T13:24:30.593Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -45,25 +46,26 @@ "name": "Holesky", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" } }, "index": 1 @@ -74,25 +76,26 @@ "name": "Sepolia", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" } }, "index": 2 @@ -103,25 +106,26 @@ "name": "Goerli", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" } }, "index": 6 @@ -134,19 +138,20 @@ "name": "Ethereum Consensus Layer", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -158,19 +163,20 @@ "name": "Holesky Consensus Layer", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -182,19 +188,20 @@ "name": "Sepolia Consensus Layer", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -206,19 +213,20 @@ "name": "Goerli Consensus Layer", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -234,6 +242,7 @@ "btc" ], "standard": "brc20", + "rpc_poller": true, "block_type": { "label": "sf.bitcoin.type.v1.Block", "url": "https://buf.build/streamingfast/firehose-bitcoin/docs/main:sf.bitcoin.type.v1" @@ -249,13 +258,13 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -272,6 +281,7 @@ "matic" ], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -286,18 +296,18 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -312,24 +322,25 @@ "name": "Amoy", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -341,25 +352,26 @@ "name": "Mumbai", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" } }, "index": 11 @@ -375,6 +387,7 @@ "binance" ], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -389,18 +402,18 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -415,24 +428,25 @@ "name": "Chapel", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -446,6 +460,7 @@ "name": "Arbitrum One", "alt_names": [], "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -456,17 +471,17 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } @@ -482,6 +497,7 @@ "name": "Arbitrum Goerli", "alt_names": [], "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -511,24 +527,25 @@ "name": "Arbitrum Sepolia", "alt_names": [], "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -540,6 +557,7 @@ "name": "Chiado", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -571,19 +589,20 @@ "name": "Chiado Consensus Layer", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -597,6 +616,7 @@ "name": "Avalanche", "alt_names": [], "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -633,6 +653,7 @@ "name": "Optimism", "alt_names": [], "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -652,13 +673,13 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -673,6 +694,7 @@ "name": "Base", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -688,13 +710,13 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -709,6 +731,7 @@ "name": "Near", "alt_names": [], "standard": "near", + "rpc_poller": false, "block_type": { "label": "sf.near.type.v1.Block", "url": "https://buf.build/streamingfast/firehose-near/docs/main:sf.near.type.v1" @@ -728,13 +751,13 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -749,6 +772,7 @@ "name": "Near-testnet", "alt_names": [], "standard": "near", + "rpc_poller": false, "block_type": { "label": "sf.near.type.v1.Block", "url": "https://buf.build/streamingfast/firehose-near/docs/main:sf.near.type.v1" @@ -760,13 +784,13 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -780,6 +804,7 @@ "name": "Cardano", "alt_names": [], "standard": "cardano", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -820,6 +845,7 @@ "name": "Decimal", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -834,14 +860,14 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { "beta_released_at": null, @@ -860,6 +886,7 @@ "name": "Gnosis", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -874,7 +901,7 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, @@ -900,19 +927,20 @@ "name": "Gnosis Consensus Layer", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" }, "supported_services": { "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -926,6 +954,7 @@ "name": "Fantom", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -940,7 +969,7 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, @@ -966,6 +995,7 @@ "name": "Celo", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1006,6 +1036,7 @@ "name": "Alfajores", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1037,6 +1068,7 @@ "name": "Arweave", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.arweave.type.v1.Block", "url": "https://buf.build/pinax/firehose-arweave/docs/main:sf.arweave.type.v1" @@ -1056,13 +1088,13 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -1077,6 +1109,7 @@ "name": "Cosmos Hub", "alt_names": [], "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" @@ -1096,8 +1129,8 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { @@ -1117,6 +1150,7 @@ "name": "Theta", "alt_names": [], "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" @@ -1128,9 +1162,9 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { "beta_released_at": null, @@ -1146,6 +1180,7 @@ "name": "Juno", "alt_names": [], "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" @@ -1157,9 +1192,9 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { "beta_released_at": null, @@ -1177,6 +1212,7 @@ "name": "Osmosis", "alt_names": [], "standard": "cosmos", + "rpc_poller": false, "block_type": { "label": "sf.cosmos.type.v1.Block", "url": "https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto" @@ -1196,8 +1232,8 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { @@ -1217,6 +1253,7 @@ "name": "Moonbeam", "alt_names": [], "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1257,6 +1294,7 @@ "name": "Scroll", "alt_names": [], "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1297,6 +1335,7 @@ "name": "Starknet", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1337,6 +1376,7 @@ "name": "EOS", "alt_names": [], "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1355,9 +1395,9 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { "beta_released_at": null, @@ -1387,9 +1427,9 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { "beta_released_at": null, @@ -1407,6 +1447,7 @@ "name": "Jungle4", "alt_names": [], "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1418,9 +1459,9 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { "beta_released_at": null, @@ -1436,6 +1477,7 @@ "name": "Kylin", "alt_names": [], "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1447,9 +1489,9 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { "beta_released_at": null, @@ -1467,6 +1509,7 @@ "name": "WAX", "alt_names": [], "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1486,13 +1529,13 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -1507,6 +1550,7 @@ "name": "WAX Test", "alt_names": [], "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1518,13 +1562,13 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -1538,6 +1582,7 @@ "name": "Telos", "alt_names": [], "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1578,6 +1623,7 @@ "name": "Telos Test", "alt_names": [], "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -1589,13 +1635,13 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -1609,6 +1655,7 @@ "name": "Kava", "alt_names": [], "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1623,7 +1670,7 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, @@ -1650,6 +1697,7 @@ "graph_id": "blast-mainnet", "index": 48, "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1664,17 +1712,17 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } @@ -1693,6 +1741,7 @@ "alt_names": [], "graph_id": "boba", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1707,22 +1756,53 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } }, - "testnets": [], + "testnets": [ + { + "id": "bobasepolia", + "graph_id": null, + "name": "Boba Sepolia", + "alt_names": [], + "standard": "erc20", + "rpc_poller": true, + "block_type": { + "label": "sf.ethereum.type.v2.Block", + "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" + }, + "supported_services": { + "rpc": { + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": null + }, + "firehose": { + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": null + }, + "substreams": { + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": null + } + }, + "index": 50 + } + ], "consensus": [], "evms": [], "metadata": { @@ -1737,6 +1817,7 @@ "alt_names": [], "graph_id": null, "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1756,9 +1837,9 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.530Z" }, "substreams": { "beta_released_at": null, @@ -1772,7 +1853,7 @@ "metadata": { "website": "https://cronos.org/" }, - "index": 50 + "index": 51 }, { "id": "fuse", @@ -1780,6 +1861,7 @@ "alt_names": [], "graph_id": "fuse", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1794,17 +1876,17 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } @@ -1816,7 +1898,7 @@ "layer": "L1", "website": "https://fuse.io/" }, - "index": 51 + "index": 52 }, { "id": "linea", @@ -1824,6 +1906,7 @@ "alt_names": [], "graph_id": "linea", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1838,17 +1921,17 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } @@ -1859,7 +1942,7 @@ "metadata": { "website": "https://linea.build/" }, - "index": 52 + "index": 53 }, { "id": "litecoin", @@ -1869,6 +1952,7 @@ ], "graph_id": null, "standard": "ltc20", + "rpc_poller": false, "block_type": { "label": "sf.litecoin.type.v1.Block", "url": "https://buf.build/streamingfast/firehose-litecoin/docs/main:sf.litecoin.type.v1" @@ -1888,12 +1972,12 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } @@ -1905,7 +1989,7 @@ "layer": "L1", "website": "https://litecoin.org/" }, - "index": 53 + "index": 54 }, { "id": "mode", @@ -1913,6 +1997,7 @@ "alt_names": [], "graph_id": "mode-mainnet", "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1927,17 +2012,17 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } @@ -1949,7 +2034,7 @@ "layer": "L2", "website": "https://www.mode.network/" }, - "index": 54 + "index": 55 }, { "id": "ronin", @@ -1957,6 +2042,7 @@ "name": "Ronin", "alt_names": [], "standard": "rrc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -1989,7 +2075,7 @@ "metadata": { "website": "https://roninchain.com/" }, - "index": 55 + "index": 56 }, { "id": "sei", @@ -1997,6 +2083,7 @@ "name": "Sei", "alt_names": [], "standard": "sei", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -2029,7 +2116,7 @@ "metadata": { "website": "https://www.sei.io/" }, - "index": 56 + "index": 57 }, { "id": "xai", @@ -2037,6 +2124,7 @@ "alt_names": [], "graph_id": null, "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -2056,13 +2144,13 @@ "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": null, + "full_released_at": "2024-07-19T15:35:39.530Z", "deprecated_at": null } }, @@ -2073,7 +2161,7 @@ "layer": "L3", "website": "https://xai.games/" }, - "index": 57 + "index": 58 }, { "id": "zkastar", @@ -2081,6 +2169,7 @@ "alt_names": [], "graph_id": null, "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.zkevm.type.v1.Block", "url": "https://buf.build/pinax/firehose-zkevm/docs/main:sf.zkevm.type.v1" @@ -2095,17 +2184,17 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } @@ -2117,28 +2206,29 @@ "alt_names": [], "graph_id": null, "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.zkevm.type.v1.Block", "url": "https://buf.build/pinax/firehose-zkevm/docs/main:sf.zkevm.type.v1" }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } }, - "index": 59 + "index": 60 }, { "id": "zkyoto", @@ -2146,28 +2236,29 @@ "alt_names": [], "graph_id": "zkyoto-testnet", "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.zkevm.type.v1.Block", "url": "https://buf.build/pinax/firehose-zkevm/docs/main:sf.zkevm.type.v1" }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } }, - "index": 60 + "index": 61 } ], "consensus": [], @@ -2176,7 +2267,7 @@ "layer": "L2", "website": "https://astar.network/" }, - "index": 58 + "index": 59 }, { "id": "x-layer", @@ -2184,6 +2275,7 @@ "name": "X-Layer", "alt_names": [], "standard": "erc20", + "rpc_poller": true, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -2216,14 +2308,15 @@ "metadata": { "website": "https://www.okx.com/fr/xlayer" }, - "index": 61 + "index": 62 }, { "id": "zksync", "graph_id": "zksync-era", "name": "zkSync Era", "alt_names": [], - "standard": "rrc20", + "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -2254,9 +2347,12 @@ } }, "metadata": { - "website": "https://zksync.io/" + "website": "https://zksync.io/", + "tags": [ + "zk" + ] }, - "index": 62 + "index": 63 }, { "id": "zora", @@ -2264,6 +2360,7 @@ "alt_names": [], "graph_id": null, "standard": "erc20", + "rpc_poller": false, "block_type": { "label": "sf.ethereum.type.v2.Block", "url": "https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2" @@ -2277,17 +2374,17 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", + "beta_released_at": "2024-07-19T15:35:39.530Z", "full_released_at": null, "deprecated_at": null } @@ -2299,7 +2396,7 @@ "layer": "L2", "website": "https://zora.co/" }, - "index": 63 + "index": 64 }, { "id": "ore", @@ -2307,6 +2404,7 @@ "name": "Ore", "alt_names": [], "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" @@ -2321,25 +2419,25 @@ }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.531Z" }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.531Z" }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.531Z" } }, "metadata": { "website": "https://ore.network/" }, - "index": 64, + "index": 65, "testnets": [ { "id": "orestage", @@ -2347,28 +2445,29 @@ "name": "Ore Stage", "alt_names": [], "standard": "antelope", + "rpc_poller": false, "block_type": { "label": "sf.antelope.type.v1.Block", "url": "https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1" }, "supported_services": { "rpc": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.531Z" }, "firehose": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.531Z" }, "substreams": { - "beta_released_at": "2024-06-03T13:24:30.594Z", - "full_released_at": "2024-06-03T13:24:30.594Z", - "deprecated_at": "2024-06-03T13:24:30.594Z" + "beta_released_at": null, + "full_released_at": null, + "deprecated_at": "2024-07-19T15:35:39.531Z" } }, - "index": 65 + "index": 66 } ] } diff --git a/data/chains/V2/cosmoshub/meta.ts b/data/chains/V2/cosmoshub/meta.ts index 9b42885..33b347e 100644 --- a/data/chains/V2/cosmoshub/meta.ts +++ b/data/chains/V2/cosmoshub/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'cosmoshub', graph_id: 'cosmoshub-4', name: 'Cosmos Hub', alt_names: [], standard: 'cosmos', + rpc_poller: false, block_type: { label: 'sf.cosmos.type.v1.Block', url: 'https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto', diff --git a/data/chains/V2/cosmoshub/testnets/juno/meta.ts b/data/chains/V2/cosmoshub/testnets/juno/meta.ts index d8ecb06..26d5645 100644 --- a/data/chains/V2/cosmoshub/testnets/juno/meta.ts +++ b/data/chains/V2/cosmoshub/testnets/juno/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'juno', graph_id: null, name: 'Juno', alt_names: [], standard: 'cosmos', + rpc_poller: false, block_type: { label: 'sf.cosmos.type.v1.Block', url: 'https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto', diff --git a/data/chains/V2/cosmoshub/testnets/theta/meta.ts b/data/chains/V2/cosmoshub/testnets/theta/meta.ts index 0e14eb2..b0f7855 100644 --- a/data/chains/V2/cosmoshub/testnets/theta/meta.ts +++ b/data/chains/V2/cosmoshub/testnets/theta/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'theta', graph_id: 'theta-testnet-001', name: 'Theta', alt_names: [], standard: 'cosmos', + rpc_poller: false, block_type: { label: 'sf.cosmos.type.v1.Block', url: 'https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto', diff --git a/data/chains/V2/cronos/meta.ts b/data/chains/V2/cronos/meta.ts index a96c9ff..771e632 100644 --- a/data/chains/V2/cronos/meta.ts +++ b/data/chains/V2/cronos/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'cronos', name: 'Cronos', alt_names: [], graph_id: null, standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/decimal/meta.ts b/data/chains/V2/decimal/meta.ts index 630f411..14e54a8 100644 --- a/data/chains/V2/decimal/meta.ts +++ b/data/chains/V2/decimal/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'decimal', graph_id: null, name: 'Decimal', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/eos/evms/eosevm/meta.ts b/data/chains/V2/eos/evms/eosevm/meta.ts index 6cfc674..e21c652 100644 --- a/data/chains/V2/eos/evms/eosevm/meta.ts +++ b/data/chains/V2/eos/evms/eosevm/meta.ts @@ -1,6 +1,6 @@ -import { EVM } from '../../../../../../types/chain.types'; +import { ___InternalEVM } from '../../../../../../types/chain.types'; -const meta: EVM = { +const meta: ___InternalEVM = { id: 'eosevm', graph_id: null, name: 'EOS EVM', diff --git a/data/chains/V2/eos/meta.ts b/data/chains/V2/eos/meta.ts index ecb37b3..77c99b6 100644 --- a/data/chains/V2/eos/meta.ts +++ b/data/chains/V2/eos/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'eos', graph_id: null, name: 'EOS', alt_names: [], standard: 'antelope', + rpc_poller: false, block_type: { label: 'sf.antelope.type.v1.Block', url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', diff --git a/data/chains/V2/eos/testnets/jungle4/meta.ts b/data/chains/V2/eos/testnets/jungle4/meta.ts index 24f656a..7810c30 100644 --- a/data/chains/V2/eos/testnets/jungle4/meta.ts +++ b/data/chains/V2/eos/testnets/jungle4/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'jungle4', graph_id: null, name: 'Jungle4', alt_names: [], standard: 'antelope', + rpc_poller: false, block_type: { label: 'sf.antelope.type.v1.Block', url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', diff --git a/data/chains/V2/eos/testnets/kylin/meta.ts b/data/chains/V2/eos/testnets/kylin/meta.ts index 5829f31..2090bfa 100644 --- a/data/chains/V2/eos/testnets/kylin/meta.ts +++ b/data/chains/V2/eos/testnets/kylin/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'kylin', graph_id: null, name: 'Kylin', alt_names: [], standard: 'antelope', + rpc_poller: false, block_type: { label: 'sf.antelope.type.v1.Block', url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', diff --git a/data/chains/V2/eth/consensus/eth-cl/meta.ts b/data/chains/V2/eth/consensus/eth-cl/meta.ts index 57dad2f..f456597 100644 --- a/data/chains/V2/eth/consensus/eth-cl/meta.ts +++ b/data/chains/V2/eth/consensus/eth-cl/meta.ts @@ -1,11 +1,12 @@ -import { ConsensusLayer } from '../../../../../../types/chain.types'; +import { ___InternalConsensusLayer } from '../../../../../../types/chain.types'; -const meta: ConsensusLayer = { +const meta: ___InternalConsensusLayer = { id: 'eth-cl', graph_id: null, name: 'Ethereum Consensus Layer', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/eth/consensus/goerli-cl/meta.ts b/data/chains/V2/eth/consensus/goerli-cl/meta.ts index c659540..a75f5ce 100644 --- a/data/chains/V2/eth/consensus/goerli-cl/meta.ts +++ b/data/chains/V2/eth/consensus/goerli-cl/meta.ts @@ -1,11 +1,12 @@ -import { ConsensusLayer } from '../../../../../../types/chain.types'; +import { ___InternalConsensusLayer } from '../../../../../../types/chain.types'; -const meta: ConsensusLayer = { +const meta: ___InternalConsensusLayer = { id: 'goerli-cl', graph_id: null, name: 'Goerli Consensus Layer', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/eth/consensus/holesky-cl/meta.ts b/data/chains/V2/eth/consensus/holesky-cl/meta.ts index ab57f93..d7e5736 100644 --- a/data/chains/V2/eth/consensus/holesky-cl/meta.ts +++ b/data/chains/V2/eth/consensus/holesky-cl/meta.ts @@ -1,11 +1,12 @@ -import { ConsensusLayer } from '../../../../../../types/chain.types'; +import { ___InternalConsensusLayer } from '../../../../../../types/chain.types'; -const meta: ConsensusLayer = { +const meta: ___InternalConsensusLayer = { id: 'holesky-cl', graph_id: null, name: 'Holesky Consensus Layer', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/eth/consensus/sepolia-cl/meta.ts b/data/chains/V2/eth/consensus/sepolia-cl/meta.ts index 6eff401..78852c6 100644 --- a/data/chains/V2/eth/consensus/sepolia-cl/meta.ts +++ b/data/chains/V2/eth/consensus/sepolia-cl/meta.ts @@ -1,11 +1,12 @@ -import { ConsensusLayer } from '../../../../../../types/chain.types'; +import { ___InternalConsensusLayer } from '../../../../../../types/chain.types'; -const meta: ConsensusLayer = { +const meta: ___InternalConsensusLayer = { id: 'sepolia-cl', graph_id: null, name: 'Sepolia Consensus Layer', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/eth/meta.ts b/data/chains/V2/eth/meta.ts index 2d39ccf..4ea7359 100644 --- a/data/chains/V2/eth/meta.ts +++ b/data/chains/V2/eth/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'eth', graph_id: 'mainnet', name: 'Ethereum', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/eth/testnets/goerli/meta.ts b/data/chains/V2/eth/testnets/goerli/meta.ts index 24f7309..2e5d5ab 100644 --- a/data/chains/V2/eth/testnets/goerli/meta.ts +++ b/data/chains/V2/eth/testnets/goerli/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'goerli', graph_id: null, name: 'Goerli', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/eth/testnets/holesky/meta.ts b/data/chains/V2/eth/testnets/holesky/meta.ts index 7226657..40b2425 100644 --- a/data/chains/V2/eth/testnets/holesky/meta.ts +++ b/data/chains/V2/eth/testnets/holesky/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'holesky', graph_id: null, name: 'Holesky', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/eth/testnets/sepolia/meta.ts b/data/chains/V2/eth/testnets/sepolia/meta.ts index 7d30a6f..a61c306 100644 --- a/data/chains/V2/eth/testnets/sepolia/meta.ts +++ b/data/chains/V2/eth/testnets/sepolia/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'sepolia', graph_id: 'sepolia', name: 'Sepolia', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/fantom/meta.ts b/data/chains/V2/fantom/meta.ts index fb0af7f..51777bb 100644 --- a/data/chains/V2/fantom/meta.ts +++ b/data/chains/V2/fantom/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'fantom', graph_id: 'fantom', name: 'Fantom', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/fuse/meta.ts b/data/chains/V2/fuse/meta.ts index db41a04..f1578be 100644 --- a/data/chains/V2/fuse/meta.ts +++ b/data/chains/V2/fuse/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'fuse', name: 'Fuse', alt_names: [], graph_id: 'fuse', standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/gnosis/consensus/chiado-cl/meta.ts b/data/chains/V2/gnosis/consensus/chiado-cl/meta.ts index 593a0cb..bec80c6 100644 --- a/data/chains/V2/gnosis/consensus/chiado-cl/meta.ts +++ b/data/chains/V2/gnosis/consensus/chiado-cl/meta.ts @@ -1,11 +1,12 @@ -import { ConsensusLayer } from '../../../../../../types/chain.types'; +import { ___InternalConsensusLayer } from '../../../../../../types/chain.types'; -const meta: ConsensusLayer = { +const meta: ___InternalConsensusLayer = { id: 'chiado-cl', graph_id: null, name: 'Chiado Consensus Layer', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/gnosis/consensus/gnosis-cl/meta.ts b/data/chains/V2/gnosis/consensus/gnosis-cl/meta.ts index fd1a92a..bf52a53 100644 --- a/data/chains/V2/gnosis/consensus/gnosis-cl/meta.ts +++ b/data/chains/V2/gnosis/consensus/gnosis-cl/meta.ts @@ -1,11 +1,12 @@ -import { ConsensusLayer } from '../../../../../../types/chain.types'; +import { ___InternalConsensusLayer } from '../../../../../../types/chain.types'; -const meta: ConsensusLayer = { +const meta: ___InternalConsensusLayer = { id: 'gnosis-cl', graph_id: null, name: 'Gnosis Consensus Layer', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/gnosis/meta.ts b/data/chains/V2/gnosis/meta.ts index d2c9e63..3f69feb 100644 --- a/data/chains/V2/gnosis/meta.ts +++ b/data/chains/V2/gnosis/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'gnosis', graph_id: 'gnosis', name: 'Gnosis', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/gnosis/testnets/chiado/meta.ts b/data/chains/V2/gnosis/testnets/chiado/meta.ts index 37455bc..3d346b7 100644 --- a/data/chains/V2/gnosis/testnets/chiado/meta.ts +++ b/data/chains/V2/gnosis/testnets/chiado/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'chiado', graph_id: null, name: 'Chiado', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/index.ts b/data/chains/V2/index.ts index c96fb01..7069f19 100644 --- a/data/chains/V2/index.ts +++ b/data/chains/V2/index.ts @@ -1,3 +1,7 @@ +// This file is auto-generated on pre-commit to avoid maintaining it. +// Do not modify manually as it will be overwritten. +// Last generation on 7/19/2024, 11:35:39 AM. + export { default as arbone } from './arbone/meta'; export { default as arbgoerli } from './arbone/testnets/arbgoerli/meta'; export { default as arbsepolia } from './arbone/testnets/arbsepolia/meta'; @@ -7,6 +11,7 @@ export { default as base } from './base/meta'; export { default as bitcoin } from './bitcoin/meta'; export { default as blast } from './blast/meta'; export { default as boba } from './boba/meta'; +export { default as bobasepolia } from './boba/testnets/bobasepolia/meta'; export { default as bsc } from './bsc/meta'; export { default as chapel } from './bsc/testnets/chapel/meta'; export { default as cardano } from './cardano/meta'; diff --git a/data/chains/V2/kava/meta.ts b/data/chains/V2/kava/meta.ts index 816d825..97a0e9a 100644 --- a/data/chains/V2/kava/meta.ts +++ b/data/chains/V2/kava/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'kava', graph_id: null, name: 'Kava', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/linea/meta.ts b/data/chains/V2/linea/meta.ts index f705859..ff5aacd 100644 --- a/data/chains/V2/linea/meta.ts +++ b/data/chains/V2/linea/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'linea', name: 'Linea', alt_names: [], graph_id: 'linea', standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/litecoin/meta.ts b/data/chains/V2/litecoin/meta.ts index 2aa57b6..f3e5466 100644 --- a/data/chains/V2/litecoin/meta.ts +++ b/data/chains/V2/litecoin/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'litecoin', name: 'Litecoin', alt_names: ['LTC'], graph_id: null, standard: 'ltc20', + rpc_poller: false, block_type: { label: 'sf.litecoin.type.v1.Block', url: 'https://buf.build/streamingfast/firehose-litecoin/docs/main:sf.litecoin.type.v1', diff --git a/data/chains/V2/mode/meta.ts b/data/chains/V2/mode/meta.ts index ada1c2b..24ff79f 100644 --- a/data/chains/V2/mode/meta.ts +++ b/data/chains/V2/mode/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'mode', name: 'Mode Network', alt_names: [], graph_id: 'mode-mainnet', standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/moonbeam/meta.ts b/data/chains/V2/moonbeam/meta.ts index fe13daa..472f24b 100644 --- a/data/chains/V2/moonbeam/meta.ts +++ b/data/chains/V2/moonbeam/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'moonbeam', graph_id: 'moonbeam', name: 'Moonbeam', alt_names: [], standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/near/meta.ts b/data/chains/V2/near/meta.ts index 7ab696e..e34abd1 100644 --- a/data/chains/V2/near/meta.ts +++ b/data/chains/V2/near/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'near', graph_id: 'near-mainnet', name: 'Near', alt_names: [], standard: 'near', + rpc_poller: false, block_type: { label: 'sf.near.type.v1.Block', url: 'https://buf.build/streamingfast/firehose-near/docs/main:sf.near.type.v1', diff --git a/data/chains/V2/near/testnets/neartest/meta.ts b/data/chains/V2/near/testnets/neartest/meta.ts index 11782e7..b995178 100644 --- a/data/chains/V2/near/testnets/neartest/meta.ts +++ b/data/chains/V2/near/testnets/neartest/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'neartest', graph_id: 'near-testnet', name: 'Near-testnet', alt_names: [], standard: 'near', + rpc_poller: false, block_type: { label: 'sf.near.type.v1.Block', url: 'https://buf.build/streamingfast/firehose-near/docs/main:sf.near.type.v1', diff --git a/data/chains/V2/optimism/meta.ts b/data/chains/V2/optimism/meta.ts index a90cd7d..00ce1ed 100644 --- a/data/chains/V2/optimism/meta.ts +++ b/data/chains/V2/optimism/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'optimism', graph_id: 'optimism', name: 'Optimism', alt_names: [], standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/ore/meta.ts b/data/chains/V2/ore/meta.ts index 76a00e5..453b865 100644 --- a/data/chains/V2/ore/meta.ts +++ b/data/chains/V2/ore/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'ore', graph_id: null, name: 'Ore', alt_names: [], standard: 'antelope', + rpc_poller: false, block_type: { label: 'sf.antelope.type.v1.Block', url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', diff --git a/data/chains/V2/ore/testnets/orestage/meta.ts b/data/chains/V2/ore/testnets/orestage/meta.ts index 6edfb20..5b90b72 100644 --- a/data/chains/V2/ore/testnets/orestage/meta.ts +++ b/data/chains/V2/ore/testnets/orestage/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'orestage', graph_id: null, name: 'Ore Stage', alt_names: [], standard: 'antelope', + rpc_poller: false, block_type: { label: 'sf.antelope.type.v1.Block', url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', diff --git a/data/chains/V2/osmosis/meta.ts b/data/chains/V2/osmosis/meta.ts index e0b66b9..291400a 100644 --- a/data/chains/V2/osmosis/meta.ts +++ b/data/chains/V2/osmosis/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'osmosis', graph_id: 'osmosis-1', name: 'Osmosis', alt_names: [], standard: 'cosmos', + rpc_poller: false, block_type: { label: 'sf.cosmos.type.v1.Block', url: 'https://github.com/figment-networks/proto-cosmos/blob/main/sf/cosmos/type/v1/type.proto', diff --git a/data/chains/V2/polygon/meta.ts b/data/chains/V2/polygon/meta.ts index 90a5cf1..d791722 100644 --- a/data/chains/V2/polygon/meta.ts +++ b/data/chains/V2/polygon/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'polygon', graph_id: 'matic', name: 'Polygon', alt_names: ['matic'], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/polygon/testnets/amoy/meta.ts b/data/chains/V2/polygon/testnets/amoy/meta.ts index e0e3941..7f5c410 100644 --- a/data/chains/V2/polygon/testnets/amoy/meta.ts +++ b/data/chains/V2/polygon/testnets/amoy/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'amoy', graph_id: 'polygon-amoy', name: 'Amoy', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/polygon/testnets/mumbai/meta.ts b/data/chains/V2/polygon/testnets/mumbai/meta.ts index 7b95805..adc4b61 100644 --- a/data/chains/V2/polygon/testnets/mumbai/meta.ts +++ b/data/chains/V2/polygon/testnets/mumbai/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'mumbai', graph_id: null, name: 'Mumbai', alt_names: [], standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/ronin/meta.ts b/data/chains/V2/ronin/meta.ts index 48bf7a4..ed9583c 100644 --- a/data/chains/V2/ronin/meta.ts +++ b/data/chains/V2/ronin/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'ronin', graph_id: null, name: 'Ronin', alt_names: [], standard: 'rrc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/scroll/meta.ts b/data/chains/V2/scroll/meta.ts index cb1aef7..e572ab6 100644 --- a/data/chains/V2/scroll/meta.ts +++ b/data/chains/V2/scroll/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'scroll', graph_id: 'scroll', name: 'Scroll', alt_names: [], standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/sei/meta.ts b/data/chains/V2/sei/meta.ts index fd7b846..e01bb9c 100644 --- a/data/chains/V2/sei/meta.ts +++ b/data/chains/V2/sei/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'sei', graph_id: null, name: 'Sei', alt_names: [], standard: 'sei', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/starknet/meta.ts b/data/chains/V2/starknet/meta.ts index e5b1975..bc3b7b3 100644 --- a/data/chains/V2/starknet/meta.ts +++ b/data/chains/V2/starknet/meta.ts @@ -1,18 +1,17 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'starknet', graph_id: null, - name: 'Starknet', // missing - alt_names: [], // missing - standard: 'erc20', // missing + name: 'Starknet', + alt_names: [], + standard: 'erc20', + rpc_poller: false, block_type: { - // missing label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', }, icon: { - // missing id: 'networks/starknet', brand_theme: 'both', variants: ['branded', 'mono'], diff --git a/data/chains/V2/telos/meta.ts b/data/chains/V2/telos/meta.ts index 475aa8d..adb707c 100644 --- a/data/chains/V2/telos/meta.ts +++ b/data/chains/V2/telos/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'telos', graph_id: null, name: 'Telos', alt_names: [], standard: 'antelope', + rpc_poller: false, block_type: { label: 'sf.antelope.type.v1.Block', url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', diff --git a/data/chains/V2/telos/testnets/telostest/meta.ts b/data/chains/V2/telos/testnets/telostest/meta.ts index 9aaee5b..34366b0 100644 --- a/data/chains/V2/telos/testnets/telostest/meta.ts +++ b/data/chains/V2/telos/testnets/telostest/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'telostest', graph_id: null, name: 'Telos Test', alt_names: [], standard: 'antelope', + rpc_poller: false, block_type: { label: 'sf.antelope.type.v1.Block', url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', diff --git a/data/chains/V2/wax/meta.ts b/data/chains/V2/wax/meta.ts index 9e2a5a6..3e14561 100644 --- a/data/chains/V2/wax/meta.ts +++ b/data/chains/V2/wax/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'wax', graph_id: null, name: 'WAX', alt_names: [], standard: 'antelope', + rpc_poller: false, block_type: { label: 'sf.antelope.type.v1.Block', url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', diff --git a/data/chains/V2/wax/testnets/waxtest/meta.ts b/data/chains/V2/wax/testnets/waxtest/meta.ts index 0d7f587..d9a1acd 100644 --- a/data/chains/V2/wax/testnets/waxtest/meta.ts +++ b/data/chains/V2/wax/testnets/waxtest/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'waxtest', graph_id: null, name: 'WAX Test', alt_names: [], standard: 'antelope', + rpc_poller: false, block_type: { label: 'sf.antelope.type.v1.Block', url: 'https://buf.build/pinax/firehose-antelope/docs/main:sf.antelope.type.v1', diff --git a/data/chains/V2/x-layer/meta.ts b/data/chains/V2/x-layer/meta.ts index dbe468b..a062969 100644 --- a/data/chains/V2/x-layer/meta.ts +++ b/data/chains/V2/x-layer/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'x-layer', graph_id: null, name: 'X-Layer', alt_names: [], standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/xai/meta.ts b/data/chains/V2/xai/meta.ts index 6eaa7c5..5fac7cf 100644 --- a/data/chains/V2/xai/meta.ts +++ b/data/chains/V2/xai/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'xai', name: 'XAI', alt_names: [], graph_id: null, standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/chains/V2/zkastar/meta.ts b/data/chains/V2/zkastar/meta.ts index 13cce4d..75ed9de 100644 --- a/data/chains/V2/zkastar/meta.ts +++ b/data/chains/V2/zkastar/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'zkastar', name: 'Astar zkEVM', alt_names: [], graph_id: null, standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.zkevm.type.v1.Block', url: 'https://buf.build/pinax/firehose-zkevm/docs/main:sf.zkevm.type.v1', diff --git a/data/chains/V2/zkastar/testnets/zkatana/meta.ts b/data/chains/V2/zkastar/testnets/zkatana/meta.ts index 8c55f11..2898998 100644 --- a/data/chains/V2/zkastar/testnets/zkatana/meta.ts +++ b/data/chains/V2/zkastar/testnets/zkatana/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'zkatana', name: 'Astar zKatana', alt_names: [], graph_id: null, standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.zkevm.type.v1.Block', url: 'https://buf.build/pinax/firehose-zkevm/docs/main:sf.zkevm.type.v1', diff --git a/data/chains/V2/zkastar/testnets/zkyoto/meta.ts b/data/chains/V2/zkastar/testnets/zkyoto/meta.ts index 0c9748e..0124b4f 100644 --- a/data/chains/V2/zkastar/testnets/zkyoto/meta.ts +++ b/data/chains/V2/zkastar/testnets/zkyoto/meta.ts @@ -1,11 +1,12 @@ -import { Testnet } from '../../../../../../types/chain.types'; +import { ___InternalTestnet } from '../../../../../../types/chain.types'; -const meta: Testnet = { +const meta: ___InternalTestnet = { id: 'zkyoto', name: 'Astar zKyoto', alt_names: [], graph_id: 'zkyoto-testnet', standard: 'erc20', + rpc_poller: true, block_type: { label: 'sf.zkevm.type.v1.Block', url: 'https://buf.build/pinax/firehose-zkevm/docs/main:sf.zkevm.type.v1', diff --git a/data/chains/V2/zksync/meta.ts b/data/chains/V2/zksync/meta.ts index c6845f4..2a5985b 100644 --- a/data/chains/V2/zksync/meta.ts +++ b/data/chains/V2/zksync/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'zksync', graph_id: 'zksync-era', name: 'zkSync Era', alt_names: [], - standard: 'rrc20', + standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', @@ -22,6 +23,7 @@ const meta: Chain = { }, metadata: { website: 'https://zksync.io/', + tags: ['zk'], }, }; diff --git a/data/chains/V2/zora/meta.ts b/data/chains/V2/zora/meta.ts index 8573b8f..291c938 100644 --- a/data/chains/V2/zora/meta.ts +++ b/data/chains/V2/zora/meta.ts @@ -1,11 +1,12 @@ -import { Chain } from '../../../../types/chain.types'; +import { ___InternalChain } from '../../../../types/chain.types'; -const meta: Chain = { +const meta: ___InternalChain = { id: 'zora', name: 'Zora Network', alt_names: [], graph_id: null, standard: 'erc20', + rpc_poller: false, block_type: { label: 'sf.ethereum.type.v2.Block', url: 'https://buf.build/streamingfast/firehose-ethereum/docs/main:sf.ethereum.type.v2', diff --git a/data/index.config.ts b/data/index.config.ts index c8146f8..d3c0473 100644 --- a/data/index.config.ts +++ b/data/index.config.ts @@ -2,7 +2,7 @@ // Chains under ordered were manually placed, to manage the z-index (priority order) of chains. // Chains under missing are generated from available data, make sure to order them. // Include deprecated or future chains. -// Last generation on 6/3/2024, 9:24:30 AM. +// Last generation on 7/19/2024, 11:35:39 AM. export default { ordered: { @@ -39,7 +39,7 @@ export default { telos: ['telostest'], kava: [], blast: [], - boba: [], + boba: ['bobasepolia'], cronos: [], fuse: [], linea: [], diff --git a/package-lock.json b/package-lock.json index 8e430d5..24c6763 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,9 @@ "devDependencies": { "@token-icons/core": "^2.8.2", "@types/bun": "latest", + "@types/jest": "^29.5.12", "husky": "^9.0.11", + "jest": "^29.7.0", "prettier": "^3.2.5", "ts-morph": "^22.0.0" }, @@ -18,580 +20,6034 @@ "typescript": "^5.4.4" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">= 8" + "node": ">=6.0.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@babel/compat-data": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" } }, - "node_modules/@token-icons/core": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/@token-icons/core/-/core-2.8.2.tgz", - "integrity": "sha512-wK29YO8DJbFbbsfZd1mN1jxuDxBC/gZMJUpTtDzdk6afMY2O/3tsMC+k9Mt9/OYzOKg+4J3yy6vsqwaLwdN75w==", + "node_modules/@babel/core": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", "dev": true, - "peerDependencies": { - "typescript": "^5.0.0" + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@ts-morph/common": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.23.0.tgz", - "integrity": "sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==", + "node_modules/@babel/generator": { + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", "dev": true, "dependencies": { - "fast-glob": "^3.3.2", - "minimatch": "^9.0.3", - "mkdirp": "^3.0.1", - "path-browserify": "^1.0.1" + "@babel/types": "^7.24.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@types/bun": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.1.2.tgz", - "integrity": "sha512-pRBDD3EDqPf83qe95i3EpYu5G2J8bbb78a3736vnCm2K8YWtEE5cvJUq2jkKvJhW07YTfQtbImywIwRhWL8z3Q==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", "dev": true, "dependencies": { - "bun-types": "1.1.8" + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, "dependencies": { - "@types/node": "*" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/bun-types": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.1.8.tgz", - "integrity": "sha512-dwhfuUKSGK8hm5Llcvb5+ejRh+4mIt8ibObJVKhZBsi0ScpXmt+AlaS1eDW6uRXCHj084Qt0kIqAJ08/7ZGC9Q==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", "dev": true, "dependencies": { - "@types/node": "~20.12.8", - "@types/ws": "~8.5.10" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/code-block-writer": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.1.tgz", - "integrity": "sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==", - "dev": true + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { - "node": ">=8.6.0" + "node": ">=6.9.0" } }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, "dependencies": { - "reusify": "^1.0.4" + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.8" }, "engines": { - "node": ">= 6" + "node": ">=6.9.0" } }, - "node_modules/husky": { - "version": "9.0.11", + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, - "license": "MIT", - "bin": { - "husky": "bin.mjs" + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" + "node": ">=6.9.0" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=0.12.0" + "node": ">=0.8.0" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8.6" + "node": ">=4" } }, - "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "node_modules/@babel/parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, - "bin": { - "mkdirp": "dist/cjs/src/bin.js" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "engines": { - "node": ">=8.6" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/prettier": { - "version": "3.2.5", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">=14" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, - "funding": [ - { - "type": "github", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@token-icons/core": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@token-icons/core/-/core-2.8.2.tgz", + "integrity": "sha512-wK29YO8DJbFbbsfZd1mN1jxuDxBC/gZMJUpTtDzdk6afMY2O/3tsMC+k9Mt9/OYzOKg+4J3yy6vsqwaLwdN75w==", + "dev": true, + "peerDependencies": { + "typescript": "^5.0.0" + } + }, + "node_modules/@ts-morph/common": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.23.0.tgz", + "integrity": "sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==", + "dev": true, + "dependencies": { + "fast-glob": "^3.3.2", + "minimatch": "^9.0.3", + "mkdirp": "^3.0.1", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/bun": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.1.2.tgz", + "integrity": "sha512-pRBDD3EDqPf83qe95i3EpYu5G2J8bbb78a3736vnCm2K8YWtEE5cvJUq2jkKvJhW07YTfQtbImywIwRhWL8z3Q==", + "dev": true, + "dependencies": { + "bun-types": "1.1.8" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/bun-types": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.1.8.tgz", + "integrity": "sha512-dwhfuUKSGK8hm5Llcvb5+ejRh+4mIt8ibObJVKhZBsi0ScpXmt+AlaS1eDW6uRXCHj084Qt0kIqAJ08/7ZGC9Q==", + "dev": true, + "dependencies": { + "@types/node": "~20.12.8", + "@types/ws": "~8.5.10" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001642", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz", + "integrity": "sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/code-block-writer": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.1.tgz", + "integrity": "sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==", + "dev": true + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.829", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.829.tgz", + "integrity": "sha512-5qp1N2POAfW0u1qGAxXEtz6P7bO1m6gpZr5hdf5ve6lxpLM7MpiM4jIPz7xcrNlClQMafbyUDDWjlIQZ1Mw0Rw==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "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" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/husky": { + "version": "9.0.11", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.mjs" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^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", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.17.tgz", + "integrity": "sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", "url": "https://github.com/sponsors/feross" }, { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-morph": { + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-22.0.0.tgz", + "integrity": "sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==", + "dev": true, + "dependencies": { + "@ts-morph/common": "~0.23.0", + "code-block-writer": "^13.0.1" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", + "dev": true + }, + "@babel/core": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", + "dev": true, + "requires": { + "@babel/types": "^7.24.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true + }, + "@babel/helpers": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", + "dev": true, + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.8" + } + }, + "@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/traverse": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + } + }, + "@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + } + }, + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + } + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@token-icons/core": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@token-icons/core/-/core-2.8.2.tgz", + "integrity": "sha512-wK29YO8DJbFbbsfZd1mN1jxuDxBC/gZMJUpTtDzdk6afMY2O/3tsMC+k9Mt9/OYzOKg+4J3yy6vsqwaLwdN75w==", + "dev": true, + "requires": {} + }, + "@ts-morph/common": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.23.0.tgz", + "integrity": "sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==", + "dev": true, + "requires": { + "fast-glob": "^3.3.2", + "minimatch": "^9.0.3", + "mkdirp": "^3.0.1", + "path-browserify": "^1.0.1" + } + }, + "@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/bun": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.1.2.tgz", + "integrity": "sha512-pRBDD3EDqPf83qe95i3EpYu5G2J8bbb78a3736vnCm2K8YWtEE5cvJUq2jkKvJhW07YTfQtbImywIwRhWL8z3Q==", + "dev": true, + "requires": { + "bun-types": "1.1.8" + } + }, + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dev": true, + "requires": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "requires": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + } + } + }, + "babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.1.0" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bun-types": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.1.8.tgz", + "integrity": "sha512-dwhfuUKSGK8hm5Llcvb5+ejRh+4mIt8ibObJVKhZBsi0ScpXmt+AlaS1eDW6uRXCHj084Qt0kIqAJ08/7ZGC9Q==", + "dev": true, + "requires": { + "@types/node": "~20.12.8", + "@types/ws": "~8.5.10" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001642", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001642.tgz", + "integrity": "sha512-3XQ0DoRgLijXJErLSl+bLnJ+Et4KqV1PY6JJBGAFlsNsz31zeAIncyeZfLCabHK/jtSh+671RM9YMldxjUPZtA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "code-block-writer": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.1.tgz", + "integrity": "sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "requires": {} + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.829", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.829.tgz", + "integrity": "sha512-5qp1N2POAfW0u1qGAxXEtz6P7bO1m6gpZr5hdf5ve6lxpLM7MpiM4jIPz7xcrNlClQMafbyUDDWjlIQZ1Mw0Rw==", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "requires": { + "@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" + } + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - { - "type": "consulting", - "url": "https://feross.org/support" + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } } - ] + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "requires": { + "function-bind": "^1.1.2" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "husky": { + "version": "9.0.11", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "requires": { + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/ts-morph": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-22.0.0.tgz", - "integrity": "sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==", + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, - "dependencies": { - "@ts-morph/common": "~0.23.0", - "code-block-writer": "^13.0.1" + "requires": { + "hasown": "^2.0.2" } }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true - } - }, - "dependencies": { - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "is-extglob": "^2.1.1" } }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "dependencies": { + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true + } } }, - "@token-icons/core": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/@token-icons/core/-/core-2.8.2.tgz", - "integrity": "sha512-wK29YO8DJbFbbsfZd1mN1jxuDxBC/gZMJUpTtDzdk6afMY2O/3tsMC+k9Mt9/OYzOKg+4J3yy6vsqwaLwdN75w==", + "istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "requires": {} + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + } }, - "@ts-morph/common": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.23.0.tgz", - "integrity": "sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==", + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { - "fast-glob": "^3.3.2", - "minimatch": "^9.0.3", - "mkdirp": "^3.0.1", - "path-browserify": "^1.0.1" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" } }, - "@types/bun": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/bun/-/bun-1.1.2.tgz", - "integrity": "sha512-pRBDD3EDqPf83qe95i3EpYu5G2J8bbb78a3736vnCm2K8YWtEE5cvJUq2jkKvJhW07YTfQtbImywIwRhWL8z3Q==", + "istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "requires": { - "bun-types": "1.1.8" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, - "@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "requires": { - "undici-types": "~5.26.4" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" } }, - "@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "requires": { - "@types/node": "*" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + } + }, + "jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + } + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + } + }, + "jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "requires": { - "balanced-match": "^1.0.0" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, - "bun-types": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.1.8.tgz", - "integrity": "sha512-dwhfuUKSGK8hm5Llcvb5+ejRh+4mIt8ibObJVKhZBsi0ScpXmt+AlaS1eDW6uRXCHj084Qt0kIqAJ08/7ZGC9Q==", + "jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "requires": { - "@types/node": "~20.12.8", - "@types/ws": "~8.5.10" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" } }, - "code-block-writer": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.1.tgz", - "integrity": "sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==", + "jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true }, - "fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "requires": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + } + }, + "jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + } + }, + "jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^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", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true + } + } + }, + "jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } } }, - "fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "requires": { - "reusify": "^1.0.4" + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "husky": { - "version": "9.0.11", + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "p-locate": "^4.1.0" } }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "merge2": { @@ -610,6 +6066,12 @@ "picomatch": "^2.3.1" } }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, "minimatch": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", @@ -625,28 +6087,256 @@ "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.17.tgz", + "integrity": "sha512-Ww6ZlOiEQfPfXM45v17oabk77Z7mg5bOt7AjDyzy7RjK9OrLrLC8dyZQoAPEOtFX9SaNf1Tdvr5gRJWdTJj7GA==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, "path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, "prettier": { "version": "3.2.5", "dev": true }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -662,6 +6352,183 @@ "queue-microtask": "^1.2.2" } }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -681,6 +6548,18 @@ "code-block-writer": "^13.0.1" } }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, "typescript": { "version": "5.4.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", @@ -692,6 +6571,111 @@ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true + }, + "update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "dev": true, + "requires": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + } + }, + "v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index 837c946..c563e32 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,9 @@ "devDependencies": { "@token-icons/core": "^2.8.2", "@types/bun": "latest", + "@types/jest": "^29.5.12", "husky": "^9.0.11", + "jest": "^29.7.0", "prettier": "^3.2.5", "ts-morph": "^22.0.0" }, diff --git a/scripts/generate/V2/data_index.ts b/scripts/generate/V2/data_index.ts index 5689c83..16db0dc 100644 --- a/scripts/generate/V2/data_index.ts +++ b/scripts/generate/V2/data_index.ts @@ -7,6 +7,11 @@ console.log('🕑 Generating data index...'); const dataDir = path.join(__dirname, '../../../', 'data/chains/V2'); let indexContent = ''; +// Generate the GraphId type definition +const indexGeneratedComment = `// This file is auto-generated on pre-commit to avoid maintaining it.\n// Do not modify manually as it will be overwritten.\n// Last generation on ${new Date().toLocaleString()}.\n\n`; + +indexContent += indexGeneratedComment; + fs.readdirSync(dataDir).forEach((mainnetDir) => { // Ignore index.ts and chains.json files if (mainnetDir === 'index.ts' || mainnetDir === 'chains.json') return; diff --git a/scripts/generate/V2/data_json.ts b/scripts/generate/V2/data_json.ts index 1e7ac87..0d0d916 100644 --- a/scripts/generate/V2/data_json.ts +++ b/scripts/generate/V2/data_json.ts @@ -4,7 +4,12 @@ import * as chainData from '../../../data/chains/V2/index'; import { toCamelCase } from '../../../utils/case'; import indexConf from '../../../data/index.config'; import { IndexConfig } from './index_config_check'; -import { Chain, SupportedServices } from '../../../types'; +import { + Chain, + ServiceID, + ServiceStatusDates, + SupportedServices, +} from '../../../types'; interface SubnetData { id: string; @@ -25,54 +30,39 @@ const data: Chain[] = []; let indexCounter = 0; -const generateSupportedServicesDatesFromCache = ( - services: SupportedServices, -) => { +const generateSupportedServicesDatesFromCache = (services: { + [key: string]: string; +}): SupportedServices => { const currentDate = new Date().toISOString(); + const cacheFilePath = path.join( + __dirname, + '../../../data/V2/chains-lock.json', + ); + const updatedServices: any = {}; + + for (const service in services) { + const status = services[service]; + updatedServices[service as ServiceID] = { + beta_released_at: null, + full_released_at: null, + deprecated_at: null, + } as ServiceStatusDates; - return Object.entries(services).reduce((acc, [service, status]) => { switch (status) { case 'beta': - // @ts-ignore - acc[service] = { - beta_released_at: currentDate, - full_released_at: null, - deprecated_at: null, - }; + updatedServices[service].beta_released_at = currentDate; break; case 'released': - // @ts-ignore - acc[service] = { - // @ts-ignore - beta_released_at: acc[service]?.beta_released_at || currentDate, - full_released_at: currentDate, - deprecated_at: null, - }; + updatedServices[service].full_released_at = currentDate; break; case 'deprecated': - // @ts-ignore - acc[service] = { - // @ts-ignore - beta_released_at: currentDate, // Make sure it was once released - full_released_at: currentDate, // Make sure it was once released - ...acc[service], // Overwrite with existing data - deprecated_at: currentDate, - }; - break; - case 'unreleased': - // @ts-ignore - acc[service] = { - beta_released_at: null, - full_released_at: null, - deprecated_at: null, - }; + updatedServices[service].deprecated_at = currentDate; break; - default: - throw new Error(`Unsupported status: ${status}`); + // No case for "unreleased" as all dates remain null } + } - return acc; - }, {} as SupportedServices); + return updatedServices; }; Object.keys(indexConf.ordered).forEach((mainnet, mainnetIndex) => { diff --git a/tests/assert_deprecated_filter.test.ts b/tests/assert_deprecated_filter.test.ts deleted file mode 100644 index 28f0324..0000000 --- a/tests/assert_deprecated_filter.test.ts +++ /dev/null @@ -1 +0,0 @@ -// Test the noDeprecatedFilter function in the utils.ts file. diff --git a/tests/assert_flatten_filter_sort_chain.test.ts b/tests/assert_flatten_filter_sort_chain.test.ts deleted file mode 100644 index 5fbdb66..0000000 --- a/tests/assert_flatten_filter_sort_chain.test.ts +++ /dev/null @@ -1,107 +0,0 @@ -// Test the filterSortChain function in the utils.ts file. -import fs from 'fs'; -import { expect, test, describe, beforeEach } from 'bun:test'; -import { filterSortChains, isChainSupported } from '../utils/chains'; -import { Chain, ChainBase } from '../types'; - -// Read and parse the chains.json file -let chains = JSON.parse( - fs.readFileSync('./data/chains/V2/chains.json', 'utf-8'), -); - -describe('filterSortChain', () => { - beforeEach(() => { - // Reset the chains variable before each test - chains = JSON.parse( - fs.readFileSync('./data/chains/V2/chains.json', 'utf-8'), - ); - }); - - test('should return an empty array if no chains are provided', () => { - const result = filterSortChains([]); - - // fs.writeFileSync('./filterSortChain.1.json', JSON.stringify(result)); - - expect(result).toHaveLength(0); - }); - - test('should return all supported mainnets if a chains array is provided with no other params', () => { - const result = filterSortChains(chains); - - // fs.writeFileSync('./filterSortChain.2.json', JSON.stringify(result)); - - expect(result).toHaveLength( - chains.filter((chain: Chain) => isChainSupported(chain)).length, - ); - }); - - test('should filter the chains based on the provided filter function', () => { - // Define a filter function that only returns the eth chain - // Emulates a search for the ethereum chain - const filterFn = (chain: ChainBase) => - chain.name.toLocaleLowerCase().indexOf('eth') !== -1 || - chain.id.toLocaleLowerCase().indexOf('eth') !== -1 || - chain.alt_names.includes('eth'); - - const result = filterSortChains(chains, () => 0, filterFn); - - // fs.writeFileSync('./filterSortChain.3.json', JSON.stringify(result)); - - expect(result).toHaveLength(1); - }); - - test('should sort the chains based on the provided sort function', () => { - // Define a sort function that sorts the chains in reverse alphabetical order - const sortFn = (a: ChainBase, b: ChainBase) => b.name.localeCompare(a.name); - const result = filterSortChains(chains, sortFn); - - // fs.writeFileSync('./filterSortChain.4.json', JSON.stringify(result)); - - const sortedChains = chains - .filter((chain: Chain) => isChainSupported(chain)) - .sort((a: ChainBase, b: ChainBase) => b.name.localeCompare(a.name)); - expect(result).toEqual(sortedChains); - }); - - test('should include beta chains if includeBeta is true', () => { - const result = filterSortChains( - chains, - () => 0, - () => true, - true, - ); - - // fs.writeFileSync('./filterSortChain.5.json', JSON.stringify(result)); - - expect(result).toHaveLength( - chains.filter((chain: Chain) => isChainSupported(chain, true)).length, - ); - }); - - test('should include testnets if includeTestnet is true', () => { - const result = filterSortChains( - chains, - () => 0, - () => true, - false, - true, - ); - - fs.writeFileSync('./filterSortChain.6.json', JSON.stringify(result)); - - const eth = result.find((chain) => chain.id === 'eth') as Chain; - const ethTestnets = eth?.testnets?.length || 0; - - expect(ethTestnets).toBeGreaterThan(0); - }); - - // test('should include consensus layers if includeConsensusLayer is true', () => { - // // Fail First - // expect(true).toBe(false); - // }); - - // test('should include EVMs if includeEVM is true', () => { - // // Fail First - // expect(true).toBe(false); - // }); -}); diff --git a/tests/assert_no_substreams_wo_firehose.test.ts b/tests/assert_no_substreams_wo_firehose.test.ts deleted file mode 100644 index bb85137..0000000 --- a/tests/assert_no_substreams_wo_firehose.test.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Test to make sure that each chain that has a Substreams service -// also has a Firehose service (which it's dependent on). diff --git a/tests/assert_supported_utils.test.ts b/tests/assert_supported_utils.test.ts deleted file mode 100644 index d28a14e..0000000 --- a/tests/assert_supported_utils.test.ts +++ /dev/null @@ -1,4 +0,0 @@ -// Tests the supported util functions -// (isFirehoseSupported, isSubstreamsSupported, isRpcSupported, -// isChainSupported, wasFirehoseOnceSupported, wasSubstreamsOnceSupported, -// wasRpcOnceSupported) in utils/chains.ts diff --git a/tests/assert_unexported_chains.test.ts b/tests/assert_unexported_chains.test.ts deleted file mode 100644 index 3322c2c..0000000 --- a/tests/assert_unexported_chains.test.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Test to make sure that each chain is exported in the index.config.ts file -// and exists in the chains.json file. diff --git a/tests/assert_unique_index.test.ts b/tests/assert_unique_index.test.ts deleted file mode 100644 index 379cb85..0000000 --- a/tests/assert_unique_index.test.ts +++ /dev/null @@ -1 +0,0 @@ -// Test that each chain has a unique index in the index.config.ts file diff --git a/tests/assert_valid_icons.test.ts b/tests/assert_valid_icons.test.ts deleted file mode 100644 index 75bd208..0000000 --- a/tests/assert_valid_icons.test.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Test that each chain has a valid icon configuration in the meta.ts file -// and that the icon SVG available variants exists in the chain's directory. diff --git a/tests/chain_exported.test.ts b/tests/chain_exported.test.ts new file mode 100644 index 0000000..200676c --- /dev/null +++ b/tests/chain_exported.test.ts @@ -0,0 +1,32 @@ +import fs from 'fs'; +import path from 'path'; +import { Chain } from '../types'; +import { findChainById } from '../utils/chains'; +import indexConfig from '../data/index.config'; + +const setup = (): Array => { + // read the data file as JSON + const chainsFile = path.join(__dirname, '../', 'data/chains/V2/chains.json'); + if (fs.existsSync(chainsFile)) { + const chains = JSON.parse(fs.readFileSync(chainsFile, 'utf8')); + return chains; + } + return []; +}; + +describe('chain_exported', () => { + let chains: Array; + beforeAll(() => { + chains = setup(); + }); + + it('assert_every_indexconfig_chain_is_exported', () => { + const allChainIds = Object.values(indexConfig.ordered).flat(); + + allChainIds.forEach((chainId) => { + const chain = findChainById(chains, chainId); + expect(chain).toBeDefined(); + expect(chain?.id).toBe(chainId); + }); + }); +}); diff --git a/tests/chain_find_by_id.test.ts b/tests/chain_find_by_id.test.ts new file mode 100644 index 0000000..f492c22 --- /dev/null +++ b/tests/chain_find_by_id.test.ts @@ -0,0 +1,51 @@ +import fs from 'fs'; +import path from 'path'; +import { Chain } from '../types'; +import { findChainById, hasChainFullBlockSupport } from '../utils/chains'; + +const setup = (): Array => { + // read the data file as JSON + const chainsFile = path.join(__dirname, '../', 'data/chains/V2/chains.json'); + if (fs.existsSync(chainsFile)) { + const chains = JSON.parse(fs.readFileSync(chainsFile, 'utf8')); + return chains; + } + return []; +}; + +describe('chain_find_by_id', () => { + let chains: Array; + beforeAll(() => { + chains = setup(); + }); + + test('assert_find_mainnet___returns_mainnet', () => { + const chainID = 'eth'; + let chain = findChainById(chains, chainID) as Chain; + expect(chain.id).toBe(chainID); + }); + + test('assert_find_testnet___returns_testnet', () => { + const chainID = 'holesky'; + let chain = findChainById(chains, chainID) as Chain; + expect(chain.id).toBe(chainID); + }); + + test('assert_find_consensus_layer___returns_consensus_layer', () => { + const chainID = 'eth-cl'; + let chain = findChainById(chains, chainID) as Chain; + expect(chain.id).toBe(chainID); + }); + + test('assert_find_evm___returns_evm', () => { + const chainID = 'eosevm'; + let chain = findChainById(chains, chainID) as Chain; + expect(chain.id).toBe(chainID); + }); + + test('assert_find_non_existent___returns_undefined', () => { + const chainID = 'this_is_a_chain_id_that_does_not_exist'; + let chain = findChainById(chains, chainID); + expect(chain).toBe(undefined); + }); +}); diff --git a/tests/chain_has_full_block.test.ts b/tests/chain_has_full_block.test.ts new file mode 100644 index 0000000..3b52d6b --- /dev/null +++ b/tests/chain_has_full_block.test.ts @@ -0,0 +1,39 @@ +import fs from 'fs'; +import path from 'path'; +import { Chain } from '../types'; +import { findChainById, hasChainFullBlockSupport } from '../utils/chains'; + +const setup = (): Array => { + // read the data file as JSON + const chainsFile = path.join(__dirname, '../', 'data/chains/V2/chains.json'); + if (fs.existsSync(chainsFile)) { + const chains = JSON.parse(fs.readFileSync(chainsFile, 'utf8')); + return chains; + } + return []; +}; + +describe('chain_has_full_block', () => { + let chains: Array; + beforeAll(() => { + chains = setup(); + }); + + test('assert_full_block_chain___returns_true', () => { + const chainID = 'eth'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(hasChainFullBlockSupport(chain)).toBe(true); + }); + + test('assert_partial_block_chain___returns_false', () => { + const chainID = 'bitcoin'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(hasChainFullBlockSupport(chain)).toBe(false); + }); +}); diff --git a/tests/chain_has_no_substreams_wo_firehose.test.ts b/tests/chain_has_no_substreams_wo_firehose.test.ts new file mode 100644 index 0000000..7c8ba5c --- /dev/null +++ b/tests/chain_has_no_substreams_wo_firehose.test.ts @@ -0,0 +1,30 @@ +import fs from 'fs'; +import path from 'path'; +import { Chain } from '../types'; + +const setup = (): Array => { + // read the data file as JSON + const chainsFile = path.join(__dirname, '../', 'data/chains/V2/chains.json'); + if (fs.existsSync(chainsFile)) { + const chains = JSON.parse(fs.readFileSync(chainsFile, 'utf8')); + return chains; + } + return []; +}; + +describe('chain_has_no_substreams_wo_firehose', () => { + let chains: Array; + beforeAll(() => { + chains = setup(); + }); + + const hasDuplicates = (array: Array) => { + return new Set(array).size !== array.length; + }; + + test('assert_chain_services_are_valid', () => { + expect( + hasDuplicates(chains.map((chain) => chain.index) as Array), + ).toBe(false); + }); +}); diff --git a/tests/chain_is_consensus_layer.test.ts b/tests/chain_is_consensus_layer.test.ts new file mode 100644 index 0000000..ce6711d --- /dev/null +++ b/tests/chain_is_consensus_layer.test.ts @@ -0,0 +1,41 @@ +import fs from 'fs'; +import path from 'path'; +import { Chain } from '../types'; +import { findChainById, isChainConsensusLayer } from '../utils/chains'; + +const setup = (): Array => { + // read the data file as JSON + const chainsFile = path.join(__dirname, '../', 'data/chains/V2/chains.json'); + if (fs.existsSync(chainsFile)) { + const chains = JSON.parse(fs.readFileSync(chainsFile, 'utf8')); + return chains; + } + return []; +}; + +describe('chain_is_consensus_layer', () => { + let chains: Array; + beforeAll(() => { + chains = setup(); + }); + + test('assert_consensus_layer___returns_true', () => { + const chainID = 'eth-cl'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error( + 'Expected ' + chainID + ' Consensus Layer, but got ' + chain.id, + ); + } + expect(isChainConsensusLayer(chain)).toBe(true); + }); + + test('assert_non_consensus_layer___returns_false', () => { + const chainID = 'eth'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ' Mainnet, but got ' + chain.id); + } + expect(isChainConsensusLayer(chain)).toBe(false); + }); +}); diff --git a/tests/chain_is_deprecated.test.ts b/tests/chain_is_deprecated.test.ts new file mode 100644 index 0000000..7471343 --- /dev/null +++ b/tests/chain_is_deprecated.test.ts @@ -0,0 +1,48 @@ +import fs from 'fs'; +import path from 'path'; +import { Chain } from '../types'; +import { findChainById, isChainDeprecated } from '../utils/chains'; + +const setup = (): Array => { + // read the data file as JSON + const chainsFile = path.join(__dirname, '../', 'data/chains/V2/chains.json'); + if (fs.existsSync(chainsFile)) { + const chains = JSON.parse(fs.readFileSync(chainsFile, 'utf8')); + return chains; + } + return []; +}; + +describe('chain_is_deprecated', () => { + let chains: Array; + beforeAll(() => { + chains = setup(); + }); + + test('assert_deprecated_chain___returns_true', () => { + const chainID = 'goerli'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isChainDeprecated(chain)).toBe(true); + }); + + test('assert_supported_chain___returns_false', () => { + const chainID = 'eth'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isChainDeprecated(chain)).toBe(false); + }); + + test('assert_unsupported_chain___returns_false', () => { + const chainID = 'zksync'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isChainDeprecated(chain)).toBe(false); + }); +}); diff --git a/tests/chain_is_service_beta.test.ts b/tests/chain_is_service_beta.test.ts new file mode 100644 index 0000000..9064242 --- /dev/null +++ b/tests/chain_is_service_beta.test.ts @@ -0,0 +1,57 @@ +import fs from 'fs'; +import path from 'path'; +import { Chain } from '../types'; +import { findChainById, isServiceBeta } from '../utils/chains'; + +const setup = (): Array => { + // read the data file as JSON + const chainsFile = path.join(__dirname, '../', 'data/chains/V2/chains.json'); + if (fs.existsSync(chainsFile)) { + const chains = JSON.parse(fs.readFileSync(chainsFile, 'utf8')); + return chains; + } + return []; +}; + +describe('chain_is_service_beta', () => { + let chains: Array; + beforeAll(() => { + chains = setup(); + }); + + test('assert_beta_service___returns_true', () => { + const chainID = 'mode'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isServiceBeta(chain, 'rpc')).toBe(true); + }); + + test('assert_supported_service___returns_false', () => { + const chainID = 'eth'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isServiceBeta(chain, 'rpc')).toBe(false); + }); + + test('assert_deprecated_service___returns_false', () => { + const chainID = 'goerli'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isServiceBeta(chain, 'firehose')).toBe(false); + }); + + test('assert_unsupported_chain___returns_false', () => { + const chainID = 'zksync'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isServiceBeta(chain, 'firehose')).toBe(false); + }); +}); diff --git a/tests/chain_is_service_deprecated.test.ts b/tests/chain_is_service_deprecated.test.ts new file mode 100644 index 0000000..aa0ab88 --- /dev/null +++ b/tests/chain_is_service_deprecated.test.ts @@ -0,0 +1,48 @@ +import fs from 'fs'; +import path from 'path'; +import { Chain } from '../types'; +import { findChainById, isServiceDeprecated } from '../utils/chains'; + +const setup = (): Array => { + // read the data file as JSON + const chainsFile = path.join(__dirname, '../', 'data/chains/V2/chains.json'); + if (fs.existsSync(chainsFile)) { + const chains = JSON.parse(fs.readFileSync(chainsFile, 'utf8')); + return chains; + } + return []; +}; + +describe('chain_is_service_deprecated', () => { + let chains: Array; + beforeAll(() => { + chains = setup(); + }); + + test('assert_deprecated_service___returns_true', () => { + const chainID = 'goerli'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isServiceDeprecated(chain, 'substreams')).toBe(true); + }); + + test('assert_supported_service___returns_false', () => { + const chainID = 'eth'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isServiceDeprecated(chain, 'rpc')).toBe(false); + }); + + test('assert_unsupported_service___returns_false', () => { + const chainID = 'zksync'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isServiceDeprecated(chain, 'firehose')).toBe(false); + }); +}); diff --git a/tests/chain_is_service_supported.test.ts b/tests/chain_is_service_supported.test.ts new file mode 100644 index 0000000..1ce8d79 --- /dev/null +++ b/tests/chain_is_service_supported.test.ts @@ -0,0 +1,48 @@ +import fs from 'fs'; +import path from 'path'; +import { Chain } from '../types'; +import { findChainById, isServiceSupported } from '../utils/chains'; + +const setup = (): Array => { + // read the data file as JSON + const chainsFile = path.join(__dirname, '../', 'data/chains/V2/chains.json'); + if (fs.existsSync(chainsFile)) { + const chains = JSON.parse(fs.readFileSync(chainsFile, 'utf8')); + return chains; + } + return []; +}; + +describe('chain_is_service_supported', () => { + let chains: Array; + beforeAll(() => { + chains = setup(); + }); + + test('assert_supported_service___returns_true', () => { + const chainID = 'eth'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isServiceSupported(chain, 'rpc')).toBe(true); + }); + + test('assert_deprecated_service___returns_false', () => { + const chainID = 'goerli'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isServiceSupported(chain, 'firehose')).toBe(false); + }); + + test('assert_unsupported_chain___returns_false', () => { + const chainID = 'zksync'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isServiceSupported(chain, 'firehose')).toBe(false); + }); +}); diff --git a/tests/chain_is_supported.test.ts b/tests/chain_is_supported.test.ts new file mode 100644 index 0000000..5279b31 --- /dev/null +++ b/tests/chain_is_supported.test.ts @@ -0,0 +1,48 @@ +import fs from 'fs'; +import path from 'path'; +import { Chain } from '../types'; +import { findChainById, isChainSupported } from '../utils/chains'; + +const setup = (): Array => { + // read the data file as JSON + const chainsFile = path.join(__dirname, '../', 'data/chains/V2/chains.json'); + if (fs.existsSync(chainsFile)) { + const chains = JSON.parse(fs.readFileSync(chainsFile, 'utf8')); + return chains; + } + return []; +}; + +describe('chain_is_supported', () => { + let chains: Array; + beforeAll(() => { + chains = setup(); + }); + + test('assert_supported_chain___returns_true', () => { + const chainID = 'eth'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isChainSupported(chain)).toBe(true); + }); + + test('assert_deprecated_chain___returns_false', () => { + const chainID = 'goerli'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isChainSupported(chain)).toBe(false); + }); + + test('assert_unsupported_chain___returns_false', () => { + const chainID = 'zksync'; + let chain = findChainById(chains, chainID) as Chain; + if (chain.id !== chainID) { + throw new Error('Expected ' + chainID + ', but got ' + chain.id); + } + expect(isChainSupported(chain)).toBe(false); + }); +}); diff --git a/types/chain.types.ts b/types/chain.types.ts index d905b83..4bc5176 100644 --- a/types/chain.types.ts +++ b/types/chain.types.ts @@ -1,7 +1,12 @@ import { BlockType } from './block.types'; import { GraphID } from './graph.types'; import { PinaxID } from './pinax.types'; -import { ConsensusLayerServices, SupportedServices } from './service.types'; +import { + ___InternalConsensusLayerServices, + ___InternalSupportedServices, + ConsensusLayerServices, + SupportedServices, +} from './service.types'; import { Standard } from './standard.types'; export type ChainBase = { @@ -24,13 +29,94 @@ export type ChainBase = { // Chain Standard (ie. ERC20) standard: Standard | null; + // Whether or not the chain uses RPC poller + // Chains with RPC poller only offer partial blocks + rpc_poller: boolean; + // Block Type block_type: BlockType; }; +export type ___InternalTestnet = ChainBase & { + // Whether or not the chain supports our existing services + supported_services: ___InternalSupportedServices; + + metadata?: { + // Chain ID that replaces this (deprecated) chain + deprecated_replacing_chain?: PinaxID; + }; +}; + +export type ___InternalConsensusLayer = ChainBase & { + // Whether or not the chain supports our existing services + // Consensus Layers exist only for services built on top of RPC + // (Firehose, Substreams), and not for the RPC service itself. + supported_services: ___InternalConsensusLayerServices; +}; + +export type ___InternalEVM = ChainBase & { + // Whether or not the chain supports our existing services + supported_services: ___InternalSupportedServices; +}; + +/** + * Describes the Data that needs to be provided for a Chain. + * + * The Chain type theb extends the Chain type to include + * the generated fields. + */ +export interface ___InternalChain extends ChainBase { + icon: { + // Token Icon ID + id: string; + + // Theme of the Icon brand + brand_theme: 'light' | 'dark' | 'both'; + + // Generated by ./scripts/generate/data_json.js + variants?: Array<'branded' | 'mono'>; + }; + + // Whether or not the chain supports our existing services + supported_services: ___InternalSupportedServices; + + // Merged by ./scripts/generate/data_json.js + testnets?: Array<___InternalTestnet>; + + // Merged by ./scripts/generate/data_json.js + consensus?: Array<___InternalConsensusLayer>; + + // Merge by ./scripts/generate/data_json.js + evms?: Array<___InternalEVM>; + + // Any additional metadata we want to store (ie. Wagmi) + metadata?: { + // Layer of the chain + layer?: 'L0' | 'L1' | 'L2' | 'L3'; + + // Website of the chain + website?: string; + + // Mainchain ID, if the chain is a sidechain + // Either a PinaxID or a string, as the mainchain may not be in the list of chains + mainchain_id?: PinaxID | string; + + // tags for the chain + tags?: string[]; + + // Chain ID that replaces this (deprecated) chain + deprecated_replacing_chain?: PinaxID; + }; +} + export type Testnet = ChainBase & { // Whether or not the chain supports our existing services supported_services: SupportedServices; + + metadata?: { + // Chain ID that replaces this (deprecated) chain + deprecated_replacing_chain?: PinaxID; + }; }; export type ConsensusLayer = ChainBase & { @@ -86,5 +172,11 @@ export interface Chain extends ChainBase { // Mainchain ID, if the chain is a sidechain // Either a PinaxID or a string, as the mainchain may not be in the list of chains mainchain_id?: PinaxID | string; + + // tags for the chain + tags?: string[]; + + // Chain ID that replaces this (deprecated) chain + deprecated_replacing_chain?: PinaxID; }; } diff --git a/types/graph.types.ts b/types/graph.types.ts index 825d888..6861e89 100644 --- a/types/graph.types.ts +++ b/types/graph.types.ts @@ -1,6 +1,6 @@ // This file is auto-generated on pre-commit to avoid maintaining it. // Do not modify manually as it will be overwritten. -// Last generation on 6/3/2024, 9:24:30 AM. +// Last generation on 7/19/2024, 11:35:39 AM. export type GraphID = | 'arbitrum-one' | 'arbitrum-sepolia' @@ -29,8 +29,8 @@ export type GraphID = | 'gnosis-chiado' | 'harmony' | 'holesky' + | 'iotex' | 'linea' - | 'linea-goerli' | 'linea-sepolia' | 'mainnet' | 'matic' @@ -48,11 +48,13 @@ export type GraphID = | 'polygon-amoy' | 'polygon-zkevm' | 'polygon-zkevm-cardona' - | 'polygon-zkevm-testnet' + | 'rootstock' | 'scroll' | 'scroll-sepolia' + | 'sei-mainnet' | 'sei-testnet' | 'sepolia' + | 'solana-mainnet-beta' | 'theta-testnet-001' | 'xlayer-mainnet' | 'xlayer-sepolia' diff --git a/types/pinax.types.ts b/types/pinax.types.ts index d7501f7..276a7b5 100644 --- a/types/pinax.types.ts +++ b/types/pinax.types.ts @@ -1,6 +1,6 @@ // This file is auto-generated on pre-commit to avoid maintaining it / circular dependencies. // Do not modify manually as it will be overwritten. -// Last generation on 6/3/2024, 9:24:31 AM. +// Last generation on 7/19/2024, 11:35:40 AM. export type PinaxID = | 'arbone' | 'arbgoerli' @@ -11,6 +11,7 @@ export type PinaxID = | 'bitcoin' | 'blast' | 'boba' + | 'bobasepolia' | 'bsc' | 'chapel' | 'cardano' diff --git a/types/service.types.ts b/types/service.types.ts index e52453d..956ccb0 100644 --- a/types/service.types.ts +++ b/types/service.types.ts @@ -13,7 +13,24 @@ export type ServiceEndpointStatus = | 'released' | 'deprecated'; -export type ConsensusLayerServices = { +export type ___InternalConsensusLayerServices = { [key in ConsensusLayerServiceID]: ServiceEndpointStatus; }; -export type SupportedServices = { [key in ServiceID]: ServiceEndpointStatus }; + +export type ___InternalSupportedServices = { + [key in ServiceID]: ServiceEndpointStatus; +}; + +export type ServiceStatusDates = { + beta_released_at: string | null; + full_released_at: string | null; + deprecated_at: string | null; +}; + +export type ConsensusLayerServices = { + [key in ConsensusLayerServiceID]: ServiceStatusDates; +}; + +export type SupportedServices = { + [key in ServiceID]: ServiceStatusDates; +}; diff --git a/utils/chains.ts b/utils/chains.ts index c550d32..d2cb01a 100644 --- a/utils/chains.ts +++ b/utils/chains.ts @@ -1,4 +1,8 @@ -import { chains } from '.'; +import { + ConsensusLayerServiceID, + ServiceID, + ServiceStatusDates, +} from '../types'; import { Chain, ChainBase, @@ -7,208 +11,188 @@ import { Testnet, } from '../types/chain.types'; -const isFirehoseSupported = ( +/** + * Checks whether a service is fully supported. + * + * @param chain Chain, Testnet or ConsensusLayer + * @param service ServiceID or ConsensusLayerServiceID + * + * @returns boolean + */ +const isServiceSupported = ( chain: Chain | Testnet | ConsensusLayer, - checkBeta: boolean = false, -): boolean => { - if (checkBeta) { - return ( - chain?.supported_services?.firehose?.beta.released_at !== null && - chain?.supported_services?.firehose?.beta.deprecated_at === null - ); - } + service: ConsensusLayerServiceID | ServiceID, +) => { + // @ts-ignore + const serviceStatusDates = chain.supported_services[service] as + | ServiceStatusDates + | undefined; return ( - chain?.supported_services?.firehose?.full.released_at !== null && - chain?.supported_services?.firehose?.full.deprecated_at === null + serviceStatusDates && + serviceStatusDates.full_released_at !== null && + serviceStatusDates.deprecated_at === null ); }; -const isSubstreamsSupported = ( +/** + * Checks whether a service is in beta. + * + * @param chain Chain, Testnet or ConsensusLayer + * @param service ServiceID or ConsensusLayerServiceID + * + * @returns boolean + */ +const isServiceBeta = ( chain: Chain | Testnet | ConsensusLayer, - checkBeta: boolean = false, -): boolean => { - if (checkBeta) { - return ( - chain?.supported_services?.substreams?.beta.released_at !== null && - chain?.supported_services?.substreams?.beta.deprecated_at === null - ); - } + service: ConsensusLayerServiceID | ServiceID, +) => { + // @ts-ignore + const serviceStatusDates = chain.supported_services[service] as + | ServiceStatusDates + | undefined; return ( - chain?.supported_services?.substreams?.full.released_at !== null && - chain?.supported_services?.substreams?.full.deprecated_at === null + serviceStatusDates && + serviceStatusDates.beta_released_at !== null && + serviceStatusDates.deprecated_at === null && + !isServiceSupported(chain, service) ); }; -const isRpcSupported = ( +/** + * Checks whether a service was once supported. + * + * @param chain Chain, Testnet or ConsensusLayer + * @param service ServiceID or ConsensusLayerServiceID + * + * @returns boolean + */ +const isServiceDeprecated = ( chain: Chain | Testnet | ConsensusLayer, - checkBeta: boolean = false, -): boolean => { - // Can take a Consensus Layer as parameter but will always return false. - const castedChain = chain as any; - if (castedChain.supported_services.rpc === undefined) { - return false; - } - - if (checkBeta) { - return ( - castedChain?.supported_services?.rpc?.beta.released_at !== null && - castedChain?.supported_services?.rpc?.beta.deprecated_at === null - ); - } - + service: ConsensusLayerServiceID | ServiceID, +) => { + // @ts-ignore + const serviceStatusDates = chain.supported_services[service] as + | ServiceStatusDates + | undefined; return ( - castedChain?.supported_services?.rpc?.released_at !== null && - castedChain?.supported_services?.rpc?.deprecated_at === null + serviceStatusDates && + (serviceStatusDates.beta_released_at !== null || + serviceStatusDates.full_released_at !== null) && + serviceStatusDates.deprecated_at !== null ); }; -const isChainSupported = ( - chain: Chain | Testnet | ConsensusLayer, - checkBeta: boolean = false, -): boolean => { +/** + * Checks whether any service is fully supported for a given chain. + * + * @param chain Chain, Testnet or ConsensusLayer + * + * @returns boolean + */ +const isChainSupported = (chain: Chain | Testnet | ConsensusLayer) => { return ( - isFirehoseSupported(chain, checkBeta) || - isSubstreamsSupported(chain, checkBeta) || - isRpcSupported(chain, checkBeta) + isServiceSupported(chain, 'firehose') || + isServiceSupported(chain, 'substreams') || + isServiceSupported(chain, 'rpc') ); }; -const wasFirehoseOnceSupported = ( - chain: Chain | Testnet | ConsensusLayer, - checkBeta: boolean = false, -): boolean => { - if (checkBeta) { - return chain?.supported_services?.firehose?.beta.released_at !== null; - } - return chain?.supported_services?.firehose?.full.released_at !== null; -}; - -const wasSubstreamsOnceSupported = ( - chain: Chain | Testnet | ConsensusLayer, - checkBeta: boolean = false, -): boolean => { - if (checkBeta) { - return chain?.supported_services?.substreams?.beta.released_at !== null; - } - return chain?.supported_services?.substreams?.full.released_at !== null; +/** + * Checks whether any service is in beta for a given chain. + * + * @param chain Chain, Testnet or ConsensusLayer + * + * @returns boolean + */ +const isChainBeta = (chain: Chain | Testnet | ConsensusLayer) => { + return ( + isServiceBeta(chain, 'firehose') || + isServiceBeta(chain, 'substreams') || + isServiceBeta(chain, 'rpc') + ); }; -const wasRpcOnceSupported = ( - chain: Chain | Testnet | ConsensusLayer, - checkBeta: boolean = false, -): boolean => { - // Can take a Consensus Layer as parameter but will always return false. - const castedChain = chain as any; - if (castedChain.supported_services.rpc === undefined) { - return false; - } - - if (checkBeta) { - return castedChain?.supported_services?.rpc?.beta.released_at !== null; - } - - return castedChain?.supported_services?.rpc?.released_at !== null; +/** + * Checks whether any service was once supported for a given chain. + * + * @param chain Chain, Testnet or ConsensusLayer + * + * @returns boolean + */ +const isChainDeprecated = (chain: Chain | Testnet | ConsensusLayer) => { + return ( + isServiceDeprecated(chain, 'firehose') || + isServiceDeprecated(chain, 'substreams') || + isServiceDeprecated(chain, 'rpc') + ); }; -const wasChainOnceSupported = ( +/** + * Checks whether a chain is a consensus layer. + * + * @param chain Chain, Testnet or ConsensusLayer + * + * @returns boolean + */ +const isChainConsensusLayer = ( chain: Chain | Testnet | ConsensusLayer, - checkBeta: boolean = false, ): boolean => { - return ( - wasFirehoseOnceSupported(chain, checkBeta) || - wasSubstreamsOnceSupported(chain, checkBeta) || - wasRpcOnceSupported(chain, checkBeta) - ); + return chain.id.slice(-3).includes('-cl'); }; /** - * This function takes an array of chains and returns a new array that includes the chains - * and their associated testnets, consensus layers, and EVMs, if the corresponding flags are set to true. - * The chains are first filtered based on a provided filter function and whether they are supported. - * Then they are sorted based on a provided sort function. - * - * Note that the sort function is applied at two levels: first to the chains, - * then to the testnets, consensus layers, and EVMs. This is so that the mainnets and - * their associated testnets, consensus layers, and EVMs remain grouped together in the final array. - * - * @param {Array} chains - The array of chains to be processed. - * @param {(a: ChainBase, b: ChainBase) => number} [sortFn=() => 0] - The function used to sort the chains. - * @param {(chain: ChainBase) => boolean} [filterFn=() => true] - The function used to filter the chains. - * @param {boolean} [includeBeta=false] - Whether to include chains that are in beta. - * @param {boolean} [includeTestnet=false] - Whether to include testnets associated with the chains. - * @param {boolean} [includeConsensusLayer=false] - Whether to include consensus layers associated with the chains. - * @param {boolean} [includeEVM=false] - Whether to include EVMs associated with the chains. - * - * @returns {Array} - The new array of chains, testnets, consensus layers, and EVMs. + * Finds a chain by its ID by scanning mainnets, consensus layers, testnets and EVMs. + * Returns first match. + * + * @param db Array of Chains + * @param id Chain ID + * + * @returns Chain, Testnet or ConsensusLayer */ -const filterSortChains = ( - chains: Array, - sortFn: (a: ChainBase, b: ChainBase) => number = () => 0, - filterFn: (chain: ChainBase) => boolean = () => true, - includeBeta: boolean = false, - includeTestnet: boolean = false, - includeConsensusLayer: boolean = false, - includeEVM: boolean = false, -): Array => { - const __internalFilterSortChains = ( - chains: Array, - ) => { - return ( - chains - // Further filter the chains based on support for Firehose, Substreams, and RPC - // Largest potential filter so we do this first - .filter((chain) => isChainSupported(chain as Chain, includeBeta)) - // First filter the chains based on the filter function (search, etc.) - .filter(filterFn) - // Then sort the chains based on the sort function - .sort(sortFn) - ); - }; - - // First filter-sort Mainnets - let filteredSortedChains = __internalFilterSortChains(chains); - - // Then for each Mainnet, include its testnets, consensus layers, and EVM - // if the flags are set to true - let newFilteredSortedChains: Array = - []; - filteredSortedChains.forEach((chain: any) => { - let modifiedChain = chain; - - if (includeTestnet && chain.testnets !== undefined) { - modifiedChain.testnets = __internalFilterSortChains(chain.testnets); - } else { - delete modifiedChain.testnets; +const findChainById = ( + db: Array, + id: string, +): Chain | Testnet | ConsensusLayer | EVM | undefined => { + for (const chain of db) { + if (chain.id === id) { + return chain; } - - if (includeConsensusLayer && chain.consensus !== undefined) { - modifiedChain.consensus = __internalFilterSortChains(chain.consensus); - } else { - delete modifiedChain.consensus; + const consensus = chain.consensus?.find((consensus) => consensus.id === id); + if (consensus) { + return consensus; } - - if (includeEVM && chain.evms !== undefined) { - modifiedChain.evms = __internalFilterSortChains(chain.evms); - } else { - delete modifiedChain.evms; + const testnet = chain.testnets?.find((testnet) => testnet.id === id); + if (testnet) { + return testnet; + } + const evm = chain.evms?.find((evm) => evm.id === id); + if (evm) { + return evm; } - newFilteredSortedChains.push(modifiedChain); - }); - return newFilteredSortedChains; + } + return undefined; }; -const flattenChains = ( - chains: Array, -): Array => {}; +/** + * Checks whether a chain has full block support. Chains that use RPC poller only + * support partial blocks. + * + * @param chain Chain, Testnet or ConsensusLayer + * + * @returns boolean + */ +const hasChainFullBlockSupport = (chain: Chain | Testnet | ConsensusLayer) => { + return !chain.rpc_poller; +}; export { - isFirehoseSupported, - isSubstreamsSupported, - isRpcSupported, + isServiceSupported, + isServiceBeta, + isServiceDeprecated, isChainSupported, - wasFirehoseOnceSupported, - wasSubstreamsOnceSupported, - wasRpcOnceSupported, - wasChainOnceSupported, - filterSortChains, + isChainBeta, + isChainDeprecated, + isChainConsensusLayer, + findChainById, + hasChainFullBlockSupport, };