diff --git a/bench/cardano-profile/data/all-profiles-coay.json b/bench/cardano-profile/data/all-profiles-coay.json index fdb6b71697b..72d475950ad 100644 --- a/bench/cardano-profile/data/all-profiles-coay.json +++ b/bench/cardano-profile/data/all-profiles-coay.json @@ -18,7 +18,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -120,7 +120,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -330,7 +330,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -353,7 +353,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -384,6 +384,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -407,7 +408,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -509,7 +510,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -719,7 +720,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -742,7 +743,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -773,6 +774,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -798,7 +800,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -903,7 +905,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -1113,7 +1115,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -1136,7 +1138,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -1167,6 +1169,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -1193,7 +1196,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -1295,7 +1298,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -1940,7 +1943,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -1963,7 +1966,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -1994,6 +1997,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -2020,7 +2024,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -2122,7 +2126,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -2767,7 +2771,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -2790,7 +2794,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -2821,6 +2825,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -2847,7 +2852,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -2949,7 +2954,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -3594,7 +3599,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -3617,7 +3622,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -3651,6 +3656,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -3677,7 +3683,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -3779,7 +3785,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -4424,7 +4430,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -4447,7 +4453,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -4478,6 +4484,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -4504,7 +4511,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -4606,7 +4613,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -5251,7 +5258,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -5274,7 +5281,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -5308,6 +5315,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -5334,7 +5342,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -5436,7 +5444,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -6081,7 +6089,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -6104,7 +6112,7 @@ "major": 9, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -6138,6 +6146,835 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, + "withresources": false + }, + "workloads": [] + }, + "6-dense-timeseries-1h": { + "analysis": { + "cluster_base_startup_overhead_s": 40, + "cluster_startup_overhead_s": 240, + "filter_exprs": [ + { + "contents": { + "contents": 5, + "tag": "BMinimumAdoptions" + }, + "tag": "CBlock" + } + ], + "filters": [ + "unitary", + "size-full" + ], + "finish_patience": 21, + "last_log_spread_s": 120, + "minimum_chain_density": 0.025, + "silence_since_last_block_s": 120, + "start_log_spread_s": 120, + "tx_loss_ratio": 0.02, + "type": "standard" + }, + "cli_args": { + "createStakedArgs": [ + "--testnet-magic", + 42, + "--supply", + "10000000000000", + "--gen-utxo-keys", + 1, + "--gen-genesis-keys", + 0, + "--supply-delegated", + "6000000000000000", + "--gen-pools", + 6, + "--gen-stake-delegs", + 100000, + "--num-stuffed-utxo", + "500000" + ], + "createTestnetDataArgs": [ + "--testnet-magic", + 42, + "--total-supply", + "6010000000000000", + "--utxo-keys", + 1, + "--genesis-keys", + 0, + "--delegated-supply", + "6000000000000000", + "--pools", + 6, + "--stake-delegators", + 100000, + "--drep-keys", + 0, + "--stuffed-utxo", + "500000" + ], + "pools": [ + "--argjson", + "initialPoolCoin", + "1000000000000000" + ] + }, + "composition": { + "dense_pool_density": 1, + "locations": [ + "loopback" + ], + "n_bft_hosts": 0, + "n_dense_hosts": 0, + "n_dense_pools": 0, + "n_hosts": 6, + "n_pool_hosts": 6, + "n_pools": 6, + "n_singular_hosts": 6, + "n_singular_pools": 6, + "topology": "torus-dense", + "with_explorer": false, + "with_proxy": false + }, + "derived": { + "dataset_induced_startup_delay_conservative": 240, + "dataset_induced_startup_delay_optimistic": 12, + "dataset_measure": 600000, + "default_value_tx_per_block_estimate": 172, + "default_value_tx_size_estimate": 381, + "delegators_effective": 100000, + "effective_epochs": 6, + "epoch_duration": 600, + "generator_blocks_lower_bound": 289, + "generator_duration": 3600, + "generator_tx_count": 43200, + "genesis_future_offset": 12, + "shutdown_time": 3600, + "supply_delegated": 6000000000000000, + "supply_total": 6010000000000000, + "utxo_delegated": 100000, + "utxo_generated": 86400, + "utxo_stuffed": 500000 + }, + "desc": "Miniature dataset, dense topology on local cluster, 64k blocks", + "era": "conway", + "generator": { + "add_tx_size": 100, + "epochs": 6, + "init_cooldown": 5, + "inputs_per_tx": 2, + "outputs_per_tx": 2, + "plutus": { + "script": null, + "type": null + }, + "tps": 12, + "tx_count": 43200, + "tx_fee": 1000000 + }, + "genesis": { + "active_slots_coeff": 0.05, + "alonzo": { + "collateralPercentage": 150, + "costModels": { + "PlutusV1": { + "addInteger-cpu-arguments-intercept": 205665, + "addInteger-cpu-arguments-slope": 812, + "addInteger-memory-arguments-intercept": 1, + "addInteger-memory-arguments-slope": 1, + "appendByteString-cpu-arguments-intercept": 1000, + "appendByteString-cpu-arguments-slope": 571, + "appendByteString-memory-arguments-intercept": 0, + "appendByteString-memory-arguments-slope": 1, + "appendString-cpu-arguments-intercept": 1000, + "appendString-cpu-arguments-slope": 24177, + "appendString-memory-arguments-intercept": 4, + "appendString-memory-arguments-slope": 1, + "bData-cpu-arguments": 1000, + "bData-memory-arguments": 32, + "blake2b-cpu-arguments-intercept": 117366, + "blake2b-cpu-arguments-slope": 10475, + "blake2b-memory-arguments": 4, + "cekApplyCost-exBudgetCPU": 23000, + "cekApplyCost-exBudgetMemory": 100, + "cekBuiltinCost-exBudgetCPU": 23000, + "cekBuiltinCost-exBudgetMemory": 100, + "cekConstCost-exBudgetCPU": 23000, + "cekConstCost-exBudgetMemory": 100, + "cekDelayCost-exBudgetCPU": 23000, + "cekDelayCost-exBudgetMemory": 100, + "cekForceCost-exBudgetCPU": 23000, + "cekForceCost-exBudgetMemory": 100, + "cekLamCost-exBudgetCPU": 23000, + "cekLamCost-exBudgetMemory": 100, + "cekStartupCost-exBudgetCPU": 100, + "cekStartupCost-exBudgetMemory": 100, + "cekVarCost-exBudgetCPU": 23000, + "cekVarCost-exBudgetMemory": 100, + "chooseData-cpu-arguments": 19537, + "chooseData-memory-arguments": 32, + "chooseList-cpu-arguments": 175354, + "chooseList-memory-arguments": 32, + "chooseUnit-cpu-arguments": 46417, + "chooseUnit-memory-arguments": 4, + "consByteString-cpu-arguments-intercept": 221973, + "consByteString-cpu-arguments-slope": 511, + "consByteString-memory-arguments-intercept": 0, + "consByteString-memory-arguments-slope": 1, + "constrData-cpu-arguments": 89141, + "constrData-memory-arguments": 32, + "decodeUtf8-cpu-arguments-intercept": 497525, + "decodeUtf8-cpu-arguments-slope": 14068, + "decodeUtf8-memory-arguments-intercept": 4, + "decodeUtf8-memory-arguments-slope": 2, + "divideInteger-cpu-arguments-constant": 196500, + "divideInteger-cpu-arguments-model-arguments-intercept": 453240, + "divideInteger-cpu-arguments-model-arguments-slope": 220, + "divideInteger-memory-arguments-intercept": 0, + "divideInteger-memory-arguments-minimum": 1, + "divideInteger-memory-arguments-slope": 1, + "encodeUtf8-cpu-arguments-intercept": 1000, + "encodeUtf8-cpu-arguments-slope": 28662, + "encodeUtf8-memory-arguments-intercept": 4, + "encodeUtf8-memory-arguments-slope": 2, + "equalsByteString-cpu-arguments-constant": 245000, + "equalsByteString-cpu-arguments-intercept": 216773, + "equalsByteString-cpu-arguments-slope": 62, + "equalsByteString-memory-arguments": 1, + "equalsData-cpu-arguments-intercept": 1060367, + "equalsData-cpu-arguments-slope": 12586, + "equalsData-memory-arguments": 1, + "equalsInteger-cpu-arguments-intercept": 208512, + "equalsInteger-cpu-arguments-slope": 421, + "equalsInteger-memory-arguments": 1, + "equalsString-cpu-arguments-constant": 187000, + "equalsString-cpu-arguments-intercept": 1000, + "equalsString-cpu-arguments-slope": 52998, + "equalsString-memory-arguments": 1, + "fstPair-cpu-arguments": 80436, + "fstPair-memory-arguments": 32, + "headList-cpu-arguments": 43249, + "headList-memory-arguments": 32, + "iData-cpu-arguments": 1000, + "iData-memory-arguments": 32, + "ifThenElse-cpu-arguments": 80556, + "ifThenElse-memory-arguments": 1, + "indexByteString-cpu-arguments": 57667, + "indexByteString-memory-arguments": 4, + "lengthOfByteString-cpu-arguments": 1000, + "lengthOfByteString-memory-arguments": 10, + "lessThanByteString-cpu-arguments-intercept": 197145, + "lessThanByteString-cpu-arguments-slope": 156, + "lessThanByteString-memory-arguments": 1, + "lessThanEqualsByteString-cpu-arguments-intercept": 197145, + "lessThanEqualsByteString-cpu-arguments-slope": 156, + "lessThanEqualsByteString-memory-arguments": 1, + "lessThanEqualsInteger-cpu-arguments-intercept": 204924, + "lessThanEqualsInteger-cpu-arguments-slope": 473, + "lessThanEqualsInteger-memory-arguments": 1, + "lessThanInteger-cpu-arguments-intercept": 208896, + "lessThanInteger-cpu-arguments-slope": 511, + "lessThanInteger-memory-arguments": 1, + "listData-cpu-arguments": 52467, + "listData-memory-arguments": 32, + "mapData-cpu-arguments": 64832, + "mapData-memory-arguments": 32, + "mkCons-cpu-arguments": 65493, + "mkCons-memory-arguments": 32, + "mkNilData-cpu-arguments": 22558, + "mkNilData-memory-arguments": 32, + "mkNilPairData-cpu-arguments": 16563, + "mkNilPairData-memory-arguments": 32, + "mkPairData-cpu-arguments": 76511, + "mkPairData-memory-arguments": 32, + "modInteger-cpu-arguments-constant": 196500, + "modInteger-cpu-arguments-model-arguments-intercept": 453240, + "modInteger-cpu-arguments-model-arguments-slope": 220, + "modInteger-memory-arguments-intercept": 0, + "modInteger-memory-arguments-minimum": 1, + "modInteger-memory-arguments-slope": 1, + "multiplyInteger-cpu-arguments-intercept": 69522, + "multiplyInteger-cpu-arguments-slope": 11687, + "multiplyInteger-memory-arguments-intercept": 0, + "multiplyInteger-memory-arguments-slope": 1, + "nullList-cpu-arguments": 60091, + "nullList-memory-arguments": 32, + "quotientInteger-cpu-arguments-constant": 196500, + "quotientInteger-cpu-arguments-model-arguments-intercept": 453240, + "quotientInteger-cpu-arguments-model-arguments-slope": 220, + "quotientInteger-memory-arguments-intercept": 0, + "quotientInteger-memory-arguments-minimum": 1, + "quotientInteger-memory-arguments-slope": 1, + "remainderInteger-cpu-arguments-constant": 196500, + "remainderInteger-cpu-arguments-model-arguments-intercept": 453240, + "remainderInteger-cpu-arguments-model-arguments-slope": 220, + "remainderInteger-memory-arguments-intercept": 0, + "remainderInteger-memory-arguments-minimum": 1, + "remainderInteger-memory-arguments-slope": 1, + "sha2_256-cpu-arguments-intercept": 806990, + "sha2_256-cpu-arguments-slope": 30482, + "sha2_256-memory-arguments": 4, + "sha3_256-cpu-arguments-intercept": 1927926, + "sha3_256-cpu-arguments-slope": 82523, + "sha3_256-memory-arguments": 4, + "sliceByteString-cpu-arguments-intercept": 265318, + "sliceByteString-cpu-arguments-slope": 0, + "sliceByteString-memory-arguments-intercept": 4, + "sliceByteString-memory-arguments-slope": 0, + "sndPair-cpu-arguments": 85931, + "sndPair-memory-arguments": 32, + "subtractInteger-cpu-arguments-intercept": 205665, + "subtractInteger-cpu-arguments-slope": 812, + "subtractInteger-memory-arguments-intercept": 1, + "subtractInteger-memory-arguments-slope": 1, + "tailList-cpu-arguments": 41182, + "tailList-memory-arguments": 32, + "trace-cpu-arguments": 212342, + "trace-memory-arguments": 32, + "unBData-cpu-arguments": 31220, + "unBData-memory-arguments": 32, + "unConstrData-cpu-arguments": 32696, + "unConstrData-memory-arguments": 32, + "unIData-cpu-arguments": 43357, + "unIData-memory-arguments": 32, + "unListData-cpu-arguments": 32247, + "unListData-memory-arguments": 32, + "unMapData-cpu-arguments": 38314, + "unMapData-memory-arguments": 32, + "verifySignature-cpu-arguments-intercept": 57996947, + "verifySignature-cpu-arguments-slope": 18975, + "verifySignature-memory-arguments": 10 + }, + "PlutusV2": { + "addInteger-cpu-arguments-intercept": 205665, + "addInteger-cpu-arguments-slope": 812, + "addInteger-memory-arguments-intercept": 1, + "addInteger-memory-arguments-slope": 1, + "appendByteString-cpu-arguments-intercept": 1000, + "appendByteString-cpu-arguments-slope": 571, + "appendByteString-memory-arguments-intercept": 0, + "appendByteString-memory-arguments-slope": 1, + "appendString-cpu-arguments-intercept": 1000, + "appendString-cpu-arguments-slope": 24177, + "appendString-memory-arguments-intercept": 4, + "appendString-memory-arguments-slope": 1, + "bData-cpu-arguments": 1000, + "bData-memory-arguments": 32, + "blake2b_256-cpu-arguments-intercept": 117366, + "blake2b_256-cpu-arguments-slope": 10475, + "blake2b_256-memory-arguments": 4, + "cekApplyCost-exBudgetCPU": 23000, + "cekApplyCost-exBudgetMemory": 100, + "cekBuiltinCost-exBudgetCPU": 23000, + "cekBuiltinCost-exBudgetMemory": 100, + "cekConstCost-exBudgetCPU": 23000, + "cekConstCost-exBudgetMemory": 100, + "cekDelayCost-exBudgetCPU": 23000, + "cekDelayCost-exBudgetMemory": 100, + "cekForceCost-exBudgetCPU": 23000, + "cekForceCost-exBudgetMemory": 100, + "cekLamCost-exBudgetCPU": 23000, + "cekLamCost-exBudgetMemory": 100, + "cekStartupCost-exBudgetCPU": 100, + "cekStartupCost-exBudgetMemory": 100, + "cekVarCost-exBudgetCPU": 23000, + "cekVarCost-exBudgetMemory": 100, + "chooseData-cpu-arguments": 19537, + "chooseData-memory-arguments": 32, + "chooseList-cpu-arguments": 175354, + "chooseList-memory-arguments": 32, + "chooseUnit-cpu-arguments": 46417, + "chooseUnit-memory-arguments": 4, + "consByteString-cpu-arguments-intercept": 221973, + "consByteString-cpu-arguments-slope": 511, + "consByteString-memory-arguments-intercept": 0, + "consByteString-memory-arguments-slope": 1, + "constrData-cpu-arguments": 89141, + "constrData-memory-arguments": 32, + "decodeUtf8-cpu-arguments-intercept": 497525, + "decodeUtf8-cpu-arguments-slope": 14068, + "decodeUtf8-memory-arguments-intercept": 4, + "decodeUtf8-memory-arguments-slope": 2, + "divideInteger-cpu-arguments-constant": 196500, + "divideInteger-cpu-arguments-model-arguments-intercept": 453240, + "divideInteger-cpu-arguments-model-arguments-slope": 220, + "divideInteger-memory-arguments-intercept": 0, + "divideInteger-memory-arguments-minimum": 1, + "divideInteger-memory-arguments-slope": 1, + "encodeUtf8-cpu-arguments-intercept": 1000, + "encodeUtf8-cpu-arguments-slope": 28662, + "encodeUtf8-memory-arguments-intercept": 4, + "encodeUtf8-memory-arguments-slope": 2, + "equalsByteString-cpu-arguments-constant": 245000, + "equalsByteString-cpu-arguments-intercept": 216773, + "equalsByteString-cpu-arguments-slope": 62, + "equalsByteString-memory-arguments": 1, + "equalsData-cpu-arguments-intercept": 1060367, + "equalsData-cpu-arguments-slope": 12586, + "equalsData-memory-arguments": 1, + "equalsInteger-cpu-arguments-intercept": 208512, + "equalsInteger-cpu-arguments-slope": 421, + "equalsInteger-memory-arguments": 1, + "equalsString-cpu-arguments-constant": 187000, + "equalsString-cpu-arguments-intercept": 1000, + "equalsString-cpu-arguments-slope": 52998, + "equalsString-memory-arguments": 1, + "fstPair-cpu-arguments": 80436, + "fstPair-memory-arguments": 32, + "headList-cpu-arguments": 43249, + "headList-memory-arguments": 32, + "iData-cpu-arguments": 1000, + "iData-memory-arguments": 32, + "ifThenElse-cpu-arguments": 80556, + "ifThenElse-memory-arguments": 1, + "indexByteString-cpu-arguments": 57667, + "indexByteString-memory-arguments": 4, + "lengthOfByteString-cpu-arguments": 1000, + "lengthOfByteString-memory-arguments": 10, + "lessThanByteString-cpu-arguments-intercept": 197145, + "lessThanByteString-cpu-arguments-slope": 156, + "lessThanByteString-memory-arguments": 1, + "lessThanEqualsByteString-cpu-arguments-intercept": 197145, + "lessThanEqualsByteString-cpu-arguments-slope": 156, + "lessThanEqualsByteString-memory-arguments": 1, + "lessThanEqualsInteger-cpu-arguments-intercept": 204924, + "lessThanEqualsInteger-cpu-arguments-slope": 473, + "lessThanEqualsInteger-memory-arguments": 1, + "lessThanInteger-cpu-arguments-intercept": 208896, + "lessThanInteger-cpu-arguments-slope": 511, + "lessThanInteger-memory-arguments": 1, + "listData-cpu-arguments": 52467, + "listData-memory-arguments": 32, + "mapData-cpu-arguments": 64832, + "mapData-memory-arguments": 32, + "mkCons-cpu-arguments": 65493, + "mkCons-memory-arguments": 32, + "mkNilData-cpu-arguments": 22558, + "mkNilData-memory-arguments": 32, + "mkNilPairData-cpu-arguments": 16563, + "mkNilPairData-memory-arguments": 32, + "mkPairData-cpu-arguments": 76511, + "mkPairData-memory-arguments": 32, + "modInteger-cpu-arguments-constant": 196500, + "modInteger-cpu-arguments-model-arguments-intercept": 453240, + "modInteger-cpu-arguments-model-arguments-slope": 220, + "modInteger-memory-arguments-intercept": 0, + "modInteger-memory-arguments-minimum": 1, + "modInteger-memory-arguments-slope": 1, + "multiplyInteger-cpu-arguments-intercept": 69522, + "multiplyInteger-cpu-arguments-slope": 11687, + "multiplyInteger-memory-arguments-intercept": 0, + "multiplyInteger-memory-arguments-slope": 1, + "nullList-cpu-arguments": 60091, + "nullList-memory-arguments": 32, + "quotientInteger-cpu-arguments-constant": 196500, + "quotientInteger-cpu-arguments-model-arguments-intercept": 453240, + "quotientInteger-cpu-arguments-model-arguments-slope": 220, + "quotientInteger-memory-arguments-intercept": 0, + "quotientInteger-memory-arguments-minimum": 1, + "quotientInteger-memory-arguments-slope": 1, + "remainderInteger-cpu-arguments-constant": 196500, + "remainderInteger-cpu-arguments-model-arguments-intercept": 453240, + "remainderInteger-cpu-arguments-model-arguments-slope": 220, + "remainderInteger-memory-arguments-intercept": 0, + "remainderInteger-memory-arguments-minimum": 1, + "remainderInteger-memory-arguments-slope": 1, + "serialiseData-cpu-arguments-intercept": 1159724, + "serialiseData-cpu-arguments-slope": 392670, + "serialiseData-memory-arguments-intercept": 0, + "serialiseData-memory-arguments-slope": 2, + "sha2_256-cpu-arguments-intercept": 806990, + "sha2_256-cpu-arguments-slope": 30482, + "sha2_256-memory-arguments": 4, + "sha3_256-cpu-arguments-intercept": 1927926, + "sha3_256-cpu-arguments-slope": 82523, + "sha3_256-memory-arguments": 4, + "sliceByteString-cpu-arguments-intercept": 265318, + "sliceByteString-cpu-arguments-slope": 0, + "sliceByteString-memory-arguments-intercept": 4, + "sliceByteString-memory-arguments-slope": 0, + "sndPair-cpu-arguments": 85931, + "sndPair-memory-arguments": 32, + "subtractInteger-cpu-arguments-intercept": 205665, + "subtractInteger-cpu-arguments-slope": 812, + "subtractInteger-memory-arguments-intercept": 1, + "subtractInteger-memory-arguments-slope": 1, + "tailList-cpu-arguments": 41182, + "tailList-memory-arguments": 32, + "trace-cpu-arguments": 212342, + "trace-memory-arguments": 32, + "unBData-cpu-arguments": 31220, + "unBData-memory-arguments": 32, + "unConstrData-cpu-arguments": 32696, + "unConstrData-memory-arguments": 32, + "unIData-cpu-arguments": 43357, + "unIData-memory-arguments": 32, + "unListData-cpu-arguments": 32247, + "unListData-memory-arguments": 32, + "unMapData-cpu-arguments": 38314, + "unMapData-memory-arguments": 32, + "verifyEcdsaSecp256k1Signature-cpu-arguments": 35892428, + "verifyEcdsaSecp256k1Signature-memory-arguments": 10, + "verifyEd25519Signature-cpu-arguments-intercept": 57996947, + "verifyEd25519Signature-cpu-arguments-slope": 18975, + "verifyEd25519Signature-memory-arguments": 10, + "verifySchnorrSecp256k1Signature-cpu-arguments-intercept": 38887044, + "verifySchnorrSecp256k1Signature-cpu-arguments-slope": 32947, + "verifySchnorrSecp256k1Signature-memory-arguments": 10 + } + }, + "executionPrices": { + "prMem": { + "denominator": 10000, + "numerator": 577 + }, + "prSteps": { + "denominator": 10000000, + "numerator": 721 + } + }, + "lovelacePerUTxOWord": 4310, + "maxBlockExUnits": { + "exUnitsMem": 62000000, + "exUnitsSteps": 20000000000 + }, + "maxCollateralInputs": 3, + "maxTxExUnits": { + "exUnitsMem": 14000000, + "exUnitsSteps": 10000000000 + }, + "maxValueSize": 5000 + }, + "conway": { + "plutusV3CostModel": [ + 100788, + 420, + 1, + 1, + 1000, + 173, + 0, + 1, + 1000, + 59957, + 4, + 1, + 11183, + 32, + 201305, + 8356, + 4, + 16000, + 100, + 16000, + 100, + 16000, + 100, + 16000, + 100, + 16000, + 100, + 16000, + 100, + 100, + 100, + 16000, + 100, + 94375, + 32, + 132994, + 32, + 61462, + 4, + 72010, + 178, + 0, + 1, + 22151, + 32, + 91189, + 769, + 4, + 2, + 85848, + 123203, + 7305, + -900, + 1716, + 549, + 57, + 85848, + 0, + 1, + 1, + 1000, + 42921, + 4, + 2, + 24548, + 29498, + 38, + 1, + 898148, + 27279, + 1, + 51775, + 558, + 1, + 39184, + 1000, + 60594, + 1, + 141895, + 32, + 83150, + 32, + 15299, + 32, + 76049, + 1, + 13169, + 4, + 22100, + 10, + 28999, + 74, + 1, + 28999, + 74, + 1, + 43285, + 552, + 1, + 44749, + 541, + 1, + 33852, + 32, + 68246, + 32, + 72362, + 32, + 7243, + 32, + 7391, + 32, + 11546, + 32, + 85848, + 123203, + 7305, + -900, + 1716, + 549, + 57, + 85848, + 0, + 1, + 90434, + 519, + 0, + 1, + 74433, + 32, + 85848, + 123203, + 7305, + -900, + 1716, + 549, + 57, + 85848, + 0, + 1, + 1, + 85848, + 123203, + 7305, + -900, + 1716, + 549, + 57, + 85848, + 0, + 1, + 955506, + 213312, + 0, + 2, + 270652, + 22588, + 4, + 1457325, + 64566, + 4, + 20467, + 1, + 4, + 0, + 141992, + 32, + 100788, + 420, + 1, + 1, + 81663, + 32, + 59498, + 32, + 20142, + 32, + 24588, + 32, + 20744, + 32, + 25933, + 32, + 24623, + 32, + 43053543, + 10, + 53384111, + 14333, + 10, + 43574283, + 26308, + 10, + 16000, + 100, + 16000, + 100, + 962335, + 18, + 2780678, + 6, + 442008, + 1, + 52538055, + 3756, + 18, + 267929, + 18, + 76433006, + 8868, + 18, + 52948122, + 18, + 1995836, + 36, + 3227919, + 12, + 901022, + 1, + 166917843, + 4307, + 36, + 284546, + 36, + 158221314, + 26549, + 36, + 74698472, + 36, + 333849714, + 1, + 254006273, + 72, + 2174038, + 72, + 2261318, + 64571, + 4, + 207616, + 8310, + 4, + 1293828, + 28716, + 63, + 0, + 1, + 1006041, + 43623, + 251, + 0, + 1 + ] + }, + "delegator_coin": 1000000000000000, + "delegators": 100000, + "dreps": 0, + "epoch_length": 600, + "extra_future_offset": 0, + "funds_balance": 10000000000000, + "max_block_size": null, + "network_magic": 42, + "parameter_k": 3, + "per_pool_balance": 1000000000000000, + "pool_coin": 1000000000000000, + "pparamsEpoch": 492, + "pparamsOverlays": [ + "v8-preview", + "v9-preview", + "blocksize64k" + ], + "shelley": { + "activeSlotsCoeff": 0.05, + "epochLength": 600, + "protocolParams": { + "a0": 0.3, + "decentralisationParam": 0, + "eMax": 18, + "extraEntropy": { + "tag": "NeutralNonce" + }, + "keyDeposit": 2000000, + "maxBlockBodySize": 65536, + "maxBlockHeaderSize": 1100, + "maxTxSize": 16384, + "minFeeA": 44, + "minFeeB": 155381, + "minPoolCost": 170000000, + "minUTxOValue": 0, + "nOpt": 500, + "poolDeposit": 500000000, + "protocolVersion": { + "major": 9, + "minor": 0 + }, + "rho": 0.003, + "tau": 0.2 + }, + "securityParam": 3, + "slotLength": 1 + }, + "single_shot": true, + "slot_duration": 1, + "utxo": 500000, + "utxo_keys": 1 + }, + "name": "6-dense-timeseries-1h", + "node": { + "heap_limit": null, + "rts_flags_override": [], + "shutdown_on_block_synced": null, + "shutdown_on_slot_synced": 3600, + "ssd_directory": null, + "tracer": true, + "tracing_backend": "trace-dispatcher", + "utxo_lmdb": false, + "utxo_lsmt": false, + "verbatim": { + "EnableP2P": true + } + }, + "overlay": {}, + "scenario": "fixed-loaded", + "tracer": { + "ekg": false, + "rtview": true, + "timeseries": true, "withresources": false }, "workloads": [] @@ -6153,7 +6990,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "performance" }, "chaindb": { @@ -6266,7 +7103,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -6476,7 +7313,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -6499,7 +7336,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 2160, @@ -6531,6 +7368,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -6546,7 +7384,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "performance" }, "chaindb": { @@ -6659,7 +7497,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -6869,7 +7707,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -6892,7 +7730,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 2160, @@ -6924,6 +7762,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -6939,7 +7778,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "performance" }, "chaindb": { @@ -7052,7 +7891,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -7262,7 +8101,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -7285,7 +8124,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 2160, @@ -7317,6 +8156,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -7332,7 +8172,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "performance" }, "chaindb": { @@ -7445,7 +8285,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -7655,7 +8495,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -7678,7 +8518,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 2160, @@ -7710,6 +8550,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -7725,7 +8566,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "performance" }, "chaindb": { @@ -7838,7 +8679,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -8048,7 +8889,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -8071,7 +8912,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 2160, @@ -8103,6 +8944,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -8118,7 +8960,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "performance" }, "chaindb": { @@ -8231,7 +9073,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -8441,7 +9283,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 432000, "protocolParams": { "a0": 0.3, @@ -8464,7 +9306,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 2160, @@ -8496,6 +9338,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -8519,7 +9362,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -8621,7 +9464,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -8831,7 +9674,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -8854,7 +9697,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -8885,6 +9728,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -8908,7 +9752,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -9010,7 +9854,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -9220,7 +10064,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -9243,7 +10087,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -9274,6 +10118,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -9297,7 +10142,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -9399,7 +10244,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -9609,7 +10454,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -9632,7 +10477,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -9663,6 +10508,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -9686,7 +10532,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -9788,7 +10634,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -9998,7 +10844,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -10021,7 +10867,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -10052,6 +10898,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -10075,7 +10922,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -10211,7 +11058,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -10421,7 +11268,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -10444,7 +11291,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -10475,6 +11322,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -10498,7 +11346,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -10600,7 +11448,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -10810,7 +11658,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -10833,7 +11681,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -10864,6 +11712,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -10887,7 +11736,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -11023,7 +11872,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -11233,7 +12082,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -11256,7 +12105,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -11287,6 +12136,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -11312,7 +12162,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -11417,7 +12267,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -11806,7 +12656,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -11829,7 +12679,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -11860,6 +12710,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -11885,7 +12736,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -12004,7 +12855,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -12393,7 +13244,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -12416,7 +13267,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -12447,6 +13298,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -12472,7 +13324,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -12591,7 +13443,7 @@ "tx_fee": 1004000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -12980,7 +13832,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -13003,7 +13855,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -13034,6 +13886,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -13059,7 +13912,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -13164,7 +14017,7 @@ "tx_fee": 1412000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -13553,7 +14406,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -13576,7 +14429,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -13607,6 +14460,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -13632,7 +14486,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -13758,7 +14612,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -14399,7 +15253,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -14422,7 +15276,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -14453,6 +15307,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -14478,7 +15333,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -14591,7 +15446,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -15232,7 +16087,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -15255,7 +16110,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -15286,6 +16141,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -15311,7 +16167,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -15424,7 +16280,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -16067,7 +16923,7 @@ "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -16090,7 +16946,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -16121,6 +16977,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -16144,7 +17001,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -16246,7 +17103,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -16456,7 +17313,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -16479,7 +17336,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -16510,6 +17367,7 @@ "tracer": { "ekg": false, "rtview": true, + "timeseries": false, "withresources": false }, "workloads": [] @@ -16533,7 +17391,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -16635,7 +17493,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -16845,7 +17703,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -16868,7 +17726,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -16899,6 +17757,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -16922,7 +17781,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -17028,7 +17887,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -17238,7 +18097,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -17261,7 +18120,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -17292,6 +18151,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -17317,7 +18177,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -17422,7 +18282,7 @@ "tx_fee": 1380000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -17812,7 +18672,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -17835,7 +18695,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -17866,6 +18726,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -17889,7 +18750,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -18025,7 +18886,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -18235,7 +19096,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -18258,7 +19119,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -18289,6 +19150,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -18312,7 +19174,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -18414,7 +19276,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -18624,7 +19486,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -18647,7 +19509,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -18678,6 +19540,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -18701,7 +19564,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -18837,7 +19700,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -19047,7 +19910,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -19070,7 +19933,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -19101,6 +19964,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -19126,7 +19990,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -19231,7 +20095,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -19441,7 +20305,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -19464,7 +20328,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -19495,6 +20359,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -19518,7 +20383,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -19620,7 +20485,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -19830,7 +20695,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -19853,7 +20718,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -19884,6 +20749,7 @@ "tracer": { "ekg": false, "rtview": true, + "timeseries": false, "withresources": false }, "workloads": [] @@ -19909,7 +20775,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -20010,7 +20876,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -20220,7 +21086,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -20243,7 +21109,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -20274,6 +21140,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -20299,7 +21166,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -20434,7 +21301,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -20644,7 +21511,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -20667,7 +21534,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -20698,6 +21565,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -20720,10 +21588,10 @@ ], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 0.050, + "minimum_chain_density": 0.05, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": null }, "cli_args": { @@ -21057,7 +21925,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 10, @@ -21089,6 +21957,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -21114,7 +21983,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -21215,7 +22084,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -21425,7 +22294,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -21448,7 +22317,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -21479,6 +22348,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -21504,7 +22374,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -21605,7 +22475,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -21815,7 +22685,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -21838,7 +22708,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -21869,6 +22739,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -21894,7 +22765,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -21998,7 +22869,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -22208,7 +23079,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -22231,7 +23102,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -22262,6 +23133,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -22287,7 +23159,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -22391,7 +23263,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -22601,7 +23473,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -22624,7 +23496,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -22655,6 +23527,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -22678,7 +23551,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -22780,7 +23653,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -22990,7 +23863,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -23013,7 +23886,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -23044,6 +23917,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -23067,7 +23941,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -23169,7 +24043,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -23379,7 +24253,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -23402,7 +24276,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -23433,6 +24307,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -23456,7 +24331,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -23592,7 +24467,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -23981,7 +24856,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -24004,7 +24879,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -24035,6 +24910,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -24058,7 +24934,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -24216,7 +25092,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -24605,7 +25481,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -24628,7 +25504,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -24659,6 +25535,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -24682,7 +25559,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -24784,7 +25661,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -24994,7 +25871,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -25017,7 +25894,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -25048,6 +25925,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -25071,7 +25949,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -25173,7 +26051,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -25383,7 +26261,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -25406,7 +26284,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -25437,6 +26315,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -25462,7 +26341,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -25567,7 +26446,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -25777,7 +26656,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -25800,7 +26679,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -25831,6 +26710,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -25854,7 +26734,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -25956,7 +26836,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -26166,7 +27046,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -26189,7 +27069,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -26220,6 +27100,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -26243,7 +27124,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -26345,7 +27226,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -26555,7 +27436,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -26578,7 +27459,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -26609,6 +27490,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -26634,7 +27516,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -26735,7 +27617,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -26945,7 +27827,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -26968,7 +27850,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -26999,6 +27881,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -27024,7 +27907,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -27125,7 +28008,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -27768,7 +28651,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -27791,7 +28674,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -27822,6 +28705,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -27847,7 +28731,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -27948,7 +28832,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -28158,7 +29042,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -28181,7 +29065,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -28212,6 +29096,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -28237,7 +29122,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -28341,7 +29226,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -28551,7 +29436,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -28574,7 +29459,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -28605,6 +29490,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -28630,7 +29516,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -28734,7 +29620,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -29123,7 +30009,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -29146,7 +30032,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -29177,6 +30063,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -29202,7 +30089,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -29303,7 +30190,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -29513,7 +30400,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -29536,7 +30423,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -29567,6 +30454,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -29592,7 +30480,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -29693,7 +30581,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -30336,7 +31224,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -30359,7 +31247,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -30390,6 +31278,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -30415,7 +31304,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -30516,7 +31405,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -31159,7 +32048,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -31182,7 +32071,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -31215,6 +32104,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -31240,7 +32130,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -31341,7 +32231,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -31984,7 +32874,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -32007,7 +32897,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -32040,6 +32930,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -32065,7 +32956,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -32166,7 +33057,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -32809,7 +33700,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -32832,7 +33723,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -32866,6 +33757,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -32891,7 +33783,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -32992,7 +33884,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -33635,7 +34527,7 @@ "blocksize64k" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -33658,7 +34550,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -33693,6 +34585,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -33718,7 +34611,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -33819,7 +34712,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -34029,7 +34922,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -34052,7 +34945,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -34083,6 +34976,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -34108,7 +35002,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -34212,7 +35106,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -34422,7 +35316,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -34445,7 +35339,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -34476,6 +35370,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -34501,7 +35396,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -34602,7 +35497,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -34812,7 +35707,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -34835,7 +35730,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -34868,6 +35763,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -34893,7 +35789,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -34994,7 +35890,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -35204,7 +36100,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -35227,7 +36123,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -35261,6 +36157,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -35286,7 +36183,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -35387,7 +36284,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -35597,7 +36494,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -35620,7 +36517,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -35653,6 +36550,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -35678,7 +36576,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -35779,7 +36677,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -35989,7 +36887,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -36012,7 +36910,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -36046,6 +36944,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -36071,7 +36970,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -36172,7 +37071,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -36382,7 +37281,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -36405,7 +37304,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -36438,6 +37337,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -36463,7 +37363,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -36564,7 +37464,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -36774,7 +37674,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -36797,7 +37697,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -36830,6 +37730,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -36855,7 +37756,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -36956,7 +37857,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -37345,7 +38246,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -37368,7 +38269,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -37399,6 +38300,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -37424,7 +38326,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -37525,7 +38427,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -37914,7 +38816,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -37937,7 +38839,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -37968,6 +38870,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -37993,7 +38896,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -38094,7 +38997,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -38483,7 +39386,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -38506,7 +39409,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -38537,6 +39440,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -38562,7 +39466,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -38663,7 +39567,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -39052,7 +39956,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -39075,7 +39979,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -39106,6 +40010,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -39131,7 +40036,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -39232,7 +40137,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -39621,7 +40526,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -39644,7 +40549,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -39675,6 +40580,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -39700,7 +40606,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -39802,7 +40708,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -40012,7 +40918,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -40035,7 +40941,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -40066,6 +40972,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -40091,7 +40998,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -40192,7 +41099,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -40402,7 +41309,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -40425,7 +41332,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -40456,6 +41363,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -40481,7 +41389,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -40582,7 +41490,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -40792,7 +41700,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -40815,7 +41723,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -40846,6 +41754,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -40871,7 +41780,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -40972,7 +41881,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -41182,7 +42091,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -41205,7 +42114,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -41236,6 +42145,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -41259,7 +42169,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -41395,7 +42305,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -41784,7 +42694,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -41807,7 +42717,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -41838,6 +42748,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [ @@ -41872,7 +42783,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -42030,7 +42941,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -42419,7 +43330,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -42442,7 +43353,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -42473,6 +43384,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [ @@ -42510,7 +43422,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -42629,7 +43541,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -43270,7 +44182,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -43293,7 +44205,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -43324,6 +44236,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -43350,7 +44263,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -43469,7 +44382,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -44112,7 +45025,7 @@ "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -44135,7 +45048,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -44166,6 +45079,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -44192,7 +45106,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -44294,7 +45208,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -44935,7 +45849,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -44958,7 +45872,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -44989,6 +45903,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -45015,7 +45930,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -45117,7 +46032,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -45758,7 +46673,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -45781,7 +46696,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -45812,6 +46727,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -45837,7 +46753,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -45938,7 +46854,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -46148,7 +47064,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -46171,7 +47087,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -46202,6 +47118,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -46227,7 +47144,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -46362,7 +47279,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -46572,7 +47489,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -46595,7 +47512,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -46626,6 +47543,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -46651,7 +47569,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -46755,7 +47673,7 @@ "tx_fee": 1380000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -47144,7 +48062,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -47167,7 +48085,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -47198,6 +48116,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -47224,7 +48143,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -47363,7 +48282,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -47752,7 +48671,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -47775,7 +48694,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -47806,6 +48725,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -47832,7 +48752,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -47971,7 +48891,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -48360,7 +49280,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -48383,7 +49303,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -48414,6 +49334,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -48440,7 +49361,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -48579,7 +49500,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -48968,7 +49889,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -48991,7 +49912,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -49022,6 +49943,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -49048,7 +49970,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -49187,7 +50109,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -49576,7 +50498,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -49599,7 +50521,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -49630,6 +50552,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -49655,7 +50578,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -49773,7 +50696,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -50162,7 +51085,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -50185,7 +51108,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -50216,6 +51139,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -50242,7 +51166,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -50395,7 +51319,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -50784,7 +51708,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -50807,7 +51731,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -50838,6 +51762,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -50863,7 +51788,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -50981,7 +51906,7 @@ "tx_fee": 1004000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -51370,7 +52295,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -51393,7 +52318,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -51424,6 +52349,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -51450,7 +52376,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -51603,7 +52529,7 @@ "tx_fee": 1004000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -51992,7 +52918,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -52015,7 +52941,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -52046,6 +52972,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -52072,7 +52999,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -52220,7 +53147,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -52861,7 +53788,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -52884,7 +53811,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -52915,6 +53842,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -52941,7 +53869,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -53089,7 +54017,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -53730,7 +54658,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -53753,7 +54681,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -53784,6 +54712,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -53810,7 +54739,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -53949,7 +54878,7 @@ "tx_fee": 1892175 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -54592,7 +55521,7 @@ "budget/block/memory/oneandahalf" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -54615,7 +55544,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -54660,6 +55589,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -54686,7 +55616,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -54825,7 +55755,7 @@ "tx_fee": 2463246 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -55468,7 +56398,7 @@ "budget/block/memory/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -55491,7 +56421,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -55536,6 +56466,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -55562,7 +56493,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -55701,7 +56632,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -56342,7 +57273,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -56365,7 +57296,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -56396,6 +57327,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -56422,7 +57354,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -56561,7 +57493,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -57202,7 +58134,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -57225,7 +58157,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -57259,6 +58191,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -57285,7 +58218,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -57424,7 +58357,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -58090,7 +59023,7 @@ "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -58113,7 +59046,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -58144,6 +59077,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [ @@ -58185,7 +59119,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -58324,7 +59258,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -58990,7 +59924,7 @@ "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -59013,7 +59947,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -59044,6 +59978,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [ @@ -59084,7 +60019,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -59223,7 +60158,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -59889,7 +60824,7 @@ "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -59912,7 +60847,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -59943,6 +60878,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [ @@ -59984,7 +60920,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -60123,7 +61059,7 @@ "tx_fee": 1412000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -60512,7 +61448,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -60535,7 +61471,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -60566,6 +61502,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -60592,7 +61529,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -60697,7 +61634,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -61338,7 +62275,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -61361,7 +62298,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -61392,6 +62329,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -61418,7 +62356,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -61523,7 +62461,7 @@ "tx_fee": 2463246 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -62166,7 +63104,7 @@ "budget/block/memory/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -62189,7 +63127,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -62234,6 +63172,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -62260,7 +63199,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -62379,7 +63318,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -63020,7 +63959,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -63043,7 +63982,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -63074,6 +64013,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -63100,7 +64040,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -63219,7 +64159,7 @@ "tx_fee": 1008000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -63862,7 +64802,7 @@ "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -63885,7 +64825,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -63916,6 +64856,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -63942,7 +64883,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -64061,7 +65002,7 @@ "tx_fee": 1004000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -64702,7 +65643,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -64725,7 +65666,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -64756,6 +65697,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -64782,7 +65724,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -64901,7 +65843,7 @@ "tx_fee": 1004000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -65544,7 +66486,7 @@ "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -65567,7 +66509,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -65598,6 +66540,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -65623,7 +66566,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -65749,7 +66692,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -66390,7 +67333,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -66413,7 +67356,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -66444,6 +67387,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -66469,7 +67413,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -66574,7 +67518,7 @@ "tx_fee": 1360000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -67215,7 +68159,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -67238,7 +68182,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -67269,6 +68213,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -67294,7 +68239,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -67407,7 +68352,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -68048,7 +68993,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -68071,7 +69016,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -68102,6 +69047,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -68128,7 +69074,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -68288,7 +69234,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -68929,7 +69875,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -68952,7 +69898,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -68983,6 +69929,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -69009,7 +69956,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -69169,7 +70116,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -69812,7 +70759,7 @@ "budget/block/steps/oneandahalf" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -69835,7 +70782,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -69866,6 +70813,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -69892,7 +70840,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -70052,7 +71000,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -70695,7 +71643,7 @@ "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -70718,7 +71666,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -70749,6 +71697,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -70775,7 +71724,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -70922,7 +71871,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -71563,7 +72512,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -71586,7 +72535,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -71617,6 +72566,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -71643,7 +72593,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -71790,7 +72740,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -72433,7 +73383,7 @@ "budget/block/steps/oneandahalf" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -72456,7 +73406,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -72487,6 +73437,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -72513,7 +73464,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -72660,7 +73611,7 @@ "tx_fee": 940000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -73303,7 +74254,7 @@ "budget/block/steps/double" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -73326,7 +74277,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -73357,6 +74308,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -73383,7 +74335,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -73522,7 +74474,7 @@ "tx_fee": 1412000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -74163,7 +75115,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -74186,7 +75138,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -74217,6 +75169,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -74240,7 +75193,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -74342,7 +75295,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -74552,7 +75505,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -74575,7 +75528,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -74606,6 +75559,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": true }, "workloads": [] @@ -74629,7 +75583,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -74731,7 +75685,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -74941,7 +75895,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -74964,7 +75918,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -74995,6 +75949,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": true }, "workloads": [] @@ -75018,7 +75973,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -75120,7 +76075,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -75330,7 +76285,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -75353,7 +76308,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -75384,6 +76339,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": true }, "workloads": [] @@ -75407,7 +76363,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -75509,7 +76465,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -75719,7 +76675,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -75742,7 +76698,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -75773,6 +76729,7 @@ "tracer": { "ekg": false, "rtview": true, + "timeseries": false, "withresources": true }, "workloads": [] @@ -75796,7 +76753,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -75898,7 +76855,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -76108,7 +77065,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -76131,7 +77088,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -76162,6 +77119,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": true }, "workloads": [] @@ -76185,7 +77143,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -76287,7 +77245,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -76497,7 +77455,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -76520,7 +77478,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -76551,6 +77509,7 @@ "tracer": { "ekg": false, "rtview": true, + "timeseries": false, "withresources": true }, "workloads": [] @@ -76576,7 +77535,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -76678,7 +77637,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -76888,7 +77847,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -76911,7 +77870,7 @@ "major": 6, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 3, @@ -76942,6 +77901,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -76968,7 +77928,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -77123,7 +78083,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -77512,7 +78472,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 1200, "protocolParams": { "a0": 0.3, @@ -77535,7 +78495,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 6, @@ -77568,6 +78528,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -77594,7 +78555,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -77749,7 +78710,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -78138,7 +79099,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 1200, "protocolParams": { "a0": 0.3, @@ -78161,7 +79122,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 6, @@ -78192,6 +79153,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -78218,7 +79180,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -78373,7 +79335,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -78762,7 +79724,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 1200, "protocolParams": { "a0": 0.3, @@ -78785,7 +79747,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 6, @@ -78816,6 +79778,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -78842,7 +79805,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -78978,7 +79941,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -79367,7 +80330,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -79390,7 +80353,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -79421,6 +80384,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -79447,7 +80411,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -79583,7 +80547,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -79972,7 +80936,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -79995,7 +80959,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -80026,6 +80990,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -80052,7 +81017,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -80188,7 +81153,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -80577,7 +81542,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -80600,7 +81565,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -80631,6 +81596,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -80657,7 +81623,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -80793,7 +81759,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -81182,7 +82148,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -81205,7 +82171,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -81236,6 +82202,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -81262,7 +82229,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -81419,7 +82386,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -81808,7 +82775,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -81831,7 +82798,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -81862,6 +82829,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -81888,7 +82856,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -82024,7 +82992,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -82413,7 +83381,7 @@ "v8-preview" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -82436,7 +83404,7 @@ "major": 8, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -82467,6 +83435,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -82493,7 +83462,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -82638,7 +83607,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -83279,7 +84248,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -83302,7 +84271,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -83333,6 +84302,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [ @@ -83370,7 +84340,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -83520,7 +84490,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -84161,7 +85131,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -84184,7 +85154,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -84215,6 +85185,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [ @@ -84252,7 +85223,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -84397,7 +85368,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -85038,7 +86009,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -85061,7 +86032,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -85092,6 +86063,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -85118,7 +86090,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -85263,7 +86235,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -85904,7 +86876,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -85927,7 +86899,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -85958,6 +86930,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -85984,7 +86957,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -86120,7 +87093,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -86761,7 +87734,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -86784,7 +87757,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -86815,6 +87788,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -86841,7 +87815,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -86977,7 +87951,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -87618,7 +88592,7 @@ "pparamsEpoch": 537, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -87641,7 +88615,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -87675,6 +88649,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [] @@ -87701,7 +88676,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -87837,7 +88812,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -88503,7 +89478,7 @@ "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -88526,7 +89501,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -88557,6 +89532,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [ @@ -88598,7 +89574,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -88734,7 +89710,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -89400,7 +90376,7 @@ "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -89423,7 +90399,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -89454,6 +90430,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [ @@ -89494,7 +90471,7 @@ "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 0.020, + "tx_loss_ratio": 0.02, "type": "standard" }, "cli_args": { @@ -89630,7 +90607,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 0.050, + "active_slots_coeff": 0.05, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -90296,7 +91273,7 @@ "voting" ], "shelley": { - "activeSlotsCoeff": 0.050, + "activeSlotsCoeff": 0.05, "epochLength": 8000, "protocolParams": { "a0": 0.3, @@ -90319,7 +91296,7 @@ "major": 10, "minor": 0 }, - "rho": 0.0030, + "rho": 0.003, "tau": 0.2 }, "securityParam": 40, @@ -90350,6 +91327,7 @@ "tracer": { "ekg": false, "rtview": false, + "timeseries": false, "withresources": false }, "workloads": [ diff --git a/bench/cardano-profile/data/test/chainsync-early-alonzo-coay/profile.json b/bench/cardano-profile/data/test/chainsync-early-alonzo-coay/profile.json index e14a1bd89fe..5d68e12934e 100644 --- a/bench/cardano-profile/data/test/chainsync-early-alonzo-coay/profile.json +++ b/bench/cardano-profile/data/test/chainsync-early-alonzo-coay/profile.json @@ -308,7 +308,8 @@ "tracer": { "rtview": false, "ekg": false, - "withresources": false + "withresources": false, + "timeseries": false }, "cluster": null, "extra_desc": "without cardano-tracer", diff --git a/bench/cardano-profile/data/test/chainsync-early-byron-coay/profile.json b/bench/cardano-profile/data/test/chainsync-early-byron-coay/profile.json index e29015e4eff..247d56251dc 100644 --- a/bench/cardano-profile/data/test/chainsync-early-byron-coay/profile.json +++ b/bench/cardano-profile/data/test/chainsync-early-byron-coay/profile.json @@ -308,7 +308,8 @@ "tracer": { "rtview": false, "ekg": false, - "withresources": false + "withresources": false, + "timeseries": false }, "extra_desc": "without cardano-tracer", "suffix": "notrc", diff --git a/bench/cardano-profile/data/test/ci-test-bage.json b/bench/cardano-profile/data/test/ci-test-bage.json index 78a7a974580..e00d00c667c 100644 --- a/bench/cardano-profile/data/test/ci-test-bage.json +++ b/bench/cardano-profile/data/test/ci-test-bage.json @@ -14,10 +14,10 @@ "filters": [], "finish_patience": 21, "last_log_spread_s": 120, - "minimum_chain_density": 2.5e-2, + "minimum_chain_density": 0.025, "silence_since_last_block_s": 120, "start_log_spread_s": 120, - "tx_loss_ratio": 2.0e-2, + "tx_loss_ratio": 0.020, "type": "standard" }, "cli_args": { @@ -119,7 +119,7 @@ "tx_fee": 1000000 }, "genesis": { - "active_slots_coeff": 5.0e-2, + "active_slots_coeff": 0.050, "alonzo": { "collateralPercentage": 150, "costModels": { @@ -329,7 +329,7 @@ "pparamsEpoch": 300, "pparamsOverlays": [], "shelley": { - "activeSlotsCoeff": 5.0e-2, + "activeSlotsCoeff": 0.050, "epochLength": 600, "protocolParams": { "a0": 0.3, @@ -352,7 +352,7 @@ "major": 6, "minor": 0 }, - "rho": 3.0e-3, + "rho": 0.0030, "tau": 0.2 }, "securityParam": 3, @@ -383,8 +383,8 @@ "tracer": { "ekg": false, "rtview": false, - "withresources": false + "withresources": false, + "timeseries": false }, "workloads": [] } - diff --git a/bench/cardano-profile/data/test/ci-test-coay/profile.json b/bench/cardano-profile/data/test/ci-test-coay/profile.json index 3bd2d7c8bc0..000a88a3462 100644 --- a/bench/cardano-profile/data/test/ci-test-coay/profile.json +++ b/bench/cardano-profile/data/test/ci-test-coay/profile.json @@ -315,7 +315,8 @@ "tracer": { "rtview": false, "ekg": false, - "withresources": false + "withresources": false, + "timeseries": false }, "cluster": null, "desc": "Miniature dataset, CI-friendly duration, test scale", diff --git a/bench/cardano-profile/data/test/ci-test-dense10-coay/profile.json b/bench/cardano-profile/data/test/ci-test-dense10-coay/profile.json index e23d1c0b17e..4d51dfa0977 100644 --- a/bench/cardano-profile/data/test/ci-test-dense10-coay/profile.json +++ b/bench/cardano-profile/data/test/ci-test-dense10-coay/profile.json @@ -315,14 +315,15 @@ "tracer": { "rtview": false, "ekg": false, - "withresources": false + "withresources": false, + "timeseries": false }, "cluster": null, "desc": "Miniature dataset, CI-friendly duration, test scale", "name": "ci-test-dense10-coay", "overlay": {}, "derived": { - "supply_delegated": 1e+16, + "supply_delegated": 1E+16, "supply_total": 10010000000000000, "utxo_delegated": 0, "utxo_generated": 18000, diff --git a/bench/cardano-profile/data/test/default-coay/profile.json b/bench/cardano-profile/data/test/default-coay/profile.json index 378a4bf0921..f630cf1c734 100644 --- a/bench/cardano-profile/data/test/default-coay/profile.json +++ b/bench/cardano-profile/data/test/default-coay/profile.json @@ -317,7 +317,8 @@ "tracer": { "rtview": false, "ekg": false, - "withresources": false + "withresources": false, + "timeseries": false }, "cluster": null, "name": "default-coay", diff --git a/bench/cardano-profile/data/test/fast-nomadperf-coay/profile.json b/bench/cardano-profile/data/test/fast-nomadperf-coay/profile.json index e5738b94cac..f1d4e28437b 100644 --- a/bench/cardano-profile/data/test/fast-nomadperf-coay/profile.json +++ b/bench/cardano-profile/data/test/fast-nomadperf-coay/profile.json @@ -510,7 +510,8 @@ "tracer": { "rtview": false, "ekg": false, - "withresources": false + "withresources": false, + "timeseries": false }, "cluster": { "nomad": { diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Miniature.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Miniature.hs index 47b786eb99f..224118a581f 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Miniature.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Builtin/Miniature.hs @@ -28,6 +28,7 @@ base = . P.initCooldown 5 . P.analysisStandard + benchDuration :: Types.Profile -> Types.Profile benchDuration = V.timescaleCompressed @@ -73,6 +74,7 @@ profilesNoEraMiniature = ciBench02PlutusV3 = ciBench02 & V.genesisVariantVoltaire ciBench10Value = ciBench10 & V.genesisVariant300 ciBench10Plutus = ciBench10 & V.genesisVariant300 + loop = V.plutusSaturation . V.plutusTypeLoop . P.analysisSizeSmall loop2024 = V.plutusSaturation . V.plutusTypeLoop2024 . P.analysisSizeSmall ecdsa = V.plutusDoublePlusSaturation . V.plutusTypeECDSA . P.analysisSizeModerate @@ -85,6 +87,7 @@ profilesNoEraMiniature = , ciBench02Value & P.name "ci-bench-lmdb" . V.valueLocal . P.dreps 0 . P.traceForwardingOn . P.newTracing . P.lmdb . P.ssdDirectory "/tmp" , ciBench02Value & P.name "ci-bench-lsmt" . V.valueLocal . P.dreps 0 . P.traceForwardingOn . P.newTracing . P.lsmt . P.ssdDirectory "/tmp" , ciBench02Value & P.name "ci-bench-rtview" . V.valueLocal . P.dreps 0 . P.traceForwardingOn . P.newTracing . P.tracerRtview + , ciBench02Value & P.name "ci-bench-notracer" . V.valueLocal . P.dreps 0 . P.traceForwardingOff . P.newTracing , ciBench02Value & P.name "ci-bench-drep" . V.valueLocal . P.dreps 10 . P.traceForwardingOn . P.newTracing , ciBench02Plutus & P.name "ci-bench-plutus" . loop . P.dreps 0 . P.traceForwardingOn . P.newTracing @@ -115,7 +118,8 @@ profilesNoEraMiniature = dense & P.name "6-dense" . V.valueCloud . duration30 . P.traceForwardingOn . P.newTracing , dense & P.name "6-dense-rtsprof" . V.valueCloud . duration30 . P.traceForwardingOn . P.newTracing . P.rtsHeapProf . P.rtsEventlogged , dense & P.name "6-dense-1h" . V.valueCloud . duration60 . P.traceForwardingOn . P.newTracing - , dense & P.name "6-dense-1h-rtsprof" . V.valueCloud . duration60 . P.traceForwardingOn . P.newTracing . P.rtsHeapProf . P.rtsEventlogged + , dense & P.name "6-dense-1h-rtsprof" . V.valueCloud . duration60 . P.traceForwardingOn . P.newTracing . P.rtsHeapProf . P.rtsEventlogged + , dense & P.name "6-dense-timeseries-1h" . V.valueCloud . duration60 . P.traceForwardingOn . P.newTracing . P.tracerRtview . P.tracerTimeseries , dense & P.name "6-dense-4h" . V.valueCloud . duration240 . P.traceForwardingOn . P.newTracing , dense & P.name "6-dense-4h-rtsprof" . V.valueCloud . duration240 . P.traceForwardingOn . P.newTracing . P.rtsHeapProf . P.rtsEventlogged ] diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Primitives.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Primitives.hs index 7f45339454a..8277f8e57b2 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Primitives.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Primitives.hs @@ -93,7 +93,7 @@ module Cardano.Benchmarking.Profile.Primitives ( , workloadAppend -- Tracer's params. - , tracerRtview, tracerWithresources + , tracerRtview, tracerWithresources, tracerTimeseries -- Cluster params. , clusterMinimunStorage, ssdDirectory, clusterKeepRunningOn @@ -203,6 +203,7 @@ empty = Types.Profile { Types.rtview = False , Types.ekg = False , Types.withresources = False + , Types.timeseries = False } , Types.cluster = Nothing , Types.analysis = Types.Analysis { @@ -804,6 +805,9 @@ tracerRtview = tracer (\t -> t {Types.rtview = True}) tracerWithresources :: Types.Profile -> Types.Profile tracerWithresources = tracer (\t -> t {Types.withresources = True}) +tracerTimeseries :: Types.Profile -> Types.Profile +tracerTimeseries = tracer (\t -> t {Types.timeseries = True}) + -- Cluster. -------------------------------------------------------------------------------- diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Types.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Types.hs index 57e3299f3f5..9eb7acabc3d 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Types.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Types.hs @@ -600,6 +600,7 @@ data Tracer = Tracer { rtview :: Bool , ekg :: Bool , withresources :: Bool + , timeseries :: Bool } deriving (Eq, Show, Generic) diff --git a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Vocabulary.hs b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Vocabulary.hs index f9aa0f2af83..b63cbdc4454 100644 --- a/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Vocabulary.hs +++ b/bench/cardano-profile/src/Cardano/Benchmarking/Profile/Vocabulary.hs @@ -125,6 +125,7 @@ fundsDouble = P.poolBalance 1000000000000000 . P.funds 20000000000000 . P.utxoK fundsVoting :: Types.Profile -> Types.Profile fundsVoting = P.poolBalance 1000000000000000 . P.funds 40000000000000 . P.utxoKeys 2 + -- Definition vocabulary: composition. -------------------------------------- diff --git a/bench/cardano-profile/test/Main.hs b/bench/cardano-profile/test/Main.hs index 6e259c8509f..6c0bf05cc3c 100644 --- a/bench/cardano-profile/test/Main.hs +++ b/bench/cardano-profile/test/Main.hs @@ -375,6 +375,7 @@ ciTestBage = Types.Profile { Types.rtview = False , Types.ekg = False , Types.withresources = False + , Types.timeseries = False } , Types.cluster = Nothing , Types.analysis = Types.Analysis { diff --git a/bench/cardano-timeseries-io/CHANGELOG.md b/bench/cardano-timeseries-io/CHANGELOG.md index 872cc41f136..9d990e126b4 100644 --- a/bench/cardano-timeseries-io/CHANGELOG.md +++ b/bench/cardano-timeseries-io/CHANGELOG.md @@ -1,5 +1,47 @@ # Revision history for cardano-timeseries-io +## 1.1.0 -- May 2026 + +### Breaking changes + +* JSON wire format aligned with Prometheus conventions: + - Response envelope uses `{"status":"success","data":...}` / + `{"status":"error","errorType":"...","error":"..."}`. + - `resultType` / `result` field names replace the previous `tag` / `value`. + - Prometheus result-type strings (`scalar`, `vector`, `matrix`) used + throughout. + - Timestamps and durations encoded as Unix seconds (Double). + - Data-point values encoded as strings (Prometheus convention). + - `metric` / `values` field names replace `labels` / `data` in + instant-vector and time-series objects. + +### New features + +* `Unit` type: unit literal `()`, pair `(a, b)`, and triple `(a, b, c)` + expressions. +* `List` type: `Nil` / `Cons` values; `metrics` builtin enumerates all + metric names known to the store. +* `RangeVector` / `Scalar` arithmetic: range vectors can now appear as + operands in arithmetic expressions with scalars. +* `Duration + Duration` noncanonical arithmetic rule. +* Three additional unambiguous noncanonical arithmetic rules. +* Local name shadowing: inner `let` bindings correctly shadow outer ones. +* Metric-name awareness in the elaborator: unknown identifiers that are not + in the metric store now produce an `Undefined name` error with a + "did you mean?" suggestion instead of a type-mismatch later. + +### Bug fixes + +* `epoch` keyword was incorrectly parsed; now correctly produces + `Timestamp 0`. +* `sum_over_time` elaboration bug fixed. +* Parser bug fixed (duration suffix bleed into adjacent identifiers). + +### Testing + +* Comprehensive test suite added: parser, elaborator, and interpreter suites + covering 362 cases. + ## 1.0.0 -- March 2026 * First version. diff --git a/bench/cardano-timeseries-io/app/Cardano/Timeseries/Common.hs b/bench/cardano-timeseries-io/app/Cardano/Timeseries/Common.hs index bffbebf8b3d..65f096949e2 100644 --- a/bench/cardano-timeseries-io/app/Cardano/Timeseries/Common.hs +++ b/bench/cardano-timeseries-io/app/Cardano/Timeseries/Common.hs @@ -57,7 +57,7 @@ repl store interpCfg now = forever $ do case parse (expr <* space <* eof) "input" queryString of Left err -> putStrLn (errorBundlePretty err) Right surfaceQuery -> do - case evalState (runExceptT (elab surfaceQuery)) initialSt of + case evalState (runExceptT (elab surfaceQuery)) (initialSt (metrics store)) of Left err -> Text.putStrLn err Right query -> do Text.putStrLn (showT query) diff --git a/bench/cardano-timeseries-io/bench/Bench.hs b/bench/cardano-timeseries-io/bench/Bench.hs index 51907ba8b2f..b87574099b1 100644 --- a/bench/cardano-timeseries-io/bench/Bench.hs +++ b/bench/cardano-timeseries-io/bench/Bench.hs @@ -56,7 +56,7 @@ main = do case parse (Surface.Parser.expr <* space <* eof) "input" query of Left err -> putStrLn (errorBundlePretty err) Right surfaceQuery -> do - case evalState (runExceptT (elab surfaceQuery)) initialSt of + case evalState (runExceptT (elab surfaceQuery)) (initialSt (metrics flatStore)) of Left err -> Text.putStrLn err Right !q -> do Text.putStrLn (showT q) diff --git a/bench/cardano-timeseries-io/cardano-timeseries-io.cabal b/bench/cardano-timeseries-io/cardano-timeseries-io.cabal index 974ab239867..7068567fb37 100644 --- a/bench/cardano-timeseries-io/cardano-timeseries-io.cabal +++ b/bench/cardano-timeseries-io/cardano-timeseries-io.cabal @@ -1,7 +1,7 @@ cabal-version: 3.4 name: cardano-timeseries-io description: Cardano Timeseries Input/Output for realtime metric storage & query. -version: 1.0.0 +version: 1.1.0 category: Cardano Metrics copyright: 2026 Intersect. @@ -53,6 +53,7 @@ library , base , containers , deepseq + , edit-distance , megaparsec , mtl , scientific @@ -86,6 +87,7 @@ library , Cardano.Timeseries.Interp.Expr , Cardano.Timeseries.Interp.Types , Cardano.Timeseries.Interp.Value + , Cardano.Timeseries.JSON , Cardano.Timeseries.Store , Cardano.Timeseries.Store.Flat @@ -145,6 +147,25 @@ executable cardano-timeseries-io , trace-resources , vector +test-suite cardano-timeseries-test + import: common + type: exitcode-stdio-1.0 + hs-source-dirs: test + main-is: Cardano/Timeseries/Unit.hs + other-modules: + Cardano.Timeseries.Elab.Expr.Parser.Suite + , Cardano.Timeseries.Elab.Suite + , Cardano.Timeseries.Interp.Suite + build-depends: + base + , cardano-timeseries-io + , containers + , megaparsec + , mtl + , tasty + , tasty-hunit + , text + benchmark cardano-timeseries-io-bench import: common type: exitcode-stdio-1.0 diff --git a/bench/cardano-timeseries-io/docs/elab.txt b/bench/cardano-timeseries-io/docs/elab.txt index 79090a11506..6da81334146 100644 --- a/bench/cardano-timeseries-io/docs/elab.txt +++ b/bench/cardano-timeseries-io/docs/elab.txt @@ -7,6 +7,7 @@ let x = t in t t t fst t snd t +() (t, t) t == t (~) t != t (~) @@ -25,7 +26,7 @@ t && t t || t ms s -min +m h epoch now @@ -40,6 +41,7 @@ filter t t join t t map t t abs t +round t increase t rate t avg_over_time t @@ -47,6 +49,8 @@ sum_over_time t quantile_over_time t t unless t t quantile_by (s, ..., s) t t +earliest x +latest x x metrics diff --git a/bench/cardano-timeseries-io/docs/typing.txt b/bench/cardano-timeseries-io/docs/typing.txt index 32447873d63..748d45f51e1 100644 --- a/bench/cardano-timeseries-io/docs/typing.txt +++ b/bench/cardano-timeseries-io/docs/typing.txt @@ -18,13 +18,14 @@ c ::= l = s | l != s c̄ ::= {c, ..., c} // Types -A, B, C, T ::= InstantVector T | RangeVector T | Scalar | Bool | Timestamp | Duration | (T, T) | T -> T | Text +A, B, C, T ::= InstantVector T | RangeVector T | List T | Scalar | Bool | Timestamp | Duration | (T, T) | T -> T | Text // Contexts Γ ::= ε | Γ (x ≔ t : T) | Γ (x : T) // Terms t, f, e, a, b ::= x + | () | (t, t) | \x -> t | let x = t in t @@ -63,7 +64,7 @@ t, f, e, a, b ::= x | abs t | range t t t | range t t t t - | filter_by_label t c̄ + | filter_by_label c̄ t | max t | min t | avg t @@ -89,6 +90,12 @@ t, f, e, a, b ::= x | instant_vector_to_scalar t | quantile_by t t | metrics + | Nil + | Cons t t + | add_range_vector_scalar t t + | sub_range_vector_scalar t t + | mul_range_vector_scalar t t + | div_range_vector_scalar t t ┌──────┐ │A type│ @@ -104,6 +111,14 @@ A type RangeVector A type +A type +-------------------- // Used only for typing "metrics" +List A type + + +Unit type + + Scalar type @@ -117,8 +132,8 @@ B type A type B type ------- -A -> B +---------- +A -> B type Timestamp type @@ -164,7 +179,7 @@ x ∈ metric-store Γ ⊦ x : Timestamp -> InstantVector Scalar -Γ (x := t : A) ⊦ e : B +Γ (x ≔ t : A) ⊦ e : B ---------------------- ✔ Γ ⊦ let x = t in e : B @@ -184,6 +199,19 @@ x ∈ metric-store Γ ⊦ snd t : B +Γ ⊦ () : Unit ✔ + + +---------------- ✔ +Γ ⊦ Nil : List A + + +Γ ⊦ t : A +Γ ⊦ t' : List A +---------------------- ✔ +Γ ⊦ Cons t t' : List A + + Γ ⊦ a : A Γ ⊦ b : B ------------------- ✔ @@ -319,7 +347,7 @@ n integer // integer literal n integer // integer literal - // Syntax hugar: h ✗ + // Syntax sugar: h ✗ ----------------------------------- ✔ Γ ⊦ hours n : Duration @@ -406,7 +434,7 @@ n integer // integer literal Γ ⊦ f : A -> B Γ ⊦ v : InstantVector A ----------------------------- ✔ -Γ ⊦ map f u : InstantVector B +Γ ⊦ map f v : InstantVector B Γ ⊦ t : Scalar @@ -440,7 +468,7 @@ n integer // integer literal Γ ⊦ q : Scalar // must be in range of [0; 1] -Γ ⊦ r : RangeVector +Γ ⊦ r : RangeVector Scalar ------------------------------------------------- ✔ Γ ⊦ quantile_over_time q r : InstantVector Scalar @@ -455,9 +483,49 @@ n integer // integer literal // meta-level abbreviation Γ ⊦ a : InstantVector Scalar Γ ⊦ s : Scalar ------------------------------------------------------------- ✔ +--------------------------------------------------------------- ✔ +Γ ⊦ eq_instant_vector_scalar a s : InstantVector Scalar + eq_instant_vector_scalar a s ≡ filter (\v -> v == s) a + + +// meta-level abbreviation +Γ ⊦ a : InstantVector Scalar +Γ ⊦ s : Scalar +--------------------------------------------------------------- ✔ +Γ ⊦ not_eq_instant_vector_scalar a s : InstantVector Scalar + not_eq_instant_vector_scalar a s ≡ filter (\v -> v /= s) a + + +// meta-level abbreviation +Γ ⊦ a : InstantVector Scalar +Γ ⊦ s : Scalar +--------------------------------------------------------------- ✔ +Γ ⊦ lt_instant_vector_scalar a s : InstantVector Scalar + lt_instant_vector_scalar a s ≡ filter (\v -> v < s) a + + +// meta-level abbreviation +Γ ⊦ a : InstantVector Scalar +Γ ⊦ s : Scalar +--------------------------------------------------------------- ✔ Γ ⊦ lte_instant_vector_scalar a s : InstantVector Scalar - lte_instant_vector_scalar a s ≡ filter (\v -> v <= s) a // same rule holds for other binary relations + lte_instant_vector_scalar a s ≡ filter (\v -> v <= s) a + + +// meta-level abbreviation +Γ ⊦ a : InstantVector Scalar +Γ ⊦ s : Scalar +--------------------------------------------------------------- ✔ +Γ ⊦ gt_instant_vector_scalar a s : InstantVector Scalar + gt_instant_vector_scalar a s ≡ filter (\v -> v > s) a + + +// meta-level abbreviation +Γ ⊦ a : InstantVector Scalar +Γ ⊦ s : Scalar +--------------------------------------------------------------- ✔ +Γ ⊦ gte_instant_vector_scalar a s : InstantVector Scalar + gte_instant_vector_scalar a s ≡ filter (\v -> v >= s) a // meta-level abbreviation @@ -485,8 +553,8 @@ v <= bool s ≡ (\x -> x <= s) v // meta-level definition (define via map) Γ ⊦ v : InstantVector Scalar Γ ⊦ s : Scalar ----------------------------------------------------- ✔ -Γ ⊦ mul_instant_vector_scalar : InstantVector Scalar +-------------------------------------------------------- ✔ +Γ ⊦ mul_instant_vector_scalar v s : InstantVector Scalar // meta-level definition (define via map) @@ -496,6 +564,30 @@ v <= bool s ≡ (\x -> x <= s) v Γ ⊦ div_instant_vector_scalar v s : InstantVector Scalar +Γ ⊦ v : RangeVector Scalar +Γ ⊦ s : Scalar +------------------------------------------------------- ✔ +Γ ⊦ add_range_vector_scalar v s : RangeVector Scalar + + +Γ ⊦ v : RangeVector Scalar +Γ ⊦ s : Scalar +------------------------------------------------------- ✔ +Γ ⊦ sub_range_vector_scalar v s : RangeVector Scalar + + +Γ ⊦ v : RangeVector Scalar +Γ ⊦ s : Scalar +------------------------------------------------------- ✔ +Γ ⊦ mul_range_vector_scalar v s : RangeVector Scalar + + +Γ ⊦ v : RangeVector Scalar +Γ ⊦ s : Scalar +------------------------------------------------------- ✔ +Γ ⊦ div_range_vector_scalar v s : RangeVector Scalar + + // meta-level definition (define via map) Γ ⊦ v : InstantVector Bool ----------------------------------------------------- ✔ @@ -508,5 +600,5 @@ v <= bool s ≡ (\x -> x <= s) v Γ ⊦ quantile_by q v l̄ : InstantVector Scalar Γ ctx ------------------- ✔ -Γ ⊦ metrics : Text +----------------------- ✔ +Γ ⊦ metrics : List Text diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/API.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/API.hs index f32000f9bc5..e09da29d118 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/API.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/API.hs @@ -45,6 +45,6 @@ execute store interpCfg now stringQuery = do surfaceQuery <- first (ParsingErrorWhileExecuting . Text.pack . errorBundlePretty) $ parse (expr <* space <* eof) "input" stringQuery query <- first ElabErrorWhileExecuting $ - evalState (runExceptT (elab surfaceQuery)) initialSt + evalState (runExceptT (elab surfaceQuery)) (initialSt (metrics store)) first (InterpErrorWhileExecuting . (.message)) $ evalState (runExceptT $ interp interpCfg store mempty query now) 0 diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Component.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Component.hs index ef2469f1ee0..0252c955572 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Component.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Component.hs @@ -24,6 +24,7 @@ import qualified Cardano.Timeseries.API as API import Cardano.Timeseries.Component.Trace import Cardano.Timeseries.Component.Types import Cardano.Timeseries.Domain.Instant +import Cardano.Timeseries.Domain.Types (SeriesIdentifier) import qualified Cardano.Timeseries.Interp.Config as Interp import Cardano.Timeseries.Util (diag, getTimeMs) @@ -38,7 +39,6 @@ import Control.Monad (forever) import Control.Monad.STM (atomically) import Data.Foldable (Foldable (..)) import Data.Maybe (fromMaybe) -import qualified Data.Set as Set import Data.Text (Text) -- | Not exported. The user gets the default if `create`-d with a `Nothing` @@ -49,8 +49,8 @@ defaultTimeseriesInterpConfig = Interp.Config -- | Not exported. The user gets the default if `create`-d with a `Nothing` defaultTimeseriesConfig :: TimeseriesConfig defaultTimeseriesConfig = TimeseriesConfig - (1 * 24 * 60 * 60 * 1000) -- 1 day in ms - (Just (1 * 60 * 60)) -- 1 hour in s + (1 * 24 * 60 * 60 * 1000) -- 1 day in ms + (Just (15 * 60 * 1000)) -- 15 min in ms defaultTimeseriesInterpConfig -- | The constructor and projections are not exported. Use the API methods below for working with timeseries. @@ -109,13 +109,13 @@ readConfig handle = readTVarIO handle.config writeConfig :: TimeseriesHandle -> Maybe TimeseriesConfig -> IO () writeConfig handle k = modifyConfig handle (const k) --- | Insert a batch on metric data into the store at the given timestamp. -insert :: TimeseriesHandle -> Text -> Text -> Timestamp -> [(MetricIdentifier, Double)] -> IO () -insert TimeseriesHandle{..} originKey originValue t batch = do +-- | Insert a batch of metric data into the store at the given timestamp. +insert :: TimeseriesHandle -> SeriesIdentifier -> Timestamp -> [(MetricIdentifier, Double)] -> IO () +insert TimeseriesHandle{..} series t batch = do atomically $ modifyTVar' store $ \st -> foldl' f st batch - traceWith tracer (TimeseriesTraceInsert originKey originValue t batch) + traceWith tracer (TimeseriesTraceInsert series t batch) where - f st (k, v) = API.insert st k (Instant (Set.singleton (originKey, originValue)) t v) + f st (k, v) = API.insert st k (Instant series t v) -- | Execute a query on the store at the given timestamp (ms). execute :: TimeseriesHandle -> Timestamp -> Text -> IO (Either ExecutionError Value) diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Component/Trace.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Component/Trace.hs index 3ddfbfc94e8..0ac1b292e5a 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Component/Trace.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Component/Trace.hs @@ -1,14 +1,16 @@ {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-} +{-# HLINT ignore "Use :" #-} module Cardano.Timeseries.Component.Trace(TimeseriesTrace(..)) where -import Cardano.Logging (LogFormatting (..), SeverityS (..)) +import Cardano.Logging (DetailLevel (DDetailed), LogFormatting (..), SeverityS (..)) import Cardano.Logging.Types (MetaTrace (..), Namespace (..)) import Cardano.Timeseries.API import Cardano.Timeseries.Component.Types +import Cardano.Timeseries.Domain.Types (SeriesIdentifier) import Data.Aeson (toJSON) -import Data.Aeson.Key (fromText) import Data.Aeson.KeyMap (singleton) import Data.Aeson.Types ((.=)) import Data.Text (Text) @@ -17,8 +19,7 @@ import Data.Word (Word64) data TimeseriesTrace = TimeseriesTraceCreate (Maybe TimeseriesConfig) | TimeseriesTraceReconfigure (Maybe TimeseriesConfig) | TimeseriesTraceInsert - Text -- ^ Origin key - Text -- ^ Origin value + SeriesIdentifier Timestamp [(MetricIdentifier, Double)] -- ^ Payload | TimeseriesTraceIssueExecute QueryId Text @@ -33,25 +34,29 @@ instance LogFormatting TimeseriesTrace where singleton "cfg" (toJSON cfg) forMachine _ (TimeseriesTraceReconfigure cfg) = singleton "cfg" (toJSON cfg) - forMachine _ (TimeseriesTraceInsert originKey originValue t batch) = mconcat + forMachine _ (TimeseriesTraceInsert series t batch) = mconcat [ - fromText originKey .= originValue + "labels" .= series , "timestamp" .= t , "batch" .= batch ] - forMachine _ (TimeseriesTraceIssueExecute queryId queryText) = mconcat + forMachine d (TimeseriesTraceIssueExecute queryId queryText) = mconcat $ [ "query_id" .= queryId - , - "query_text" .= queryText ] - forMachine _ (TimeseriesTraceYieldExecute queryId result) = mconcat + ++ + [ + "query_text" .= queryText | d >= DDetailed + ] + forMachine d (TimeseriesTraceYieldExecute queryId result) = mconcat $ [ "query_id" .= queryId - , - "query_result" .= either asText showT result + ] + ++ + [ + "query_result" .= either asText showT result | d >= DDetailed ] forMachine _ (TimeseriesTracePrune retMs) = singleton "retention_millis" (toJSON retMs) @@ -79,7 +84,8 @@ instance MetaTrace TimeseriesTrace where severityFor (Namespace [] ["Timeseries", "Insert"]) _ = Just Debug -- That one clogs up the traces, hence lower severity severityFor (Namespace [] ["Timeseries", "IssueExecute"]) _ = Just Info severityFor (Namespace [] ["Timeseries", "YieldExecute"]) _ = Just Info - severityFor (Namespace [] ["Timeseries", "Prune"]) _ = Just Info + severityFor (Namespace [] ["Timeseries", "Prune"]) _ = Just Debug -- That one might also be frequent, + -- depending on the configuration severityFor _ _ = Nothing documentFor (Namespace [] ["Timeseries", "Create"]) = Just "A timeseries handle has been created." diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab.hs index a710202888a..cbde0d8954f 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab.hs @@ -5,7 +5,8 @@ module Cardano.Timeseries.Elab(initialSt, St(..), ElabM, elab) where import Cardano.Timeseries.AsText -import Cardano.Timeseries.Domain.Identifier (Identifier) +import Cardano.Timeseries.Domain.Identifier (Identifier (..)) +import Cardano.Timeseries.Domain.Types (MetricIdentifier) import Cardano.Timeseries.Elab.Expr (Loc, getLoc) import qualified Cardano.Timeseries.Elab.Expr as Surface import Cardano.Timeseries.Elab.Resolve @@ -23,14 +24,17 @@ import qualified Cardano.Timeseries.Interp.BinaryRelation as BinaryRelation import Cardano.Timeseries.Interp.Expr (HoleIdentifier) import qualified Cardano.Timeseries.Interp.Expr as Semantic -import Control.Monad (forM_) +import Control.Monad () import Control.Monad.Except (ExceptT, liftEither, runExceptT, throwError) import Control.Monad.State.Strict (State, get, modify, put, runState) import Data.Foldable as Foldable (toList) -import Data.List (find) +import Data.List (find, nub, sortOn) +import qualified Text.EditDistance as EditDistance import qualified Data.Map.Strict as Map -import Data.Sequence as Seq (Seq (..), fromList, singleton, (><), (|>)) -import Data.Text (Text, pack) +import Data.Sequence as Seq (Seq (..), fromList, reverse, singleton, (><), (|>)) +import Data.Set (Set) +import qualified Data.Set as Set +import Data.Text (Text) import qualified Data.Text as Text @@ -121,8 +125,8 @@ prettyBinaryArithmeticOpElabProblem (BinaryArithmeticOpElabProblem gam loc _ lhs <> "\n @ " <> asText loc -evalBinaryArithmethicOpElabProblem :: Defs -> BinaryArithmeticOpElabProblem -> BinaryArithmeticOpElabProblem -evalBinaryArithmethicOpElabProblem defs (BinaryArithmeticOpElabProblem gam loc lhs lhsTy op rhs rhsTy hole holeTy) = +evalBinaryArithmeticOpElabProblem :: Defs -> BinaryArithmeticOpElabProblem -> BinaryArithmeticOpElabProblem +evalBinaryArithmeticOpElabProblem defs (BinaryArithmeticOpElabProblem gam loc lhs lhsTy op rhs rhsTy hole holeTy) = BinaryArithmeticOpElabProblem (resolveContext defs gam) loc @@ -174,20 +178,21 @@ instance AsText ElabProblem where evalElabProblem :: Defs -> ElabProblem -> ElabProblem evalElabProblem defs (General p) = General (evalGeneralElabProblem defs p) evalElabProblem defs (BinaryRelation p) = BinaryRelation (evalBinaryRelationElabProblem defs p) -evalElabProblem defs (BinaryArithmeticOp p) = BinaryArithmeticOp (evalBinaryArithmethicOpElabProblem defs p) +evalElabProblem defs (BinaryArithmeticOp p) = BinaryArithmeticOp (evalBinaryArithmeticOpElabProblem defs p) evalElabProblem defs (ToScalar p) = ToScalar (evalToScalarElabProblem defs p) data St = St { defs :: Defs, - nextHoleIdentifier :: HoleIdentifier + nextHoleIdentifier :: HoleIdentifier, + availableMetrics :: Set MetricIdentifier } -initialSt :: St +initialSt :: Set MetricIdentifier -> St initialSt = St mempty 0 updateDefs :: (Defs -> Defs) -> St -> St -updateDefs f (St ds x) = St (f ds) x +updateDefs f (St ds x ms) = St (f ds) x ms getDefs :: St -> Defs getDefs = defs @@ -196,7 +201,30 @@ setDefs :: Defs -> St -> St setDefs v = updateDefs (const v) updateNextHoleIdentifier :: (HoleIdentifier -> HoleIdentifier) -> St -> St -updateNextHoleIdentifier f (St ds x) = St ds (f x) +updateNextHoleIdentifier f (St ds x ms) = St ds (f x) ms + +getAvailableMetrics :: ElabM (Set MetricIdentifier) +getAvailableMetrics = (.availableMetrics) <$> get + +didYouMean :: Identifier -> Context -> Set MetricIdentifier -> Text +didYouMean v gam ms = + let nameStr = Text.unpack (asText v) + nameLen = length nameStr + threshold = max 1 (nameLen `div` 3) + candidates = nub $ + [ Text.unpack (asText (Types.identifier b)) | b <- Foldable.toList gam ] ++ + map Text.unpack (Set.toList ms) + close = take 5 + $ map snd + $ sortOn fst + [ (d, Text.pack c) + | c <- candidates + , let d = EditDistance.levenshteinDistance EditDistance.defaultEditCosts nameStr c + , d <= threshold + ] + in if null close + then "" + else "\n Did you mean: " <> Text.intercalate ", " close runUnifyM :: UnifyM a -> ElabM a runUnifyM f = do @@ -245,11 +273,6 @@ mbBinaryArithmeticOp (Surface.Mul l a b) = Just (l, a, BinaryArithmeticOp.Mul, b mbBinaryArithmeticOp (Surface.Div l a b) = Just (l, a, BinaryArithmeticOp.Div, b) mbBinaryArithmeticOp _ = Nothing -checkFresh :: Context -> Identifier -> ElabM () -checkFresh ctx v = - forM_ (find (\b -> Types.identifier b == v) ctx) $ \found -> - throwError $ pack $ "Reused variable name: " <> show (Types.identifier found) - -- | Γ ⊦ to_scalar (t : T) ~> ? -- Assumes that `Ty` is normal w.r.t. hole substitution. solveToScalarElabProblem :: Context @@ -398,6 +421,13 @@ solveCanonicalBinaryArithmeticOpElabProblem _ _ lhs (InstantVector Scalar) instantiateExpr hole (BinaryArithmeticOp.embedInstantVectorScalar op lhs rhs) pure $ Just ([], []) +-- | Σ Γ ⊦ RangeVector Scalar `op` Scalar ~> ? : RangeVector Scalar +solveCanonicalBinaryArithmeticOpElabProblem _ _ lhs (RangeVector Scalar) + op rhs Scalar hole (RangeVector Scalar) = do + modify $ updateDefs $ + instantiateExpr hole + (BinaryArithmeticOp.embedRangeVectorScalar op lhs rhs) + pure $ Just ([], []) solveCanonicalBinaryArithmeticOpElabProblem _ _ _ _ _ _ _ _ _ = pure Nothing solveNoncanonicalBinaryArithmeticOpElabProblem :: @@ -426,15 +456,64 @@ solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs Timestamp BinaryArith pure $ Just ([UnificationProblem loc rhsTy Duration, UnificationProblem loc typ Timestamp], [BinaryArithmeticOp $ BinaryArithmeticOpElabProblem gam loc lhs Timestamp BinaryArithmeticOp.Sub rhs Duration hole Timestamp]) +-- | ? - Duration : ? ~> Timestamp - Duration : Timestamp +-- Only Timestamp - Duration exists, so lhs must be Timestamp. +solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs lhsTy BinaryArithmeticOp.Sub rhs Duration hole typ = do + pure $ Just + ( [UnificationProblem loc lhsTy Timestamp, UnificationProblem loc typ Timestamp] + , [BinaryArithmeticOp $ + BinaryArithmeticOpElabProblem gam loc lhs Timestamp BinaryArithmeticOp.Sub rhs Duration hole Timestamp] + ) +solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs Duration BinaryArithmeticOp.Add rhs Duration hole typ = do + pure $ Just ([UnificationProblem loc typ Duration], + [BinaryArithmeticOp $ + BinaryArithmeticOpElabProblem gam loc lhs Duration BinaryArithmeticOp.Add rhs Duration hole Duration]) +-- | ? + ? : Duration ~> Duration + Duration : Duration +-- Only Duration + Duration produces Duration. +solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs lhsTy BinaryArithmeticOp.Add rhs rhsTy hole Duration = do + pure $ Just + ( [UnificationProblem loc lhsTy Duration, UnificationProblem loc rhsTy Duration] + , [BinaryArithmeticOp $ + BinaryArithmeticOpElabProblem gam loc lhs Duration BinaryArithmeticOp.Add rhs Duration hole Duration] + ) solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs Scalar op rhs (InstantVector Scalar) hole typ = do pure (Just ([UnificationProblem loc typ (InstantVector Scalar)], [BinaryArithmeticOp $ BinaryArithmeticOpElabProblem gam loc rhs (InstantVector Scalar) op lhs Scalar hole (InstantVector Scalar)])) -solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs lhsTy op rhs _ hole Scalar = do - pure $ Just ([UnificationProblem loc lhsTy Scalar, UnificationProblem loc lhsTy Scalar], +solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs Scalar op rhs (RangeVector Scalar) hole typ = do + pure (Just ([UnificationProblem loc typ (RangeVector Scalar)], [BinaryArithmeticOp $ + BinaryArithmeticOpElabProblem gam loc rhs (RangeVector Scalar) op lhs Scalar hole (RangeVector Scalar)])) +-- | ? - ? : Timestamp ~> Timestamp - Duration : Timestamp +-- Only Timestamp - Duration produces Timestamp via Sub. +solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs lhsTy BinaryArithmeticOp.Sub rhs rhsTy hole Timestamp = do + pure $ Just + ( [UnificationProblem loc lhsTy Timestamp, UnificationProblem loc rhsTy Duration] + , [BinaryArithmeticOp $ + BinaryArithmeticOpElabProblem gam loc lhs Timestamp BinaryArithmeticOp.Sub rhs Duration hole Timestamp] + ) +solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs lhsTy op rhs rhsTy hole Scalar = do + pure $ Just ([UnificationProblem loc lhsTy Scalar, UnificationProblem loc rhsTy Scalar], [BinaryArithmeticOp $ BinaryArithmeticOpElabProblem gam loc lhs Scalar op rhs Scalar hole Scalar]) solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs Scalar op rhs Scalar hole holeTy = do pure $ Just ([UnificationProblem loc holeTy Scalar], [BinaryArithmeticOp $ BinaryArithmeticOpElabProblem gam loc lhs Scalar op rhs Scalar hole Scalar]) +solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs lhsTy op rhs rhsTy hole holeTy + | lhsTy == RangeVector Scalar || rhsTy == RangeVector Scalar = + pure $ Just + ( + [UnificationProblem loc holeTy (RangeVector Scalar)], + [BinaryArithmeticOp $ + BinaryArithmeticOpElabProblem + gam + loc + lhs + lhsTy + op + rhs + rhsTy + hole + (RangeVector Scalar) + ] + ) solveNoncanonicalBinaryArithmeticOpElabProblem gam loc lhs lhsTy op rhs rhsTy hole holeTy | lhsTy == InstantVector Scalar || rhsTy == InstantVector Scalar = pure $ Just @@ -497,13 +576,17 @@ solveGeneralElabProblem gam (mbBinaryRelation -> Just (l, a, r, b)) x typ = do typ pure ([], [e1, e2, e3]) solveGeneralElabProblem _ (Surface.Metrics l) x typ = do - let u = UnificationProblem l typ Types.Text + let u = UnificationProblem l typ (Types.List Types.Text) modify (updateDefs $ instantiateExpr x Semantic.Metrics) pure ([u], []) solveGeneralElabProblem _ (Surface.Number l f) x typ = do let u = UnificationProblem l typ Scalar modify (updateDefs $ instantiateExpr x (Semantic.Number f)) pure ([u], []) +solveGeneralElabProblem _ (Surface.MkUnit l) x typ = do + let u = UnificationProblem l typ Ty.Unit + modify (updateDefs $ instantiateExpr x Semantic.Unit) + pure ([u], []) solveGeneralElabProblem _ (Surface.Truth l) x typ = do let u = UnificationProblem l typ Bool modify (updateDefs $ instantiateExpr x Semantic.True) @@ -626,7 +709,7 @@ solveGeneralElabProblem gam (Surface.SumOverTime l r) x typ = do rh <- freshExprHole (RangeVector Scalar) let e1 = General $ GeneralElabProblem gam r rh (RangeVector Scalar) modify $ updateDefs $ - instantiateExpr x $ Semantic.AvgOverTime (Semantic.Hole rh) + instantiateExpr x $ Semantic.SumOverTime (Semantic.Hole rh) pure ([u], [e1]) solveGeneralElabProblem gam (Surface.QuantileOverTime l k r) x typ = do let u = UnificationProblem l typ (InstantVector Scalar) @@ -718,7 +801,6 @@ solveGeneralElabProblem gam (Surface.MkPair l a b) x typ = do solveGeneralElabProblem gam (Surface.Lambda l v scope) x typ = do tyah <- freshTyHole tybh <- freshTyHole - checkFresh gam v let u = UnificationProblem l typ (Fun (Hole tyah) (Hole tybh)) scopeh <- freshExprHole (Hole tybh) let e = General $ GeneralElabProblem (gam |> LambdaBinding v (Hole tyah)) scope scopeh (Hole tybh) @@ -731,7 +813,6 @@ solveGeneralElabProblem gam (Surface.Lambda l v scope) x typ = do solveGeneralElabProblem gam (Surface.Let l v rhs scope) x typ = do tyah <- freshTyHole tybh <- freshTyHole - checkFresh gam v let u = UnificationProblem l typ (Hole tybh) rhsh <- freshExprHole (Hole tyah) scopeh <- freshExprHole (Hole tybh) @@ -754,13 +835,16 @@ solveGeneralElabProblem gam (mbBinaryArithmeticOp -> Just (loc, left, op, right) let e3 = BinaryArithmeticOp $ BinaryArithmeticOpElabProblem gam loc (Semantic.Hole lefth) (Hole tyah) op (Semantic.Hole righth) (Hole tybh) x typ pure ([], [e1, e2, e3]) -solveGeneralElabProblem gam (Surface.Variable l v) x typ | Just b <- find (\b -> Types.identifier b == v) gam = do +solveGeneralElabProblem gam (Surface.Variable l v) x typ | Just b <- find (\b -> Types.identifier b == v) (Seq.reverse gam) = do modify $ updateDefs $ instantiateExpr x $ Semantic.Variable v pure ([UnificationProblem l typ (Types.ty b)], []) --- Assumes that all variables into the store (= metrics) have type (Timestamp -> Scalar) -solveGeneralElabProblem _ (Surface.Variable l v) x typ = do - modify $ updateDefs $ instantiateExpr x $ Semantic.Variable v - pure ([UnificationProblem l typ (Fun Timestamp (InstantVector Scalar))], []) +solveGeneralElabProblem gam (Surface.Variable l v) x typ = do + ms <- getAvailableMetrics + case v of + User u | Set.member u ms -> do + modify $ updateDefs $ instantiateExpr x $ Semantic.Variable v + pure ([UnificationProblem l typ (Fun Timestamp (InstantVector Scalar))], []) + _ -> throwError $ "Undefined name: " <> asText v <> didYouMean v gam ms <> "\n @ " <> asText l solveGeneralElabProblem gam (Surface.Filter l f v) h hty = do argTy <- freshTyHole fh <- freshExprHole (Fun (Hole argTy) Bool) @@ -837,6 +921,10 @@ solveGeneralElabProblem gam (Surface.ToScalar l t) h hty = do , ToScalar $ ToScalarElabProblem gam l (Semantic.Hole th) (Hole tTy) h ]) +solveGeneralElabProblem _ (Surface.Str l s) x typ = do + let u = UnificationProblem l typ Types.Text + modify (updateDefs $ instantiateExpr x (Semantic.Str (Text.unpack s))) + pure ([u], []) solveGeneralElabProblem _ s _ _ = throwError $ "Do not know how to elaborate: " <> showT s diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Expr.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Expr.hs index 2d2258314a1..be63875447f 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Expr.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Expr.hs @@ -111,7 +111,7 @@ import Text.Megaparsec (SourcePos, sourcePosPretty) -- | t{> comp} > t{> comp} | t{> comp} >= t{> comp} -- t{and} ::= t{> and} &̅&̅ ̅t̅{̅>̅ ̅a̅n̅d̅}̅ -- t{or} ::= t{> or} |̅|̅ ̅t̅{̅>̅ ̅o̅r̅}̅ --- t{universe} ::= let x = t{> universe} in t{≥ universe} | \x -> t{≥ universe} +-- t{universe} ::= let x = t{≥ universe} in t{≥ universe} | \x -> t{≥ universe} -- | Source location. type Loc = SourcePos @@ -125,6 +125,7 @@ data Expr = | Fst Loc Expr | Snd Loc Expr | MkPair Loc Expr Expr + | MkUnit Loc | Eq Loc Expr Expr | NotEq Loc Expr Expr | Lt Loc Expr Expr @@ -177,6 +178,7 @@ getLoc (Let l _ _ _) = l getLoc (Lambda l _ _) = l getLoc (Fst l _) = l getLoc (Snd l _) = l +getLoc (MkUnit l) = l getLoc (MkPair l _ _) = l getLoc (Eq l _ _) = l getLoc (NotEq l _ _) = l diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Expr/Parser.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Expr/Parser.hs index 72362d095f8..579a83a5da8 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Expr/Parser.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Expr/Parser.hs @@ -88,7 +88,7 @@ now :: Parser Expr now = Now <$> getSourcePos <* string "now" epoch :: Parser Expr -epoch = Now <$> getSourcePos <* string "epoch" +epoch = Epoch <$> getSourcePos <* string "epoch" true :: Parser Expr true = Truth <$> getSourcePos <* string "true" @@ -96,29 +96,23 @@ true = Truth <$> getSourcePos <* string "true" false :: Parser Expr false = Falsity <$> getSourcePos <* string "false" -continueTight :: Expr -> Parser Expr -continueTight a = a <$ string ")" - -continuePair :: Loc -> Expr -> Parser Expr -continuePair l a = do - void $ string "," - space - b <- exprUniverse - space - void $ string ")" - pure (MkPair l a b) - -tightOrPair :: Parser Expr -tightOrPair = do +tuple :: Parser Expr +tuple = do l <- getSourcePos void $ string "(" space - a <- exprUniverse + inner <- sepBy exprUniverse (try $ space *> string "," *> space) space - try (continuePair l a) <|> continueTight a + void $ string ")" + pure $ mk l inner + where + mk p [] = MkUnit p + mk _ [x] = x + mk p [x, y] = MkPair p x y + mk p (x : y : z : ws) = MkPair p x (mk p (y : z : ws)) exprAtom :: Parser Expr -exprAtom = tightOrPair +exprAtom = tuple <|> epoch <|> true <|> false @@ -350,7 +344,7 @@ exprLet = do space void $ string "=" space - rhs <- exprOr + rhs <- exprUniverse space void $ string "in" space1 diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Resolve.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Resolve.hs index 4df79121150..51f9b426c42 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Resolve.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Resolve.hs @@ -18,11 +18,13 @@ resolveTy defs (InstantVector typ) = InstantVector (resolveTy defs typ) resolveTy defs (RangeVector typ) = RangeVector (resolveTy defs typ) resolveTy defs (Fun typ typ') = Fun (resolveTy defs typ) (resolveTy defs typ') resolveTy defs (Pair typ typ') = Pair (resolveTy defs typ) (resolveTy defs typ') +resolveTy _ Ty.Unit = Ty.Unit resolveTy _ Scalar = Scalar resolveTy _ Timestamp = Timestamp resolveTy _ Duration = Duration resolveTy _ Bool = Bool resolveTy _ Text = Text +resolveTy defs (List typ) = List (resolveTy defs typ) -- | Computes the head-normal form of `Binding` w.r.t. hole resolution -- (i.e. unfolds holes recursively up to the head expression in type of the binding). @@ -47,6 +49,10 @@ resolveExpr' defs (AddInstantVectorScalar a b) = AddInstantVectorScalar (resolve resolveExpr' defs (SubInstantVectorScalar a b) = SubInstantVectorScalar (resolveExpr' defs a) (resolveExpr' defs b) resolveExpr' defs (MulInstantVectorScalar a b) = MulInstantVectorScalar (resolveExpr' defs a) (resolveExpr' defs b) resolveExpr' defs (DivInstantVectorScalar a b) = DivInstantVectorScalar (resolveExpr' defs a) (resolveExpr' defs b) +resolveExpr' defs (AddRangeVectorScalar a b) = AddRangeVectorScalar (resolveExpr' defs a) (resolveExpr' defs b) +resolveExpr' defs (SubRangeVectorScalar a b) = SubRangeVectorScalar (resolveExpr' defs a) (resolveExpr' defs b) +resolveExpr' defs (MulRangeVectorScalar a b) = MulRangeVectorScalar (resolveExpr' defs a) (resolveExpr' defs b) +resolveExpr' defs (DivRangeVectorScalar a b) = DivRangeVectorScalar (resolveExpr' defs a) (resolveExpr' defs b) resolveExpr' defs (AddScalar a b) = AddScalar (resolveExpr' defs a) (resolveExpr' defs b) resolveExpr' defs (SubScalar a b) = SubScalar (resolveExpr' defs a) (resolveExpr' defs b) resolveExpr' defs (MulScalar a b) = MulScalar (resolveExpr' defs a) (resolveExpr' defs b) @@ -63,6 +69,7 @@ resolveExpr' defs (LtInstantVectorScalar a b) = LtInstantVectorScalar (resolveEx resolveExpr' defs (LteInstantVectorScalar a b) = LteInstantVectorScalar (resolveExpr' defs a) (resolveExpr' defs b) resolveExpr' defs (GtInstantVectorScalar a b) = GtInstantVectorScalar (resolveExpr' defs a) (resolveExpr' defs b) resolveExpr' defs (GteInstantVectorScalar a b) = GteInstantVectorScalar (resolveExpr' defs a) (resolveExpr' defs b) +resolveExpr' _ Expr.Unit = Expr.Unit resolveExpr' _ Expr.True = Expr.True resolveExpr' _ Expr.False = Expr.False resolveExpr' defs (Not t) = Not (resolveExpr' defs t) @@ -113,6 +120,8 @@ resolveExpr' defs (Quantile a b) = Quantile (resolveExpr' defs a) (resolveExpr' resolveExpr' defs (Range a b c d) = Range (resolveExpr' defs a) (resolveExpr' defs b) (resolveExpr' defs c) (resolveExpr' defs <$> d) resolveExpr' defs (QuantileBy a b c) = QuantileBy a (resolveExpr' defs b) (resolveExpr' defs c) +resolveExpr' _ Expr.Nil = Expr.Nil +resolveExpr' defs (Expr.Cons a b) = Expr.Cons (resolveExpr' defs a) (resolveExpr' defs b) resolveExpr' defs (Expr.Hole idx) = case Map.lookup idx defs of Just (ExprHoleInst rhs _) -> resolveExpr' defs rhs diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Typing.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Typing.hs index da20972bfad..a46bb12b70a 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Typing.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Typing.hs @@ -31,8 +31,10 @@ data Ty = InstantVector Ty | RangeVector Ty | Scalar | Text + | List Ty | Bool | Pair Ty Ty + | Unit | Timestamp | Duration | Fun Ty Ty @@ -51,6 +53,7 @@ prettyTy prec (RangeVector typ) = conditionalParens (prec == Tight) $ "RangeVector " <> prettyTy Tight typ prettyTy _prec (Pair typ typ') = "(" <> prettyTy Loose typ <> ", " <> prettyTy Loose typ' <> ")" +prettyTy _prec Unit = "()" prettyTy prec (Fun typ typ') = conditionalParens (prec > FunCodomain) $ prettyTy FunDomain typ <> " -> " <> prettyTy FunCodomain typ' prettyTy _ Scalar = "Scalar" @@ -58,6 +61,8 @@ prettyTy _ Bool = "Bool" prettyTy _ Timestamp = "Timestamp" prettyTy _ Duration = "Duration" prettyTy _ Text = "Text" +prettyTy prec (List typ) = conditionalParens (prec == Tight) $ + "List " <> prettyTy Tight typ prettyTy _ (Hole idx) = "?" <> showT idx -- | A context entry of a typing context. diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Unify.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Unify.hs index 84b741a9d63..3aaa9157556 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Unify.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Elab/Unify.hs @@ -50,6 +50,7 @@ unifyNu _ Text Text = pure [] unifyNu _ Timestamp Timestamp = pure [] unifyNu _ Duration Duration = pure [] unifyNu loc (Pair a b) (Pair a' b') = pure [UnificationProblem loc a a', UnificationProblem loc b b'] +unifyNu _ Unit Unit = pure [] unifyNu _ (Hole x) (Hole y) | x == y = pure [] unifyNu _ (Hole x) ty = [] <$ unifyHole x ty unifyNu _ ty (Hole y) = [] <$ unifyHole y ty @@ -73,11 +74,13 @@ occursNu x (InstantVector ty) = occursNu x ty occursNu x (RangeVector ty) = occursNu x ty occursNu x (Fun ty ty') = (||) <$> occursNu x ty <*> occursNu x ty' occursNu x (Pair ty ty') = (||) <$> occursNu x ty <*> occursNu x ty' +occursNu _ Unit = pure False occursNu _ Scalar = pure False occursNu _ Bool = pure False occursNu _ Timestamp = pure False occursNu _ Duration = pure False occursNu _ Text = pure False +occursNu x (List ty) = occursNu x ty occursNu x (Hole x') = pure (x == x') unify :: Loc -> Ty -> Ty -> UnifyM [UnificationProblem] diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp.hs index 050657fdf1f..9dd3bb700f0 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp.hs @@ -44,12 +44,12 @@ import Data.Maybe (fromMaybe) import Data.Set (Set, isSubsetOf, member) import qualified Data.Set as Set import Data.Text (Text) +import qualified Data.Text as Text import Data.Word (Word64) import Statistics.Function (minMax) import Statistics.Quantile (cadpw, quantile) import Statistics.Sample (mean) -import qualified Data.Text as Text interpJoin :: (a -> b -> c) -> InstantVector a -> InstantVector b -> Either InterpError (InstantVector c) @@ -99,14 +99,17 @@ interpMap f = traverse (traverse f) interpRate :: TimeseriesVector Double -> InterpM (InstantVector Double) interpRate v = do - min <- liftEither $ maybeToEither (InterpError "Can't compute rate") (eachOldest v) - max <- liftEither $ maybeToEither (InterpError "Can't compute rate") (eachNewest v) - pure $ zipWith compute min max where + mins <- liftEither $ maybeToEither (InterpError "Can't compute rate") (eachOldest v) + maxs <- liftEither $ maybeToEither (InterpError "Can't compute rate") (eachNewest v) + traverse (uncurry compute) (zip mins maxs) where - compute :: Instant Double -> Instant Double -> Instant Double - compute min max = - let x = (max.value - min.value) / fromIntegral (max.timestamp - min.timestamp) in - Instant min.labels max.timestamp x + compute :: Instant Double -> Instant Double -> InterpM (Instant Double) + compute minI maxI + | minI.timestamp == maxI.timestamp = + throwInterpError "rate: single-point timeseries has undefined rate (zero time span)" + | otherwise = + let x = (maxI.value - minI.value) / fromIntegral (maxI.timestamp - minI.timestamp) + in pure $ Instant minI.labels maxI.timestamp x interpIncrease :: TimeseriesVector Double -> InterpM (InstantVector Double) interpIncrease v = liftEither $ do @@ -119,6 +122,27 @@ interpIncrease v = liftEither $ do let x = max.value - min.value in Instant min.labels max.timestamp x +-- | (v `op` s) applies the scalar operation pointwise to each data point value +-- | where v : RangeVector Scalar +-- | s : Scalar +interpBinaryArithmeticOpRangeVectorScalar :: Store s Double + => Config + -> s + -> Map Identifier Value + -> Expr + -> BinaryArithmeticOp + -> Expr + -> Timestamp + -> InterpM Value +interpBinaryArithmeticOpRangeVectorScalar cfg store env v op k now = do + vv <- interp cfg store env v now >>= expectRangeVector + vk <- interp cfg store env k now >>= expectScalar + let applyOp (Value.Scalar x) = pure $ Value.Scalar (BinaryArithmeticOp.materializeScalar op x vk) + applyOp other = throwInterpError $ + "Expected Scalar values in RangeVector for arithmetic, got: " <> showT other + tss <- mapM (traverse applyOp) vv + pure $ Value.RangeVector tss + -- | (v `op` s) ≡ map (\x -> x `op` s) v -- | where v : InstantVector Scalar -- | s : Scalar @@ -172,10 +196,11 @@ interpFilterBinaryRelation cfg store env v rel k now = do now -- | Given a metric store, an assignment of values to local variables, a query expression and a timestamp "now", --- interpret the `Expr` into a `Value`. +-- interpret the `Expr` into a `Value`. +-- Precondition: the expression must be well-typed in the given variable context. interp :: Store s Double => Config -> s -> Map Identifier Value -> Expr -> Timestamp -> InterpM Value interp _ store _ Expr.Metrics _ = do - pure $ Value.Text $ Text.intercalate ", " (Set.toList $ metrics store) + pure $ foldr (Value.Cons . Value.Text) Value.Nil (Set.toList $ metrics store) interp _ _ _ (Expr.Number x) _ = do pure (Value.Scalar x) interp _ store env (Expr.Variable x) _ = @@ -250,6 +275,8 @@ interp _ _ _ (Milliseconds t) _ = pure $ Duration t interp _ _ _ (Seconds t) _ = pure $ Duration (1000 * t) interp _ _ _ (Minutes t) _ = pure $ Duration (60 * 1000 * t) interp _ _ _ (Hours t) _ = pure $ Duration (60 * 60 * 1000 * t) +interp cfg store env (BinaryArithmeticOp.mbBinaryArithmeticOpRangeVectorScalar -> Just (v, op, k)) now = + interpBinaryArithmeticOpRangeVectorScalar cfg store env v op k now interp cfg store env (BinaryArithmeticOp.mbBinaryArithmeticOpInstantVectorScalar -> Just (v, op, k)) now = do interpBinaryArithmeticOp cfg store env v op k now interp cfg store env (Quantile k_ expr) now = do @@ -276,13 +303,19 @@ interp cfg store env (Increase r_) now = do pure (Value.InstantVector (fmap (fmap Value.Scalar) r')) interp cfg store env (Avg expr) now = do v <- interp cfg store env expr now >>= expectInstantVectorScalar - pure $ Value.Scalar $ mean (Instant.toVector v) + if null v + then throwInterpError "avg: empty instant vector" + else pure $ Value.Scalar $ mean (Instant.toVector v) interp cfg store env (Max expr) now = do v <- interp cfg store env expr now >>= expectInstantVectorScalar - pure $ Value.Scalar $ snd $ minMax (Instant.toVector v) + if null v + then throwInterpError "max: empty instant vector" + else pure $ Value.Scalar $ snd $ minMax (Instant.toVector v) interp cfg store env (Min expr) now = do v <- interp cfg store env expr now >>= expectInstantVectorScalar - pure $ Value.Scalar $ fst $ minMax (Instant.toVector v) + if null v + then throwInterpError "min: empty instant vector" + else pure $ Value.Scalar $ fst $ minMax (Instant.toVector v) interp cfg store env (AvgOverTime expr) now = do v <- interp cfg store env expr now >>= expectRangeVectorScalar pure $ Value.InstantVector (fmap Value.Scalar <$> avgOverTime now v) @@ -293,6 +326,14 @@ interp cfg store env (MkPair a b) now = do va <- interp cfg store env a now vb <- interp cfg store env b now pure $ Value.Pair va vb +interp _ _ _ Expr.Nil _ = do + pure Value.Nil +interp cfg store env (Expr.Cons a b) now = do + va <- interp cfg store env a now + vb <- interp cfg store env b now + pure $ Value.Cons va vb +interp _ _ _ Expr.Unit _ = do + pure Value.Unit interp cfg store env (Fst t) now = do (a, _) <- interp cfg store env t now >>= expectPair pure a @@ -362,4 +403,5 @@ interp cfg store env (Expr.AddDuration a_ b_) now = do pure (Value.Duration (a + b)) interp cfg store env (mbBinaryRelationInstantVector -> Just (v, rel, k)) now = interpFilterBinaryRelation cfg store env v rel k now +interp _ _ _ (Expr.Str s) _ = pure (Value.Text (Text.pack s)) interp _ _ _ expr _ = throwInterpError $ "Can't interpret expression: " <> showT expr diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/BinaryArithmeticOp.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/BinaryArithmeticOp.hs index a2821b8b935..b409c2ddf92 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/BinaryArithmeticOp.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/BinaryArithmeticOp.hs @@ -1,6 +1,7 @@ module Cardano.Timeseries.Interp.BinaryArithmeticOp(BinaryArithmeticOp(..), - embedScalar, embedInstantVectorScalar, - mbBinaryArithmeticOpScalar, mbBinaryArithmeticOpInstantVectorScalar, materializeScalar) where + embedScalar, embedInstantVectorScalar, embedRangeVectorScalar, + mbBinaryArithmeticOpScalar, mbBinaryArithmeticOpInstantVectorScalar, + mbBinaryArithmeticOpRangeVectorScalar, materializeScalar) where import Cardano.Timeseries.AsText import Cardano.Timeseries.Interp.Expr (Expr (..)) @@ -26,6 +27,12 @@ embedInstantVectorScalar Sub = SubInstantVectorScalar embedInstantVectorScalar Mul = MulInstantVectorScalar embedInstantVectorScalar Div = DivInstantVectorScalar +embedRangeVectorScalar :: BinaryArithmeticOp -> Expr -> Expr -> Expr +embedRangeVectorScalar Add = AddRangeVectorScalar +embedRangeVectorScalar Sub = SubRangeVectorScalar +embedRangeVectorScalar Mul = MulRangeVectorScalar +embedRangeVectorScalar Div = DivRangeVectorScalar + mbBinaryArithmeticOpInstantVectorScalar :: Expr -> Maybe (Expr, BinaryArithmeticOp, Expr) mbBinaryArithmeticOpInstantVectorScalar (AddInstantVectorScalar a b) = Just (a, Add, b) mbBinaryArithmeticOpInstantVectorScalar (SubInstantVectorScalar a b) = Just (a, Sub, b) @@ -33,6 +40,13 @@ mbBinaryArithmeticOpInstantVectorScalar (MulInstantVectorScalar a b) = Just (a, mbBinaryArithmeticOpInstantVectorScalar (DivInstantVectorScalar a b) = Just (a, Div, b) mbBinaryArithmeticOpInstantVectorScalar _ = Nothing +mbBinaryArithmeticOpRangeVectorScalar :: Expr -> Maybe (Expr, BinaryArithmeticOp, Expr) +mbBinaryArithmeticOpRangeVectorScalar (AddRangeVectorScalar a b) = Just (a, Add, b) +mbBinaryArithmeticOpRangeVectorScalar (SubRangeVectorScalar a b) = Just (a, Sub, b) +mbBinaryArithmeticOpRangeVectorScalar (MulRangeVectorScalar a b) = Just (a, Mul, b) +mbBinaryArithmeticOpRangeVectorScalar (DivRangeVectorScalar a b) = Just (a, Div, b) +mbBinaryArithmeticOpRangeVectorScalar _ = Nothing + mbBinaryArithmeticOpScalar :: Expr -> Maybe (Expr, BinaryArithmeticOp, Expr) mbBinaryArithmeticOpScalar (AddScalar a b) = Just (a, Add, b) mbBinaryArithmeticOpScalar (SubScalar a b) = Just (a, Sub, b) diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/Expr.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/Expr.hs index eec8fe411c1..925555ff8bc 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/Expr.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/Expr.hs @@ -26,6 +26,10 @@ data Expr = Number Double | SubInstantVectorScalar Expr Expr | MulInstantVectorScalar Expr Expr | DivInstantVectorScalar Expr Expr + | AddRangeVectorScalar Expr Expr + | SubRangeVectorScalar Expr Expr + | MulRangeVectorScalar Expr Expr + | DivRangeVectorScalar Expr Expr | EqInstantVectorScalar Expr Expr | LtInstantVectorScalar Expr Expr | LteInstantVectorScalar Expr Expr @@ -35,6 +39,7 @@ data Expr = Number Double | True | False + | Unit | And Expr Expr | Or Expr Expr | Not Expr @@ -76,6 +81,9 @@ data Expr = Number Double | Fst Expr | Snd Expr + | Nil + | Cons Expr Expr + | AvgOverTime Expr | SumOverTime Expr | Avg Expr diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/Value.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/Value.hs index 10661368366..a17a3f3f24d 100644 --- a/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/Value.hs +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/Interp/Value.hs @@ -12,6 +12,7 @@ import Control.DeepSeq (NFData) import Data.Text (unpack, Text) import Data.Word (Word64) import GHC.Generics (Generic) +import Numeric (showFFloat) type FunctionValue = Value -> InterpM Value @@ -25,6 +26,8 @@ data Value where InstantVector :: InstantVector Value -> Value -- | A pair. Pair :: Value -> Value -> Value + -- | Unit. + Unit :: Value -- | Truth. Truth :: Value -- | Falsity. @@ -35,21 +38,28 @@ data Value where Timestamp :: Word64 -> Value -- | Function Function :: FunctionValue -> Value + -- Empty list. + Nil :: Value + -- Non-empty list. + Cons :: Value -> Value -> Value -- | Text Text :: Text -> Value deriving Generic instance NFData Value instance Show Value where - show (Scalar x) = show x + show (Scalar x) = showFFloat Nothing x "" show (RangeVector x) = unpack (asText x) show (InstantVector x) = unpack (asText x) show (Pair x y) = "(" <> show x <> ", " <> show y <> ")" + show Unit = "()" show Truth = "true" show Falsity = "false" show (Duration d) = show d <> "ms" show (Timestamp t) = show t show (Function _) = "" + show Nil = "[]" + show (Cons h t) = "[" <> show h <> "|" <> show t <> "]" show (Text t) = show t fromBool :: Bool -> Value diff --git a/bench/cardano-timeseries-io/src/Cardano/Timeseries/JSON.hs b/bench/cardano-timeseries-io/src/Cardano/Timeseries/JSON.hs new file mode 100644 index 00000000000..5abb14f5278 --- /dev/null +++ b/bench/cardano-timeseries-io/src/Cardano/Timeseries/JSON.hs @@ -0,0 +1,55 @@ +{-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -Wno-orphans #-} + +-- | JSON serialisation instances for timeseries query results. +-- The format closely follows the Prometheus HTTP API: result types are named +-- \"scalar\", \"vector\", \"matrix\"; timestamps are Unix seconds (Double); +-- durations are seconds (Double). +-- Import this module to bring the instances into scope; it exports nothing itself. +module Cardano.Timeseries.JSON () where + +import qualified Data.Aeson as A +import qualified Data.Map.Strict as Map +import qualified Data.Set as Set +import qualified Data.Vector as V + +import Data.Text (Text) +import qualified Data.Text as Text + +import Cardano.Timeseries.Domain.Types (SeriesIdentifier) +import Cardano.Timeseries.Domain.Instant (Instant (..)) +import Cardano.Timeseries.Domain.Timeseries (Timeseries (..)) +import Cardano.Timeseries.Interp.Value (Value (..)) + +-- SeriesIdentifier = Set (Label, Text); serialise as a JSON object {"key": "val", ...} +-- We do not define ToJSON SeriesIdentifier directly (it would overlap with aeson's Set instance), +-- so we convert via Map first using the helper below. +labelsJson :: SeriesIdentifier -> A.Value +labelsJson si = A.toJSON (Map.fromList (Set.toList si)) + +instance (A.ToJSON a, Show a) => A.ToJSON (Instant a) where + toJSON (Instant ls ts val) = A.object + [ "metric" A..= labelsJson ls + , "value" A..= A.Array (V.fromList [A.toJSON (fromIntegral ts / 1000.0 :: Double), A.String (Text.pack (show val))]) + ] + +instance (A.ToJSON a, Show a) => A.ToJSON (Timeseries a) where + toJSON (Timeseries ls ps) = A.object + [ "metric" A..= labelsJson ls + , "values" A..= map (\(t, v) -> A.Array (V.fromList [A.toJSON (fromIntegral t / 1000.0 :: Double), A.String (Text.pack (show v))])) ps + ] + +instance A.ToJSON Value where + toJSON (Scalar x) = A.object ["resultType" A..= ("scalar" :: Text), "result" A..= x] + toJSON (RangeVector xs) = A.object ["resultType" A..= ("matrix" :: Text), "result" A..= xs] + toJSON (InstantVector xs) = A.object ["resultType" A..= ("vector" :: Text), "result" A..= xs] + toJSON (Pair a b) = A.object ["resultType" A..= ("pair" :: Text), "fst" A..= a, "snd" A..= b] + toJSON Unit = A.object ["resultType" A..= ("unit" :: Text)] + toJSON Truth = A.object ["resultType" A..= ("truth" :: Text)] + toJSON Falsity = A.object ["resultType" A..= ("falsity" :: Text)] + toJSON (Duration d) = A.object ["resultType" A..= ("duration" :: Text), "result" A..= (fromIntegral d / 1000.0 :: Double)] + toJSON (Timestamp t) = A.object ["resultType" A..= ("timestamp" :: Text), "result" A..= (fromIntegral t / 1000.0 :: Double)] + toJSON (Text t) = A.object ["resultType" A..= ("text" :: Text), "result" A..= t] + toJSON (Function _) = A.object ["resultType" A..= ("function" :: Text)] + toJSON Nil = A.object ["resultType" A..= ("nil" :: Text)] + toJSON (Cons h t) = A.object ["resultType" A..= ("cons" :: Text), "head" A..= h, "tail" A..= t] diff --git a/bench/cardano-timeseries-io/test/Cardano/Timeseries/Elab/Expr/Parser/Suite.hs b/bench/cardano-timeseries-io/test/Cardano/Timeseries/Elab/Expr/Parser/Suite.hs new file mode 100644 index 00000000000..0ba6ead319e --- /dev/null +++ b/bench/cardano-timeseries-io/test/Cardano/Timeseries/Elab/Expr/Parser/Suite.hs @@ -0,0 +1,333 @@ +module Cardano.Timeseries.Elab.Expr.Parser.Suite (parserTests) where + +import Cardano.Timeseries.Elab.Expr (Expr (..)) +import Cardano.Timeseries.Elab.Expr.Parser (expr) + +import Data.Either (isLeft, isRight) +import Data.Text (Text) +import Test.Tasty +import Test.Tasty.HUnit +import Text.Megaparsec (eof, errorBundlePretty, parse) +import Text.Megaparsec.Char (space) + +-- | Assert that the query string parses successfully. +parses :: Text -> Assertion +parses src = + assertBool ("Expected parse success for: " <> show src) $ + isRight (parse (expr <* space <* eof) "input" src) + +-- | Assert that the query string fails to parse. +failsToParse :: Text -> Assertion +failsToParse src = + assertBool ("Expected parse failure for: " <> show src) $ + isLeft (parse (expr <* space <* eof) "input" src) + +-- | Assert that the query string parses and the AST satisfies the predicate. +parsesTo :: Text -> (Expr -> Bool) -> Assertion +parsesTo src p = case parse (expr <* space <* eof) "input" src of + Left e -> assertFailure $ "Unexpected parse error: " <> errorBundlePretty e + Right e -> assertBool ("AST shape check failed for: " <> show src) (p e) + +parserTests :: TestTree +parserTests = testGroup "Parsing" + [ atomTests + , durationLiteralTests + , negationTests + , rangeExprTests + , labelFilterTests + , builtinApplicationTests + , arithmeticTests + , comparisonTests + , booleanTests + , letLambdaTests + , userApplicationTests + , operatorPrecedenceTests + , errorCaseTests + ] + +-- --------------------------------------------------------------------------- +-- Atoms +-- --------------------------------------------------------------------------- + +atomTests :: TestTree +atomTests = testGroup "Atoms" + [ testCase "now" $ parses "now" + , testCase "epoch" $ parses "epoch" + , testCase "true" $ parses "true" + , testCase "false" $ parses "false" + , testCase "unit ()" $ parses "()" + , testCase "pair (a, b)" $ parses "(1, 2)" + , testCase "triple (a, b, c)" $ parses "(1, 2, 3)" + , testCase "nested pair" $ parses "((1, 2), 3)" + , testCase "parenthesised expr" $ parses "(1 + 2)" + , testCase "integer literal" $ parses "42" + , testCase "negative integer" $ parses "-42" + , testCase "float literal" $ parses "3.14" + , testCase "negative float" $ parses "-3.14" + , testCase "string literal" $ parses "\"hello\"" + , testCase "empty string" $ parses "\"\"" + , testCase "unescaped identifier" $ parses "my_metric" + , testCase "identifier with digits" $ parses "metric_0" + , testCase "escaped identifier" $ parses "`foo bar`" + , testCase "escaped keyword via backtick" $ parses "`let`" + , testCase "escaped metric keyword" $ parses "`metrics`" + ] + +-- --------------------------------------------------------------------------- +-- Duration literals +-- --------------------------------------------------------------------------- + +durationLiteralTests :: TestTree +durationLiteralTests = testGroup "Duration literals" + [ testCase "milliseconds" $ parses "100ms" + , testCase "zero milliseconds" $ parses "0ms" + , testCase "seconds" $ parses "5s" + , testCase "minutes" $ parses "3m" + , testCase "hours" $ parses "2h" + -- suffix must not bleed into the next identifier character + , testCase "seconds not prefix of longer id" $ parses "1s + 2" + ] + +-- --------------------------------------------------------------------------- +-- Negation +-- --------------------------------------------------------------------------- + +negationTests :: TestTree +negationTests = testGroup "Negation" + [ testCase "!true" $ parses "! true" + , testCase "!false" $ parses "! false" + , testCase "!var" $ parses "! x" + ] + +-- --------------------------------------------------------------------------- +-- Range expressions +-- --------------------------------------------------------------------------- + +rangeExprTests :: TestTree +rangeExprTests = testGroup "Range expressions" + [ testCase "basic range [a; b]" $ parses "x[epoch; now]" + , testCase "range with sampling rate" $ parses "x[epoch; now : 1s]" + , testCase "arithmetic inside bounds" $ parses "x[now - 1h; now]" + , testCase "range on complex head" $ parses "(avg x)[epoch; now]" + , testCase "chained ranges" $ parses "x[epoch; now][epoch; now]" + , testCase "range with full exprs" $ parses "x[now - 30m; now : 1s]" + ] + +-- --------------------------------------------------------------------------- +-- Label filter expressions +-- --------------------------------------------------------------------------- + +labelFilterTests :: TestTree +labelFilterTests = testGroup "Label filter expressions" + [ testCase "single eq constraint" $ parses "x{\"a\" = \"1\"}" + , testCase "single neq constraint" $ parses "x{\"a\" != \"1\"}" + , testCase "two constraints" $ parses "x{\"a\" = \"1\", \"b\" != \"2\"}" + , testCase "empty constraint set" $ parses "x{}" + , testCase "filter applied to range" $ parses "x[epoch; now]{\"a\" = \"1\"}" + , testCase "range applied to filter" $ parses "x{\"a\" = \"1\"}[epoch; now]" + ] + +-- --------------------------------------------------------------------------- +-- Builtin function applications +-- --------------------------------------------------------------------------- + +builtinApplicationTests :: TestTree +builtinApplicationTests = testGroup "Builtin applications" + [ testCase "fst" $ parses "fst x" + , testCase "snd" $ parses "snd x" + , testCase "min" $ parses "min x" + , testCase "max" $ parses "max x" + , testCase "avg" $ parses "avg x" + , testCase "abs" $ parses "abs x" + , testCase "round" $ parses "round x" + , testCase "increase" $ parses "increase x" + , testCase "rate" $ parses "rate x" + , testCase "avg_over_time" $ parses "avg_over_time x" + , testCase "sum_over_time" $ parses "sum_over_time x" + , testCase "to_scalar" $ parses "to_scalar x" + , testCase "metrics" $ parses "metrics" + , testCase "filter" $ parses "filter f x" + , testCase "join" $ parses "join x y" + , testCase "map" $ parses "map f x" + , testCase "unless" $ parses "unless x y" + , testCase "quantile_over_time" $ parses "quantile_over_time 0.5 x" + , testCase "quantile_by empty label set" $ parses "quantile_by () 0.5 x" + , testCase "quantile_by one label" $ parses "quantile_by (\"a\") 0.5 x" + , testCase "quantile_by two labels" $ parses "quantile_by (\"a\", \"b\") 0.5 x" + , testCase "earliest" $ parses "earliest my_metric" + , testCase "latest" $ parses "latest my_metric" + -- builtins compose naturally + , testCase "avg (rate x)" $ parses "avg (rate x)" + , testCase "map f (filter g x)" $ parses "map f (filter g x)" + ] + +-- --------------------------------------------------------------------------- +-- Arithmetic operators +-- --------------------------------------------------------------------------- + +arithmeticTests :: TestTree +arithmeticTests = testGroup "Arithmetic operators" + [ testCase "addition" $ parses "1 + 2" + , testCase "subtraction" $ parses "1 - 2" + , testCase "multiplication" $ parses "2 * 3" + , testCase "division" $ parses "4 / 2" + , testCase "chained add" $ parses "1 + 2 + 3" + , testCase "chained sub" $ parses "5 - 2 - 1" + , testCase "chained mul" $ parses "2 * 3 * 4" + , testCase "chained div" $ parses "8 / 2 / 2" + , testCase "mixed add/mul" $ parses "1 + 2 * 3 - 4 / 2" + ] + +-- --------------------------------------------------------------------------- +-- Comparison operators +-- --------------------------------------------------------------------------- + +comparisonTests :: TestTree +comparisonTests = testGroup "Comparison operators" + [ testCase "equal (==)" $ parses "1 == 2" + , testCase "not equal (!=)" $ parses "1 != 2" + , testCase "less than (<)" $ parses "1 < 2" + , testCase "less or equal (<=)" $ parses "1 <= 2" + , testCase "greater than (>)" $ parses "1 > 2" + , testCase "greater or eq (>=)" $ parses "1 >= 2" + ] + +-- --------------------------------------------------------------------------- +-- Boolean operators +-- --------------------------------------------------------------------------- + +booleanTests :: TestTree +booleanTests = testGroup "Boolean operators" + [ testCase "and (&&)" $ parses "true && false" + , testCase "or (||)" $ parses "true || false" + , testCase "chained and" $ parses "true && false && true" + , testCase "chained or" $ parses "true || false || true" + , testCase "mixed and/or" $ parses "true && false || true && true" + ] + +-- --------------------------------------------------------------------------- +-- Let and lambda +-- --------------------------------------------------------------------------- + +letLambdaTests :: TestTree +letLambdaTests = testGroup "Let and lambda" + [ testCase "simple let" $ parses "let x = 1 in x" + , testCase "nested let" $ parses "let x = 1 in let y = 2 in x + y" + , testCase "let rhs is arithmetic" $ parses "let x = 2 * 3 in x + 1" + , testCase "let with lambda rhs" $ parses "let f = \\x -> x + 1 in f 2" + , testCase "let with let rhs" $ parses "let x = let y = 1 in y in x" + , testCase "lambda identity" $ parses "\\x -> x" + , testCase "lambda with body" $ parses "\\x -> x + 1" + , testCase "nested lambda" $ parses "\\x -> \\y -> x + y" + , testCase "lambda applied" $ parses "(\\x -> x + 1) 2" + ] + +-- --------------------------------------------------------------------------- +-- User-defined function application +-- --------------------------------------------------------------------------- + +userApplicationTests :: TestTree +userApplicationTests = testGroup "User-defined function application" + [ testCase "single argument" $ parses "f x" + , testCase "two arguments" $ parses "f x y" + , testCase "applied to literal" $ parses "f 42" + , testCase "applied to expression" $ parses "f (x + 1)" + , testCase "higher-order" $ parses "let f = \\x -> x in f x" + ] + +-- --------------------------------------------------------------------------- +-- Operator precedence (verified via AST shape) +-- --------------------------------------------------------------------------- + +operatorPrecedenceTests :: TestTree +operatorPrecedenceTests = testGroup "Operator precedence" + [ testCase "mul binds tighter than add (rhs)" $ + parsesTo "1 + 2 * 3" $ \case + Add _ _ (Mul {}) -> True + _ -> False + + , testCase "mul binds tighter than add (lhs)" $ + parsesTo "1 * 2 + 3" $ \case + Add _ (Mul {}) _ -> True + _ -> False + + , testCase "add is left-associative" $ + parsesTo "1 + 2 + 3" $ \case + Add _ (Add {}) _ -> True + _ -> False + + , testCase "mul is left-associative" $ + parsesTo "2 * 3 * 4" $ \case + Mul _ (Mul {}) _ -> True + _ -> False + + , testCase "sub is left-associative" $ + parsesTo "5 - 2 - 1" $ \case + Sub _ (Sub {}) _ -> True + _ -> False + + , testCase "and binds tighter than or" $ + parsesTo "true && false || true" $ \case + Or _ (And {}) _ -> True + _ -> False + + , testCase "comp binds tighter than and" $ + parsesTo "1 < 2 && 3 > 4" $ \case + And _ (Lt {}) (Gt {}) -> True + _ -> False + + , testCase "add binds tighter than comp" $ + parsesTo "1 + 2 < 3 + 4" $ \case + Lt _ (Add {}) (Add {}) -> True + _ -> False + + , testCase "parentheses override mul/add" $ + parsesTo "(1 + 2) * 3" $ \case + Mul _ (Add {}) _ -> True + _ -> False + + , testCase "let body extends as far as possible" $ + parsesTo "let x = 1 in x + 2" $ \case + Let _ _ _ (Add {}) -> True + _ -> False + + , testCase "lambda body extends as far as possible" $ + parsesTo "\\x -> x + 1" $ \case + Lambda _ _ (Add {}) -> True + _ -> False + ] + +-- --------------------------------------------------------------------------- +-- Error cases +-- --------------------------------------------------------------------------- + +errorCaseTests :: TestTree +errorCaseTests = testGroup "Error cases" + [ -- syntactic errors + testCase "empty input" $ failsToParse "" + , testCase "trailing operator" $ failsToParse "1 +" + , testCase "unbalanced paren" $ failsToParse "(1 + 2" + , testCase "unmatched closing paren" $ failsToParse "1)" + , testCase "bare let keyword" $ failsToParse "let" + , testCase "let without body" $ failsToParse "let x = 1" + , testCase "lambda without arrow" $ failsToParse "\\x" + , testCase "keyword as identifier" $ failsToParse "in" + , testCase "unknown operator" $ failsToParse "1 @ 2" + -- wrong argument count for builtins + , testCase "fst: missing arg" $ failsToParse "fst" + , testCase "snd: missing arg" $ failsToParse "snd" + , testCase "min: missing arg" $ failsToParse "min" + , testCase "max: missing arg" $ failsToParse "max" + , testCase "avg: missing arg" $ failsToParse "avg" + , testCase "abs: missing arg" $ failsToParse "abs" + , testCase "increase: missing arg" $ failsToParse "increase" + , testCase "rate: missing arg" $ failsToParse "rate" + , testCase "avg_over_time: missing arg" $ failsToParse "avg_over_time" + , testCase "sum_over_time: missing arg" $ failsToParse "sum_over_time" + , testCase "to_scalar: missing arg" $ failsToParse "to_scalar" + , testCase "filter: one arg (needs 2)" $ failsToParse "filter f" + , testCase "join: one arg (needs 2)" $ failsToParse "join x" + , testCase "map: one arg (needs 2)" $ failsToParse "map f" + , testCase "unless: one arg (needs 2)" $ failsToParse "unless x" + , testCase "quantile_over_time: one arg (needs 2)" $ failsToParse "quantile_over_time 0.5" + ] diff --git a/bench/cardano-timeseries-io/test/Cardano/Timeseries/Elab/Suite.hs b/bench/cardano-timeseries-io/test/Cardano/Timeseries/Elab/Suite.hs new file mode 100644 index 00000000000..1e07427236d --- /dev/null +++ b/bench/cardano-timeseries-io/test/Cardano/Timeseries/Elab/Suite.hs @@ -0,0 +1,268 @@ +module Cardano.Timeseries.Elab.Suite (elabTests) where + +import Cardano.Timeseries.Elab (elab, initialSt) +import Cardano.Timeseries.Elab.Expr.Parser (expr) + +import Control.Monad.Except (runExceptT) +import Control.Monad.State.Strict (evalState) +import Data.Set (Set) +import qualified Data.Set as Set +import Data.Text (Text) +import qualified Data.Text as Text +import Test.Tasty +import Test.Tasty.HUnit +import Text.Megaparsec (eof, errorBundlePretty, parse) +import Text.Megaparsec.Char (space) + +-- --------------------------------------------------------------------------- +-- Helpers +-- --------------------------------------------------------------------------- + +runWith :: Set Text -> Text -> Either Text () +runWith ms src = case parse (expr <* space <* eof) "input" src of + Left e -> Left (Text.pack (errorBundlePretty e)) + Right s -> case evalState (runExceptT (elab s)) (initialSt ms) of + Left err -> Left err + Right _ -> Right () + +run :: Text -> Either Text () +run = runWith Set.empty + +ok :: Text -> Assertion +ok src = case run src of + Left err -> assertFailure $ "Expected success, got error: " <> Text.unpack err + Right () -> pure () + +okWith :: Set Text -> Text -> Assertion +okWith ms src = case runWith ms src of + Left err -> assertFailure $ "Expected success, got error: " <> Text.unpack err + Right () -> pure () + +bad :: Text -> Assertion +bad src = case run src of + Left _ -> pure () + Right _ -> assertFailure $ "Expected failure for: " <> show src + +badWith :: Set Text -> Text -> Assertion +badWith ms src = case runWith ms src of + Left _ -> pure () + Right _ -> assertFailure $ "Expected failure for: " <> show src + +errorContains :: Set Text -> Text -> Text -> Assertion +errorContains ms src fragment = case runWith ms src of + Left err -> + assertBool + ("Error should mention '" <> Text.unpack fragment <> "', got: " <> Text.unpack err) + (fragment `Text.isInfixOf` err) + Right () -> assertFailure $ "Expected failure for: " <> show src + +errorMisses :: Set Text -> Text -> Text -> Assertion +errorMisses ms src fragment = case runWith ms src of + Left err -> + assertBool + ("Error should NOT mention '" <> Text.unpack fragment <> "', got: " <> Text.unpack err) + (not (fragment `Text.isInfixOf` err)) + Right () -> assertFailure $ "Expected failure for: " <> show src + +-- Single metric "m" available. +m1 :: Set Text +m1 = Set.singleton "m" + +-- Two metrics "m1" and "m2" available. +m2 :: Set Text +m2 = Set.fromList ["m1", "m2"] + +-- --------------------------------------------------------------------------- +-- Tests +-- --------------------------------------------------------------------------- + +elabTests :: TestTree +elabTests = testGroup "Elaboration" + + [ testGroup "Literals" + [ testCase "positive integer" $ ok "42" + , testCase "negative number" $ ok "(-1)" + , testCase "float" $ ok "3.14" + , testCase "true" $ ok "true" + , testCase "false" $ ok "false" + , testCase "now" $ ok "now" + , testCase "epoch" $ ok "epoch" + , testCase "unit" $ ok "()" + , testCase "pair of scalars" $ ok "(1, 2)" + , testCase "mixed pair" $ ok "(true, now)" + , testCase "nested pair" $ ok "((1, 2), 3)" + , testCase "triple (right-assoc)" $ ok "(1, 2, 3)" + ] + + , testGroup "Duration literals" + [ testCase "milliseconds" $ ok "100ms" + , testCase "seconds" $ ok "5s" + , testCase "minutes" $ ok "3m" + , testCase "hours" $ ok "2h" + ] + + , testGroup "Arithmetic" + [ testGroup "Well-typed" + [ testCase "Scalar + Scalar" $ ok "1 + 2" + , testCase "Scalar - Scalar" $ ok "5 - 3" + , testCase "Scalar * Scalar" $ ok "2 * 3" + , testCase "Scalar / Scalar" $ ok "10 / 2" + , testCase "Timestamp + Duration" $ ok "now + 1s" + , testCase "Duration + Timestamp" $ ok "1s + now" + , testCase "Timestamp - Duration" $ ok "now - 1h" + , testCase "Duration + Duration" $ ok "1s + 2s" + , testCase "? + ? : Duration (lambda args)" $ okWith m1 "\\x -> \\y -> m [now; now : x + y]" + , testCase "? - ? : Timestamp (step context)" $ okWith m1 "\\x -> \\y -> m [x - y; x]" + , testCase "InstantVector Scalar + Scalar" $ okWith m1 "m now + 1" + , testCase "Scalar + InstantVector Scalar" $ okWith m1 "1 + m now" + ] + , testGroup "Ill-typed" + [ testCase "Scalar + Timestamp" $ bad "1 + now" + , testCase "Timestamp + Timestamp" $ bad "now + now" + , testCase "Bool + Bool" $ bad "true + true" + , testCase "Timestamp - Timestamp" $ bad "now - now" + , testCase "Bool * Scalar" $ bad "true * 2" + ] + ] + + , testGroup "Comparisons" + [ testGroup "Well-typed" + [ testCase "Scalar == Scalar" $ ok "1 == 1" + , testCase "Scalar != Scalar" $ ok "1 != 2" + , testCase "Scalar < Scalar" $ ok "1 < 2" + , testCase "Scalar <= Scalar" $ ok "1 <= 2" + , testCase "Scalar > Scalar" $ ok "2 > 1" + , testCase "Scalar >= Scalar" $ ok "2 >= 1" + , testCase "Bool == Bool" $ ok "true == false" + , testCase "Bool != Bool" $ ok "true != false" + , testCase "InstantVector Scalar == Scalar" $ okWith m1 "m now == 1" + , testCase "Scalar == InstantVector Scalar" $ okWith m1 "1 == m now" + ] + , testGroup "Ill-typed" + [ testCase "Timestamp == Timestamp" $ bad "now == now" + , testCase "Duration == Duration" $ bad "1s == 2s" + ] + ] + + , testGroup "Boolean" + [ testGroup "Well-typed" + [ testCase "true && false" $ ok "true && false" + , testCase "true || false" $ ok "true || false" + , testCase "! true" $ ok "! true" + , testCase "chained &&" $ ok "true && false && true" + , testCase "chained ||" $ ok "true || false || true" + ] + , testGroup "Ill-typed" + [ testCase "Scalar && Bool" $ bad "1 && true" + , testCase "Timestamp || Bool" $ bad "now || false" + , testCase "! Scalar" $ bad "! 1" + , testCase "! Timestamp" $ bad "! now" + ] + ] + + , testGroup "Let and Lambda" + [ testGroup "Well-typed" + [ testCase "let scalar" $ ok "let x = 1 in x" + , testCase "let arithmetic" $ ok "let x = 1 in x + 1" + , testCase "let timestamp" $ ok "let t = now in t" + , testCase "let bool" $ ok "let b = true in b" + , testCase "nested let" $ ok "let x = 1 in let y = 2 in x + y" + , testCase "lambda identity" $ ok "\\x -> x" + , testCase "lambda Duration arg (+ side)" $ ok "\\x -> now + x" + , testCase "lambda Duration arg (- side)" $ ok "\\x -> x - 1s" + , testCase "lambda application" $ ok "(\\x -> x + 1) 5" + , testCase "let lambda" $ ok "let f = \\x -> x + 1 in f 5" + , testCase "lambda Bool" $ ok "\\x -> ! x" + , testCase "higher-order" $ ok "(\\f -> f 1) (\\x -> x + 1)" + ] + , testGroup "Ill-typed" + [ testCase "type mismatch in let body" $ bad "let x = 1 in x && true" + , testCase "apply non-function" $ bad "1 5" + ] + ] + + , testGroup "Pairs and projections" + [ testCase "fst of scalar pair" $ ok "fst (1, 2)" + , testCase "snd of scalar pair" $ ok "snd (1, 2)" + , testCase "fst of mixed pair" $ ok "fst (true, now)" + , testCase "snd of mixed pair" $ ok "snd (true, now)" + , testCase "nested fst" $ ok "fst (fst ((1, 2), 3))" + , testCase "fst of non-pair fails" $ bad "fst 1" + , testCase "snd of non-pair fails" $ bad "snd true" + ] + + , testGroup "to_scalar" + [ testGroup "Well-typed" + [ testCase "to_scalar Scalar" $ ok "to_scalar 1" + , testCase "to_scalar Bool" $ ok "to_scalar true" + , testCase "to_scalar Timestamp" $ ok "to_scalar now" + , testCase "to_scalar Duration" $ ok "to_scalar 1s" + ] + , testGroup "Ill-typed" + [ testCase "to_scalar Pair" $ bad "to_scalar (1, 2)" + , testCase "to_scalar InstantVector" $ badWith m1 "to_scalar (m now)" + ] + ] + + , testGroup "abs and round" + [ testCase "abs positive" $ ok "abs 1" + , testCase "abs negative" $ ok "abs (-1)" + , testCase "round float" $ ok "round 3.14" + , testCase "round zero" $ ok "round 0" + , testCase "abs Timestamp" $ bad "abs now" + , testCase "round Bool" $ bad "round true" + ] + + , testGroup "metrics builtin" + [ testCase "metrics" $ ok "metrics" + ] + + , testGroup "Range vectors" + [ testGroup "Well-typed" + [ testCase "metric range" $ okWith m1 "m [now - 1h; now]" + , testCase "metric range with step" $ okWith m1 "m [now - 1h; now : 1m]" + , testCase "avg_over_time" $ okWith m1 "avg_over_time (m [now - 1h; now])" + , testCase "sum_over_time" $ okWith m1 "sum_over_time (m [now - 1h; now])" + , testCase "increase" $ okWith m1 "increase (m [now - 1h; now])" + , testCase "rate" $ okWith m1 "rate (m [now - 1h; now])" + , testCase "quantile_over_time" $ okWith m1 "quantile_over_time 0.95 (m [now - 1h; now])" + ] + , testGroup "Ill-typed" + [ testCase "avg_over_time of instant" $ badWith m1 "avg_over_time (m now)" + , testCase "sum_over_time of instant" $ badWith m1 "sum_over_time (m now)" + , testCase "increase of instant" $ badWith m1 "increase (m now)" + , testCase "rate of instant" $ badWith m1 "rate (m now)" + ] + ] + + , testGroup "Instant vector operations" + [ testGroup "Well-typed" + [ testCase "min" $ okWith m1 "min (m now)" + , testCase "max" $ okWith m1 "max (m now)" + , testCase "avg" $ okWith m1 "avg (m now)" + , testCase "filter" $ okWith m1 "filter (\\x -> x > 0) (m now)" + , testCase "map" $ okWith m1 "map (\\x -> x + 1) (m now)" + , testCase "join" $ okWith m1 "join (m now) (m now)" + , testCase "unless" $ okWith m1 "unless (m now) (m now)" + , testCase "quantile_by" $ okWith m1 "quantile_by (\"k\") 0.95 (m now)" + , testCase "FilterByLabel" $ okWith m1 "(m now) {\"k\" = \"v\"}" + , testCase "multi-metric join" $ okWith m2 "join (m1 now) (m2 now)" + ] + , testGroup "Ill-typed" + [ testCase "min of Bool" $ bad "min true" + , testCase "max of Scalar" $ bad "max 5" + , testCase "avg of Timestamp" $ bad "avg now" + , testCase "filter of range vector" $ badWith m1 "filter (\\x -> x > 0) (m [now - 1h; now])" + ] + ] + + , testGroup "Metric name resolution" + [ testCase "known metric succeeds" $ okWith m1 "m now" + , testCase "unknown metric against empty set" $ bad "unknown_metric now" + , testCase "unknown metric against known set" $ badWith m1 "unknown_metric now" + , testCase "error names the unknown identifier" $ errorContains Set.empty "no_metric now" "Undefined name" + , testCase "Did you mean: close name suggested" $ errorContains m1 "nm now" "Did you mean" + , testCase "no suggestion for distant name" $ errorMisses m1 "completely_different now" "Did you mean" + ] + + ] diff --git a/bench/cardano-timeseries-io/test/Cardano/Timeseries/Interp/Suite.hs b/bench/cardano-timeseries-io/test/Cardano/Timeseries/Interp/Suite.hs new file mode 100644 index 00000000000..ec32c1864ec --- /dev/null +++ b/bench/cardano-timeseries-io/test/Cardano/Timeseries/Interp/Suite.hs @@ -0,0 +1,441 @@ +module Cardano.Timeseries.Interp.Suite (interpTests) where + +import Cardano.Timeseries.API (Config (..), ExecutionError (..), execute) +import Cardano.Timeseries.Domain.Instant (Instant (..)) +import Cardano.Timeseries.Interp.Value (Value (..)) +import Cardano.Timeseries.Store.Flat (Flat, Point (..)) + +import Data.List (sort) +import qualified Data.Set as Set +import Data.Text (Text) +import qualified Data.Text as Text +import Data.Word (Word64) +import Test.Tasty +import Test.Tasty.HUnit + +-- --------------------------------------------------------------------------- +-- Stores +-- --------------------------------------------------------------------------- + +emptyStore :: Flat Double +emptyStore = [] + +-- One metric "m", single series, value 42.0 at t=0. +simpleStore :: Flat Double +simpleStore = + [ Point { name = "m", instant = Instant { labels = Set.empty, timestamp = 0, value = 42.0 } } + ] + +-- Three series for metric "m" with values 10, 20, 30 and distinct labels. +multiStore :: Flat Double +multiStore = + [ Point { name = "m", instant = Instant { labels = Set.fromList [("k", "1")], timestamp = 0, value = 10.0 } } + , Point { name = "m", instant = Instant { labels = Set.fromList [("k", "2")], timestamp = 0, value = 20.0 } } + , Point { name = "m", instant = Instant { labels = Set.fromList [("k", "3")], timestamp = 0, value = 30.0 } } + ] + +-- One metric "m", one series, with two time points for range-based tests. +-- Points at t=0 (value=0.0) and t=1000 (value=1.0). +rateStore :: Flat Double +rateStore = + [ Point { name = "m", instant = Instant { labels = Set.empty, timestamp = 0, value = 0.0 } } + , Point { name = "m", instant = Instant { labels = Set.empty, timestamp = 1000, value = 1.0 } } + ] + +-- --------------------------------------------------------------------------- +-- Helpers +-- --------------------------------------------------------------------------- + +defaultCfg :: Config +defaultCfg = Config { defaultRangeSamplingRateMillis = 1000 } + +run :: Text -> Either ExecutionError Value +run = execute emptyStore defaultCfg 0 + +runAt :: Flat Double -> Word64 -> Text -> Either ExecutionError Value +runAt store = execute store defaultCfg + +assertScalar :: Double -> Either ExecutionError Value -> Assertion +assertScalar expected (Right (Scalar actual)) = actual @?= expected +assertScalar _ (Left err) = assertFailure $ "Expected Scalar, got error: " <> show err +assertScalar _ (Right other) = assertFailure $ "Expected Scalar, got: " <> show other + +assertBoolVal :: Bool -> Either ExecutionError Value -> Assertion +assertBoolVal True (Right Truth) = pure () +assertBoolVal False (Right Falsity) = pure () +assertBoolVal b (Left err) = assertFailure $ "Expected Bool " <> show b <> ", got error: " <> show err +assertBoolVal b (Right other) = assertFailure $ "Expected Bool " <> show b <> ", got: " <> show other + +assertDuration :: Word64 -> Either ExecutionError Value -> Assertion +assertDuration expected (Right (Duration actual)) = actual @?= expected +assertDuration _ (Left err) = assertFailure $ "Expected Duration, got error: " <> show err +assertDuration _ (Right other) = assertFailure $ "Expected Duration, got: " <> show other + +assertTimestamp :: Word64 -> Either ExecutionError Value -> Assertion +assertTimestamp expected (Right (Timestamp actual)) = actual @?= expected +assertTimestamp _ (Left err) = assertFailure $ "Expected Timestamp, got error: " <> show err +assertTimestamp _ (Right other) = assertFailure $ "Expected Timestamp, got: " <> show other + +-- | Assert the set of scalar values in an instant vector (order-insensitive). +assertInstantVectorScalars :: [Double] -> Either ExecutionError Value -> Assertion +assertInstantVectorScalars expected (Right (InstantVector actual)) = + let vs = sort [ x | Instant { value = Scalar x } <- actual ] + in sort expected @?= vs +assertInstantVectorScalars _ (Left err) = assertFailure $ "Expected InstantVector, got error: " <> show err +assertInstantVectorScalars _ (Right other) = assertFailure $ "Expected InstantVector, got: " <> show other + +assertSucceeds :: Either ExecutionError Value -> Assertion +assertSucceeds (Right _) = pure () +assertSucceeds (Left err) = assertFailure $ "Expected success, got error: " <> show err + +-- --------------------------------------------------------------------------- +-- Test groups +-- --------------------------------------------------------------------------- + +interpTests :: TestTree +interpTests = testGroup "Interpretation" + [ scalarArithmeticTests + , scalarComparisonTests + , booleanLiteralTests + , booleanOperationTests + , boolComparisonTests + , durationLiteralTests + , timestampTests + , typeConversionTests + , pairTests + , letLambdaTests + , instantVectorLookupTests + , instantVectorAggregationTests + , instantVectorOperationTests + , instantVectorScalarArithTests + , instantVectorScalarRelTests + , rangeVectorTests + , metricsTests + , errorCaseTests + ] + +-- --------------------------------------------------------------------------- +-- Scalar arithmetic +-- --------------------------------------------------------------------------- + +scalarArithmeticTests :: TestTree +scalarArithmeticTests = testGroup "Scalar arithmetic" + [ testCase "1 + 2 = 3" $ assertScalar 3 (run "1 + 2") + , testCase "5 - 3 = 2" $ assertScalar 2 (run "5 - 3") + , testCase "2 * 3 = 6" $ assertScalar 6 (run "2 * 3") + , testCase "10 / 4 = 2.5" $ assertScalar 2.5 (run "10 / 4") + , testCase "chained: 1 + 2 * 3 = 7" $ assertScalar 7 (run "1 + 2 * 3") + , testCase "negation in expression: 0 - 5 = -5" $ assertScalar (-5) (run "0 - 5") + ] + +-- --------------------------------------------------------------------------- +-- Scalar comparison +-- --------------------------------------------------------------------------- + +scalarComparisonTests :: TestTree +scalarComparisonTests = testGroup "Scalar comparison" + [ testCase "1 == 1 = true" $ assertBoolVal True (run "1 == 1") + , testCase "1 == 2 = false" $ assertBoolVal False (run "1 == 2") + , testCase "1 != 2 = true" $ assertBoolVal True (run "1 != 2") + , testCase "1 != 1 = false" $ assertBoolVal False (run "1 != 1") + , testCase "1 < 2 = true" $ assertBoolVal True (run "1 < 2") + , testCase "2 < 1 = false" $ assertBoolVal False (run "2 < 1") + , testCase "1 <= 1 = true" $ assertBoolVal True (run "1 <= 1") + , testCase "2 <= 1 = false" $ assertBoolVal False (run "2 <= 1") + , testCase "2 > 1 = true" $ assertBoolVal True (run "2 > 1") + , testCase "1 > 2 = false" $ assertBoolVal False (run "1 > 2") + , testCase "1 >= 1 = true" $ assertBoolVal True (run "1 >= 1") + , testCase "1 >= 2 = false" $ assertBoolVal False (run "1 >= 2") + ] + +-- --------------------------------------------------------------------------- +-- Boolean literals +-- --------------------------------------------------------------------------- + +booleanLiteralTests :: TestTree +booleanLiteralTests = testGroup "Boolean literals" + [ testCase "true" $ + case run "true" of + Right Truth -> pure () + other -> assertFailure $ "Expected Truth, got: " <> show other + , testCase "false" $ + case run "false" of + Right Falsity -> pure () + other -> assertFailure $ "Expected Falsity, got: " <> show other + ] + +-- --------------------------------------------------------------------------- +-- Boolean operations +-- --------------------------------------------------------------------------- + +booleanOperationTests :: TestTree +booleanOperationTests = testGroup "Boolean operations" + [ testCase "true && true = true" $ assertBoolVal True (run "true && true") + , testCase "true && false = false" $ assertBoolVal False (run "true && false") + , testCase "false && true = false" $ assertBoolVal False (run "false && true") + , testCase "false && false = false" $ assertBoolVal False (run "false && false") + , testCase "false || true = true" $ assertBoolVal True (run "false || true") + , testCase "true || false = true" $ assertBoolVal True (run "true || false") + , testCase "false || false = false" $ assertBoolVal False (run "false || false") + , testCase "!true = false" $ assertBoolVal False (run "!true") + , testCase "!false = true" $ assertBoolVal True (run "!false") + ] + +-- --------------------------------------------------------------------------- +-- Bool comparison +-- --------------------------------------------------------------------------- + +boolComparisonTests :: TestTree +boolComparisonTests = testGroup "Bool comparison" + [ testCase "true == true = true" $ assertBoolVal True (run "true == true") + , testCase "true == false = false" $ assertBoolVal False (run "true == false") + , testCase "true != false = true" $ assertBoolVal True (run "true != false") + , testCase "false != false = false"$ assertBoolVal False (run "false != false") + ] + +-- --------------------------------------------------------------------------- +-- Duration literals +-- --------------------------------------------------------------------------- + +durationLiteralTests :: TestTree +durationLiteralTests = testGroup "Duration literals" + [ testCase "1ms = 1" $ assertDuration 1 (run "1ms") + , testCase "1s = 1000" $ assertDuration 1000 (run "1s") + , testCase "1m = 60000" $ assertDuration 60000 (run "1m") + , testCase "1h = 3600000" $ assertDuration 3600000 (run "1h") + , testCase "2s = 2000" $ assertDuration 2000 (run "2s") + , testCase "60s = 60000" $ assertDuration 60000 (run "60s") + ] + +-- --------------------------------------------------------------------------- +-- Timestamps +-- --------------------------------------------------------------------------- + +timestampTests :: TestTree +timestampTests = testGroup "Timestamps" + [ testCase "now at t=0" $ assertTimestamp 0 (runAt emptyStore 0 "now") + , testCase "now at t=5000" $ assertTimestamp 5000 (runAt emptyStore 5000 "now") + , testCase "epoch at t=0" $ assertTimestamp 0 (runAt emptyStore 0 "epoch") + , testCase "now - 1s at t=5000" $ assertTimestamp 4000 (runAt emptyStore 5000 "now - 1s") + , testCase "now + 1s at t=5000" $ assertTimestamp 6000 (runAt emptyStore 5000 "now + 1s") + , testCase "now - 1m at t=60000" $ assertTimestamp 0 (runAt emptyStore 60000 "now - 1m") + , testCase "now + 1h at t=0" $ assertTimestamp 3600000 (runAt emptyStore 0 "now + 1h") + ] + +-- --------------------------------------------------------------------------- +-- Type conversions +-- --------------------------------------------------------------------------- + +typeConversionTests :: TestTree +typeConversionTests = testGroup "Type conversions" + [ testCase "to_scalar true = 1.0" $ assertScalar 1.0 (run "to_scalar true") + , testCase "to_scalar false = 0.0" $ assertScalar 0.0 (run "to_scalar false") + , testCase "to_scalar 1s = 1000.0" $ assertScalar 1000.0 (run "to_scalar 1s") + , testCase "to_scalar now at t=5000" $ + assertScalar 5000.0 (runAt emptyStore 5000 "to_scalar now") + , testCase "abs (-3) = 3.0" $ assertScalar 3.0 (run "abs (-3)") + , testCase "abs 3 = 3.0" $ assertScalar 3.0 (run "abs 3") + , testCase "round 2.3 = 2.0" $ assertScalar 2.0 (run "round 2.3") + , testCase "round 2.7 = 3.0" $ assertScalar 3.0 (run "round 2.7") + , testCase "round 2.5 = 2.0 (banker's rounding)" $ assertScalar 2.0 (run "round 2.5") + , testCase "round 3.5 = 4.0 (banker's rounding)" $ assertScalar 4.0 (run "round 3.5") + ] + +-- --------------------------------------------------------------------------- +-- Pairs and unit +-- --------------------------------------------------------------------------- + +pairTests :: TestTree +pairTests = testGroup "Pairs and unit" + [ testCase "()" $ + case run "()" of + Right Unit -> pure () + other -> assertFailure $ "Expected Unit, got: " <> show other + , testCase "fst (1, 2) = 1" $ assertScalar 1.0 (run "fst (1, 2)") + , testCase "snd (1, 2) = 2" $ assertScalar 2.0 (run "snd (1, 2)") + , testCase "fst (fst ((1, 2), 3)) = 1" $ assertScalar 1.0 (run "fst (fst ((1, 2), 3))") + , testCase "snd ((1, 2), 3) = 3" $ assertScalar 3.0 (run "snd ((1, 2), 3)") + , testCase "pair structure" $ + case run "(1, 2)" of + Right (Pair (Scalar 1.0) (Scalar 2.0)) -> pure () + other -> assertFailure $ "Expected Pair, got: " <> show other + ] + +-- --------------------------------------------------------------------------- +-- Let and lambda +-- --------------------------------------------------------------------------- + +letLambdaTests :: TestTree +letLambdaTests = testGroup "Let and lambda" + [ testCase "let x = 2 in x * 3 = 6" $ assertScalar 6 (run "let x = 2 in x * 3") + , testCase "nested let" $ assertScalar 3 (run "let x = 1 in let y = 2 in x + y") + , testCase "let shadowing" $ assertScalar 2 (run "let x = 1 in let x = 2 in x") + , testCase "let with lambda rhs" $ assertScalar 3 (run "let f = \\x -> x + 1 in f 2") + , testCase "lambda identity" $ assertScalar 7 (run "(\\x -> x) 7") + , testCase "lambda arithmetic" $ assertScalar 5 (run "(\\x -> x + 1) 4") + , testCase "higher-order: apply twice" $ + assertScalar 5 (run "let f = \\x -> x + 1 in let g = \\x -> f (f x) in g 3") + ] + +-- --------------------------------------------------------------------------- +-- Instant vector lookup +-- --------------------------------------------------------------------------- + +instantVectorLookupTests :: TestTree +instantVectorLookupTests = testGroup "Instant vector lookup" + [ testCase "single-series metric" $ + assertInstantVectorScalars [42.0] (runAt simpleStore 0 "m now") + , testCase "multi-series metric" $ + assertInstantVectorScalars [10.0, 20.0, 30.0] (runAt multiStore 0 "m now") + , testCase "points outside staleness window yield empty vector" $ + -- staleness constant = 300000ms; point at t=0 is stale when queried at t=600001 + assertInstantVectorScalars [] (runAt simpleStore 600001 "m now") + , testCase "point exactly at staleness boundary is visible" $ + assertInstantVectorScalars [42.0] (runAt simpleStore 300000 "m now") + ] + +-- --------------------------------------------------------------------------- +-- Instant vector aggregation +-- --------------------------------------------------------------------------- + +instantVectorAggregationTests :: TestTree +instantVectorAggregationTests = testGroup "Instant vector aggregation" + [ testCase "max [10, 20, 30] = 30" $ assertScalar 30 (runAt multiStore 0 "max (m now)") + , testCase "min [10, 20, 30] = 10" $ assertScalar 10 (runAt multiStore 0 "min (m now)") + , testCase "avg [10, 20, 30] = 20" $ assertScalar 20 (runAt multiStore 0 "avg (m now)") + , testCase "max of singleton = 42" $ assertScalar 42 (runAt simpleStore 0 "max (m now)") + , testCase "min of singleton = 42" $ assertScalar 42 (runAt simpleStore 0 "min (m now)") + , testCase "avg of singleton = 42" $ assertScalar 42 (runAt simpleStore 0 "avg (m now)") + ] + +-- --------------------------------------------------------------------------- +-- Instant vector operations (filter, map, label filter, unless, join) +-- --------------------------------------------------------------------------- + +instantVectorOperationTests :: TestTree +instantVectorOperationTests = testGroup "Instant vector operations" + [ testCase "filter: keeps elements satisfying predicate" $ + assertInstantVectorScalars [20.0, 30.0] + (runAt multiStore 0 "filter (\\x -> x > 15) (m now)") + , testCase "filter: empty result when nothing matches" $ + assertInstantVectorScalars [] + (runAt multiStore 0 "filter (\\x -> x > 100) (m now)") + , testCase "filter: all retained when all match" $ + assertInstantVectorScalars [10.0, 20.0, 30.0] + (runAt multiStore 0 "filter (\\x -> x > 0) (m now)") + , testCase "map: doubles each value" $ + assertInstantVectorScalars [20.0, 40.0, 60.0] + (runAt multiStore 0 "map (\\x -> x * 2) (m now)") + , testCase "map: identity" $ + assertInstantVectorScalars [10.0, 20.0, 30.0] + (runAt multiStore 0 "map (\\x -> x) (m now)") + , testCase "filter_by_label eq: keeps matching series" $ + assertInstantVectorScalars [10.0] + (runAt multiStore 0 "(m now){\"k\" = \"1\"}") + , testCase "filter_by_label neq: removes matching series" $ + assertInstantVectorScalars [20.0, 30.0] + (runAt multiStore 0 "(m now){\"k\" != \"1\"}") + , testCase "unless self: removes all (disjoint result is empty)" $ + assertInstantVectorScalars [] + (runAt multiStore 0 "unless (m now) (m now)") + , testCase "join self: produces pairs" $ + case runAt multiStore 0 "join (m now) (m now)" of + Right (InstantVector vs) -> length vs @?= 3 + Left err -> assertFailure $ "join failed: " <> show err + Right other -> assertFailure $ "Expected InstantVector, got: " <> show other + ] + +-- --------------------------------------------------------------------------- +-- InstantVector-Scalar arithmetic +-- --------------------------------------------------------------------------- + +instantVectorScalarArithTests :: TestTree +instantVectorScalarArithTests = testGroup "Instant vector scalar arithmetic" + [ testCase "vector + scalar" $ + assertInstantVectorScalars [43.0] (runAt simpleStore 0 "m now + 1") + , testCase "vector - scalar" $ + assertInstantVectorScalars [40.0] (runAt simpleStore 0 "m now - 2") + , testCase "vector * scalar" $ + assertInstantVectorScalars [84.0] (runAt simpleStore 0 "m now * 2") + , testCase "vector / scalar" $ + assertInstantVectorScalars [21.0] (runAt simpleStore 0 "m now / 2") + ] + +-- --------------------------------------------------------------------------- +-- InstantVector-Scalar relations (filtering) +-- --------------------------------------------------------------------------- + +instantVectorScalarRelTests :: TestTree +instantVectorScalarRelTests = testGroup "Instant vector scalar relations" + [ testCase "vector > scalar filters elements" $ + assertInstantVectorScalars [20.0, 30.0] (runAt multiStore 0 "m now > 15") + , testCase "vector < scalar filters elements" $ + assertInstantVectorScalars [10.0, 20.0] (runAt multiStore 0 "m now < 25") + , testCase "vector == scalar: exact match" $ + assertInstantVectorScalars [20.0] (runAt multiStore 0 "m now == 20") + , testCase "vector != scalar: excludes exact match" $ + assertInstantVectorScalars [10.0, 30.0] (runAt multiStore 0 "m now != 20") + , testCase "vector >= scalar: boundary inclusive" $ + assertInstantVectorScalars [20.0, 30.0] (runAt multiStore 0 "m now >= 20") + , testCase "vector <= scalar: boundary inclusive" $ + assertInstantVectorScalars [10.0, 20.0] (runAt multiStore 0 "m now <= 20") + ] + +-- --------------------------------------------------------------------------- +-- Range vector operations +-- --------------------------------------------------------------------------- +-- +-- rateStore has metric "m", one series, points at t=0 (0.0) and t=1000 (1.0). +-- Query time is 1000. The range expression "m[now - 1s; now : 1s]" produces +-- a two-sample RangeVector: t=0 → 0.0, t=1000 → 1.0. + +rangeVectorTests :: TestTree +rangeVectorTests = testGroup "Range vector aggregations" + [ testCase "avg_over_time of [0.0, 1.0] = 0.5" $ + assertInstantVectorScalars [0.5] + (runAt rateStore 1000 "avg_over_time (m[now - 1s; now : 1s])") + , testCase "sum_over_time of [0.0, 1.0] = 1.0" $ + assertInstantVectorScalars [1.0] + (runAt rateStore 1000 "sum_over_time (m[now - 1s; now : 1s])") + , testCase "rate of linear increase: 1.0/1000ms = 0.001" $ + assertInstantVectorScalars [0.001] + (runAt rateStore 1000 "rate (m[now - 1s; now : 1s])") + , testCase "increase of linear series = 1.0" $ + assertInstantVectorScalars [1.0] + (runAt rateStore 1000 "increase (m[now - 1s; now : 1s])") + , testCase "quantile_over_time 0.5 succeeds" $ + assertSucceeds + (runAt rateStore 1000 "quantile_over_time 0.5 (m[now - 1s; now : 1s])") + , testCase "range without explicit sampling rate uses default" $ + assertInstantVectorScalars [0.5] + (runAt rateStore 1000 "avg_over_time (m[now - 1s; now])") + ] + +-- --------------------------------------------------------------------------- +-- metrics +-- --------------------------------------------------------------------------- + +metricsTests :: TestTree +metricsTests = testGroup "metrics" + [ testCase "empty store yields Nil" $ + case run "metrics" of + Right Nil -> pure () + other -> assertFailure $ "Expected Nil, got: " <> show other + , testCase "store with one metric yields Cons" $ + case runAt simpleStore 0 "metrics" of + Right (Cons (Text "m") Nil) -> pure () + other -> assertFailure $ "Expected Cons (Text \"m\") Nil, got: " <> show other + ] + +-- --------------------------------------------------------------------------- +-- Error cases +-- --------------------------------------------------------------------------- + +errorCaseTests :: TestTree +errorCaseTests = testGroup "Error cases" + [ testCase "undefined name gives Undefined-name elab error" $ + case run "no_such_metric now" of + Left (ElabErrorWhileExecuting msg) -> + assertBool "error message mentions the name" ("Undefined name" `Text.isInfixOf` msg) + other -> assertFailure $ "Expected ElabErrorWhileExecuting, got: " <> show other + ] diff --git a/bench/cardano-timeseries-io/test/Cardano/Timeseries/Unit.hs b/bench/cardano-timeseries-io/test/Cardano/Timeseries/Unit.hs new file mode 100644 index 00000000000..d0028d1317b --- /dev/null +++ b/bench/cardano-timeseries-io/test/Cardano/Timeseries/Unit.hs @@ -0,0 +1,17 @@ +module Main (main) where + +import qualified Cardano.Timeseries.Elab.Expr.Parser.Suite as ParserSuite +import qualified Cardano.Timeseries.Elab.Suite as ElabSuite +import qualified Cardano.Timeseries.Interp.Suite as InterpSuite + +import GHC.IO.Encoding (setLocaleEncoding, utf8) +import Test.Tasty + +main :: IO () +main = do + setLocaleEncoding utf8 + defaultMain $ testGroup "Unit tests" + [ testGroup "Parser" [ParserSuite.parserTests] + , testGroup "Elab" [ElabSuite.elabTests] + , testGroup "Interp" [InterpSuite.interpTests] + ] diff --git a/bench/grafana-datasource/.gitignore b/bench/grafana-datasource/.gitignore new file mode 100644 index 00000000000..b9470778764 --- /dev/null +++ b/bench/grafana-datasource/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +dist/ diff --git a/bench/grafana-datasource/README.md b/bench/grafana-datasource/README.md new file mode 100644 index 00000000000..870d4cc9d91 --- /dev/null +++ b/bench/grafana-datasource/README.md @@ -0,0 +1,60 @@ +# Cardano Timeseries Grafana Datasource + +A Grafana datasource plugin that connects Grafana to the Cardano Timeseries HTTP server +(exposed by `cardano-tracer`). It allows querying node metrics, node info, startup +parameters, and sync state directly from Grafana dashboards. + +## Prerequisites + +- [Node.js](https://nodejs.org/) (v18 or later) +- [Docker](https://www.docker.com/) with the Compose plugin + +## Build + +Install dependencies (first time only): + +```sh +npm install +``` + +Build the plugin: + +```sh +npm run build +``` + +This produces the compiled plugin under `dist/`. + +## Run + +Start Grafana with the plugin loaded: + +```sh +docker compose up -d +``` + +Grafana will be available at http://localhost:3001 (default credentials: `admin` / `admin`). + +The datasource is pre-provisioned and points at `http://host.docker.internal:3400` — the +default address of the timeseries server when running locally. To change it, edit +`provisioning/datasources/cardano-timeseries.yaml` and restart the container. + +## Development + +To rebuild automatically on file changes: + +```sh +npm run dev +``` + +Then restart the container to pick up the new `dist/`: + +```sh +docker compose down && docker compose up -d +``` + +To type-check without building: + +```sh +npm run typecheck +``` diff --git a/bench/grafana-datasource/dashboards/rtview-port.json b/bench/grafana-datasource/dashboards/rtview-port.json new file mode 100644 index 00000000000..b44bb49f619 --- /dev/null +++ b/bench/grafana-datasource/dashboards/rtview-port.json @@ -0,0 +1,936 @@ +{ + "title": "Cardano Node (RTView port)", + "uid": "cardano-node-rtview-port", + "schemaVersion": 38, + "version": 1, + "refresh": "15s", + "time": { + "from": "now-1h", + "to": "now" + }, + "panels": [ + { + "id": 100, + "type": "row", + "title": "Node", + "gridPos": { + "x": 0, + "y": 0, + "w": 24, + "h": 1 + }, + "collapsed": false + }, + { + "id": 101, + "type": "table", + "title": "Connected Nodes", + "gridPos": { + "x": 0, + "y": 1, + "w": 4, + "h": 9 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryType": "nodes", + "queryText": "", + "nodeName": "", + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + } + } + ], + "options": { + "footer": { + "show": false + } + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + } + }, + { + "id": 102, + "type": "table", + "title": "Node Info \u2014 $node_name", + "repeat": "node_name", + "repeatDirection": "h", + "maxPerRow": 2, + "gridPos": { + "x": 4, + "y": 1, + "w": 10, + "h": 4 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryType": "node-info", + "queryText": "", + "nodeName": "$node_name", + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + } + } + ], + "options": { + "footer": { + "show": false + } + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + } + }, + { + "id": 103, + "type": "table", + "title": "Startup \u2014 $node_name", + "repeat": "node_name", + "repeatDirection": "h", + "maxPerRow": 3, + "gridPos": { + "x": 4, + "y": 5, + "w": 10, + "h": 4 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryType": "node-startup", + "queryText": "", + "nodeName": "$node_name", + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + } + } + ], + "options": { + "footer": { + "show": false + } + }, + "fieldConfig": { + "defaults": {}, + "overrides": [] + } + }, + { + "id": 104, + "type": "stat", + "title": "Sync \u2014 $node_name", + "repeat": "node_name", + "repeatDirection": "h", + "maxPerRow": 6, + "gridPos": { + "x": 4, + "y": 9, + "w": 4, + "h": 3 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryType": "node-sync-progress", + "queryText": "", + "nodeName": "$node_name", + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + } + } + ], + "options": { + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "orientation": "auto", + "colorMode": "background", + "graphMode": "none", + "justifyMode": "center", + "textMode": "auto" + }, + "fieldConfig": { + "defaults": { + "unit": "percent", + "min": 0, + "max": 100, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "red", + "value": null + }, + { + "color": "yellow", + "value": 90 + }, + { + "color": "green", + "value": 100 + } + ] + } + }, + "overrides": [] + } + }, + { + "id": 1, + "type": "row", + "title": "Resources", + "collapsed": false, + "gridPos": { + "x": 0, + "y": 15, + "w": 24, + "h": 1 + } + }, + { + "id": 2, + "type": "timeseries", + "title": "Memory \u2014 resident", + "gridPos": { + "x": 0, + "y": 15, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_Mem_resident_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "bytes" + } + } + }, + { + "id": 3, + "type": "timeseries", + "title": "CPU usage \u2014 process ticks", + "gridPos": { + "x": 8, + "y": 15, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_Stat_cputicks_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 4, + "type": "timeseries", + "title": "RTS threads", + "gridPos": { + "x": 16, + "y": 15, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_RTS_threads_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 5, + "type": "timeseries", + "title": "GC \u2014 live bytes in heap", + "gridPos": { + "x": 0, + "y": 15, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_RTS_gcLiveBytes_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "bytes" + } + } + }, + { + "id": 6, + "type": "timeseries", + "title": "GC \u2014 major collections", + "gridPos": { + "x": 8, + "y": 15, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_RTS_gcMajorNum_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 7, + "type": "timeseries", + "title": "GC \u2014 minor collections", + "gridPos": { + "x": 16, + "y": 15, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_RTS_gcMinorNum_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 8, + "type": "timeseries", + "title": "CPU ticks \u2014 GC", + "gridPos": { + "x": 0, + "y": 21, + "w": 12, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_RTS_gcticks_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 9, + "type": "timeseries", + "title": "CPU ticks \u2014 mutator (app)", + "gridPos": { + "x": 12, + "y": 21, + "w": 12, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_RTS_mutticks_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 10, + "type": "row", + "title": "Blockchain", + "collapsed": false, + "gridPos": { + "x": 0, + "y": 29, + "w": 24, + "h": 1 + } + }, + { + "id": 11, + "type": "timeseries", + "title": "Chain density", + "gridPos": { + "x": 0, + "y": 30, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_density_real[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "percentunit" + } + } + }, + { + "id": 12, + "type": "timeseries", + "title": "Slot height", + "gridPos": { + "x": 8, + "y": 30, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_slotNum_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 13, + "type": "timeseries", + "title": "Block height", + "gridPos": { + "x": 16, + "y": 30, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_blockNum_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 14, + "type": "timeseries", + "title": "Slot in epoch", + "gridPos": { + "x": 0, + "y": 38, + "w": 12, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_slotInEpoch_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 15, + "type": "timeseries", + "title": "Epoch", + "gridPos": { + "x": 12, + "y": 38, + "w": 12, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_epoch_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 16, + "type": "row", + "title": "Leadership", + "collapsed": false, + "gridPos": { + "x": 0, + "y": 46, + "w": 24, + "h": 1 + } + }, + { + "id": 17, + "type": "timeseries", + "title": "Node is leader (counter)", + "gridPos": { + "x": 0, + "y": 47, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_Forge_node_is_leader_counter[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 18, + "type": "timeseries", + "title": "Node not leader (counter)", + "gridPos": { + "x": 8, + "y": 47, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_Forge_node_not_leader_counter[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 19, + "type": "timeseries", + "title": "About to lead (counter)", + "gridPos": { + "x": 16, + "y": 47, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_Forge_about_to_lead_counter[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 20, + "type": "timeseries", + "title": "Blocks forged (counter)", + "gridPos": { + "x": 0, + "y": 55, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_Forge_forged_counter[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 21, + "type": "timeseries", + "title": "Blocks adopted (counter)", + "gridPos": { + "x": 8, + "y": 55, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_Forge_adopted_counter[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 22, + "type": "timeseries", + "title": "Cannot forge (gauge)", + "gridPos": { + "x": 16, + "y": 55, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_nodeCannotForge_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 23, + "type": "row", + "title": "Transactions", + "collapsed": false, + "gridPos": { + "x": 0, + "y": 63, + "w": 24, + "h": 1 + } + }, + { + "id": 24, + "type": "timeseries", + "title": "Txs in mempool", + "gridPos": { + "x": 0, + "y": 64, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_txsInMempool_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 25, + "type": "timeseries", + "title": "Mempool size", + "gridPos": { + "x": 8, + "y": 64, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_mempoolBytes_int[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "bytes" + } + } + }, + { + "id": 26, + "type": "timeseries", + "title": "Processed txs (counter)", + "gridPos": { + "x": 16, + "y": 64, + "w": 8, + "h": 8 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryText": "cardano_node_metrics_txsProcessedNum_counter[$__from; $__to : $__interval]", + "legendFormat": "{{node_name}}" + } + ], + "fieldConfig": { + "defaults": { + "unit": "short" + } + } + }, + { + "id": 105, + "type": "stat", + "title": "Uptime \u2014 $node_name", + "repeat": "node_name", + "repeatDirection": "h", + "maxPerRow": 6, + "gridPos": { + "x": 4, + "y": 12, + "w": 4, + "h": 3 + }, + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "targets": [ + { + "refId": "A", + "queryType": "node-info", + "queryText": "", + "nodeName": "$node_name", + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + } + } + ], + "options": { + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^Uptime$/", + "values": false + }, + "orientation": "auto", + "colorMode": "value", + "graphMode": "none", + "justifyMode": "center", + "textMode": "auto" + }, + "fieldConfig": { + "defaults": { + "unit": "s", + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "blue", + "value": null + } + ] + } + }, + "overrides": [] + } + } + ], + "templating": { + "list": [ + { + "name": "node_name", + "label": "Node", + "type": "query", + "datasource": { + "type": "iog-cardanotimeseries-datasource", + "uid": "cardano-timeseries" + }, + "query": "nodes", + "refresh": 2, + "multi": true, + "includeAll": true, + "sort": 0, + "current": { + "selected": true, + "text": "All", + "value": "$__all" + }, + "options": [], + "hide": 0, + "skipUrlSync": false + } + ] + } +} \ No newline at end of file diff --git a/bench/grafana-datasource/docker-compose.yaml b/bench/grafana-datasource/docker-compose.yaml new file mode 100644 index 00000000000..e4b2d6beafb --- /dev/null +++ b/bench/grafana-datasource/docker-compose.yaml @@ -0,0 +1,18 @@ +services: + grafana: + image: grafana/grafana:latest + ports: + - "3001:3000" + extra_hosts: + - "host.docker.internal:host-gateway" + environment: + - GF_DEFAULT_APP_MODE=development + # Allow loading unsigned plugins (needed during local development before signing) + - GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=iog-cardanotimeseries-datasource + volumes: + # Mount the built plugin into Grafana's plugin directory + - ./dist:/var/lib/grafana/plugins/iog-cardanotimeseries-datasource + # Provision the datasource automatically (edit provisioning/datasource.yaml to set URL) + - ./provisioning:/etc/grafana/provisioning + # Provisioned dashboards + - ./dashboards:/var/lib/grafana/dashboards diff --git a/bench/grafana-datasource/package-lock.json b/bench/grafana-datasource/package-lock.json new file mode 100644 index 00000000000..226d53a60a9 --- /dev/null +++ b/bench/grafana-datasource/package-lock.json @@ -0,0 +1,6003 @@ +{ + "name": "iog-cardanotimeseries-datasource", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "iog-cardanotimeseries-datasource", + "version": "1.0.0", + "dependencies": { + "@grafana/data": "^11.0.0", + "@grafana/runtime": "^11.0.0", + "@grafana/ui": "^11.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0", + "rxjs": "^7.8.0" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", + "ts-loader": "^9.5.0", + "typescript": "^5.4.0", + "webpack": "^5.91.0", + "webpack-cli": "^5.1.0" + } + }, + "node_modules/@adobe/react-spectrum": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz", + "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.12.1", + "@react-types/shared": "^3.34.0", + "@spectrum-icons/ui": "^3.7.0", + "@spectrum-icons/workflow": "^4.3.0", + "@swc/helpers": "^0.5.0", + "client-only": "^0.0.1", + "clsx": "^2.0.0", + "react-aria": "3.48.0", + "react-aria-components": "1.17.0", + "react-stately": "3.46.0", + "react-transition-group": "^4.4.5", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@adobe/react-spectrum-ui": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-ui/-/react-spectrum-ui-1.2.1.tgz", + "integrity": "sha512-wcrbEE2O/9WnEn6avBnaVRRx88S5PLFsPLr4wffzlbMfXeQsy+RMQwaJd3cbzrn18/j04Isit7f7Emfn0dhrJA==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@adobe/react-spectrum-workflow": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-workflow/-/react-spectrum-workflow-2.3.5.tgz", + "integrity": "sha512-b53VIPwPWKb/T5gzE3qs+QlGP5gVrw/LnWV3xMksDU+CRl3rzOKUwxIGiZO8ICyYh1WiyqY4myGlPU/nAynBUg==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@braintree/sanitize-url": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.0.1.tgz", + "integrity": "sha512-URg8UM6lfC9ZYqFipItRSxYJdgpU5d2Z4KnjsJ+rj6tgAmGme7E+PQNCiud8g0HDaZKMovu2qjfa0f5Ge0Vlsg==", + "license": "MIT" + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/css": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.13.5.tgz", + "integrity": "sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==", + "license": "MIT", + "dependencies": { + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.27.5", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.5.tgz", + "integrity": "sha512-BX3jKxo39Ba05pflcQmqPPwc0qdNsdNi/eweAFtoIdrJWNen2sVEWMEac3i6jU55Qfx+lOcdMNKYn2CtWmlnOQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.9", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.6" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", + "integrity": "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==", + "license": "MIT", + "dependencies": { + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/intl-localematcher": "0.6.2", + "decimal.js": "^10.4.3", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz", + "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-skeleton-parser": "1.8.16", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.16", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz", + "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz", + "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@grafana/data": { + "version": "11.6.14", + "resolved": "https://registry.npmjs.org/@grafana/data/-/data-11.6.14.tgz", + "integrity": "sha512-Nsjq1A9m6LbsKsKvOgvAk9Wq7RGjy0V4N9d5YsSnzMwCiw/ov2wblR2bcDpy95uF8KaDTIR2Gf40nJaOYksPMA==", + "license": "Apache-2.0", + "dependencies": { + "@braintree/sanitize-url": "7.0.1", + "@grafana/schema": "11.6.14", + "@types/d3-interpolate": "^3.0.0", + "@types/string-hash": "1.1.3", + "d3-interpolate": "3.0.1", + "date-fns": "4.1.0", + "dompurify": "3.2.4", + "eventemitter3": "5.0.1", + "fast_array_intersect": "1.1.0", + "history": "4.10.1", + "lodash": "^4.17.23", + "marked": "15.0.6", + "marked-mangle": "1.1.10", + "moment": "2.30.1", + "moment-timezone": "0.5.47", + "ol": "7.4.0", + "papaparse": "5.5.2", + "react-use": "17.6.0", + "rxjs": "7.8.1", + "string-hash": "^1.1.3", + "tinycolor2": "1.6.0", + "tslib": "2.8.1", + "uplot": "1.6.31", + "xss": "^1.0.14" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@grafana/data/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@grafana/e2e-selectors": { + "version": "11.6.14", + "resolved": "https://registry.npmjs.org/@grafana/e2e-selectors/-/e2e-selectors-11.6.14.tgz", + "integrity": "sha512-NacUwvgjzbdUI9ylO1+1LA3I2PZ2qRG99E8KbfuiO4MriXTePRa/a/rzrrzDQijZil8QHN0pSlHZNOrZDP8oAQ==", + "license": "Apache-2.0", + "dependencies": { + "@grafana/tsconfig": "^2.0.0", + "semver": "^7.7.0", + "tslib": "2.8.1", + "typescript": "5.7.3" + } + }, + "node_modules/@grafana/e2e-selectors/node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@grafana/faro-core": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@grafana/faro-core/-/faro-core-1.19.0.tgz", + "integrity": "sha512-Juo5G/aviSh3XqSGGr6D61noAC8sb+oCawBsv545ILEeOQdINyzRaoQdRpnXEY3DLS9LYtL0PYhvHZiP3rlscQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/otlp-transformer": "^0.202.0" + } + }, + "node_modules/@grafana/faro-web-sdk": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@grafana/faro-web-sdk/-/faro-web-sdk-1.19.0.tgz", + "integrity": "sha512-3u74mV2uBWqoF6WBx71p0vtkaS1Z0QbGoZ8tuX5yiYnIybqnhKdGkApFUi7q5se0tMPIeJdMVoRFdLU8f9hfAw==", + "license": "Apache-2.0", + "dependencies": { + "@grafana/faro-core": "^1.19.0", + "ua-parser-js": "^1.0.32", + "web-vitals": "^4.0.1" + } + }, + "node_modules/@grafana/runtime": { + "version": "11.6.14", + "resolved": "https://registry.npmjs.org/@grafana/runtime/-/runtime-11.6.14.tgz", + "integrity": "sha512-pFH9vi4DgGV8/6cEKur08CvDlKuvAFf5upgL8BR6m5+Byc977AGIIJYbmHl96dqHBNtHIlp2vnQMJGx48I8r9w==", + "license": "Apache-2.0", + "dependencies": { + "@grafana/data": "11.6.14", + "@grafana/e2e-selectors": "11.6.14", + "@grafana/faro-web-sdk": "^1.13.2", + "@grafana/schema": "11.6.14", + "@grafana/ui": "11.6.14", + "history": "4.10.1", + "lodash": "^4.17.23", + "react-loading-skeleton": "3.5.0", + "react-use": "17.6.0", + "rxjs": "7.8.1", + "tslib": "2.8.1" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@grafana/runtime/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@grafana/schema": { + "version": "11.6.14", + "resolved": "https://registry.npmjs.org/@grafana/schema/-/schema-11.6.14.tgz", + "integrity": "sha512-YTqgYekb7kiu5NEoQxKF8czJ6QIARmMkCi9cNcynHqYpcDLOv5pg5Q0QtKgiiqHjlYoEeCV6iejdB4hXxzB+VA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "2.8.1" + } + }, + "node_modules/@grafana/tsconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@grafana/tsconfig/-/tsconfig-2.1.0.tgz", + "integrity": "sha512-rJxzlVeKJNAiu1owcC8GcLpzwBg+B2TlkU3egDpb7z+3PZjQQwevrksqNvFxezBB9wMJSv49Qgve3KPT56e3yQ==", + "license": "Apache-2.0" + }, + "node_modules/@grafana/ui": { + "version": "11.6.14", + "resolved": "https://registry.npmjs.org/@grafana/ui/-/ui-11.6.14.tgz", + "integrity": "sha512-aldRucGsFM8cqcQxRGYkqvGLtOgdjEIHtVAYUHeqC1Yzi2KUVhqbgRrNgCHJuJDG8tOHZHUmpM445keB3+HQQg==", + "license": "Apache-2.0", + "dependencies": { + "@emotion/css": "11.13.5", + "@emotion/react": "11.14.0", + "@emotion/serialize": "1.3.3", + "@floating-ui/react": "0.27.5", + "@grafana/data": "11.6.14", + "@grafana/e2e-selectors": "11.6.14", + "@grafana/faro-web-sdk": "^1.13.2", + "@grafana/schema": "11.6.14", + "@hello-pangea/dnd": "17.0.0", + "@leeoniya/ufuzzy": "1.0.18", + "@monaco-editor/react": "4.6.0", + "@popperjs/core": "2.11.8", + "@react-aria/dialog": "3.5.21", + "@react-aria/focus": "3.19.1", + "@react-aria/overlays": "3.25.0", + "@react-aria/utils": "3.27.0", + "@tanstack/react-virtual": "^3.5.1", + "@types/jquery": "3.5.32", + "@types/lodash": "4.17.15", + "@types/react-table": "7.7.20", + "calculate-size": "1.1.1", + "classnames": "2.5.1", + "d3": "7.9.0", + "date-fns": "4.1.0", + "downshift": "^9.0.6", + "hoist-non-react-statics": "3.3.2", + "i18next": "^24.0.0", + "i18next-browser-languagedetector": "^8.0.0", + "immutable": "5.0.3", + "is-hotkey": "0.2.0", + "jquery": "3.7.1", + "lodash": "^4.17.23", + "micro-memoize": "^4.1.2", + "moment": "2.30.1", + "monaco-editor": "0.34.1", + "ol": "7.4.0", + "prismjs": "1.30.0", + "rc-cascader": "3.33.0", + "rc-drawer": "7.2.0", + "rc-picker": "4.9.2", + "rc-slider": "11.1.8", + "rc-tooltip": "6.4.0", + "react-calendar": "^5.1.0", + "react-colorful": "5.6.1", + "react-custom-scrollbars-2": "4.5.0", + "react-dropzone": "14.3.5", + "react-highlight-words": "0.21.0", + "react-hook-form": "^7.49.2", + "react-i18next": "^15.0.0", + "react-inlinesvg": "4.2.0", + "react-loading-skeleton": "3.5.0", + "react-router-dom": "5.3.4", + "react-router-dom-v5-compat": "^6.26.1", + "react-select": "5.10.0", + "react-table": "7.8.0", + "react-transition-group": "4.4.5", + "react-use": "17.6.0", + "react-window": "1.8.11", + "rxjs": "7.8.1", + "slate": "0.47.9", + "slate-plain-serializer": "0.7.13", + "slate-react": "0.22.10", + "tinycolor2": "1.6.0", + "tslib": "2.8.1", + "uplot": "1.6.31", + "uuid": "11.0.5" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@grafana/ui/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@hello-pangea/dnd": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@hello-pangea/dnd/-/dnd-17.0.0.tgz", + "integrity": "sha512-LDDPOix/5N0j5QZxubiW9T0M0+1PR0rTDWeZF5pu1Tz91UQnuVK4qQ/EjY83Qm2QeX0eM8qDXANfDh3VVqtR4Q==", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.25.6", + "css-box-model": "^1.2.1", + "memoize-one": "^6.0.0", + "raf-schd": "^4.0.3", + "react-redux": "^9.1.2", + "redux": "^5.0.1", + "use-memo-one": "^1.1.3" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@internationalized/date": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.12.1.tgz", + "integrity": "sha512-6IedsVWXyq4P9Tj+TxuU8WGWM70hYLl12nbYU8jkikVpa6WXapFazPUcHUMDMoWftIDE2ILDkFFte6W2nFCkRQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/message": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.9.tgz", + "integrity": "sha512-x03MSVTaB/4JHtW1VAYaY/2cCuBrHbWM6ZvlgpKdnSdW28tZbqpR673RJrVJyXWRw1bpgYN89Tz7ohX5tgNgPA==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "intl-messageformat": "^10.1.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.6.tgz", + "integrity": "sha512-iFgmQaXHE0vytNfpLZWOC2mEJCBRzcUxt53Xf/yCXG93lRvqas237i3r7X4RKMwO3txiyZD4mQjKAByFv6UGSQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/string": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.8.tgz", + "integrity": "sha512-NdbMQUSfXLYIQol5VyMtinm9pZDciiMfN7RtmSuSB78io1hqwJ0naYfxyW6vgxWBkzWymQa/3uLDlbfmshtCaA==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leeoniya/ufuzzy": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/@leeoniya/ufuzzy/-/ufuzzy-1.0.18.tgz", + "integrity": "sha512-5D54A86/VaPvJVf7UWJgy+UyhDtstUxq0iQd8UOZ2TG3NjV2oSoa9m4qW3VsotDD6dH2SNHDQwSPq+IAuudnag==", + "license": "MIT" + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/mapbox-gl-style-spec": { + "version": "13.28.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-style-spec/-/mapbox-gl-style-spec-13.28.0.tgz", + "integrity": "sha512-B8xM7Fp1nh5kejfIl4SWeY0gtIeewbuRencqO3cJDrCHZpaPg7uY+V8abuR+esMeuOjRl5cLhVTP40v+1ywxbg==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/unitbezier": "^0.0.0", + "csscolorparser": "~1.0.2", + "json-stringify-pretty-compact": "^2.0.0", + "minimist": "^1.2.6", + "rw": "^1.3.3", + "sort-object": "^0.3.2" + }, + "bin": { + "gl-style-composite": "bin/gl-style-composite.js", + "gl-style-format": "bin/gl-style-format.js", + "gl-style-migrate": "bin/gl-style-migrate.js", + "gl-style-validate": "bin/gl-style-validate.js" + } + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", + "license": "ISC" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", + "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==", + "license": "BSD-2-Clause" + }, + "node_modules/@monaco-editor/loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.7.0.tgz", + "integrity": "sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==", + "license": "MIT", + "dependencies": { + "state-local": "^1.0.6" + } + }, + "node_modules/@monaco-editor/react": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.6.0.tgz", + "integrity": "sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==", + "license": "MIT", + "dependencies": { + "@monaco-editor/loader": "^1.4.0" + }, + "peerDependencies": { + "monaco-editor": ">= 0.25.0 < 1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@opentelemetry/api": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz", + "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/api-logs": { + "version": "0.202.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.202.0.tgz", + "integrity": "sha512-fTBjMqKCfotFWfLzaKyhjLvyEyq5vDKTTFfBmx21btv3gvy8Lq6N5Dh2OzqeuN4DjtpSvNT1uNVfg08eD2Rfxw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api": "^1.3.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@opentelemetry/core": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.0.1.tgz", + "integrity": "sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.0.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/otlp-transformer": { + "version": "0.202.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.202.0.tgz", + "integrity": "sha512-5XO77QFzs9WkexvJQL9ksxL8oVFb/dfi9NWQSq7Sv0Efr9x3N+nb1iklP1TeVgxqJ7m1xWiC/Uv3wupiQGevMw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.202.0", + "@opentelemetry/core": "2.0.1", + "@opentelemetry/resources": "2.0.1", + "@opentelemetry/sdk-logs": "0.202.0", + "@opentelemetry/sdk-metrics": "2.0.1", + "@opentelemetry/sdk-trace-base": "2.0.1", + "protobufjs": "^7.3.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.3.0" + } + }, + "node_modules/@opentelemetry/resources": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.0.1.tgz", + "integrity": "sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.0.1", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-logs": { + "version": "0.202.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.202.0.tgz", + "integrity": "sha512-pv8QiQLQzk4X909YKm0lnW4hpuQg4zHwJ4XBd5bZiXcd9urvrJNoNVKnxGHPiDVX/GiLFvr5DMYsDBQbZCypRQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/api-logs": "0.202.0", + "@opentelemetry/core": "2.0.1", + "@opentelemetry/resources": "2.0.1" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.4.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-metrics": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-2.0.1.tgz", + "integrity": "sha512-wf8OaJoSnujMAHWR3g+/hGvNcsC16rf9s1So4JlMiFaFHiE4HpIA3oUh+uWZQ7CNuK8gVW/pQSkgoa5HkkOl0g==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.0.1", + "@opentelemetry/resources": "2.0.1" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.9.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/sdk-trace-base": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.0.1.tgz", + "integrity": "sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==", + "license": "Apache-2.0", + "dependencies": { + "@opentelemetry/core": "2.0.1", + "@opentelemetry/resources": "2.0.1", + "@opentelemetry/semantic-conventions": "^1.29.0" + }, + "engines": { + "node": "^18.19.0 || >=20.6.0" + }, + "peerDependencies": { + "@opentelemetry/api": ">=1.3.0 <1.10.0" + } + }, + "node_modules/@opentelemetry/semantic-conventions": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.40.0.tgz", + "integrity": "sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/@petamoriken/float16": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.3.tgz", + "integrity": "sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==", + "license": "MIT" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz", + "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.1.tgz", + "integrity": "sha512-mnzgDV26ueAvk7rsbt9L7bE0SuAoqyuys/sMMrmVcN5x9VsxpcG3rqAUSgDyLp0UZlmNfIbQ4fHfCtreVBk8Ew==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.1.tgz", + "integrity": "sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==", + "license": "BSD-3-Clause" + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.1.tgz", + "integrity": "sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@react-aria/button": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.15.0.tgz", + "integrity": "sha512-p8KehQ+OmhvhYmsjkp4K/Yv0tufyEBOHu6woJlRYL6kq5m6GKY5MZp8pyO26FpSiOyjhnZe6wbTyvCifvaokwQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "react-aria": "3.48.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/dialog": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.21.tgz", + "integrity": "sha512-tBsn9swBhcptJ9QIm0+ur0PVR799N6qmGguva3rUdd+gfitknFScyT08d7AoMr9AbXYdJ+2R9XNSZ3H3uIWQMw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.19.1", + "@react-aria/overlays": "^3.25.0", + "@react-aria/utils": "^3.27.0", + "@react-types/dialog": "^3.5.15", + "@react-types/shared": "^3.27.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/focus": { + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.19.1.tgz", + "integrity": "sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.23.0", + "@react-aria/utils": "^3.27.0", + "@react-types/shared": "^3.27.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/i18n": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.13.0.tgz", + "integrity": "sha512-APjw4EwmvlnIyDxixSWfjHvOFFkW2rVTyKZ4l9FV0v7hOerh+FWLE6mF1XnnX3pgz3yARkKWwhSR9xYcRK6tpg==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.12.1", + "@internationalized/message": "^3.1.9", + "@internationalized/string": "^3.2.8", + "@swc/helpers": "^0.5.0", + "react-aria": "3.48.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/interactions": { + "version": "3.28.0", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.28.0.tgz", + "integrity": "sha512-OXwdU1EWFdMxmr/K1CXNGJzmNlCClByb+PuCaqUyzBymHPCGVhawirLIon/CrIN5psh3AiWpHSh4H0WeJdVpng==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.34.0", + "@swc/helpers": "^0.5.0", + "react-aria": "3.48.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/overlays": { + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.25.0.tgz", + "integrity": "sha512-UEqJJ4duowrD1JvwXpPZreBuK79pbyNjNxFUVpFSskpGEJe3oCWwsSDKz7P1O7xbx5OYp+rDiY8fk/sE5rkaKw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.19.1", + "@react-aria/i18n": "^3.12.5", + "@react-aria/interactions": "^3.23.0", + "@react-aria/ssr": "^3.9.7", + "@react-aria/utils": "^3.27.0", + "@react-aria/visually-hidden": "^3.8.19", + "@react-stately/overlays": "^3.6.13", + "@react-types/button": "^3.10.2", + "@react-types/overlays": "^3.8.12", + "@react-types/shared": "^3.27.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.10.0.tgz", + "integrity": "sha512-mnelvACtfNWWKFCT1YHebxJRmfBmmANGwHQhCFPByMVTx1L8RumcaLxChYkE87g2KPuP5xX2il/oRn1DytW+qQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "react-aria": "3.48.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/utils": { + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.27.0.tgz", + "integrity": "sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.7", + "@react-stately/utils": "^3.10.5", + "@react-types/shared": "^3.27.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/visually-hidden": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.9.0.tgz", + "integrity": "sha512-OBSwuke98mVtd2po43VOT999rO9mpL7yaSehMuIylOT2wyY01Tut+ATpjavKbcZAust4eZFALVARYAS/0+GHyA==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "react-aria": "3.48.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-spectrum/button": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.18.0.tgz", + "integrity": "sha512-SmjsXt+mLK2cf8PGstNZvLBfjqE5TjHW15yPIATI6ddqMdcC9JZ3ldnBTdFji9P/B6Rlop4ajnAdDV6bpxLtXA==", + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.47.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-spectrum/dialog": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/dialog/-/dialog-3.10.0.tgz", + "integrity": "sha512-U+0rTx1eG+BIpIb3vUAtP/n65CsyGydhtkJSNDTGUzG8yHgc7jGU/siwhY6/C8Y25wU4QggkXhIcn0y6rLvJ4g==", + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.47.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-spectrum/overlays": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/overlays/-/overlays-5.10.0.tgz", + "integrity": "sha512-iGHXE5wdF4wNqdkgTKWAoeJUeKec+ki1BeRdiguywjY/SGMIx8Htd4dWyglDsOboBBJuEWMHKFAmTbMDhz6B9w==", + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum": "3.47.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-spectrum/provider": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.11.0.tgz", + "integrity": "sha512-W2Gxbj8AcG5OR2K5Ua3K8qQqxdsiytEiz+2rhr6oQyBM8VafEgDcNPYSOTtfjrQM3snl2Uhp8LzwN0jwQe/6nQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@adobe/react-spectrum": "3.47.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/overlays": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.7.0.tgz", + "integrity": "sha512-VyFlju6JqEUTyr+igrEjTeUi2MXw7IBOxWYzLoq26UJxf+45okqUWfyKRdXTvNjGJqQol9fqIg5Nv8fU4H/CvQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "react-stately": "3.46.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/utils": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.12.0.tgz", + "integrity": "sha512-7q+iHz9cENvro1dVKgdTxNh1i1mtWuLUI6UHp10TAgpxM9DyRDvmuN35zLXYCmMDgx3WLY2xkwqoez8xd+CdxQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "react-stately": "3.46.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/button": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.16.0.tgz", + "integrity": "sha512-Z5///n2Y1jtF0gokBq2Y1K1cpOwsWZ24HPeAm3eEmZrbBXMrxC2oEA5ZThsSHuIGsqiyNJiQ2scsDftmr+PkZw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/button": "^3.15.0", + "@react-spectrum/button": "^3.18.0" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/dialog": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.6.0.tgz", + "integrity": "sha512-vvxohmsTRZWE/saaJt6mMy3ONA4xbQTSk1okfMUK6OMSp/VpLBRLCz/2/myiMK3UIBCagUnrwzOwbk9whnFx0g==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/dialog": "^3.6.0", + "@react-spectrum/dialog": "^3.10.0" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/dialog/node_modules/@react-aria/dialog": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.6.0.tgz", + "integrity": "sha512-FL7mInToLqYHCQExAj5fg1kpF5H4q0CvBs9GKZAo0HCWVv9pb5i4SiN1FXm5CJWU62UIhd7JysdW3Jl+TXtSng==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "react-aria": "3.48.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/overlays": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.10.0.tgz", + "integrity": "sha512-cgrcOTxy6ac0kiphQOkc8mj5artZMB/XVrFgukRZ2FcbYNEERpg2VQ5ztd0+H1ER7O0kx7AmwHxdut+x1EAjrw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/overlays": "^3.32.0", + "@react-spectrum/overlays": "^5.10.0", + "@react-stately/overlays": "^3.7.0", + "@react-types/shared": "^3.34.0" + }, + "peerDependencies": { + "@react-spectrum/provider": "^3.0.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/overlays/node_modules/@react-aria/overlays": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.32.0.tgz", + "integrity": "sha512-H9meBB14/M0bDwk8gZl8Fu8bwZN2El9LDlk5cNkgAozbEiRuQvTFOeE3RoP6XI6bwEnSBvb0ovPmx3/kNyOehQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "react-aria": "3.48.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/shared": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.34.0.tgz", + "integrity": "sha512-gp6xo/s2lX54AlTjOiqwDnxA7UW79BNvI9dB9pr3LZTzRKCd1ZA+ZbgKw/ReIiWuvvVw/8QFJpnqeeFyLocMcQ==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@spectrum-icons/ui": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz", + "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==", + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum-ui": "1.2.1", + "@babel/runtime": "^7.24.4", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "@adobe/react-spectrum": "^3.47.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@spectrum-icons/workflow": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz", + "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==", + "license": "Apache-2.0", + "dependencies": { + "@adobe/react-spectrum-workflow": "2.3.5", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "@adobe/react-spectrum": "^3.47.0", + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.21.tgz", + "integrity": "sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tanstack/react-virtual": { + "version": "3.13.24", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.24.tgz", + "integrity": "sha512-aIJvz5OSkhNIhZIpYivrxrPTKYsjW9Uzy+sP/mx0S3sev2HyvPb7xmjbYvokzEpfgYHy/HjzJ2zFAETuUfgCpg==", + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.14.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.14.0.tgz", + "integrity": "sha512-JLANqGy/D6k4Ujmh8Tr25lGimuOXNiaVyXaCAZS0W+1390sADdGnyUdSWNIfd49gebtIxGMij4IktRVzrdr12Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jquery": { + "version": "3.5.32", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.32.tgz", + "integrity": "sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==", + "license": "MIT", + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@types/js-cookie": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz", + "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.19.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.39.tgz", + "integrity": "sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/react-table": { + "version": "7.7.20", + "resolved": "https://registry.npmjs.org/@types/react-table/-/react-table-7.7.20.tgz", + "integrity": "sha512-ahMp4pmjVlnExxNwxyaDrFgmKxSbPwU23sGQw2gJK4EhCvnvmib2s/O/+y1dfV57dXOwpr2plfyBol+vEHbi2w==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/sizzle": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.10.tgz", + "integrity": "sha512-TC0dmN0K8YcWEAEfiPi5gJP14eJe30TTGjkvek3iM/1NdHHsdCA/Td6GvNndMOo/iSnIsZ4HuuhrYPDAmbxzww==", + "license": "MIT" + }, + "node_modules/@types/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@types/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-p6skq756fJWiA59g2Uss+cMl6tpoDGuCBuxG0SI1t0NwJmYOU66LAMS6QiCgu7cUh3/hYCaMl5phcCW1JP5wOA==", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@wojtekmaj/date-utils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.5.1.tgz", + "integrity": "sha512-+i7+JmNiE/3c9FKxzWFi2IjRJ+KzZl1QPu6QNrsgaa2MuBgXvUy4gA1TVzf/JMdIIloB76xSKikTWuyYAIVLww==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/date-utils?sponsor=1" + } + }, + "node_modules/@xobotyi/scrollbar-width": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz", + "integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==", + "license": "MIT" + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, + "node_modules/add-px-to-style": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-px-to-style/-/add-px-to-style-1.0.0.tgz", + "integrity": "sha512-YMyxSlXpPjD8uWekCQGuN40lV4bnZagUwqa2m/uFv1z/tNImSk9fnXVMUI5qwME/zzI3MMQRvjZ+69zyfSSyew==", + "license": "MIT" + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/attr-accept": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.5.tgz", + "integrity": "sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.27", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.27.tgz", + "integrity": "sha512-zEs/ufmZoUd7WftKpKyXaT6RFxpQ5Qm9xytKRHvJfxFV9DFJkZph9RvJ1LcOUi0Z1ZVijMte65JbILeV+8QQEA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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, + "license": "MIT" + }, + "node_modules/calculate-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/calculate-size/-/calculate-size-1.1.1.tgz", + "integrity": "sha512-jJZ7pvbQVM/Ss3VO789qpsypN3xmnepg242cejOAslsmlZLYw2dnj7knnNowabQ0Kzabzx56KFTy2Pot/y6FmA==", + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001792", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001792.tgz", + "integrity": "sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "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, + "license": "MIT", + "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/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-box-model": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", + "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "license": "MIT", + "dependencies": { + "tiny-invariant": "^1.0.6" + } + }, + "node_modules/css-in-js-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz", + "integrity": "sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==", + "license": "MIT", + "dependencies": { + "hyphenate-style-name": "^1.0.3" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", + "license": "MIT" + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "license": "ISC", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", + "license": "ISC", + "dependencies": { + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "license": "ISC", + "dependencies": { + "d3-array": "^3.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", + "license": "ISC", + "dependencies": { + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" + }, + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "license": "ISC", + "dependencies": { + "d3-dsv": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT" + }, + "node_modules/delaunator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.1.0.tgz", + "integrity": "sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, + "node_modules/direction": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/direction/-/direction-0.1.5.tgz", + "integrity": "sha512-HceXsAluGbXKCz2qCVbXFUH4Vn4eNMWxY5gzydMFMnS1zKSwvDASqLwcrYLIFDpwuZ63FUAqjDLEP1eicHt8DQ==", + "license": "MIT", + "bin": { + "direction": "cli.js" + } + }, + "node_modules/dom-css": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dom-css/-/dom-css-2.1.0.tgz", + "integrity": "sha512-w9kU7FAbaSh3QKijL6n59ofAhkkmMJ31GclJIz/vyQdjogfyxcB6Zf8CZyibOERI5o0Hxz30VmJS7+7r5fEj2Q==", + "license": "MIT", + "dependencies": { + "add-px-to-style": "1.0.0", + "prefix-style": "2.0.1", + "to-camel-case": "1.0.0" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dompurify": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/downshift": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/downshift/-/downshift-9.3.2.tgz", + "integrity": "sha512-5VD0WZLQDhipWiDU+K5ili3VDhGrXwlvOlSaSG1Cb0eS4XpssxVuoD09JNgju+bAzxB2Wvlwx+FwTE/FNdrqow==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.6", + "compute-scroll-into-view": "^3.1.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "tslib": "^2.8.1" + }, + "peerDependencies": { + "react": ">=16.12.0" + } + }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", + "license": "ISC" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.351", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.351.tgz", + "integrity": "sha512-9D7Iqx8RImSvCnOsj86rCH6eQjZFQoM04Jn6HnZVM0Nu/G58/gmKYQ1d12MZTbjQbQSTGI8nwEy07ErsA2slLA==", + "dev": true, + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.21.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.0.tgz", + "integrity": "sha512-otxSQPw4lkOZWkHpB3zaEQs6gWYEsmX4xQF68ElXC/TWvGxGMSGOvoNbaLXm6/cS/fSfHtsEdw90y20PCd+sCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/envinfo": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", + "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", + "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrever": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/esrever/-/esrever-0.2.0.tgz", + "integrity": "sha512-1e9YJt6yQkyekt2BUjTky7LZWWVyC2cIpgdnsTAvMcnzXIZvlW/fTMPkxBcZoYhgih4d+EC+iw+yv9GIkz7vrw==", + "license": "MIT", + "bin": { + "esrever": "bin/esrever" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast_array_intersect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast_array_intersect/-/fast_array_intersect-1.1.0.tgz", + "integrity": "sha512-/DCilZlUdz2XyNDF+ASs0PwY+RKG9Y4Silp/gbS72Cvbg4oibc778xcecg+pnNyiNHYgh/TApsiDTjpdniyShw==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-shallow-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz", + "integrity": "sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==" + }, + "node_modules/fast-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastest-stable-stringify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz", + "integrity": "sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==", + "license": "MIT" + }, + "node_modules/file-selector": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-2.1.2.tgz", + "integrity": "sha512-QgXo+mXTe8ljeqUFaX3QVHc5osSItJ/Km+xpocx0aSqWGMSCf6qYs/VnzZgS864Pjn5iceMRFigeAV7AfTlaig==", + "license": "MIT", + "dependencies": { + "tslib": "^2.7.0" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/geotiff": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz", + "integrity": "sha512-PT6uoF5a1+kbC3tHmZSUsLHBp2QJlHasxxxxPW47QIY1VBKpFB+FcDvX+MxER6UzgLQZ0xDzJ9s48B9JbOCTqA==", + "license": "MIT", + "dependencies": { + "@petamoriken/float16": "^3.4.7", + "lerc": "^3.0.0", + "pako": "^2.0.4", + "parse-headers": "^2.0.2", + "quick-lru": "^6.1.1", + "web-worker": "^1.2.0", + "xml-utils": "^1.0.2", + "zstddec": "^0.1.0" + }, + "engines": { + "node": ">=10.19" + } + }, + "node_modules/get-document": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-document/-/get-document-1.0.0.tgz", + "integrity": "sha512-8E7H2Xxibav+/rQTTtm6gFlSQwDoAQg667yheA+vWQr/amxEuswChzGo4MIbOJJoR0SMpDyhbUqWp3FpIfwD9A==" + }, + "node_modules/get-user-locale": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/get-user-locale/-/get-user-locale-2.3.2.tgz", + "integrity": "sha512-O2GWvQkhnbDoWFUJfaBlDIKUEdND8ATpBXD6KXcbhxlfktyD/d8w6mkzM/IlQEqGZAMz/PW6j6Hv53BiigKLUQ==", + "license": "MIT", + "dependencies": { + "mem": "^8.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/get-user-locale?sponsor=1" + } + }, + "node_modules/get-window": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-window/-/get-window-1.1.2.tgz", + "integrity": "sha512-yjWpFcy9fjhLQHW1dPtg9ga4pmizLY8y4ZSHdGrAQ1NU277MRhnGnnLPxe19X8W5lWVsCZz++5xEuNozWMVmTw==", + "license": "MIT", + "dependencies": { + "get-document": "1" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "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, + "license": "ISC" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/highlight-words-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/highlight-words-core/-/highlight-words-core-1.2.3.tgz", + "integrity": "sha512-m1O9HW3/GNHxzSIXWw1wCNXXsgLlxrP0OI6+ycGUhiUHkikqW3OrwVHz+lxeNBe5yqLESdIcj8PowHQ2zLvUvQ==", + "license": "MIT" + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "license": "MIT", + "dependencies": { + "void-elements": "3.1.0" + } + }, + "node_modules/hyphenate-style-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", + "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==", + "license": "BSD-3-Clause" + }, + "node_modules/i18next": { + "version": "24.2.3", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-24.2.3.tgz", + "integrity": "sha512-lfbf80OzkocvX7nmZtu7nSTNbrTYR52sLWxPtlXX1zAhVw8WEnFk4puUkCR4B1dNQwbSpEHHHemcZu//7EcB7A==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.10" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/i18next-browser-languagedetector": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-8.2.1.tgz", + "integrity": "sha512-bZg8+4bdmaOiApD7N7BPT9W8MLZG+nPTOFlLiJiT8uzKXFjhxw4v2ierCXOwB5sFDMtuA5G4kgYZ0AznZxQ/cw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/immutable": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "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/inline-style-prefixer": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-7.0.1.tgz", + "integrity": "sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw==", + "license": "MIT", + "dependencies": { + "css-in-js-utils": "^3.1.0" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/intl-messageformat": { + "version": "10.7.18", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.18.tgz", + "integrity": "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==", + "license": "BSD-3-Clause", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.4", + "tslib": "^2.8.0" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-hotkey": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.2.0.tgz", + "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==", + "license": "MIT" + }, + "node_modules/is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==", + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-window": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", + "integrity": "sha512-uj00kdXyZb9t9RcAUAwMZAnkBUwdYGhYlt7djMXhfyhUCzwNba50tIiBKR7q0l7tdoBtFVw/3JmLY6fI3rmZmg==", + "license": "MIT" + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-base64": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/isomorphic-base64/-/isomorphic-base64-1.0.2.tgz", + "integrity": "sha512-pQFyLwShVPA1Qr0dE1ZPguJkbOsFGDfSq6Wzz6XaO33v74X6/iQjgYPozwkeKGQxOI1/H3Fz7+ROtnV1veyKEg==", + "license": "MIT" + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "license": "MIT" + }, + "node_modules/js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-pretty-compact": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz", + "integrity": "sha512-WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ==", + "license": "MIT" + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lerc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lerc/-/lerc-3.0.0.tgz", + "integrity": "sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==", + "license": "Apache-2.0" + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "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, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mapbox-to-css-font": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.5.tgz", + "integrity": "sha512-VJ6nB8emkO9VODI0Fk+TQ/0zKBTqmf/Pkt8Xv0kHstoc0iXRajA00DAid4Kc3K5xeFIOoiZrVxijEzj0GLVO2w==", + "license": "BSD-2-Clause" + }, + "node_modules/marked": { + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.6.tgz", + "integrity": "sha512-Y07CUOE+HQXbVDCGl3LXggqJDbXDP2pArc2C1N1RRMN0ONiShoSsIInMd5Gsxupe7fKLpgimTV+HOJ9r7bA+pg==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/marked-mangle": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/marked-mangle/-/marked-mangle-1.1.10.tgz", + "integrity": "sha512-TrpN67SMJJdzXXWIzOd/QmnpsC5o1B44PUYaG2bh1XEbqVjA0UCI2ijFuE5LWESwKeI2gCP5FqcUHRGQwFtDIA==", + "license": "MIT", + "peerDependencies": { + "marked": ">=4 <16" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/mem": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/micro-memoize": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-4.2.0.tgz", + "integrity": "sha512-dRxIsNh0XosO9sd3aASUabKOzG9dloLO41g74XUGThpHBoGm1ttakPT5in14CuW/EDedkniaShFHbymmmKGOQA==", + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.47", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.47.tgz", + "integrity": "sha512-UbNt/JAWS0m/NJOebR0QMRHBk0hu03r5dx9GK8Cs0AS3I81yDcOc9k+DytPItgVvBP7J6Mf6U2n3BPAacAV9oA==", + "license": "MIT", + "dependencies": { + "moment": "^2.29.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/monaco-editor": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.34.1.tgz", + "integrity": "sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nano-css": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.6.2.tgz", + "integrity": "sha512-+6bHaC8dSDGALM1HJjOHVXpuastdu2xFoZlC77Jh4cg+33Zcgm+Gxd+1xsnpZK14eyHObSp82+ll5y3SX75liw==", + "license": "Unlicense", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "css-tree": "^1.1.2", + "csstype": "^3.1.2", + "fastest-stable-stringify": "^2.0.2", + "inline-style-prefixer": "^7.0.1", + "rtl-css-js": "^1.16.1", + "stacktrace-js": "^2.0.2", + "stylis": "^4.3.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/nano-css/node_modules/stylis": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.4.0.tgz", + "integrity": "sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==", + "license": "MIT" + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz", + "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ol": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ol/-/ol-7.4.0.tgz", + "integrity": "sha512-bgBbiah694HhC0jt8ptEFNRXwgO8d6xWH3G97PCg4bmn9Li5nLLbi59oSrvqUI6VPVwonPQF1YcqJymxxyMC6A==", + "license": "BSD-2-Clause", + "dependencies": { + "earcut": "^2.2.3", + "geotiff": "^2.0.7", + "ol-mapbox-style": "^10.1.0", + "pbf": "3.2.1", + "rbush": "^3.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/openlayers" + } + }, + "node_modules/ol-mapbox-style": { + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-10.7.0.tgz", + "integrity": "sha512-S/UdYBuOjrotcR95Iq9AejGYbifKeZE85D9VtH11ryJLQPTZXZSW1J5bIXcr4AlAH6tyjPPHTK34AdkwB32Myw==", + "license": "BSD-2-Clause", + "dependencies": { + "@mapbox/mapbox-gl-style-spec": "^13.23.1", + "mapbox-to-css-font": "^2.4.1", + "ol": "^7.3.0" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "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, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "license": "(MIT AND Zlib)" + }, + "node_modules/papaparse": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.2.tgz", + "integrity": "sha512-PZXg8UuAc4PcVwLosEEDYjPyfWnTEhOrUfdv+3Bx+NuAb+5NhDmXzg5fHWmdCh1mP5p7JAZfFr3IMQfcntNAdA==", + "license": "MIT" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-headers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "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-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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "license": "BSD-3-Clause", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prefix-style": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/prefix-style/-/prefix-style-2.0.1.tgz", + "integrity": "sha512-gdr1MBNVT0drzTq95CbSNdsrBDoHGlb2aDJP/FoY+1e+jSDPOb1Cv554gH2MGiSr2WTcXi/zu+NaFzfcHQkfBQ==", + "license": "MIT" + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/protobufjs": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.6.tgz", + "integrity": "sha512-M71sTMB146U3u0di3yup8iM+zv8yPRNQVr1KK4tyBitl3qFvEGucq/rGDRShD2rsJhtN02RJaJ7j5X5hmy8SJg==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.5", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.1", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.1", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.1.tgz", + "integrity": "sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==", + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", + "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/raf-schd": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", + "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==", + "license": "MIT" + }, + "node_modules/rbush": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", + "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", + "license": "MIT", + "dependencies": { + "quickselect": "^2.0.0" + } + }, + "node_modules/rc-cascader": { + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.33.0.tgz", + "integrity": "sha512-JvZrMbKBXIbEDmpIORxqvedY/bck6hGbs3hxdWT8eS9wSQ1P7//lGxbyKjOSyQiVBbgzNWriSe6HoMcZO/+0rQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.2.0.tgz", + "integrity": "sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", + "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.44.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.5.0.tgz", + "integrity": "sha512-Lm/v9h0LymeUYJf0x39OveU52InkdRXqnn2aYXfWmo8WdOonIKB2kfau+GF0fWq6jPgtdO9yMqveGcK6aIhJmg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.9.2.tgz", + "integrity": "sha512-SLW4PRudODOomipKI0dvykxW4P8LOqtMr17MOaLU6NQJhkh9SZeh44a/8BMxwv5T6e3kiIeYc9k5jFg2Mv35Pg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", + "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.44.1", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-select": { + "version": "14.16.8", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "11.1.8", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz", + "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz", + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1", + "rc-util": "^5.44.3" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz", + "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-util": { + "version": "5.44.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-virtual-list": { + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.19.2.tgz", + "integrity": "sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-aria": { + "version": "3.48.0", + "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.48.0.tgz", + "integrity": "sha512-jQjd4rBEIMqecBaAKYJbVGK6EqIHLa5znVQ7jwFyK5vCyljoj6KhgtiahmcIPsG5vG5vEDLw+ba+bEWn6A2P4w==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.12.1", + "@internationalized/number": "^3.6.6", + "@internationalized/string": "^3.2.8", + "@react-types/shared": "^3.34.0", + "@swc/helpers": "^0.5.0", + "aria-hidden": "^1.2.3", + "clsx": "^2.0.0", + "react-stately": "3.46.0", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/react-aria-components": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/react-aria-components/-/react-aria-components-1.17.0.tgz", + "integrity": "sha512-0EyisMgvsFJ2aML3crDYv2tW5vT2Ryf8PGzY/g63JjDdCbLshlwazhS8JNtPF1vkTkungJJ6sVJbKyX+YKSoFA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.12.1", + "@react-types/shared": "^3.34.0", + "@swc/helpers": "^0.5.0", + "client-only": "^0.0.1", + "react-aria": "3.48.0", + "react-stately": "3.46.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/react-calendar": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-5.1.0.tgz", + "integrity": "sha512-09o/rQHPZGEi658IXAJtWfra1N69D1eFnuJ3FQm9qUVzlzNnos1+GWgGiUeSs22QOpNm32aoVFOimq0p3Ug9Eg==", + "license": "MIT", + "dependencies": { + "@wojtekmaj/date-utils": "^1.1.3", + "clsx": "^2.0.0", + "get-user-locale": "^2.2.1", + "warning": "^4.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/react-calendar?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-colorful": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", + "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/react-custom-scrollbars-2": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/react-custom-scrollbars-2/-/react-custom-scrollbars-2-4.5.0.tgz", + "integrity": "sha512-/z0nWAeXfMDr4+OXReTpYd1Atq9kkn4oI3qxq3iMXGQx1EEfwETSqB8HTAvg1X7dEqcCachbny1DRNGlqX5bDQ==", + "license": "MIT", + "dependencies": { + "dom-css": "^2.0.0", + "prop-types": "^15.5.10", + "raf": "^3.1.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-dropzone": { + "version": "14.3.5", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.3.5.tgz", + "integrity": "sha512-9nDUaEEpqZLOz5v5SUcFA0CjM4vq8YbqO0WRls+EYT7+DvxUdzDPKNCPLqGfj3YL9MsniCLCD4RFA6M95V6KMQ==", + "license": "MIT", + "dependencies": { + "attr-accept": "^2.2.4", + "file-selector": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "react": ">= 16.8 || 18.0.0" + } + }, + "node_modules/react-from-dom": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.7.5.tgz", + "integrity": "sha512-CO92PmMKo/23uYPm6OFvh5CtZbMgHs/Xn+o095Lz/TZj9t8DSDhGdSOMLxBxwWI4sr0MF17KUn9yJWc5Q00R/w==", + "license": "MIT", + "peerDependencies": { + "react": "16.8 - 19" + } + }, + "node_modules/react-highlight-words": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/react-highlight-words/-/react-highlight-words-0.21.0.tgz", + "integrity": "sha512-SdWEeU9fIINArEPO1rO5OxPyuhdEKZQhHzZZP1ie6UeXQf+CjycT1kWaB+9bwGcVbR0NowuHK3RqgqNg6bgBDQ==", + "license": "MIT", + "dependencies": { + "highlight-words-core": "^1.2.0", + "memoize-one": "^4.0.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 || ^19.0.0-0" + } + }, + "node_modules/react-highlight-words/node_modules/memoize-one": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-4.0.3.tgz", + "integrity": "sha512-QmpUu4KqDmX0plH4u+tf0riMc1KHE1+lw95cMrLlXQAFOx/xnBtwhZ52XJxd9X2O6kwKBqX32kmhbhlobD0cuw==", + "license": "MIT" + }, + "node_modules/react-hook-form": { + "version": "7.75.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.75.0.tgz", + "integrity": "sha512-Ovv94H+0p3sJ7B9B5QxPuCP1u8V/cHuVGyH55cSwodYDtoJwK+fqk3vjfIgSX59I2U/bU4z0nRJ9HMLpNiWEmw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-i18next": { + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.7.4.tgz", + "integrity": "sha512-nyU8iKNrI5uDJch0z9+Y5XEr34b0wkyYj3Rp+tfbahxtlswxSCjcUL9H0nqXo9IR3/t5Y5PKIA3fx3MfUyR9Xw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.27.6", + "html-parse-stringify": "^3.0.1" + }, + "peerDependencies": { + "i18next": ">= 23.4.0", + "react": ">= 16.8.0", + "typescript": "^5" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/react-immutable-proptypes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/react-immutable-proptypes/-/react-immutable-proptypes-2.2.0.tgz", + "integrity": "sha512-Vf4gBsePlwdGvSZoLSBfd4HAP93HDauMY4fDjXhreg/vg6F3Fj/MXDNyTbltPC/xZKmZc+cjLu3598DdYK6sgQ==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.2" + }, + "peerDependencies": { + "immutable": ">=3.6.2" + } + }, + "node_modules/react-inlinesvg": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-4.2.0.tgz", + "integrity": "sha512-V59P6sFU7NACIbvoay9ikYKVFWyIIZFGd7w6YT1m+H7Ues0fOI6B6IftE6NPSYXXv7RHVmrncIyJeYurs3OJcA==", + "license": "MIT", + "dependencies": { + "react-from-dom": "^0.7.5" + }, + "peerDependencies": { + "react": "16.8 - 19" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/react-loading-skeleton": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.5.0.tgz", + "integrity": "sha512-gxxSyLbrEAdXTKgfbpBEFZCO/P153DnqSCQau2+o6lNy1jgMRr2MmRmOzMmyrwSaSYLRB8g7b0waYPmUjz7IhQ==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-dom-v5-compat": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router-dom-v5-compat/-/react-router-dom-v5-compat-6.30.3.tgz", + "integrity": "sha512-WWZtwGYyoaeUDNrhzzDkh4JvN5nU0MIz80Dxim6pznQrfS+dv0mvtVoHTA6HlUl/OiJl7WWjbsQwjTnYXejEHg==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2", + "history": "^5.3.0", + "react-router": "6.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8", + "react-router-dom": "4 || 5" + } + }, + "node_modules/react-router-dom-v5-compat/node_modules/history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.6" + } + }, + "node_modules/react-router-dom-v5-compat/node_modules/react-router": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", + "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-select": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.10.0.tgz", + "integrity": "sha512-k96gw+i6N3ExgDwPIg0lUPmexl1ygPe6u5BdQFNBhkpbwroIgCNXdubtIzHfThYXYYTubwOBafoMnn7ruEP1xA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.0", + "@emotion/cache": "^11.4.0", + "@emotion/react": "^11.8.1", + "@floating-ui/dom": "^1.0.1", + "@types/react-transition-group": "^4.4.0", + "memoize-one": "^6.0.0", + "prop-types": "^15.6.0", + "react-transition-group": "^4.3.0", + "use-isomorphic-layout-effect": "^1.2.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-stately": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.46.0.tgz", + "integrity": "sha512-OdxhWvHgs2L4OJGIs7hnuTr5WjjMM6enhNEAMRqiekhF8+ITvA2LRwNftOZwcogaoCslGYq5S2VQTQwnm0GbCA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.12.1", + "@internationalized/number": "^3.6.6", + "@internationalized/string": "^3.2.8", + "@react-types/shared": "^3.34.0", + "@swc/helpers": "^0.5.0", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/react-table": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/react-table/-/react-table-7.8.0.tgz", + "integrity": "sha512-hNaz4ygkZO4bESeFfnfOft73iBUj8K5oKi1EcSHPAibEydfsX2MyU6Z8KCr3mv3C9Kqqh71U+DhZkFvibbnPbA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17.0.0-0 || ^18.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/react-universal-interface": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz", + "integrity": "sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==", + "peerDependencies": { + "react": "*", + "tslib": "*" + } + }, + "node_modules/react-use": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.6.0.tgz", + "integrity": "sha512-OmedEScUMKFfzn1Ir8dBxiLLSOzhKe/dPZwVxcujweSj45aNM7BEGPb9BEVIgVEqEXx6f3/TsXzwIktNgUR02g==", + "license": "Unlicense", + "dependencies": { + "@types/js-cookie": "^2.2.6", + "@xobotyi/scrollbar-width": "^1.9.5", + "copy-to-clipboard": "^3.3.1", + "fast-deep-equal": "^3.1.3", + "fast-shallow-equal": "^1.0.0", + "js-cookie": "^2.2.1", + "nano-css": "^5.6.2", + "react-universal-interface": "^0.6.2", + "resize-observer-polyfill": "^1.5.1", + "screenfull": "^5.1.0", + "set-harmonic-interval": "^1.0.1", + "throttle-debounce": "^3.0.1", + "ts-easing": "^0.2.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/react-window": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.11.tgz", + "integrity": "sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + }, + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-window/node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "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, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "license": "MIT", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/robust-predicates": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", + "integrity": "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==", + "license": "Unlicense" + }, + "node_modules/rtl-css-js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz", + "integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/screenfull": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz", + "integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/selection-is-backward": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/selection-is-backward/-/selection-is-backward-1.0.0.tgz", + "integrity": "sha512-C+6PCOO55NLCfS8uQjUKV/6E5XMuUcfOVsix5m0QqCCCKi495NgeQVNfWtAaD71NKHsdmFCJoXUGfir3qWdr9A==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-harmonic-interval": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz", + "integrity": "sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==", + "license": "Unlicense", + "engines": { + "node": ">=6.9" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slate": { + "version": "0.47.9", + "resolved": "https://registry.npmjs.org/slate/-/slate-0.47.9.tgz", + "integrity": "sha512-EK4O6b7lGt+g5H9PGw9O5KCM4RrOvOgE9mPi3rzQ0zDRlgAb2ga4TdpS6XNQbrsJWsc8I1fjaSsUeCqCUhhi9A==", + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "direction": "^0.1.5", + "esrever": "^0.2.0", + "is-plain-object": "^2.0.4", + "lodash": "^4.17.4", + "tiny-invariant": "^1.0.1", + "tiny-warning": "^0.0.3", + "type-of": "^2.0.1" + }, + "peerDependencies": { + "immutable": ">=3.8.1 || >4.0.0-rc" + } + }, + "node_modules/slate-base64-serializer": { + "version": "0.2.115", + "resolved": "https://registry.npmjs.org/slate-base64-serializer/-/slate-base64-serializer-0.2.115.tgz", + "integrity": "sha512-GnLV7bUW/UQ5j7rVIxCU5zdB6NOVsEU6YWsCp68dndIjSGTGLaQv2+WwV3NcnrGGZEYe5qgo33j2QWrPws2C1A==", + "license": "MIT", + "dependencies": { + "isomorphic-base64": "^1.0.2" + }, + "peerDependencies": { + "slate": ">=0.32.0 <0.50.0" + } + }, + "node_modules/slate-dev-environment": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/slate-dev-environment/-/slate-dev-environment-0.2.5.tgz", + "integrity": "sha512-oLD8Fclv/RqrDv6RYfN2CRzNcRXsUB99Qgcw5L/njTjxAdDPguV6edQ3DgUG9Q2pLFLhI15DwsKClzVfFzfwGQ==", + "license": "MIT", + "dependencies": { + "is-in-browser": "^1.1.3" + } + }, + "node_modules/slate-hotkeys": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/slate-hotkeys/-/slate-hotkeys-0.2.11.tgz", + "integrity": "sha512-xhq/TlI74dRbO57O4ulGsvCcV4eaQ5nEEz9noZjeNLtNzFRd6lSgExRqAJqKGGIeJw+FnJ3OcqGvdb5CEc9/Ew==", + "license": "MIT", + "dependencies": { + "is-hotkey": "0.1.4", + "slate-dev-environment": "^0.2.2" + } + }, + "node_modules/slate-hotkeys/node_modules/is-hotkey": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.1.4.tgz", + "integrity": "sha512-Py+aW4r5mBBY18TGzGz286/gKS+fCQ0Hee3qkaiSmEPiD0PqFpe0wuA3l7rTOUKyeXl8Mxf3XzJxIoTlSv+kxA==", + "license": "MIT" + }, + "node_modules/slate-plain-serializer": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/slate-plain-serializer/-/slate-plain-serializer-0.7.13.tgz", + "integrity": "sha512-TtrlaslxQBEMV0LYdf3s7VAbTxRPe1xaW10WNNGAzGA855/0RhkaHjKkQiRjHv5rvbRleVf7Nxr9fH+4uErfxQ==", + "license": "MIT", + "peerDependencies": { + "immutable": ">=3.8.1", + "slate": ">=0.46.0 <0.50.0" + } + }, + "node_modules/slate-prop-types": { + "version": "0.5.44", + "resolved": "https://registry.npmjs.org/slate-prop-types/-/slate-prop-types-0.5.44.tgz", + "integrity": "sha512-JS0iW7uaciE/W3ADuzeN1HOnSjncQhHPXJ65nZNQzB0DF7mXVmbwQKI6cmCo/xKni7XRJT0JbWSpXFhEdPiBUA==", + "license": "MIT", + "peerDependencies": { + "immutable": ">=3.8.1", + "slate": ">=0.32.0 <0.50.0" + } + }, + "node_modules/slate-react": { + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.22.10.tgz", + "integrity": "sha512-B2Ms1u/REbdd8yKkOItKgrw/tX8klgz5l5x6PP86+oh/yqmB6EHe0QyrYlQ9fc3WBlJUVTOL+nyAP1KmlKj2/w==", + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "get-window": "^1.1.1", + "is-window": "^1.0.2", + "lodash": "^4.1.1", + "memoize-one": "^4.0.0", + "prop-types": "^15.5.8", + "react-immutable-proptypes": "^2.1.0", + "selection-is-backward": "^1.0.0", + "slate-base64-serializer": "^0.2.112", + "slate-dev-environment": "^0.2.2", + "slate-hotkeys": "^0.2.9", + "slate-plain-serializer": "^0.7.11", + "slate-prop-types": "^0.5.42", + "slate-react-placeholder": "^0.2.9", + "tiny-invariant": "^1.0.1", + "tiny-warning": "^0.0.3" + }, + "peerDependencies": { + "immutable": ">=3.8.1 || >4.0.0-rc", + "react": ">=16.6.0", + "react-dom": ">=16.6.0", + "slate": ">=0.47.0" + } + }, + "node_modules/slate-react/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/slate-react/node_modules/memoize-one": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-4.0.3.tgz", + "integrity": "sha512-QmpUu4KqDmX0plH4u+tf0riMc1KHE1+lw95cMrLlXQAFOx/xnBtwhZ52XJxd9X2O6kwKBqX32kmhbhlobD0cuw==", + "license": "MIT" + }, + "node_modules/slate-react/node_modules/slate-react-placeholder": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/slate-react-placeholder/-/slate-react-placeholder-0.2.9.tgz", + "integrity": "sha512-YSJ9Gb4tGpbzPje3eNKtu26hWM8ApxTk9RzjK+6zfD5V/RMTkuWONk24y6c9lZk0OAYNZNUmrnb/QZfU3j9nag==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.0.0", + "slate": ">=0.47.0", + "slate-react": ">=0.22.0" + } + }, + "node_modules/slate-react/node_modules/tiny-warning": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-0.0.3.tgz", + "integrity": "sha512-r0SSA5Y5IWERF9Xh++tFPx0jITBgGggOsRLDWWew6YRw/C2dr4uNO1fw1vanrBmHsICmPyMLNBZboTlxUmUuaA==", + "license": "MIT" + }, + "node_modules/slate/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/slate/node_modules/tiny-warning": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-0.0.3.tgz", + "integrity": "sha512-r0SSA5Y5IWERF9Xh++tFPx0jITBgGggOsRLDWWew6YRw/C2dr4uNO1fw1vanrBmHsICmPyMLNBZboTlxUmUuaA==", + "license": "MIT" + }, + "node_modules/sort-asc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz", + "integrity": "sha512-jBgdDd+rQ+HkZF2/OHCmace5dvpos/aWQpcxuyRs9QUbPRnkEJmYVo81PIGpjIdpOcsnJ4rGjStfDHsbn+UVyw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-desc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz", + "integrity": "sha512-jfZacW5SKOP97BF5rX5kQfJmRVZP5/adDUTY8fCSPvNcXDVpUEe2pr/iKGlcyZzchRJZrswnp68fgk3qBXgkJw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-object": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz", + "integrity": "sha512-aAQiEdqFTTdsvUFxXm3umdo04J7MRljoVGbBlkH7BgNsMvVNAJyGj7C/wV1A8wHWAJj/YikeZbfuCKqhggNWGA==", + "dependencies": { + "sort-asc": "^0.1.0", + "sort-desc": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-generator": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.10.tgz", + "integrity": "sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT" + }, + "node_modules/stacktrace-gps": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz", + "integrity": "sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==", + "license": "MIT", + "dependencies": { + "source-map": "0.5.6", + "stackframe": "^1.3.4" + } + }, + "node_modules/stacktrace-gps/node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "license": "MIT", + "dependencies": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, + "node_modules/state-local": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", + "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==", + "license": "MIT" + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==", + "license": "CC0-1.0" + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "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, + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tabbable": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", + "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser": { + "version": "5.46.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.2.tgz", + "integrity": "sha512-uxfo9fPcSgLDYob/w1FuL0c99MWiJDnv+5qXSQc5+Ki5NjVNsYi66INnMFBjf6uFz6OnX12piJQPF4IpjJTNTw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-UYhptBwhWvfIjKd/UuFo6D8uq9xpGLDK+z8EDsj/zWhrTaH34cKEbrkMKfV5YWqGBvAYA3tlzZbs2R+qYrbQJA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/throttle-debounce": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", + "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" + }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", + "license": "MIT" + }, + "node_modules/to-camel-case": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-camel-case/-/to-camel-case-1.0.0.tgz", + "integrity": "sha512-nD8pQi5H34kyu1QDMFjzEIYqk0xa9Alt6ZfrdEMuHCFOfTLhDG5pgTu/aAM9Wt9lXILwlXmWP43b8sav0GNE8Q==", + "license": "MIT", + "dependencies": { + "to-space-case": "^1.0.0" + } + }, + "node_modules/to-no-case": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/to-no-case/-/to-no-case-1.0.2.tgz", + "integrity": "sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg==", + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-space-case": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz", + "integrity": "sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==", + "license": "MIT", + "dependencies": { + "to-no-case": "^1.0.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", + "license": "MIT" + }, + "node_modules/ts-easing": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz", + "integrity": "sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==", + "license": "Unlicense" + }, + "node_modules/ts-loader": { + "version": "9.5.7", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.7.tgz", + "integrity": "sha512-/ZNrKgA3K3PtpMYOC71EeMWIloGw3IYEa5/t1cyz2r5/PyUwTXGzYJvcD3kfUvmhlfpz1rhV8B2O6IVTQ0avsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", + "integrity": "sha512-39wxbwHdQ2sTiBB8wAzKfQ9GN+om8w+sjNWzr+vZJR5AMD5J+J7Yc8AtXnU9r/r2c8XiDZ/smxutDmZehX/qpQ==", + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.41", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.41.tgz", + "integrity": "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uplot": { + "version": "1.6.31", + "resolved": "https://registry.npmjs.org/uplot/-/uplot-1.6.31.tgz", + "integrity": "sha512-sQZqSwVCbJGnFB4IQjQYopzj5CoTZJ4Br1fG/xdONimqgHmsacvCjNesdGDypNKFbrhLGIeshYhy89FxPF+H+w==", + "license": "MIT" + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.1.tgz", + "integrity": "sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-memo-one": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz", + "integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/uuid": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz", + "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/web-vitals": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.4.tgz", + "integrity": "sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==", + "license": "Apache-2.0" + }, + "node_modules/web-worker": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", + "license": "Apache-2.0" + }, + "node_modules/webpack": { + "version": "5.106.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.106.2.tgz", + "integrity": "sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.20.0", + "es-module-lexer": "^2.0.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "loader-runner": "^4.3.1", + "mime-db": "^1.54.0", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.17", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.4" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.4.1.tgz", + "integrity": "sha512-eACpxRN02yaawnt+uUNIF7Qje6A9zArxBbcAJjK1PK3S9Ycg5jIuJ8pW4q8EMnwNZCEGltcjkRx1QzOxOkKD8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/xml-utils": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.2.tgz", + "integrity": "sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==", + "license": "CC0-1.0" + }, + "node_modules/xss": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz", + "integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==", + "license": "MIT", + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xss/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/zstddec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.1.0.tgz", + "integrity": "sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==", + "license": "MIT AND BSD-3-Clause" + } + } +} diff --git a/bench/grafana-datasource/package.json b/bench/grafana-datasource/package.json new file mode 100644 index 00000000000..e7114c2642e --- /dev/null +++ b/bench/grafana-datasource/package.json @@ -0,0 +1,27 @@ +{ + "name": "iog-cardanotimeseries-datasource", + "version": "1.0.0", + "description": "Grafana datasource plugin for the Cardano Timeseries HTTP server", + "private": true, + "scripts": { + "build": "mkdir -p dist && cp src/plugin.json dist/plugin.json && webpack --config webpack.config.js --mode production", + "dev": "mkdir -p dist && cp src/plugin.json dist/plugin.json && webpack --config webpack.config.js --mode development --watch", + "typecheck": "tsc --noEmit" + }, + "devDependencies": { + "@types/node": "^20.0.0", + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", + "ts-loader": "^9.5.0", + "typescript": "^5.4.0", + "webpack": "^5.91.0", + "webpack-cli": "^5.1.0" + }, + "dependencies": { + "@grafana/data": "^11.0.0", + "@grafana/runtime": "^11.0.0", + "@grafana/ui": "^11.0.0", + "react": "^18.3.0", + "react-dom": "^18.3.0" + } +} diff --git a/bench/grafana-datasource/provisioning/dashboards/cardano.yaml b/bench/grafana-datasource/provisioning/dashboards/cardano.yaml new file mode 100644 index 00000000000..2b30a574465 --- /dev/null +++ b/bench/grafana-datasource/provisioning/dashboards/cardano.yaml @@ -0,0 +1,9 @@ +apiVersion: 1 + +providers: + - name: Cardano + type: file + disableDeletion: false + updateIntervalSeconds: 30 + options: + path: /var/lib/grafana/dashboards diff --git a/bench/grafana-datasource/provisioning/datasources/cardano-timeseries.yaml b/bench/grafana-datasource/provisioning/datasources/cardano-timeseries.yaml new file mode 100644 index 00000000000..dd0421d7dee --- /dev/null +++ b/bench/grafana-datasource/provisioning/datasources/cardano-timeseries.yaml @@ -0,0 +1,11 @@ +apiVersion: 1 + +datasources: + - name: Cardano Timeseries + uid: cardano-timeseries + type: iog-cardanotimeseries-datasource + access: proxy + # Grafana proxies requests from the container to this URL — use host.docker.internal + # to reach the cardano-tracer timeseries server running on the host machine. + url: http://host.docker.internal:3400 + isDefault: false diff --git a/bench/grafana-datasource/src/QueryEditor.tsx b/bench/grafana-datasource/src/QueryEditor.tsx new file mode 100644 index 00000000000..0fb6a4ef032 --- /dev/null +++ b/bench/grafana-datasource/src/QueryEditor.tsx @@ -0,0 +1,93 @@ +import React, { ChangeEvent } from 'react'; +import { InlineField, InlineFieldRow, Input, Select, TextArea } from '@grafana/ui'; +import { QueryEditorProps, SelectableValue } from '@grafana/data'; + +import { CardanoTimeseriesDatasource } from './datasource'; +import { CardanoTimeseriesOptions, CardanoTimeseriesQuery, QueryType, defaultQuery } from './types'; + +type Props = QueryEditorProps< + CardanoTimeseriesDatasource, + CardanoTimeseriesQuery, + CardanoTimeseriesOptions +>; + +const QUERY_TYPES: Array> = [ + { label: 'Timeseries Query', value: 'timeseries', description: 'Run a timeseries expression' }, + { label: 'Node List', value: 'nodes', description: 'List connected node IDs' }, + { label: 'Node Info', value: 'node-info', description: 'Name, version, protocol, start times' }, + { label: 'Node Startup', value: 'node-startup', description: 'Era, slot length, epoch length, KES period' }, + { label: 'Node Sync Progress', value: 'node-sync-progress', description: 'Sync progress percentage' }, +]; + +export function QueryEditor({ query, onChange, onRunQuery }: Props) { + const queryType = query.queryType ?? 'timeseries'; + const queryText = query.queryText ?? defaultQuery.queryText ?? ''; + const nodeName = query.nodeName ?? ''; + const legendFormat = query.legendFormat ?? ''; + + const onQueryTypeChange = (v: SelectableValue) => { + onChange({ ...query, queryType: v.value! }); + onRunQuery(); + }; + + const onTextChange = (e: ChangeEvent) => { + onChange({ ...query, queryText: e.target.value }); + }; + + const onNodeNameChange = (e: ChangeEvent) => { + onChange({ ...query, nodeName: e.target.value }); + }; + + const onLegendFormatChange = (e: ChangeEvent) => { + onChange({ ...query, legendFormat: e.target.value }); + }; + + const needsNodeName = + queryType === 'node-info' || queryType === 'node-startup' || queryType === 'node-sync-progress'; + + return ( + <> + + + + + )} + + {queryType === 'timeseries' && ( + <> + +