diff --git a/dashboards/lodestar_libp2p.json b/dashboards/lodestar_libp2p.json index 7c6a76ec7175..0fe72e0a4032 100644 --- a/dashboards/lodestar_libp2p.json +++ b/dashboards/lodestar_libp2p.json @@ -76,7 +76,7 @@ "refId": "A" } ], - "title": "Bandwidth", + "title": "General", "type": "row" }, { @@ -120,18 +120,17 @@ "mode": "off" } }, - "mappings": [], - "unit": "Bps" + "mappings": [] }, "overrides": [] }, "gridPos": { - "h": 9, + "h": 8, "w": 12, "x": 0, "y": 1 }, - "id": 2, + "id": 27, "options": { "legend": { "calcs": [], @@ -150,14 +149,16 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "editorMode": "code", "exemplar": false, - "expr": "rate(libp2p_global_stats[$rate_interval])", + "expr": "libp2p_connection_manager_connections", "interval": "", - "legendFormat": "{{direction}}", + "legendFormat": "{{libp2p_connection_manager_connections}}", + "range": true, "refId": "A" } ], - "title": "Total Bandwidth", + "title": "Total Connections", "type": "timeseries" }, { @@ -201,8 +202,7 @@ "mode": "off" } }, - "mappings": [], - "unit": "Bps" + "mappings": [] }, "overrides": [] }, @@ -212,7 +212,169 @@ "x": 12, "y": 1 }, - "id": 8, + "id": 28, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "exemplar": false, + "expr": "libp2p_connection_manager_protocol_streams_per_connection_90th_percentile", + "interval": "", + "legendFormat": "{{protocol}}", + "refId": "A" + } + ], + "title": "Streams Per Connection (90th percentile)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [] + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 9 + }, + "id": 29, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "libp2p_dial_queue", + "instant": false, + "legendFormat": "{{libp2p_dial_queue}}", + "range": true, + "refId": "A" + } + ], + "title": "Dial Queue", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 9 + }, + "id": 30, "options": { "legend": { "calcs": [], @@ -231,14 +393,99 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, + "editorMode": "code", "exemplar": false, - "expr": "rate(libp2p_protocol__meshsub_1_1_0_bytes[$rate_interval])", + "expr": "libp2p_protocol_streams_total", "interval": "", - "legendFormat": "{{direction}}", + "legendFormat": "{{protocol}}", + "range": true, "refId": "A" } ], - "title": "Gossip Bandwidth", + "title": "Total Streams", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "unit": "Bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 17 + }, + "id": 31, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "exemplar": false, + "expr": "rate(libp2p_data_transfer_bytes_total[$rate_interval])", + "interval": "", + "legendFormat": "{{protocol}}", + "range": true, + "refId": "A" + } + ], + "title": "Total Bandwidth", "type": "timeseries" }, { @@ -251,7 +498,7 @@ "h": 1, "w": 24, "x": 0, - "y": 10 + "y": 26 }, "id": 24, "panels": [], @@ -308,7 +555,8 @@ "mode": "off" } }, - "mappings": [] + "mappings": [], + "unit": "none" }, "overrides": [] }, @@ -316,9 +564,9 @@ "h": 8, "w": 12, "x": 0, - "y": 11 + "y": 27 }, - "id": 20, + "id": 32, "options": { "legend": { "calcs": [], @@ -338,13 +586,15 @@ "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", - "expr": "rate(libp2p_tcp_listener_events_total[$rate_interval])", - "legendFormat": "{{address}}", + "exemplar": false, + "expr": "rate(libp2p_tcp_dialer_events_total[$rate_interval])", + "interval": "", + "legendFormat": "{{event}}", "range": true, "refId": "A" } ], - "title": "Listener Event Rate", + "title": "Dialer Event Rate", "type": "timeseries" }, { @@ -396,9 +646,9 @@ "h": 8, "w": 12, "x": 12, - "y": 11 + "y": 27 }, - "id": 26, + "id": 20, "options": { "legend": { "calcs": [], @@ -418,13 +668,13 @@ "uid": "${DS_PROMETHEUS}" }, "editorMode": "code", - "expr": "rate(libp2p_tcp_listener_errors_total[$rate_interval])", + "expr": "rate(libp2p_tcp_listener_events_total[$rate_interval])", "legendFormat": "{{address}}", "range": true, "refId": "A" } ], - "title": "Listener Error Rate", + "title": "Listener Event Rate", "type": "timeseries" }, { @@ -494,7 +744,7 @@ "h": 8, "w": 12, "x": 0, - "y": 19 + "y": 35 }, "id": 22, "options": { @@ -566,8 +816,7 @@ "mode": "off" } }, - "mappings": [], - "unit": "Bps" + "mappings": [] }, "overrides": [] }, @@ -575,9 +824,9 @@ "h": 8, "w": 12, "x": 12, - "y": 19 + "y": 35 }, - "id": 16, + "id": 26, "options": { "legend": { "calcs": [], @@ -596,16 +845,42 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "exemplar": false, - "expr": "rate(libp2p_protocol__ipfs_id_push_1_0_0_bytes[$rate_interval])", - "interval": "", - "legendFormat": "{{direction}}", + "editorMode": "code", + "expr": "rate(libp2p_tcp_listener_errors_total[$rate_interval])", + "legendFormat": "{{address}}", + "range": true, "refId": "A" } ], - "title": "Identify-Push Protocol Bandwidth", + "title": "Listener Error Rate", "type": "timeseries" }, + { + "collapsed": false, + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 43 + }, + "id": 14, + "panels": [], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "refId": "A" + } + ], + "title": "Noise", + "type": "row" + }, { "datasource": { "type": "prometheus", @@ -630,6 +905,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -647,7 +923,7 @@ } }, "mappings": [], - "unit": "Bps" + "unit": "outcomes/interval" }, "overrides": [] }, @@ -655,9 +931,9 @@ "h": 8, "w": 12, "x": 0, - "y": 27 + "y": 44 }, - "id": 10, + "id": 33, "options": { "legend": { "calcs": [], @@ -676,41 +952,29 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "exemplar": false, - "expr": "rate(libp2p_protocol__ipfs_id_1_0_0_bytes[$rate_interval])", - "interval": "", - "legendFormat": "{{direction}}", + "editorMode": "code", + "expr": "rate(libp2p_noise_xxhandshake_successes_total[$rate_interval])", + "instant": false, + "legendFormat": "success", + "range": true, "refId": "A" - } - ], - "title": "Identify Protocol Bandwidth", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 35 - }, - "id": 14, - "panels": [], - "targets": [ + }, { "datasource": { "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "refId": "A" + "editorMode": "code", + "expr": "rate(libp2p_noise_xxhandshake_error_total[$rate_interval])", + "hide": false, + "instant": false, + "legendFormat": "failure", + "range": true, + "refId": "B" } ], - "title": "Connection Manager", - "type": "row" + "title": "Handshake Outcome Rate", + "type": "timeseries" }, { "datasource": { @@ -736,6 +1000,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -752,17 +1017,18 @@ "mode": "off" } }, - "mappings": [] + "mappings": [], + "unit": "packets/interval" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, - "x": 0, - "y": 36 + "x": 12, + "y": 44 }, - "id": 4, + "id": 34, "options": { "legend": { "calcs": [], @@ -781,14 +1047,28 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "exemplar": false, - "expr": "libp2p_connection_manager_connections", - "interval": "", - "legendFormat": "{{direction}}", + "editorMode": "code", + "expr": "rate(libp2p_noise_encrypted_packets_total[$rate_interval])", + "instant": false, + "legendFormat": "encrypted", + "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${DS_PROMETHEUS}" + }, + "editorMode": "code", + "expr": "rate(libp2p_noise_decrypted_packets_total[$rate_interval])", + "hide": false, + "instant": false, + "legendFormat": "decrypted", + "range": true, + "refId": "B" } ], - "title": "Total Connections", + "title": "Packet Rate", "type": "timeseries" }, { @@ -815,6 +1095,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -831,23 +1112,24 @@ "mode": "off" } }, - "mappings": [] + "mappings": [], + "unit": "errors/interval" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, - "x": 12, - "y": 36 + "x": 0, + "y": 52 }, - "id": 6, + "id": 35, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", - "showLegend": true + "showLegend": false }, "tooltip": { "mode": "single", @@ -860,14 +1142,15 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "exemplar": false, - "expr": "libp2p_connection_manager_protocol_streams_total", - "interval": "", - "legendFormat": "{{protocol}}", + "editorMode": "code", + "expr": "rate(libp2p_noise_decrypt_errors_total[$rate_interval])", + "instant": false, + "legendFormat": "Decryption Errors", + "range": true, "refId": "A" } ], - "title": "Total Streams", + "title": "Packet Decryption Error Rate", "type": "timeseries" }, { @@ -894,6 +1177,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -910,7 +1194,8 @@ "mode": "off" } }, - "mappings": [] + "mappings": [], + "unit": "percentunit" }, "overrides": [] }, @@ -918,9 +1203,9 @@ "h": 8, "w": 12, "x": 12, - "y": 44 + "y": 52 }, - "id": 18, + "id": 36, "options": { "legend": { "calcs": [], @@ -939,14 +1224,15 @@ "type": "prometheus", "uid": "${DS_PROMETHEUS}" }, - "exemplar": false, - "expr": "libp2p_connection_manager_protocol_streams_per_connection_90th_percentile", - "interval": "", - "legendFormat": "{{protocol}}", + "editorMode": "code", + "expr": "rate(libp2p_noise_decrypt_errors_total[$rate_interval]) / rate(libp2p_noise_decrypted_packets_total[$rate_interval])", + "instant": false, + "legendFormat": "Decryption Error Percentage", + "range": true, "refId": "A" } ], - "title": "Streams Per Connection (90th percentile)", + "title": "Packet Decryption Error Percentage", "type": "timeseries" } ], diff --git a/package.json b/package.json index 5d055bd2f4ce..b422c2a604aa 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "karma-spec-reporter": "^0.0.36", "karma-webpack": "^5.0.0", "lerna": "^7.3.0", - "libp2p": "0.46.12", + "libp2p": "1.1.1", "mocha": "^10.2.0", "node-gyp": "^9.4.0", "npm-run-all": "^4.1.5", diff --git a/packages/beacon-node/package.json b/packages/beacon-node/package.json index b418dbe6ed15..54c21fe032ab 100644 --- a/packages/beacon-node/package.json +++ b/packages/beacon-node/package.json @@ -99,9 +99,10 @@ "@chainsafe/as-sha256": "^0.3.1", "@chainsafe/bls": "7.1.1", "@chainsafe/blst": "^0.2.9", - "@chainsafe/discv5": "^5.1.0", - "@chainsafe/libp2p-gossipsub": "^10.1.1", - "@chainsafe/libp2p-noise": "^13.0.1", + "@chainsafe/discv5": "^7.1.0", + "@chainsafe/enr": "^2.0.2", + "@chainsafe/libp2p-gossipsub": "^11.1.0", + "@chainsafe/libp2p-noise": "^14.1.0", "@chainsafe/persistent-merkle-tree": "^0.6.1", "@chainsafe/prometheus-gc-stats": "^1.0.0", "@chainsafe/ssz": "^0.14.0", @@ -111,14 +112,15 @@ "@fastify/cors": "^8.2.1", "@fastify/swagger": "^8.10.0", "@fastify/swagger-ui": "^1.9.3", - "@libp2p/bootstrap": "^9.0.7", - "@libp2p/interface": "^0.1.2", - "@libp2p/mdns": "^9.0.9", - "@libp2p/mplex": "^9.0.7", - "@libp2p/peer-id": "^3.0.2", - "@libp2p/peer-id-factory": "^3.0.4", - "@libp2p/prometheus-metrics": "^2.0.7", - "@libp2p/tcp": "8.0.8", + "@libp2p/bootstrap": "^10.0.10", + "@libp2p/identify": "^1.0.9", + "@libp2p/interface": "^1.1.1", + "@libp2p/mdns": "^10.0.10", + "@libp2p/mplex": "^10.0.10", + "@libp2p/peer-id": "^4.0.4", + "@libp2p/peer-id-factory": "^4.0.3", + "@libp2p/prometheus-metrics": "^3.0.10", + "@libp2p/tcp": "9.0.10", "@lodestar/api": "^1.14.0", "@lodestar/config": "^1.14.0", "@lodestar/db": "^1.14.0", @@ -139,20 +141,20 @@ "datastore-level": "^10.1.1", "deepmerge": "^4.3.1", "fastify": "^4.19.0", - "interface-datastore": "^8.2.0", - "it-all": "^3.0.2", + "interface-datastore": "^8.2.7", + "it-all": "^3.0.4", "it-pipe": "^3.0.1", "jwt-simple": "0.5.6", - "libp2p": "0.46.12", + "libp2p": "1.1.1", "multiformats": "^11.0.1", "prom-client": "^15.1.0", "qs": "^6.11.1", "snappyjs": "^0.7.0", "strict-event-emitter-types": "^2.0.0", "systeminformation": "^5.17.12", - "uint8-varint": "^2.0.1", - "uint8arraylist": "^2.4.3", - "uint8arrays": "^4.0.3", + "uint8-varint": "^2.0.2", + "uint8arraylist": "^2.4.7", + "uint8arrays": "^4.0.9", "xxhash-wasm": "1.0.2" }, "devDependencies": { diff --git a/packages/beacon-node/src/api/impl/node/utils.ts b/packages/beacon-node/src/api/impl/node/utils.ts index 7e13053e7df0..f26539eb0b36 100644 --- a/packages/beacon-node/src/api/impl/node/utils.ts +++ b/packages/beacon-node/src/api/impl/node/utils.ts @@ -1,4 +1,4 @@ -import {Connection, StreamStatus} from "@libp2p/interface/connection"; +import {Connection, StreamStatus} from "@libp2p/interface"; import {routes} from "@lodestar/api"; /** diff --git a/packages/beacon-node/src/network/core/networkCore.ts b/packages/beacon-node/src/network/core/networkCore.ts index 3037b69b4263..c17c4a201bdf 100644 --- a/packages/beacon-node/src/network/core/networkCore.ts +++ b/packages/beacon-node/src/network/core/networkCore.ts @@ -1,10 +1,9 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {Connection, PeerId} from "@libp2p/interface"; import {multiaddr} from "@multiformats/multiaddr"; -import {Connection} from "@libp2p/interface/connection"; import {PublishOpts} from "@chainsafe/libp2p-gossipsub/types"; import {PeerScoreStatsDump} from "@chainsafe/libp2p-gossipsub/dist/src/score/peer-score.js"; import {fromHexString} from "@chainsafe/ssz"; -import {ENR} from "@chainsafe/discv5"; +import {ENR} from "@chainsafe/enr"; import {routes} from "@lodestar/api"; import {BeaconConfig} from "@lodestar/config"; import type {LoggerNode} from "@lodestar/logger/node"; diff --git a/packages/beacon-node/src/network/core/networkCoreWorkerHandler.ts b/packages/beacon-node/src/network/core/networkCoreWorkerHandler.ts index ae39e6759099..8370d3687635 100644 --- a/packages/beacon-node/src/network/core/networkCoreWorkerHandler.ts +++ b/packages/beacon-node/src/network/core/networkCoreWorkerHandler.ts @@ -3,7 +3,7 @@ import worker_threads from "node:worker_threads"; import {PeerScoreStatsDump} from "@chainsafe/libp2p-gossipsub/dist/src/score/peer-score.js"; import {PublishOpts} from "@chainsafe/libp2p-gossipsub/types"; import {ModuleThread, Thread, Worker, spawn} from "@chainsafe/threads"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {exportToProtobuf} from "@libp2p/peer-id-factory"; import {routes} from "@lodestar/api"; import {BeaconConfig, chainConfigToJson} from "@lodestar/config"; diff --git a/packages/beacon-node/src/network/discv5/index.ts b/packages/beacon-node/src/network/discv5/index.ts index babe279afe86..5a06545b98af 100644 --- a/packages/beacon-node/src/network/discv5/index.ts +++ b/packages/beacon-node/src/network/discv5/index.ts @@ -1,8 +1,8 @@ import EventEmitter from "events"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import StrictEventEmitter from "strict-event-emitter-types"; import {exportToProtobuf} from "@libp2p/peer-id-factory"; -import {createKeypairFromPeerId, ENR, ENRData, IKeypair, SignableENR} from "@chainsafe/discv5"; +import {createPrivateKeyFromPeerId, ENR, ENRData, SignableENR} from "@chainsafe/enr"; import {spawn, Thread, Worker} from "@chainsafe/threads"; import {chainConfigFromJson, chainConfigToJson, BeaconConfig} from "@lodestar/config"; import {LoggerNode} from "@lodestar/logger/node"; @@ -25,7 +25,7 @@ export type Discv5Events = { * Wrapper class abstracting the details of discv5 worker instantiation and message-passing */ export class Discv5Worker extends (EventEmitter as {new (): StrictEventEmitter}) { - private readonly keypair: IKeypair; + private readonly keypair; private readonly subscription: {unsubscribe: () => void}; private closed = false; @@ -35,7 +35,7 @@ export class Discv5Worker extends (EventEmitter as {new (): StrictEventEmitter this.onDiscovered(enrObj)); } @@ -80,7 +80,7 @@ export class Discv5Worker extends (EventEmitter as {new (): StrictEventEmitter { const obj = await this.workerApi.enr(); - return new SignableENR(obj.kvs, obj.seq, this.keypair); + return new SignableENR(obj.kvs, obj.seq, this.keypair.privateKey); } setEnrValue(key: string, value: Uint8Array): Promise { diff --git a/packages/beacon-node/src/network/discv5/types.ts b/packages/beacon-node/src/network/discv5/types.ts index 3c7677b4575c..63c5cd52b6fe 100644 --- a/packages/beacon-node/src/network/discv5/types.ts +++ b/packages/beacon-node/src/network/discv5/types.ts @@ -1,4 +1,5 @@ -import {Discv5, ENRData, SignableENRData} from "@chainsafe/discv5"; +import {Discv5} from "@chainsafe/discv5"; +import {ENRData, SignableENRData} from "@chainsafe/enr"; import {Observable} from "@chainsafe/threads/observable"; import {ChainConfig} from "@lodestar/config"; import {LoggerNodeOpts} from "@lodestar/logger/node"; diff --git a/packages/beacon-node/src/network/discv5/utils.ts b/packages/beacon-node/src/network/discv5/utils.ts index 70bf9517ac01..e5707b483281 100644 --- a/packages/beacon-node/src/network/discv5/utils.ts +++ b/packages/beacon-node/src/network/discv5/utils.ts @@ -1,4 +1,4 @@ -import {ENR} from "@chainsafe/discv5"; +import {ENR} from "@chainsafe/enr"; import {BeaconConfig} from "@lodestar/config"; import {ENRKey} from "../metadata.js"; diff --git a/packages/beacon-node/src/network/discv5/worker.ts b/packages/beacon-node/src/network/discv5/worker.ts index e09b063d13d1..be8fdc4af601 100644 --- a/packages/beacon-node/src/network/discv5/worker.ts +++ b/packages/beacon-node/src/network/discv5/worker.ts @@ -5,15 +5,8 @@ import {createFromProtobuf} from "@libp2p/peer-id-factory"; import {Multiaddr, multiaddr} from "@multiformats/multiaddr"; import {expose} from "@chainsafe/threads/worker"; import {Observable, Subject} from "@chainsafe/threads/observable"; -import { - createKeypairFromPeerId, - Discv5, - ENR, - ENRData, - IDiscv5CreateOptions, - SignableENR, - SignableENRData, -} from "@chainsafe/discv5"; +import {Discv5} from "@chainsafe/discv5"; +import {createPrivateKeyFromPeerId, ENR, ENRData, SignableENR, SignableENRData} from "@chainsafe/enr"; import {createBeaconConfig} from "@lodestar/config"; import {getNodeLogger} from "@lodestar/logger/node"; import {Gauge} from "@lodestar/utils"; @@ -51,20 +44,20 @@ if (workerData.metrics) { } const peerId = await createFromProtobuf(workerData.peerIdProto); -const keypair = createKeypairFromPeerId(peerId); +const keypair = createPrivateKeyFromPeerId(peerId); const config = createBeaconConfig(workerData.chainConfig, workerData.genesisValidatorsRoot); // Initialize discv5 const discv5 = Discv5.create({ - enr: SignableENR.decodeTxt(workerData.enr, keypair), + enr: SignableENR.decodeTxt(workerData.enr, keypair.privateKey), peerId, bindAddrs: { ip4: (workerData.bindAddrs.ip4 ? multiaddr(workerData.bindAddrs.ip4) : undefined) as Multiaddr, ip6: workerData.bindAddrs.ip6 ? multiaddr(workerData.bindAddrs.ip6) : undefined, }, config: workerData.config, - metricsRegistry: metricsRegistry as IDiscv5CreateOptions["metricsRegistry"], + metricsRegistry, }); // Load boot enrs diff --git a/packages/beacon-node/src/network/events.ts b/packages/beacon-node/src/network/events.ts index 815efda7d9b8..67ea0a1dd0e0 100644 --- a/packages/beacon-node/src/network/events.ts +++ b/packages/beacon-node/src/network/events.ts @@ -1,6 +1,5 @@ import {EventEmitter} from "events"; -import {PeerId} from "@libp2p/interface/peer-id"; -import {TopicValidatorResult} from "@libp2p/interface/pubsub"; +import {PeerId, TopicValidatorResult} from "@libp2p/interface"; import {phase0, RootHex} from "@lodestar/types"; import {BlockInput} from "../chain/blocks/types.js"; import {StrictEventEmitterSingleArg} from "../util/strictEvents.js"; diff --git a/packages/beacon-node/src/network/gossip/encoding.ts b/packages/beacon-node/src/network/gossip/encoding.ts index 5c39dd96cec9..cccb0807b101 100644 --- a/packages/beacon-node/src/network/gossip/encoding.ts +++ b/packages/beacon-node/src/network/gossip/encoding.ts @@ -1,6 +1,6 @@ import {compress, uncompress} from "snappyjs"; import xxhashFactory from "xxhash-wasm"; -import {Message} from "@libp2p/interface/pubsub"; +import {Message} from "@libp2p/interface"; import {digest} from "@chainsafe/as-sha256"; import {RPC} from "@chainsafe/libp2p-gossipsub/message"; import {intToBytes, toHex} from "@lodestar/utils"; diff --git a/packages/beacon-node/src/network/gossip/interface.ts b/packages/beacon-node/src/network/gossip/interface.ts index 600f96193296..df26c2328c70 100644 --- a/packages/beacon-node/src/network/gossip/interface.ts +++ b/packages/beacon-node/src/network/gossip/interface.ts @@ -1,5 +1,5 @@ import {Libp2p} from "libp2p"; -import {Message, TopicValidatorResult} from "@libp2p/interface/pubsub"; +import {Message, TopicValidatorResult} from "@libp2p/interface"; import {PeerIdStr} from "@chainsafe/libp2p-gossipsub/types"; import {ForkName} from "@lodestar/params"; import {allForks, altair, capella, deneb, phase0, Slot} from "@lodestar/types"; diff --git a/packages/beacon-node/src/network/interface.ts b/packages/beacon-node/src/network/interface.ts index 9531c8529acf..573698c13ded 100644 --- a/packages/beacon-node/src/network/interface.ts +++ b/packages/beacon-node/src/network/interface.ts @@ -1,5 +1,20 @@ import {Libp2p as ILibp2p} from "libp2p"; -import {Components} from "libp2p/components"; +import { + Libp2pEvents, + ComponentLogger, + NodeInfo, + ConnectionProtector, + ConnectionGater, + ContentRouting, + TypedEventTarget, + Metrics, + PeerId, + PeerRouting, + PeerStore, + Upgrader, +} from "@libp2p/interface"; +import type {AddressManager, ConnectionManager, Registrar, TransportManager} from "@libp2p/interface-internal"; +import type {Datastore} from "interface-datastore"; import {Slot, SlotRootHex, allForks, altair, capella, deneb, phase0} from "@lodestar/types"; import {PeerIdStr} from "../util/peerId.js"; import {INetworkEventBus} from "./events.js"; @@ -64,21 +79,23 @@ export interface INetwork extends INetworkCorePublic { writeDiscv5HeapSnapshot(prefix: string, dirpath: string): Promise; } -export type LodestarComponents = Pick< - Components, - | "peerId" - | "events" - | "addressManager" - | "peerStore" - | "upgrader" - | "registrar" - | "connectionManager" - | "transportManager" - | "connectionGater" - | "contentRouting" - | "peerRouting" - | "datastore" - | "connectionProtector" - | "metrics" ->; +export type LodestarComponents = { + peerId: PeerId; + nodeInfo: NodeInfo; + logger: ComponentLogger; + events: TypedEventTarget; + addressManager: AddressManager; + peerStore: PeerStore; + upgrader: Upgrader; + registrar: Registrar; + connectionManager: ConnectionManager; + transportManager: TransportManager; + connectionGater: ConnectionGater; + contentRouting: ContentRouting; + peerRouting: PeerRouting; + datastore: Datastore; + connectionProtector?: ConnectionProtector; + metrics?: Metrics; +}; + export type Libp2p = ILibp2p<{components: LodestarComponents}>; diff --git a/packages/beacon-node/src/network/libp2p/index.ts b/packages/beacon-node/src/network/libp2p/index.ts index cdbb3fb16224..ccbd07355c32 100644 --- a/packages/beacon-node/src/network/libp2p/index.ts +++ b/packages/beacon-node/src/network/libp2p/index.ts @@ -1,18 +1,17 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {Registry} from "prom-client"; -import {ENR} from "@chainsafe/discv5"; -import type {Components} from "libp2p/components"; -import {identifyService} from "libp2p/identify"; +import {ENR} from "@chainsafe/enr"; +import {identify} from "@libp2p/identify"; import {bootstrap} from "@libp2p/bootstrap"; import {mdns} from "@libp2p/mdns"; import {createLibp2p} from "libp2p"; import {mplex} from "@libp2p/mplex"; import {prometheusMetrics} from "@libp2p/prometheus-metrics"; import {tcp} from "@libp2p/tcp"; +import {noise} from "@chainsafe/libp2p-noise"; import {defaultNetworkOptions, NetworkOptions} from "../options.js"; import {Eth2PeerDataStore} from "../peers/datastore.js"; -import {Libp2p} from "../interface.js"; -import {createNoise} from "./noise.js"; +import {Libp2p, LodestarComponents} from "../interface.js"; export type NodeJsLibp2pOpts = { peerStoreDir?: string; @@ -70,7 +69,7 @@ export async function createNodeJsLibp2p( listen: localMultiaddrs, announce: [], }, - connectionEncryption: [createNoise()], + connectionEncryption: [noise()], // Reject connections when the server's connection count gets high transports: [ tcp({ @@ -98,7 +97,6 @@ export async function createNodeJsLibp2p( // dialer config maxParallelDials: 100, maxPeerAddrsToDial: 4, - maxParallelDialsPerPeer: 2, dialTimeout: 30_000, // Rely entirely on lodestar's peer manager to prune connections @@ -111,13 +109,15 @@ export async function createNodeJsLibp2p( }, datastore, services: { - identify: identifyService({ + identify: identify({ agentVersion: networkOpts.private ? "" : networkOpts.version ? `lodestar/${networkOpts.version}` : "lodestar", }), // individual components are specified because the components object is a Proxy // and passing it here directly causes problems downstream, not to mention is slowwww - components: (components: Components) => ({ + components: (components: LodestarComponents) => ({ peerId: components.peerId, + nodeInfo: components.nodeInfo, + logger: components.logger, events: components.events, addressManager: components.addressManager, peerStore: components.peerStore, diff --git a/packages/beacon-node/src/network/libp2p/noise.ts b/packages/beacon-node/src/network/libp2p/noise.ts deleted file mode 100644 index fcb00fe41893..000000000000 --- a/packages/beacon-node/src/network/libp2p/noise.ts +++ /dev/null @@ -1,85 +0,0 @@ -import crypto from "node:crypto"; -import type {ConnectionEncrypter} from "@libp2p/interface/connection-encrypter"; -import {ICryptoInterface, noise, pureJsCrypto} from "@chainsafe/libp2p-noise"; -import {digest} from "@chainsafe/as-sha256"; -import {newInstance, ChaCha20Poly1305} from "@chainsafe/as-chacha20poly1305"; - -const ctx = newInstance(); -const asImpl = new ChaCha20Poly1305(ctx); - -const CHACHA_POLY1305 = "chacha20-poly1305"; - -const nodeCrypto: Pick = { - hashSHA256(data) { - return crypto.createHash("sha256").update(data).digest(); - }, - - chaCha20Poly1305Encrypt(plaintext, nonce, ad, k) { - const cipher = crypto.createCipheriv(CHACHA_POLY1305, k, nonce, { - authTagLength: 16, - }); - cipher.setAAD(ad, {plaintextLength: plaintext.byteLength}); - const updated = cipher.update(plaintext); - const final = cipher.final(); - const tag = cipher.getAuthTag(); - - const encrypted = Buffer.concat([updated, tag, final]); - return encrypted; - }, - - chaCha20Poly1305Decrypt(ciphertext, nonce, ad, k, _dst) { - const authTag = ciphertext.slice(ciphertext.length - 16); - const text = ciphertext.slice(0, ciphertext.length - 16); - const decipher = crypto.createDecipheriv(CHACHA_POLY1305, k, nonce, { - authTagLength: 16, - }); - decipher.setAAD(ad, { - plaintextLength: text.byteLength, - }); - decipher.setAuthTag(authTag); - const updated = decipher.update(text); - const final = decipher.final(); - if (final.byteLength > 0) { - return Buffer.concat([updated, final]); - } - return updated; - }, -}; - -const asCrypto: Pick = { - hashSHA256(data) { - return digest(data); - }, - chaCha20Poly1305Encrypt(plaintext, nonce, ad, k) { - return asImpl.seal(k, nonce, plaintext, ad); - }, - chaCha20Poly1305Decrypt(ciphertext, nonce, ad, k, dst) { - return asImpl.open(k, nonce, ciphertext, ad, dst); - }, -}; - -// benchmarks show that for chacha20poly1305 -// the as implementation is faster for smaller payloads(<1200) -// and the node implementation is faster for larger payloads -const lodestarCrypto: ICryptoInterface = { - ...pureJsCrypto, - hashSHA256(data) { - return nodeCrypto.hashSHA256(data); - }, - chaCha20Poly1305Encrypt(plaintext, nonce, ad, k) { - if (plaintext.length < 1200) { - return asCrypto.chaCha20Poly1305Encrypt(plaintext, nonce, ad, k); - } - return nodeCrypto.chaCha20Poly1305Encrypt(plaintext, nonce, ad, k); - }, - chaCha20Poly1305Decrypt(ciphertext, nonce, ad, k, dst) { - if (ciphertext.length < 1200) { - return asCrypto.chaCha20Poly1305Decrypt(ciphertext, nonce, ad, k, dst); - } - return nodeCrypto.chaCha20Poly1305Decrypt(ciphertext, nonce, ad, k, dst); - }, -}; - -export function createNoise(): () => ConnectionEncrypter { - return noise({crypto: lodestarCrypto}); -} diff --git a/packages/beacon-node/src/network/network.ts b/packages/beacon-node/src/network/network.ts index 200bd4fd3a8d..609ee2d44ba1 100644 --- a/packages/beacon-node/src/network/network.ts +++ b/packages/beacon-node/src/network/network.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {PublishOpts} from "@chainsafe/libp2p-gossipsub/types"; import {PeerScoreStatsDump} from "@chainsafe/libp2p-gossipsub/score"; import {BeaconConfig} from "@lodestar/config"; diff --git a/packages/beacon-node/src/network/peers/discover.ts b/packages/beacon-node/src/network/peers/discover.ts index 2805f67b4763..34ea959d4ec7 100644 --- a/packages/beacon-node/src/network/peers/discover.ts +++ b/packages/beacon-node/src/network/peers/discover.ts @@ -1,7 +1,6 @@ -import {PeerId} from "@libp2p/interface/peer-id"; import {Multiaddr} from "@multiformats/multiaddr"; -import type {PeerInfo} from "@libp2p/interface/peer-info"; -import {ENR} from "@chainsafe/discv5"; +import type {PeerId, PeerInfo} from "@libp2p/interface"; +import {ENR} from "@chainsafe/enr"; import {BeaconConfig} from "@lodestar/config"; import {pruneSetToMax, sleep} from "@lodestar/utils"; import {ATTESTATION_SUBNET_COUNT, SYNC_COMMITTEE_SUBNET_COUNT} from "@lodestar/params"; diff --git a/packages/beacon-node/src/network/peers/peerManager.ts b/packages/beacon-node/src/network/peers/peerManager.ts index ca493389803c..5100987566e2 100644 --- a/packages/beacon-node/src/network/peers/peerManager.ts +++ b/packages/beacon-node/src/network/peers/peerManager.ts @@ -1,5 +1,4 @@ -import {Connection} from "@libp2p/interface/connection"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {Connection, PeerId} from "@libp2p/interface"; import {BitArray} from "@chainsafe/ssz"; import {SYNC_COMMITTEE_SUBNET_COUNT} from "@lodestar/params"; import {BeaconConfig} from "@lodestar/config"; diff --git a/packages/beacon-node/src/network/peers/peersData.ts b/packages/beacon-node/src/network/peers/peersData.ts index 9b27bafaa682..5487a9a44159 100644 --- a/packages/beacon-node/src/network/peers/peersData.ts +++ b/packages/beacon-node/src/network/peers/peersData.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {altair} from "@lodestar/types"; import {Encoding} from "@lodestar/reqresp"; import {ClientKind} from "./client.js"; diff --git a/packages/beacon-node/src/network/peers/score/interface.ts b/packages/beacon-node/src/network/peers/score/interface.ts index ba52c512d3c6..f6e2dc88013a 100644 --- a/packages/beacon-node/src/network/peers/score/interface.ts +++ b/packages/beacon-node/src/network/peers/score/interface.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {NetworkCoreMetrics} from "../../core/metrics.js"; export type PeerIdStr = string; diff --git a/packages/beacon-node/src/network/peers/score/store.ts b/packages/beacon-node/src/network/peers/score/store.ts index f03064053039..9b1ef5a297e6 100644 --- a/packages/beacon-node/src/network/peers/score/store.ts +++ b/packages/beacon-node/src/network/peers/score/store.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {MapDef, pruneSetToMax} from "@lodestar/utils"; import {NetworkCoreMetrics} from "../../core/metrics.js"; import {DEFAULT_SCORE, MAX_ENTRIES, MAX_SCORE, MIN_SCORE, SCORE_THRESHOLD} from "./constants.js"; diff --git a/packages/beacon-node/src/network/peers/utils/getConnectedPeerIds.ts b/packages/beacon-node/src/network/peers/utils/getConnectedPeerIds.ts index 77a61eb3c0b9..8542df605b06 100644 --- a/packages/beacon-node/src/network/peers/utils/getConnectedPeerIds.ts +++ b/packages/beacon-node/src/network/peers/utils/getConnectedPeerIds.ts @@ -1,5 +1,4 @@ -import {Connection} from "@libp2p/interface/connection"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {Connection, PeerId} from "@libp2p/interface"; import {Libp2p} from "../../interface.js"; import {getConnectionsMap} from "../../util.js"; diff --git a/packages/beacon-node/src/network/peers/utils/prioritizePeers.ts b/packages/beacon-node/src/network/peers/utils/prioritizePeers.ts index 5c486a79a48b..b6fe4cb6bc77 100644 --- a/packages/beacon-node/src/network/peers/utils/prioritizePeers.ts +++ b/packages/beacon-node/src/network/peers/utils/prioritizePeers.ts @@ -1,5 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; -import {Direction} from "@libp2p/interface/connection"; +import {Direction, PeerId} from "@libp2p/interface"; import {BitArray} from "@chainsafe/ssz"; import {altair, phase0} from "@lodestar/types"; import {ATTESTATION_SUBNET_COUNT, SYNC_COMMITTEE_SUBNET_COUNT} from "@lodestar/params"; diff --git a/packages/beacon-node/src/network/processor/gossipValidatorFn.ts b/packages/beacon-node/src/network/processor/gossipValidatorFn.ts index 89c40b7482f0..e5b276e7c707 100644 --- a/packages/beacon-node/src/network/processor/gossipValidatorFn.ts +++ b/packages/beacon-node/src/network/processor/gossipValidatorFn.ts @@ -1,4 +1,4 @@ -import {TopicValidatorResult} from "@libp2p/interface/pubsub"; +import {TopicValidatorResult} from "@libp2p/interface"; import {ChainForkConfig} from "@lodestar/config"; import {Logger} from "@lodestar/utils"; import {Metrics} from "../../metrics/index.js"; diff --git a/packages/beacon-node/src/network/processor/types.ts b/packages/beacon-node/src/network/processor/types.ts index 8a1aa934e9b9..386b9e8afc37 100644 --- a/packages/beacon-node/src/network/processor/types.ts +++ b/packages/beacon-node/src/network/processor/types.ts @@ -1,4 +1,4 @@ -import {Message} from "@libp2p/interface/pubsub"; +import {Message} from "@libp2p/interface"; import {Slot, SlotOptionalRoot} from "@lodestar/types"; import {GossipTopic, GossipType} from "../gossip/index.js"; import {PeerIdStr} from "../../util/peerId.js"; diff --git a/packages/beacon-node/src/network/reqresp/ReqRespBeaconNode.ts b/packages/beacon-node/src/network/reqresp/ReqRespBeaconNode.ts index cc5713532d50..962962ab8842 100644 --- a/packages/beacon-node/src/network/reqresp/ReqRespBeaconNode.ts +++ b/packages/beacon-node/src/network/reqresp/ReqRespBeaconNode.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {Libp2p} from "libp2p"; import {BeaconConfig} from "@lodestar/config"; import {ForkName, ForkSeq} from "@lodestar/params"; diff --git a/packages/beacon-node/src/network/reqresp/interface.ts b/packages/beacon-node/src/network/reqresp/interface.ts index 972e12329b68..0a9d2f59b3ad 100644 --- a/packages/beacon-node/src/network/reqresp/interface.ts +++ b/packages/beacon-node/src/network/reqresp/interface.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; /** * Rate limiter interface for inbound and outbound requests. diff --git a/packages/beacon-node/src/network/util.ts b/packages/beacon-node/src/network/util.ts index 59a333c3d74d..dd317b5a0427 100644 --- a/packages/beacon-node/src/network/util.ts +++ b/packages/beacon-node/src/network/util.ts @@ -1,6 +1,4 @@ -import type {PeerId} from "@libp2p/interface/peer-id"; -import type {Connection} from "@libp2p/interface/connection"; -import type {DefaultConnectionManager} from "libp2p/connection-manager/index.js"; +import type {Connection, PeerId} from "@libp2p/interface"; import type {PeerIdStr} from "../util/peerId.js"; import type {Libp2p} from "./interface.js"; @@ -17,10 +15,8 @@ export function prettyPrintPeerIdStr(id: PeerIdStr): string { */ // Compat function for efficiency reasons export function getConnectionsMap(libp2p: Libp2p): Map { - return (libp2p.services.components.connectionManager as DefaultConnectionManager)["connections"] as Map< - string, - Connection[] - >; + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return libp2p.services.components.connectionManager.getConnectionsMap()["map"]; } export function getConnection(libp2p: Libp2p, peerIdStr: string): Connection | undefined { diff --git a/packages/beacon-node/src/node/nodejs.ts b/packages/beacon-node/src/node/nodejs.ts index da4f802a521c..1e9c7794ac68 100644 --- a/packages/beacon-node/src/node/nodejs.ts +++ b/packages/beacon-node/src/node/nodejs.ts @@ -1,7 +1,7 @@ import {setMaxListeners} from "node:events"; import {Registry} from "prom-client"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {BeaconConfig} from "@lodestar/config"; import {phase0} from "@lodestar/types"; import {sleep} from "@lodestar/utils"; diff --git a/packages/beacon-node/src/sync/backfill/errors.ts b/packages/beacon-node/src/sync/backfill/errors.ts index 2cec1dc487ad..e62c90407ed5 100644 --- a/packages/beacon-node/src/sync/backfill/errors.ts +++ b/packages/beacon-node/src/sync/backfill/errors.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {LodestarError} from "@lodestar/utils"; import {Root} from "@lodestar/types"; diff --git a/packages/beacon-node/src/util/peerId.ts b/packages/beacon-node/src/util/peerId.ts index fa653ee8e3ee..2afb9bed390e 100644 --- a/packages/beacon-node/src/util/peerId.ts +++ b/packages/beacon-node/src/util/peerId.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {base58btc} from "multiformats/bases/base58"; import {peerIdFromString} from "@libp2p/peer-id"; diff --git a/packages/beacon-node/test/e2e/network/mdns.test.ts b/packages/beacon-node/test/e2e/network/mdns.test.ts index a09a1becc1cf..91cbab09bae9 100644 --- a/packages/beacon-node/test/e2e/network/mdns.test.ts +++ b/packages/beacon-node/test/e2e/network/mdns.test.ts @@ -1,8 +1,8 @@ import {describe, it, afterEach, beforeEach, expect, vi} from "vitest"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {multiaddr} from "@multiformats/multiaddr"; import {createSecp256k1PeerId} from "@libp2p/peer-id-factory"; -import {SignableENR} from "@chainsafe/discv5"; +import {SignableENR} from "@chainsafe/enr"; import {createBeaconConfig} from "@lodestar/config"; import {config} from "@lodestar/config/default"; import {ssz} from "@lodestar/types"; diff --git a/packages/beacon-node/test/e2e/network/network.test.ts b/packages/beacon-node/test/e2e/network/network.test.ts index 97bd101ba69d..2a727481118b 100644 --- a/packages/beacon-node/test/e2e/network/network.test.ts +++ b/packages/beacon-node/test/e2e/network/network.test.ts @@ -1,5 +1,5 @@ import {describe, it, expect, afterEach, beforeEach, vi} from "vitest"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {config} from "@lodestar/config/default"; import {phase0} from "@lodestar/types"; import {sleep} from "@lodestar/utils"; diff --git a/packages/beacon-node/test/e2e/network/onWorker/dataSerialization.test.ts b/packages/beacon-node/test/e2e/network/onWorker/dataSerialization.test.ts index 36aae25284a8..a49c6923a9ea 100644 --- a/packages/beacon-node/test/e2e/network/onWorker/dataSerialization.test.ts +++ b/packages/beacon-node/test/e2e/network/onWorker/dataSerialization.test.ts @@ -1,5 +1,5 @@ import {describe, it, beforeAll, afterAll, expect} from "vitest"; -import {TopicValidatorResult} from "@libp2p/interface/pubsub"; +import {TopicValidatorResult} from "@libp2p/interface"; import {BitArray} from "@chainsafe/ssz"; import {ssz} from "@lodestar/types"; import {routes} from "@lodestar/api"; diff --git a/packages/beacon-node/test/e2e/network/peers/peerManager.test.ts b/packages/beacon-node/test/e2e/network/peers/peerManager.test.ts index e2f42f76221f..5ef836761cb6 100644 --- a/packages/beacon-node/test/e2e/network/peers/peerManager.test.ts +++ b/packages/beacon-node/test/e2e/network/peers/peerManager.test.ts @@ -1,6 +1,6 @@ import {describe, it, afterEach, expect} from "vitest"; -import {Connection} from "@libp2p/interface/connection"; -import {CustomEvent} from "@libp2p/interface/events"; +import {Connection} from "@libp2p/interface"; +import {CustomEvent} from "@libp2p/interface"; import sinon from "sinon"; import {BitArray} from "@chainsafe/ssz"; import {config} from "@lodestar/config/default"; diff --git a/packages/beacon-node/test/perf/network/noise/sendData.test.ts b/packages/beacon-node/test/perf/network/noise/sendData.test.ts index a6843c13ece2..35538a417adf 100644 --- a/packages/beacon-node/test/perf/network/noise/sendData.test.ts +++ b/packages/beacon-node/test/perf/network/noise/sendData.test.ts @@ -3,7 +3,9 @@ import {duplexPair} from "it-pair/duplex"; import {createSecp256k1PeerId} from "@libp2p/peer-id-factory"; import {pipe} from "it-pipe"; import drain from "it-drain"; -import {createNoise} from "../../../../src/network/libp2p/noise.js"; +import {defaultLogger} from "@libp2p/logger"; +import {noise} from "@chainsafe/libp2p-noise"; +import {Uint8ArrayList} from "uint8arraylist"; describe("network / noise / sendData", () => { const numberOfMessages = 1000; @@ -24,10 +26,10 @@ describe("network / noise / sendData", () => { beforeEach: async () => { const peerA = await createSecp256k1PeerId(); const peerB = await createSecp256k1PeerId(); - const noiseA = createNoise()(); - const noiseB = createNoise()(); + const noiseA = noise()({logger: defaultLogger()}); + const noiseB = noise()({logger: defaultLogger()}); - const [inboundConnection, outboundConnection] = duplexPair(); + const [inboundConnection, outboundConnection] = duplexPair(); const [outbound, inbound] = await Promise.all([ noiseA.secureOutbound(peerA, outboundConnection, peerB), noiseB.secureInbound(peerB, inboundConnection, peerA), diff --git a/packages/beacon-node/test/perf/network/peers/util/prioritizePeers.test.ts b/packages/beacon-node/test/perf/network/peers/util/prioritizePeers.test.ts index b58199ea8e71..a0d648a161ea 100644 --- a/packages/beacon-node/test/perf/network/peers/util/prioritizePeers.test.ts +++ b/packages/beacon-node/test/perf/network/peers/util/prioritizePeers.test.ts @@ -1,5 +1,5 @@ import {itBench} from "@dapplion/benchmark"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {createSecp256k1PeerId} from "@libp2p/peer-id-factory"; import {ATTESTATION_SUBNET_COUNT, SYNC_COMMITTEE_SUBNET_COUNT} from "@lodestar/params"; import {altair, phase0} from "@lodestar/types"; diff --git a/packages/beacon-node/test/unit/network/peers/priorization.test.ts b/packages/beacon-node/test/unit/network/peers/priorization.test.ts index 6f6591d00842..cc9ef9b7d711 100644 --- a/packages/beacon-node/test/unit/network/peers/priorization.test.ts +++ b/packages/beacon-node/test/unit/network/peers/priorization.test.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {createSecp256k1PeerId} from "@libp2p/peer-id-factory"; import {BitArray} from "@chainsafe/ssz"; import {describe, it, expect} from "vitest"; diff --git a/packages/beacon-node/test/unit/network/reqresp/utils.ts b/packages/beacon-node/test/unit/network/reqresp/utils.ts index 455bd6c89104..a1a1a6c69bd2 100644 --- a/packages/beacon-node/test/unit/network/reqresp/utils.ts +++ b/packages/beacon-node/test/unit/network/reqresp/utils.ts @@ -1,5 +1,6 @@ import {expect} from "vitest"; -import {Direction, ReadStatus, Stream, StreamStatus, WriteStatus} from "@libp2p/interface/connection"; +import {Direction, ReadStatus, Stream, StreamStatus, WriteStatus} from "@libp2p/interface"; +import {logger} from "@libp2p/logger"; import {Uint8ArrayList} from "uint8arraylist"; import {toHexString} from "@chainsafe/ssz"; import {Root} from "@lodestar/types"; @@ -35,6 +36,7 @@ export function expectEqualByteChunks(chunks: Uint8Array[], expectedChunks: Uint */ export class MockLibP2pStream implements Stream { id = "mock"; + log = logger("mock"); direction: Direction = "inbound"; timeline = { open: Date.now(), diff --git a/packages/beacon-node/test/utils/network.ts b/packages/beacon-node/test/utils/network.ts index 44615f83e0bb..5b0cdbe04b6c 100644 --- a/packages/beacon-node/test/utils/network.ts +++ b/packages/beacon-node/test/utils/network.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {createSecp256k1PeerId} from "@libp2p/peer-id-factory"; import {BitArray} from "@chainsafe/ssz"; import {ATTESTATION_SUBNET_COUNT, SYNC_COMMITTEE_SUBNET_COUNT} from "@lodestar/params"; diff --git a/packages/beacon-node/test/utils/node/beacon.ts b/packages/beacon-node/test/utils/node/beacon.ts index 92b09f0e02b6..8c1ae9503b7c 100644 --- a/packages/beacon-node/test/utils/node/beacon.ts +++ b/packages/beacon-node/test/utils/node/beacon.ts @@ -1,6 +1,6 @@ import deepmerge from "deepmerge"; import tmp from "tmp"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {createSecp256k1PeerId} from "@libp2p/peer-id-factory"; import {config as minimalConfig} from "@lodestar/config/default"; import {createBeaconConfig, createChainForkConfig, ChainConfig} from "@lodestar/config"; diff --git a/packages/beacon-node/test/utils/node/p2p.ts b/packages/beacon-node/test/utils/node/p2p.ts index 40ddfc3c5a85..7f534d3ab4ae 100644 --- a/packages/beacon-node/test/utils/node/p2p.ts +++ b/packages/beacon-node/test/utils/node/p2p.ts @@ -1,5 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; -import {Direction} from "@libp2p/interface/connection"; +import {Direction, PeerId} from "@libp2p/interface"; import {routes} from "@lodestar/api"; export function lodestarNodePeer( diff --git a/packages/beacon-node/test/utils/peer.ts b/packages/beacon-node/test/utils/peer.ts index aae9df41e51a..8bd5c6c67be8 100644 --- a/packages/beacon-node/test/utils/peer.ts +++ b/packages/beacon-node/test/utils/peer.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {createSecp256k1PeerId} from "@libp2p/peer-id-factory"; import {peerIdFromBytes} from "@libp2p/peer-id"; import {peerIdToString} from "../../src/util/peerId.js"; diff --git a/packages/cli/package.json b/packages/cli/package.json index 60fd19ae9e73..594ef5ebbb67 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -58,13 +58,14 @@ "@chainsafe/bls-keygen": "^0.3.0", "@chainsafe/bls-keystore": "^3.0.0", "@chainsafe/blst": "^0.2.9", - "@chainsafe/discv5": "^5.1.0", + "@chainsafe/discv5": "^7.1.0", + "@chainsafe/enr": "^2.0.2", "@chainsafe/persistent-merkle-tree": "^0.6.1", "@chainsafe/ssz": "^0.14.0", "@chainsafe/threads": "^1.11.1", - "@libp2p/crypto": "^2.0.4", - "@libp2p/peer-id": "^3.0.2", - "@libp2p/peer-id-factory": "^3.0.4", + "@libp2p/crypto": "^3.0.4", + "@libp2p/peer-id": "^4.0.4", + "@libp2p/peer-id-factory": "^4.0.3", "@lodestar/api": "^1.14.0", "@lodestar/beacon-node": "^1.14.0", "@lodestar/config": "^1.14.0", @@ -91,7 +92,7 @@ "prom-client": "^15.1.0", "rimraf": "^4.4.1", "source-map-support": "^0.5.21", - "uint8arrays": "^4.0.3", + "uint8arrays": "^4.0.9", "uuidv4": "^6.2.13", "yargs": "^17.7.1" }, diff --git a/packages/cli/src/cmds/beacon/initPeerIdAndEnr.ts b/packages/cli/src/cmds/beacon/initPeerIdAndEnr.ts index 37c5d766d7a3..58246e3a9199 100644 --- a/packages/cli/src/cmds/beacon/initPeerIdAndEnr.ts +++ b/packages/cli/src/cmds/beacon/initPeerIdAndEnr.ts @@ -1,10 +1,10 @@ import fs from "node:fs"; import path from "node:path"; import os from "node:os"; -import type {PeerId} from "@libp2p/interface/peer-id"; +import type {PeerId} from "@libp2p/interface"; import {createSecp256k1PeerId} from "@libp2p/peer-id-factory"; import {Multiaddr} from "@multiformats/multiaddr"; -import {createKeypairFromPeerId, SignableENR} from "@chainsafe/discv5"; +import {createPrivateKeyFromPeerId, SignableENR} from "@chainsafe/enr"; import {Logger} from "@lodestar/utils"; import {exportToJSON, readPeerId} from "../../config/index.js"; import {writeFile600Perm} from "../../util/file.js"; @@ -142,7 +142,7 @@ export async function initPeerIdAndEnr( const newPeerIdAndENR = async (): Promise<{peerId: PeerId; enr: SignableENR}> => { const peerId = await createSecp256k1PeerId(); - const enr = SignableENR.createV4(createKeypairFromPeerId(peerId)); + const enr = SignableENR.createV4(createPrivateKeyFromPeerId(peerId).privateKey); return {peerId, enr}; }; @@ -162,16 +162,16 @@ export async function initPeerIdAndEnr( } // attempt to read stored enr try { - enr = SignableENR.decodeTxt(fs.readFileSync(enrFile, "utf-8"), createKeypairFromPeerId(peerId)); + enr = SignableENR.decodeTxt(fs.readFileSync(enrFile, "utf-8"), createPrivateKeyFromPeerId(peerId).privateKey); } catch (e) { logger.warn("Unable to decode stored local ENR, creating a new ENR"); - enr = SignableENR.createV4(createKeypairFromPeerId(peerId)); + enr = SignableENR.createV4(createPrivateKeyFromPeerId(peerId).privateKey); return {peerId, enr, newEnr: true}; } // check stored peer id against stored enr if (!peerId.equals(await enr.peerId())) { logger.warn("Stored local ENR doesn't match peerIdFile, creating a new ENR"); - enr = SignableENR.createV4(createKeypairFromPeerId(peerId)); + enr = SignableENR.createV4(createPrivateKeyFromPeerId(peerId).privateKey); return {peerId, enr, newEnr: true}; } return {peerId, enr, newEnr: false}; diff --git a/packages/cli/src/cmds/bootnode/handler.ts b/packages/cli/src/cmds/bootnode/handler.ts index 7bf9169cfdc6..77851b1fcb88 100644 --- a/packages/cli/src/cmds/bootnode/handler.ts +++ b/packages/cli/src/cmds/bootnode/handler.ts @@ -1,6 +1,7 @@ import path from "node:path"; import {Multiaddr, multiaddr} from "@multiformats/multiaddr"; -import {Discv5, ENR, IDiscv5CreateOptions} from "@chainsafe/discv5"; +import {Discv5} from "@chainsafe/discv5"; +import {ENR} from "@chainsafe/enr"; import {ErrorAborted} from "@lodestar/utils"; import {HttpMetricsServer, RegistryMetricCreator, getHttpMetricsServer} from "@lodestar/beacon-node"; @@ -58,7 +59,7 @@ export async function bootnodeHandler(args: BootnodeArgs & GlobalArgs): Promise< ip6: bindAddrs.ip6 ? multiaddr(bindAddrs.ip6) : undefined, }, config: {enrUpdate: !enr.ip && !enr.ip6}, - metricsRegistry: metricsRegistry as IDiscv5CreateOptions["metricsRegistry"], + metricsRegistry, }); // If there are any bootnodes, add them to the routing table diff --git a/packages/cli/src/config/peerId.ts b/packages/cli/src/config/peerId.ts index 9ddd26460846..d4906c716ba7 100644 --- a/packages/cli/src/config/peerId.ts +++ b/packages/cli/src/config/peerId.ts @@ -1,4 +1,4 @@ -import type {PeerId} from "@libp2p/interface/peer-id"; +import type {PeerId} from "@libp2p/interface"; import {peerIdFromBytes} from "@libp2p/peer-id"; import {createFromPrivKey, createFromPubKey} from "@libp2p/peer-id-factory"; import {unmarshalPrivateKey, unmarshalPublicKey} from "@libp2p/crypto/keys"; diff --git a/packages/cli/src/networks/index.ts b/packages/cli/src/networks/index.ts index 85846164b473..c7d4b5301062 100644 --- a/packages/cli/src/networks/index.ts +++ b/packages/cli/src/networks/index.ts @@ -1,6 +1,6 @@ import fs from "node:fs"; import got from "got"; -import {ENR} from "@chainsafe/discv5"; +import {ENR} from "@chainsafe/enr"; import {SLOTS_PER_EPOCH} from "@lodestar/params"; import {ApiError, getClient} from "@lodestar/api"; import {getStateTypeFromBytes} from "@lodestar/beacon-node"; diff --git a/packages/cli/src/options/beaconNodeOptions/network.ts b/packages/cli/src/options/beaconNodeOptions/network.ts index 745308ec7c8c..79ec3d710d44 100644 --- a/packages/cli/src/options/beaconNodeOptions/network.ts +++ b/packages/cli/src/options/beaconNodeOptions/network.ts @@ -1,5 +1,5 @@ import {multiaddr} from "@multiformats/multiaddr"; -import {ENR} from "@chainsafe/discv5"; +import {ENR} from "@chainsafe/enr"; import {defaultOptions, IBeaconNodeOptions} from "@lodestar/beacon-node"; import {CliCommandOptions, YargsError} from "../../util/index.js"; diff --git a/packages/cli/test/unit/cmds/beacon.test.ts b/packages/cli/test/unit/cmds/beacon.test.ts index 7d111b3362a8..fc1f50ad1251 100644 --- a/packages/cli/test/unit/cmds/beacon.test.ts +++ b/packages/cli/test/unit/cmds/beacon.test.ts @@ -3,7 +3,7 @@ import fs from "node:fs"; import {describe, it, expect} from "vitest"; import {createFromJSON, createSecp256k1PeerId} from "@libp2p/peer-id-factory"; import {multiaddr} from "@multiformats/multiaddr"; -import {createKeypairFromPeerId, ENR, SignableENR} from "@chainsafe/discv5"; +import {createPrivateKeyFromPeerId, ENR, SignableENR} from "@chainsafe/enr"; import {chainConfig} from "@lodestar/config/default"; import {chainConfigToJson} from "@lodestar/config"; import {LogLevel} from "@lodestar/utils"; @@ -66,7 +66,7 @@ describe("cmds / beacon / args handler", () => { const peerIdFile = path.join(testFilesDir, "peer-id.json"); fs.writeFileSync(peerIdFile, JSON.stringify(exportToJSON(prevPeerId))); - const enr = SignableENR.createV4(createKeypairFromPeerId(prevPeerId)); + const enr = SignableENR.createV4(createPrivateKeyFromPeerId(prevPeerId).privateKey); const enrFilePath = path.join(testFilesDir, "enr"); fs.writeFileSync(enrFilePath, enr.encodeTxt()); diff --git a/packages/db/package.json b/packages/db/package.json index 1bccf368c55f..13ffff098279 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -41,7 +41,7 @@ "@lodestar/config": "^1.14.0", "@lodestar/utils": "^1.14.0", "@types/levelup": "^4.3.3", - "it-all": "^3.0.2", + "it-all": "^3.0.4", "level": "^8.0.0" }, "devDependencies": { diff --git a/packages/light-client/package.json b/packages/light-client/package.json index 3270dc14f088..f34fe11601e8 100644 --- a/packages/light-client/package.json +++ b/packages/light-client/package.json @@ -83,7 +83,7 @@ "@chainsafe/as-sha256": "^0.3.1", "@types/qs": "^6.9.7", "qs": "^6.11.1", - "uint8arrays": "^4.0.3" + "uint8arrays": "^4.0.9" }, "keywords": [ "ethereum", diff --git a/packages/reqresp/package.json b/packages/reqresp/package.json index 9d81d082d087..8cea3d0d6072 100644 --- a/packages/reqresp/package.json +++ b/packages/reqresp/package.json @@ -55,24 +55,24 @@ }, "dependencies": { "@chainsafe/fast-crc32c": "^4.1.1", - "@libp2p/interface": "^0.1.2", + "@libp2p/interface": "^1.1.1", "@lodestar/config": "^1.14.0", "@lodestar/params": "^1.14.0", "@lodestar/utils": "^1.14.0", - "it-all": "^3.0.2", + "it-all": "^3.0.4", "it-pipe": "^3.0.1", "snappy": "^7.2.2", "snappyjs": "^0.7.0", - "uint8-varint": "^2.0.1", - "uint8arraylist": "^2.4.3" + "uint8-varint": "^2.0.2", + "uint8arraylist": "^2.4.7" }, "devDependencies": { "@lodestar/logger": "^1.14.0", "@lodestar/types": "^1.14.0", - "libp2p": "0.46.12" + "libp2p": "1.1.1" }, "peerDependencies": { - "libp2p": "~0.46.12" + "libp2p": "~1.1.1" }, "keywords": [ "ethereum", diff --git a/packages/reqresp/src/ReqResp.ts b/packages/reqresp/src/ReqResp.ts index 671df3c83662..d89acd8e2689 100644 --- a/packages/reqresp/src/ReqResp.ts +++ b/packages/reqresp/src/ReqResp.ts @@ -1,6 +1,5 @@ import {setMaxListeners} from "node:events"; -import {Connection, Stream} from "@libp2p/interface/connection"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {Connection, PeerId, Stream} from "@libp2p/interface"; import type {Libp2p} from "libp2p"; import {Logger, MetricsRegister} from "@lodestar/utils"; import {getMetrics, Metrics} from "./metrics.js"; diff --git a/packages/reqresp/src/rate_limiter/ReqRespRateLimiter.ts b/packages/reqresp/src/rate_limiter/ReqRespRateLimiter.ts index 36bbe7df5ff2..66dfbd9f1cc7 100644 --- a/packages/reqresp/src/rate_limiter/ReqRespRateLimiter.ts +++ b/packages/reqresp/src/rate_limiter/ReqRespRateLimiter.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {InboundRateLimitQuota, ReqRespRateLimiterOpts} from "../types.js"; import {RateLimiterGRCA} from "./rateLimiterGRCA.js"; diff --git a/packages/reqresp/src/request/index.ts b/packages/reqresp/src/request/index.ts index e1923c8856b4..4920a32eb221 100644 --- a/packages/reqresp/src/request/index.ts +++ b/packages/reqresp/src/request/index.ts @@ -1,5 +1,5 @@ import {pipe} from "it-pipe"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import type {Libp2p} from "libp2p"; import {Uint8ArrayList} from "uint8arraylist"; import {ErrorAborted, Logger, withTimeout, TimeoutError} from "@lodestar/utils"; diff --git a/packages/reqresp/src/response/index.ts b/packages/reqresp/src/response/index.ts index 288111c12093..27758caa3f24 100644 --- a/packages/reqresp/src/response/index.ts +++ b/packages/reqresp/src/response/index.ts @@ -1,6 +1,5 @@ import {pipe} from "it-pipe"; -import {PeerId} from "@libp2p/interface/peer-id"; -import {Stream} from "@libp2p/interface/connection"; +import {PeerId, Stream} from "@libp2p/interface"; import {Uint8ArrayList} from "uint8arraylist"; import {Logger, TimeoutError, withTimeout} from "@lodestar/utils"; import {prettyPrintPeerId} from "../utils/index.js"; diff --git a/packages/reqresp/src/types.ts b/packages/reqresp/src/types.ts index a9fff1d70252..c52cab895b61 100644 --- a/packages/reqresp/src/types.ts +++ b/packages/reqresp/src/types.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {BeaconConfig, ForkDigestContext} from "@lodestar/config"; import {ForkName} from "@lodestar/params"; import {LodestarError} from "@lodestar/utils"; diff --git a/packages/reqresp/src/utils/peerId.ts b/packages/reqresp/src/utils/peerId.ts index 7f62ebd2171f..b358a3b2a466 100644 --- a/packages/reqresp/src/utils/peerId.ts +++ b/packages/reqresp/src/utils/peerId.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; export function prettyPrintPeerId(peerId: PeerId): string { const id = peerId.toString(); diff --git a/packages/reqresp/test/unit/request/index.test.ts b/packages/reqresp/test/unit/request/index.test.ts index b3241a8cc44a..888520457bb2 100644 --- a/packages/reqresp/test/unit/request/index.test.ts +++ b/packages/reqresp/test/unit/request/index.test.ts @@ -1,5 +1,5 @@ import {describe, it, expect, vi, beforeEach, afterEach} from "vitest"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import all from "it-all"; import {pipe} from "it-pipe"; import {Libp2p} from "libp2p"; diff --git a/packages/reqresp/test/unit/response/index.test.ts b/packages/reqresp/test/unit/response/index.test.ts index 5ab299b586ab..62a8e63f3fe0 100644 --- a/packages/reqresp/test/unit/response/index.test.ts +++ b/packages/reqresp/test/unit/response/index.test.ts @@ -1,5 +1,5 @@ import {describe, it, expect, beforeEach, afterEach} from "vitest"; -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {LodestarError, fromHex} from "@lodestar/utils"; import {getEmptyLogger} from "@lodestar/logger/empty"; import {Protocol, RespStatus} from "../../../src/index.js"; diff --git a/packages/reqresp/test/utils/index.ts b/packages/reqresp/test/utils/index.ts index 924218c73cd4..98a7387233ba 100644 --- a/packages/reqresp/test/utils/index.ts +++ b/packages/reqresp/test/utils/index.ts @@ -1,4 +1,5 @@ -import {Direction, ReadStatus, Stream, StreamStatus, WriteStatus} from "@libp2p/interface/connection"; +import {Direction, ReadStatus, Stream, StreamStatus, WriteStatus} from "@libp2p/interface"; +import {logger} from "@libp2p/logger"; import {expect} from "chai"; import {Uint8ArrayList} from "uint8arraylist"; import {toHexString} from "@chainsafe/ssz"; @@ -37,6 +38,7 @@ export function expectInEqualByteChunks(chunks: Uint8Array[], expectedChunks: Ui export class MockLibP2pStream implements Stream { protocol: string; id = "mock"; + log = logger("mock"); direction: Direction = "inbound"; status: StreamStatus = "open"; readStatus: ReadStatus = "ready"; diff --git a/packages/reqresp/test/utils/peer.ts b/packages/reqresp/test/utils/peer.ts index 34af7d2a9317..43edaefbafdd 100644 --- a/packages/reqresp/test/utils/peer.ts +++ b/packages/reqresp/test/utils/peer.ts @@ -1,4 +1,4 @@ -import {PeerId} from "@libp2p/interface/peer-id"; +import {PeerId} from "@libp2p/interface"; import {peerIdFromBytes} from "@libp2p/peer-id"; /** diff --git a/yarn.lock b/yarn.lock index 6e1a1681d774..28ddde61a8cb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,31 +7,6 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@achingbrain/nat-port-mapper@^1.0.9": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.9.tgz#8e61cf6f5dbeaa55c4e64a0023a362d4a1f61a36" - integrity sha512-w1M7dh7IsO5fvX9VQpH0w8MMphzLUl52Kf+paXTScNmFH4Ua+R6XI+x5p7LI3vY36JkTllTqAxNo8g1y0CMCrA== - dependencies: - "@achingbrain/ssdp" "^4.0.1" - "@libp2p/logger" "^2.0.0" - default-gateway "^6.0.2" - err-code "^3.0.1" - it-first "^3.0.1" - p-defer "^4.0.0" - p-timeout "^6.1.1" - xml2js "^0.6.0" - -"@achingbrain/ssdp@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@achingbrain/ssdp/-/ssdp-4.0.1.tgz#47ccaaa8256cf73b7b2ab86a0ad14128cfaf77b7" - integrity sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ== - dependencies: - event-iterator "^2.0.0" - freeport-promise "^2.0.0" - merge-options "^3.0.4" - uuid "^8.3.2" - xml2js "^0.4.23" - "@actions/cache@^1.0.7": version "1.0.7" resolved "https://registry.npmjs.org/@actions/cache/-/cache-1.0.7.tgz" @@ -599,25 +574,37 @@ node-fetch "^2.6.1" node-gyp "^8.4.0" -"@chainsafe/discv5@^5.1.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@chainsafe/discv5/-/discv5-5.1.1.tgz#537826c24dc1190aaf795810e2afccf188e173ff" - integrity sha512-Zcv7fyKirKta305/gTX+wvFA2Ockx+FxUTW+/Yj37+idFjt/UrGho4tcPGyPJC/46cXp+NRGI1wNqsh54+Hnow== +"@chainsafe/discv5@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@chainsafe/discv5/-/discv5-7.1.0.tgz#c892075c84bdc75428774d4993e7346205ff8724" + integrity sha512-spO801KWe0C9XrXkVt4E1paXP1ZtfsgxOf+FSW6yCDQTWFVGRfcl/ww4B7JtdJOnZauqaHqXxAuNBpSafJoalw== dependencies: - "@libp2p/crypto" "^2.0.0" - "@libp2p/interface" "^0.1.2" - "@libp2p/peer-id" "^3.0.1" - "@multiformats/multiaddr" "^12.1.3" - base64url "^3.0.1" + "@chainsafe/enr" "^2.0.2" + "@libp2p/crypto" "^3.0.4" + "@libp2p/interface" "^1.1.1" + "@multiformats/multiaddr" "^12.1.10" bcrypto "^5.4.0" bigint-buffer "^1.1.5" debug "^4.3.1" - dgram "^1.0.1" err-code "^3.0.1" - lru-cache "^6.0.0" + lru-cache "^10.1.0" rlp "^2.2.6" strict-event-emitter-types "^2.0.0" - uint8-varint "^2.0.1" + +"@chainsafe/enr@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@chainsafe/enr/-/enr-2.0.2.tgz#29814ae506a87d466640cddbac49369029334f09" + integrity sha512-90IEkHHb5ZHk2BuyX5QkLomaxH+HXF41wFOzDC2Hpla6c3ersxAJJms4kJSot7j20Uzfka4Xjxvkwjj8WfL77g== + dependencies: + "@libp2p/crypto" "^3.0.4" + "@libp2p/interface" "^1.1.1" + "@libp2p/peer-id" "^4.0.4" + "@multiformats/multiaddr" "^12.1.10" + base64url "^3.0.1" + bcrypto "^5.4.0" + bigint-buffer "^1.1.5" + rlp "^2.2.6" + uint8-varint "^2.0.2" "@chainsafe/eslint-plugin-node@^11.2.3": version "11.2.3" @@ -649,17 +636,16 @@ resolved "https://registry.yarnpkg.com/@chainsafe/is-ip/-/is-ip-2.0.2.tgz#7311e7403f11d8c5cfa48111f56fcecaac37c9f6" integrity sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA== -"@chainsafe/libp2p-gossipsub@^10.1.1": - version "10.1.1" - resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-10.1.1.tgz#906aa2a67efb5fea0bacc6721ef4e7ee4e353d7e" - integrity sha512-nou65zlGaUIPwlUq7ceEVpszJX4tBWRRanppYaKsJk7rbDeIKRJQla2duATGOI3fwj1+pGSlDQuF2zG7P0VJQw== - dependencies: - "@libp2p/crypto" "^2.0.0" - "@libp2p/interface" "^0.1.4" - "@libp2p/interface-internal" "^0.1.0" - "@libp2p/logger" "^3.0.0" - "@libp2p/peer-id" "^3.0.0" - "@libp2p/pubsub" "^8.0.0" +"@chainsafe/libp2p-gossipsub@^11.1.0": + version "11.1.0" + resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-11.1.0.tgz#e5ebd8dd08601845073f3b8c9601e047d7bdc279" + integrity sha512-6baEtpC9gu5D9bXv86zIdNIOekKgQPV3KRWvnsldtsKpiWtUv6K2mLsl3wsDi0nW/c3zxTAneaJMTLQoSXysJQ== + dependencies: + "@libp2p/crypto" "^3.0.1" + "@libp2p/interface" "^1.0.1" + "@libp2p/interface-internal" "^1.0.1" + "@libp2p/peer-id" "^4.0.1" + "@libp2p/pubsub" "^9.0.0" "@multiformats/multiaddr" "^12.1.3" abortable-iterator "^5.0.1" denque "^2.1.0" @@ -671,16 +657,17 @@ uint8arraylist "^2.4.3" uint8arrays "^4.0.4" -"@chainsafe/libp2p-noise@^13.0.1": - version "13.0.1" - resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-noise/-/libp2p-noise-13.0.1.tgz#d6309d50b2a36014e8fb4781c9d7af3723659d2a" - integrity sha512-eeOFubXyS9sK0oBg/qRfve6LVGzZX1vyULVidaKGTJr8Y4dtyU4+Btqw/aVo3o1lhdvb/qoY+p/Ep2pUsvJKhg== - dependencies: - "@libp2p/crypto" "^2.0.0" - "@libp2p/interface" "^0.1.0" - "@libp2p/logger" "^3.0.0" - "@libp2p/peer-id" "^3.0.0" - "@noble/ciphers" "^0.3.0" +"@chainsafe/libp2p-noise@^14.1.0": + version "14.1.0" + resolved "https://registry.yarnpkg.com/@chainsafe/libp2p-noise/-/libp2p-noise-14.1.0.tgz#4084a448cec73a941fddfc94751f6ce2e23c07cd" + integrity sha512-uHmptoxgMsfDIP7cQMQ4Zp9+y27oON5+gloBLXi+7EJpMhyvo7tjafUxRILwLofzeAtfaF3ZHraoXRFUSbhK2Q== + dependencies: + "@chainsafe/as-chacha20poly1305" "^0.1.0" + "@chainsafe/as-sha256" "^0.4.1" + "@libp2p/crypto" "^3.0.0" + "@libp2p/interface" "^1.0.0" + "@libp2p/peer-id" "^4.0.0" + "@noble/ciphers" "^0.4.0" "@noble/curves" "^1.1.0" "@noble/hashes" "^1.3.1" it-byte-stream "^1.0.0" @@ -691,7 +678,8 @@ it-stream-types "^2.0.1" protons-runtime "^5.0.0" uint8arraylist "^2.4.3" - uint8arrays "^4.0.4" + uint8arrays "^5.0.0" + wherearewe "^2.0.1" "@chainsafe/netmask@^2.0.0": version "2.0.0" @@ -1720,283 +1708,246 @@ yargs "16.2.0" yargs-parser "20.2.4" -"@libp2p/bootstrap@^9.0.7": - version "9.0.7" - resolved "https://registry.yarnpkg.com/@libp2p/bootstrap/-/bootstrap-9.0.7.tgz#bcc7682ff153f48a021f3c085311962917403643" - integrity sha512-xpDJlxBGYSa4eVm3GWChtY9QL58Oh1PowtowMEuE5TEW1zcLzvQaQ9YiG2Mo9+q+0CNnAyemJF5rBequ7XbLBQ== +"@libp2p/bootstrap@^10.0.10": + version "10.0.10" + resolved "https://registry.yarnpkg.com/@libp2p/bootstrap/-/bootstrap-10.0.10.tgz#7cb64b19ecb4d6222499f50f5b3ff59f898bd316" + integrity sha512-VJ0+uNld94oGnLPyPdCLNhnOdTmqFP4E9OCAiyFZjSeaqS6qMblNR4yHz+Zgmk/sp+vNXILVYs5BRf6cW4bm/Q== dependencies: - "@libp2p/interface" "^0.1.2" - "@libp2p/logger" "^3.0.2" - "@libp2p/peer-id" "^3.0.2" - "@multiformats/mafmt" "^12.1.2" - "@multiformats/multiaddr" "^12.1.5" + "@libp2p/interface" "^1.1.1" + "@libp2p/peer-id" "^4.0.4" + "@multiformats/mafmt" "^12.1.6" + "@multiformats/multiaddr" "^12.1.10" -"@libp2p/crypto@^2.0.0", "@libp2p/crypto@^2.0.2", "@libp2p/crypto@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-2.0.4.tgz#f0c6fcf246c8b6974e4fc92499a0bdce19c3c54c" - integrity sha512-1/PDtJC+k64Sd0bzK4DvGflk8Brj5fGskRCfBOndhNmitjHe8+ewbuA9lldTOerfkVgMn7Zb+sjNsytyr6BqlA== +"@libp2p/crypto@^3.0.0", "@libp2p/crypto@^3.0.1", "@libp2p/crypto@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@libp2p/crypto/-/crypto-3.0.4.tgz#8768b262c24a036774c6c5e290a1f0d76535a7d3" + integrity sha512-FzSwBo+RJOUzdzEwug5ZL4dAGKwEBWTLzj+EmUTHHY6c87+oLh571DQk/w0oYObSD9hYbcKePgSBaZeBx0JaZg== dependencies: - "@libp2p/interface" "^0.1.2" + "@libp2p/interface" "^1.1.1" "@noble/curves" "^1.1.0" "@noble/hashes" "^1.3.1" - multiformats "^12.0.1" + multiformats "^13.0.0" node-forge "^1.1.0" protons-runtime "^5.0.0" uint8arraylist "^2.4.3" - uint8arrays "^4.0.6" + uint8arrays "^5.0.0" -"@libp2p/interface-internal@^0.1.0", "@libp2p/interface-internal@^0.1.2", "@libp2p/interface-internal@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@libp2p/interface-internal/-/interface-internal-0.1.5.tgz#819d15c3b0b2cd25e1be59aacc2c5cb42fe811e3" - integrity sha512-h6f1fk2M6BhqjooE4I1iODmY/jorCvJ1bX1IOMHOMNkrbwsMS2BOpDkBJD+u+QlKMoRIA2zEfWezXB4Pa8GASw== - dependencies: - "@libp2p/interface" "^0.1.2" - "@libp2p/peer-collections" "^4.0.4" - "@multiformats/multiaddr" "^12.1.5" +"@libp2p/identify@^1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@libp2p/identify/-/identify-1.0.9.tgz#6756d74919b7a171c7cdcdce45669b9f633fbb0f" + integrity sha512-zDJofRDMlB3XYM2vvH/D/XrFeE9JzwVW09GPTMplGoECdq25Id7V4nWhkdNOmAQOQkhl/lFZmZHF7ZjCDgLybQ== + dependencies: + "@libp2p/interface" "^1.1.1" + "@libp2p/interface-internal" "^1.0.5" + "@libp2p/peer-id" "^4.0.4" + "@libp2p/peer-record" "^7.0.4" + "@multiformats/multiaddr" "^12.1.10" + "@multiformats/multiaddr-matcher" "^1.1.0" + it-protobuf-stream "^1.0.2" + protons-runtime "^5.0.0" uint8arraylist "^2.4.3" + uint8arrays "^5.0.0" + wherearewe "^2.0.1" -"@libp2p/interface-peer-id@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-2.0.2.tgz#6302e70b6fc17c451bc3daa11447d059357bcc32" - integrity sha512-9pZp9zhTDoVwzRmp0Wtxw0Yfa//Yc0GqBCJi3EznBDE6HGIAVvppR91wSh2knt/0eYg0AQj7Y35VSesUTzMCUg== - dependencies: - multiformats "^11.0.0" - -"@libp2p/interface@^0.1.0", "@libp2p/interface@^0.1.1", "@libp2p/interface@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-0.1.2.tgz#4ea5a4fa8bbd46c3fe4c945ff6b8c6d5d41f10b0" - integrity sha512-Q5t27434Mvn+R6AUJlRH+q/jSXarDpP+KXVkyGY7S1fKPI2berqoFPqT61bRRBYsCH2OPZiKBB53VUzxL9uEvg== +"@libp2p/interface-internal@^1.0.1", "@libp2p/interface-internal@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@libp2p/interface-internal/-/interface-internal-1.0.5.tgz#b7687e4c5cb765fd686fcd442d2cc4c49e8304d7" + integrity sha512-qT4APD2nZKEGnkn4LfM2mzNbYv9bx/2FyvYaJ4exjzIIBPiRmjrek7hfWErKkazCDwO51+WuZ/DERdd32O9Fxg== dependencies: - "@multiformats/multiaddr" "^12.1.5" - abortable-iterator "^5.0.1" - it-pushable "^3.2.0" - it-stream-types "^2.0.1" - multiformats "^12.0.1" - p-defer "^4.0.0" + "@libp2p/interface" "^1.1.1" + "@libp2p/peer-collections" "^5.1.3" + "@multiformats/multiaddr" "^12.1.10" uint8arraylist "^2.4.3" -"@libp2p/interface@^0.1.4": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-0.1.6.tgz#1328cf6086f02c499183489ccb143fe9c159e871" - integrity sha512-Lzc5cS/hXuoXhuAbVIxJIHLCYmfPcbU0vVgrpMoiP1Qb2Q3ETU4A46GB8s8mWXgSU6tr9RcqerUqzFYD6+OAag== +"@libp2p/interface@^1.0.0", "@libp2p/interface@^1.0.1", "@libp2p/interface@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface/-/interface-1.1.1.tgz#f37ea4930bd74e1299fbcafa49fdab39a28abba9" + integrity sha512-g6xgF+q38ZDTRkjuJfuOByS4N0zGld+VPRiWPXYX8wA/9vS6lqJwKUoC6V33KUhP/zXHCkJaSD6z94fUbNM8vw== dependencies: - "@multiformats/multiaddr" "^12.1.5" - abortable-iterator "^5.0.1" - it-pushable "^3.2.0" + "@multiformats/multiaddr" "^12.1.10" + it-pushable "^3.2.1" it-stream-types "^2.0.1" - multiformats "^12.0.1" - p-defer "^4.0.0" - race-signal "^1.0.0" + multiformats "^13.0.0" + progress-events "^1.0.0" uint8arraylist "^2.4.3" -"@libp2p/keychain@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/keychain/-/keychain-3.0.4.tgz#94d04a592ea18d83ebed6d6d8457e9aa8cc72e91" - integrity sha512-qt9Ttv2lczOpxkbe5YmqwqJx9nty4pWEE9sJ4rY2Ci2k1K+Bt2vMla610BFBzcYq0QqYYqNN4pawFZ33sc3iLg== - dependencies: - "@libp2p/crypto" "^2.0.4" - "@libp2p/interface" "^0.1.2" - "@libp2p/logger" "^3.0.2" - "@libp2p/peer-id" "^3.0.2" - interface-datastore "^8.2.0" - merge-options "^3.0.4" - sanitize-filename "^1.6.3" - uint8arrays "^4.0.6" - -"@libp2p/logger@^2.0.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-2.1.1.tgz#e12e6c320ea64252af954bcec996895098d1cd36" - integrity sha512-2UbzDPctg3cPupF6jrv6abQnAUTrbLybNOj0rmmrdGm1cN2HJ1o/hBu0sXuq4KF9P1h/eVRn1HIRbVIEKnEJrA== - dependencies: - "@libp2p/interface-peer-id" "^2.0.2" - "@multiformats/multiaddr" "^12.1.3" - debug "^4.3.4" - interface-datastore "^8.2.0" - multiformats "^11.0.2" - -"@libp2p/logger@^3.0.0", "@libp2p/logger@^3.0.1", "@libp2p/logger@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-3.0.2.tgz#aa507db233c6905692ffaf9f4daba1e6326992c4" - integrity sha512-2JtRGBXiGfm1t5XneUIXQ2JusW7QwyYmxsW7hSAYS5J73RQJUicpt5le5obVRt7+OM39ei+nWEuC6Xvm1ugHkw== +"@libp2p/logger@^4.0.1", "@libp2p/logger@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@libp2p/logger/-/logger-4.0.4.tgz#98c5357e8b857d93a506f6818db6abe734d342ee" + integrity sha512-lr6/Cmj9VhtET4ZnRhWls4kY4K5moTAIEZtZugmkflT4qJXJywkmn/EpLO3kjgE+PDjrgOr8lUVVJBGvEHL8Jg== dependencies: - "@libp2p/interface" "^0.1.2" - "@multiformats/multiaddr" "^12.1.5" + "@libp2p/interface" "^1.1.1" + "@multiformats/multiaddr" "^12.1.10" debug "^4.3.4" interface-datastore "^8.2.0" - multiformats "^12.0.1" - -"@libp2p/mdns@^9.0.9": - version "9.0.9" - resolved "https://registry.yarnpkg.com/@libp2p/mdns/-/mdns-9.0.9.tgz#9ef4944b71204e6578f2283c9634dec61da58ada" - integrity sha512-Id3iPJa1TRomYH1rIgcPxQTFpVlhscU5b8wqulzYSyzShggnM4MoxisrgLoSSySVzIrgIlKRTG8/m03neLIrZw== - dependencies: - "@libp2p/interface" "^0.1.2" - "@libp2p/logger" "^3.0.2" - "@libp2p/peer-id" "^3.0.2" - "@libp2p/utils" "^4.0.3" - "@multiformats/multiaddr" "^12.1.5" + multiformats "^13.0.0" + +"@libp2p/mdns@^10.0.10": + version "10.0.10" + resolved "https://registry.yarnpkg.com/@libp2p/mdns/-/mdns-10.0.10.tgz#02f08f1a485e3640ce575460af63a0b8c4171b64" + integrity sha512-Zxwbvg+rkmjE5YNue9Bldl/mpQS3BPMZlPPLjwQkVFRVjJdsBuWAWNFy08rzjYZunjBP1N4RMUdncrbjAYnoSg== + dependencies: + "@libp2p/interface" "^1.1.1" + "@libp2p/interface-internal" "^1.0.5" + "@libp2p/peer-id" "^4.0.4" + "@libp2p/utils" "^5.2.0" + "@multiformats/multiaddr" "^12.1.10" "@types/multicast-dns" "^7.2.1" dns-packet "^5.4.0" multicast-dns "^7.2.5" -"@libp2p/mplex@^9.0.7": - version "9.0.7" - resolved "https://registry.yarnpkg.com/@libp2p/mplex/-/mplex-9.0.7.tgz#c8233d184c5142453776bc59cc66edb3b399050b" - integrity sha512-ycIjBdEPnVSjW3ZuMVuFk7cwJwK6/Hjd1KFCSXTZ9E8M6df+EQg9m8iw5ObMJNQ5+GWIHUu5+Fq1HquZO06Y9g== +"@libp2p/mplex@^10.0.10": + version "10.0.10" + resolved "https://registry.yarnpkg.com/@libp2p/mplex/-/mplex-10.0.10.tgz#04476551f8ab205c2b6754cc94692264a883629b" + integrity sha512-vwyqjuc/P/co5Kj+FknYl2BJ69es+rM8TmtQ5e/xnTDpaD2JPGIeMhKXC3hSNAIvmL9OHdwqzLGHD98vRfMv/A== dependencies: - "@libp2p/interface" "^0.1.2" - "@libp2p/logger" "^3.0.2" - abortable-iterator "^5.0.1" - benchmark "^2.1.4" - it-batched-bytes "^2.0.2" - it-pushable "^3.2.0" + "@libp2p/interface" "^1.1.1" + "@libp2p/utils" "^5.2.0" + it-pipe "^3.0.1" + it-pushable "^3.2.1" it-stream-types "^2.0.1" - rate-limiter-flexible "^3.0.0" + rate-limiter-flexible "^4.0.0" uint8-varint "^2.0.0" uint8arraylist "^2.4.3" - uint8arrays "^4.0.6" + uint8arrays "^5.0.0" -"@libp2p/multistream-select@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-4.0.2.tgz#547ebc682907d1e02f0f3eec311010ebf3b62ec1" - integrity sha512-Ss3kPD+1Z8RFLUT+oN9I2ynEtp/Yj2+rOngU1XjIxustg1nt5lq0kk9hvWJyBexzmuML0xCknNjUXovpRbFPgQ== +"@libp2p/multistream-select@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@libp2p/multistream-select/-/multistream-select-5.1.1.tgz#81b7eddf33a3b87cfbf70bb69c9ae548afb43800" + integrity sha512-hdcsmrqF0ffh/dNjw+KKfllXIJocpxWzlNSGWxswsmoZFV0Krx7HH/kHQDr5f2mehrO08wJyzRCnlKv9LrirAQ== dependencies: - "@libp2p/interface" "^0.1.2" - "@libp2p/logger" "^3.0.2" - abortable-iterator "^5.0.1" - it-first "^3.0.1" - it-handshake "^4.1.3" - it-length-prefixed "^9.0.1" - it-merge "^3.0.0" - it-pipe "^3.0.1" - it-pushable "^3.2.0" - it-reader "^6.0.1" + "@libp2p/interface" "^1.1.1" + it-length-prefixed "^9.0.3" + it-length-prefixed-stream "^1.1.1" it-stream-types "^2.0.1" + p-defer "^4.0.0" + race-signal "^1.0.2" + uint8-varint "^2.0.2" uint8arraylist "^2.4.3" - uint8arrays "^4.0.6" + uint8arrays "^5.0.0" -"@libp2p/peer-collections@^4.0.2", "@libp2p/peer-collections@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-4.0.4.tgz#56163995e6f7b3178e927b92b9c6e894a93e7f12" - integrity sha512-MGuTtt6a2TLUlr4b1dUAOd43SAe/lxLZX3E9iYeRqI9IWzw6cwvvOzGNTYwAlkBpASCmm0aJpGXDA/r6lpIzMQ== +"@libp2p/peer-collections@^5.0.0", "@libp2p/peer-collections@^5.1.3": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@libp2p/peer-collections/-/peer-collections-5.1.3.tgz#52734a31fe52f01f2ff67132ed0eae28b3229ae4" + integrity sha512-qiQHO8s4neLaAZmjHHWvPc091Lp9nOEokjnTmrE2/YBNjKoiA1aPCf7gM/KasynuquFceTQBDVd/Y79Mfqxw4w== dependencies: - "@libp2p/interface" "^0.1.2" - "@libp2p/peer-id" "^3.0.2" + "@libp2p/interface" "^1.1.1" + "@libp2p/peer-id" "^4.0.4" -"@libp2p/peer-id-factory@^3.0.4": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/peer-id-factory/-/peer-id-factory-3.0.4.tgz#8dc6890a99fbd4c6f4a295761cc495e214c81369" - integrity sha512-9xpKb1UdAhKVmPHy/jssOnyJkuyyyIeP5tO3HlaiBQNtDZU66UMQORnEUD6HdYHKfBRInah2JHxTCtm2nUhGcw== +"@libp2p/peer-id-factory@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@libp2p/peer-id-factory/-/peer-id-factory-4.0.3.tgz#0d6c141ec0a0ee06a14e7c77cec22294069e30db" + integrity sha512-IdSMwn6ogrHOUR6xPhgu6ZMZrIhvnRRJBnslCr09ATzir1Vs77s06OpXiMrZQ5xbEbLJuD52PE8s1Oz2Ei/iLg== dependencies: - "@libp2p/crypto" "^2.0.4" - "@libp2p/interface" "^0.1.2" - "@libp2p/peer-id" "^3.0.2" - multiformats "^12.0.1" + "@libp2p/crypto" "^3.0.4" + "@libp2p/interface" "^1.1.1" + "@libp2p/peer-id" "^4.0.4" protons-runtime "^5.0.0" uint8arraylist "^2.4.3" - uint8arrays "^4.0.6" + uint8arrays "^5.0.0" -"@libp2p/peer-id@^3.0.0", "@libp2p/peer-id@^3.0.1", "@libp2p/peer-id@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-3.0.2.tgz#5ca40a687a513c53744513f0c23a44d291e4399d" - integrity sha512-133qGXu9UBiqsYm7nBDJaAh4eiKe79DPLKF+/aRu0Z7gKcX7I0+LewEky4kBt3olhYQSF1CAnJIzD8Dmsn40Yw== +"@libp2p/peer-id@^4.0.0", "@libp2p/peer-id@^4.0.1", "@libp2p/peer-id@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@libp2p/peer-id/-/peer-id-4.0.4.tgz#3de8f012f2abdc1ab287ad652d24de587e653ca3" + integrity sha512-UHWpo0f34IOaAhlvMNtCMAFVVhv29Dy3IqNvfugFNwzv5p+Jo6TfPGd78H7RX2WIzyVzIgBYxVxmIIHHcqZQ5Q== dependencies: - "@libp2p/interface" "^0.1.2" - multiformats "^12.0.1" - uint8arrays "^4.0.6" + "@libp2p/interface" "^1.1.1" + multiformats "^13.0.0" + uint8arrays "^5.0.0" -"@libp2p/peer-record@^6.0.5": - version "6.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-6.0.5.tgz#19e102ecd96b50421ed10e5563e0e5a5d6aeaa7c" - integrity sha512-+nJpi9L6X+cYdu1UWL/W36+3pmL0Ev7/HpX9J/bESsICP8rSN2N1aFlekqJq2v7TW4dJ3VJO7TcMZCcKcLhZCQ== - dependencies: - "@libp2p/crypto" "^2.0.4" - "@libp2p/interface" "^0.1.2" - "@libp2p/peer-id" "^3.0.2" - "@libp2p/utils" "^4.0.3" - "@multiformats/multiaddr" "^12.1.5" +"@libp2p/peer-record@^7.0.4": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@libp2p/peer-record/-/peer-record-7.0.4.tgz#8c19cef2a3d82da576942440d67c482c5a0f344a" + integrity sha512-4UXsfo22qT3BnWfBkGp0jgrNPJjBI60ehZV9piB/3EIeT7hLIvuBuBbn3+QM87ew5D5vpvwr+Lo1CyampqbB7g== + dependencies: + "@libp2p/crypto" "^3.0.4" + "@libp2p/interface" "^1.1.1" + "@libp2p/peer-id" "^4.0.4" + "@libp2p/utils" "^5.2.0" + "@multiformats/multiaddr" "^12.1.10" protons-runtime "^5.0.0" uint8-varint "^2.0.0" uint8arraylist "^2.4.3" - uint8arrays "^4.0.6" - -"@libp2p/peer-store@^9.0.5": - version "9.0.5" - resolved "https://registry.yarnpkg.com/@libp2p/peer-store/-/peer-store-9.0.5.tgz#1beeda7aac7c186e2663de1f65e0aa1df833595e" - integrity sha512-LUYN2i58F/eVvrFEYCIfArMNZaCGy2J2xSG9kd3/iHZqHAyLkuQHnYfHdoJLSUJFcS2pZsFo+c9atVvlOD7w5A== - dependencies: - "@libp2p/interface" "^0.1.2" - "@libp2p/logger" "^3.0.2" - "@libp2p/peer-collections" "^4.0.4" - "@libp2p/peer-id" "^3.0.2" - "@libp2p/peer-id-factory" "^3.0.4" - "@libp2p/peer-record" "^6.0.5" - "@multiformats/multiaddr" "^12.1.5" + uint8arrays "^5.0.0" + +"@libp2p/peer-store@^10.0.5": + version "10.0.5" + resolved "https://registry.yarnpkg.com/@libp2p/peer-store/-/peer-store-10.0.5.tgz#b969d1707f5dcbf4d110e099270de285b075aa02" + integrity sha512-n+rwX8HNkyquOeL6vkcGJMesJsauKBuBIeMG+OnBY3mfFjaVjtGeHF2DQniS6AXHt2hktK9TlC2NEDRh6oGvRw== + dependencies: + "@libp2p/interface" "^1.1.1" + "@libp2p/peer-collections" "^5.1.3" + "@libp2p/peer-id" "^4.0.4" + "@libp2p/peer-record" "^7.0.4" + "@multiformats/multiaddr" "^12.1.10" interface-datastore "^8.2.0" it-all "^3.0.2" mortice "^3.0.1" - multiformats "^12.0.1" + multiformats "^13.0.0" protons-runtime "^5.0.0" uint8arraylist "^2.4.3" - uint8arrays "^4.0.6" + uint8arrays "^5.0.0" -"@libp2p/prometheus-metrics@^2.0.7": - version "2.0.7" - resolved "https://registry.yarnpkg.com/@libp2p/prometheus-metrics/-/prometheus-metrics-2.0.7.tgz#4d93bd3f4bb9221356cc16797d4ad1f2ba5a05b6" - integrity sha512-P2F8xRY3usuw0W39ZMsem9PXQ8UFn3pFbxTEhplN4OCfe9wpfT5UYBK212s8eIKcPhMSvQSx7er41ObqXJeIUg== +"@libp2p/prometheus-metrics@^3.0.10": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@libp2p/prometheus-metrics/-/prometheus-metrics-3.0.10.tgz#b95f4c6f20817fb157b803012034baccc588ddb5" + integrity sha512-ESOWM2uAM8X2fjb1nZF98LkYs/Nf2Ifxnfj3LVdSlaYbz44jDvCQ2ZW5vpGfooonVnU2Jkm5kvEeCWYt/9y8mQ== dependencies: - "@libp2p/interface" "^0.1.2" - "@libp2p/logger" "^3.0.2" + "@libp2p/interface" "^1.1.1" it-foreach "^2.0.3" it-stream-types "^2.0.1" - prom-client "^14.2.0" + prom-client "^15.0.0" + uint8arraylist "^2.4.3" -"@libp2p/pubsub@^8.0.0": - version "8.0.3" - resolved "https://registry.yarnpkg.com/@libp2p/pubsub/-/pubsub-8.0.3.tgz#93c839c89b9f432fc4c18bcb9491c822688db21c" - integrity sha512-NIVM5MjN+Kx9jNoBzNPW44mhc3eedWpNc4IT1Nz2cxurA+QgzI01mz42SiN+GqapQmiZrVrWClnb0Knc4t7TtQ== - dependencies: - "@libp2p/crypto" "^2.0.2" - "@libp2p/interface" "^0.1.1" - "@libp2p/interface-internal" "^0.1.2" - "@libp2p/logger" "^3.0.1" - "@libp2p/peer-collections" "^4.0.2" - "@libp2p/peer-id" "^3.0.1" - abortable-iterator "^5.0.1" - it-length-prefixed "^9.0.1" +"@libp2p/pubsub@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@libp2p/pubsub/-/pubsub-9.0.0.tgz#e9d3869addd653868f87797849dbebfd23cd3a38" + integrity sha512-yvgKBNKtF09x4ahbxJrxj/OBTNvOoJibR28YaTlrlCIDU78wMMhIx89Ma14g2FAN1OsxagifyAgq188vGrsGfA== + dependencies: + "@libp2p/crypto" "^3.0.1" + "@libp2p/interface" "^1.0.1" + "@libp2p/interface-internal" "^1.0.1" + "@libp2p/peer-collections" "^5.0.0" + "@libp2p/peer-id" "^4.0.1" + "@libp2p/utils" "^5.0.2" + it-length-prefixed "^9.0.3" it-pipe "^3.0.1" - it-pushable "^3.2.0" - multiformats "^12.0.1" - p-queue "^7.3.4" + it-pushable "^3.2.1" + multiformats "^12.1.3" + p-queue "^7.4.1" uint8arraylist "^2.4.3" - uint8arrays "^4.0.4" + uint8arrays "^4.0.6" -"@libp2p/tcp@8.0.8": - version "8.0.8" - resolved "https://registry.yarnpkg.com/@libp2p/tcp/-/tcp-8.0.8.tgz#e692bbd04f79c37b9a42bc7d51583226c61b1242" - integrity sha512-hIjAKWQOP4MCS2yUhWMdfweFK/ykDiaMZSrgIJJ+YEikxi0HihB5fRtk08oLvOew0B52GsGXQsfQg8I9sOncWg== - dependencies: - "@libp2p/interface" "^0.1.2" - "@libp2p/logger" "^3.0.2" - "@libp2p/utils" "^4.0.3" - "@multiformats/mafmt" "^12.1.2" - "@multiformats/multiaddr" "^12.1.5" - "@types/sinon" "^10.0.15" +"@libp2p/tcp@9.0.10": + version "9.0.10" + resolved "https://registry.yarnpkg.com/@libp2p/tcp/-/tcp-9.0.10.tgz#94ad87f728b857651608582393f33a8ca095c69d" + integrity sha512-ixwa2aDpCiS3ng/TjLB/7QIWChmlKEmH6L/vS089chJ7M5mYqRJdbLeo4zfod6lSmJab2mj8Q0sKzGeplAPE5Q== + dependencies: + "@libp2p/interface" "^1.1.1" + "@libp2p/utils" "^5.2.0" + "@multiformats/mafmt" "^12.1.6" + "@multiformats/multiaddr" "^12.1.10" + "@types/sinon" "^17.0.0" stream-to-it "^0.2.2" -"@libp2p/utils@^4.0.3": - version "4.0.3" - resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-4.0.3.tgz#e27e46930fd0bf72fc9344127194dbff90c25d45" - integrity sha512-jusH8y4G9YluKRm63EPIiN9fNv0hVtfKY7O0nsLI14o0/W/WJhTsQWm+kPOfvoAgCIqAVrxefBqAmFGiiYPnvg== +"@libp2p/utils@^5.0.2", "@libp2p/utils@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@libp2p/utils/-/utils-5.2.0.tgz#896bcb9ceb5b90caea0b2a8a5bb353dc2116cc13" + integrity sha512-zAremC/0u7mhS32TS++WBlsjwmKKKonEB7dZMfTtKH0QfghII8vcBOgBCTEqhtm0AqwsT6vIlm6wAg9bbZKbQA== dependencies: "@chainsafe/is-ip" "^2.0.2" - "@libp2p/interface" "^0.1.2" - "@libp2p/logger" "^3.0.2" - "@multiformats/multiaddr" "^12.1.5" - "@multiformats/multiaddr-matcher" "^1.0.1" + "@libp2p/interface" "^1.1.1" + "@libp2p/logger" "^4.0.4" + "@multiformats/multiaddr" "^12.1.10" + "@multiformats/multiaddr-matcher" "^1.1.0" + get-iterator "^2.0.1" is-loopback-addr "^2.0.1" + it-pushable "^3.2.2" it-stream-types "^2.0.1" - private-ip "^3.0.0" + p-defer "^4.0.0" + private-ip "^3.0.1" + race-event "^1.1.0" + race-signal "^1.0.1" uint8arraylist "^2.4.3" "@lukeed/ms@^2.0.1": @@ -2004,34 +1955,34 @@ resolved "https://registry.yarnpkg.com/@lukeed/ms/-/ms-2.0.1.tgz#3c2bbc258affd9cc0e0cc7828477383c73afa6ee" integrity sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA== -"@multiformats/mafmt@^12.1.2": +"@multiformats/mafmt@^12.1.6": version "12.1.6" resolved "https://registry.yarnpkg.com/@multiformats/mafmt/-/mafmt-12.1.6.tgz#e7c1831c1e94c94932621826049afc89f3ad43b7" integrity sha512-tlJRfL21X+AKn9b5i5VnaTD6bNttpSpcqwKVmDmSHLwxoz97fAHaepqFOk/l1fIu94nImIXneNbhsJx/RQNIww== dependencies: "@multiformats/multiaddr" "^12.0.0" -"@multiformats/multiaddr-matcher@^1.0.0", "@multiformats/multiaddr-matcher@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr-matcher/-/multiaddr-matcher-1.0.2.tgz#014b8bf34106363b7c2635c01b5627d216fa192f" - integrity sha512-YzviFV31TsDbatWhEmkNnpWC82F/Wfc+alaOBT94Lk6KJeKKfzsaLhYPsjyhElXiUtCKvB3p5e4+WsE5ZYy1kg== +"@multiformats/multiaddr-matcher@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@multiformats/multiaddr-matcher/-/multiaddr-matcher-1.1.0.tgz#27e14a549a00594c24d85897c4b0b7e83df3e59d" + integrity sha512-B/QbKpAxaHYVXFnbTdTgYqPDxmqoF2RYffwYoOv1MWfi2vBCZLdzmEKUBKv6fQr6s+LJFSHn2j2vczmwMFCQIA== dependencies: "@chainsafe/is-ip" "^2.0.1" "@multiformats/multiaddr" "^12.0.0" multiformats "^12.0.1" -"@multiformats/multiaddr@^12.0.0", "@multiformats/multiaddr@^12.1.3", "@multiformats/multiaddr@^12.1.5": - version "12.1.7" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz#eb71733be20dd9f0ac0ff4c3ffe4bae422726beb" - integrity sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA== +"@multiformats/multiaddr@^12.0.0", "@multiformats/multiaddr@^12.1.10", "@multiformats/multiaddr@^12.1.3": + version "12.1.12" + resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-12.1.12.tgz#d1609933dc5589d53f6b77fb88fe5e5ea787deae" + integrity sha512-hrY4uN/oeYhn410jBSpVXn37eenn4djKOj6Dh20Yh4xzGgqmS6u+/X08zQfHgWNjk7NJejPUcRfHEfs8e/MOcw== dependencies: "@chainsafe/is-ip" "^2.0.1" "@chainsafe/netmask" "^2.0.0" - "@libp2p/interface" "^0.1.1" - dns-over-http-resolver "^2.1.0" - multiformats "^12.0.1" + "@libp2p/interface" "^1.0.0" + dns-over-http-resolver "3.0.0" + multiformats "^13.0.0" uint8-varint "^2.0.1" - uint8arrays "^4.0.2" + uint8arrays "^5.0.0" "@napi-rs/snappy-android-arm-eabi@7.2.2": version "7.2.2" @@ -2098,10 +2049,10 @@ resolved "https://registry.yarnpkg.com/@napi-rs/snappy-win32-x64-msvc/-/snappy-win32-x64-msvc-7.2.2.tgz#4f598d3a5d50904d9f72433819f68b21eaec4f7d" integrity sha512-a43cyx1nK0daw6BZxVcvDEXxKMFLSBSDTAhsFD0VqSKcC7MGUBMaqyoWUcMiI7LBSz4bxUmxDWKfCYzpEmeb3w== -"@noble/ciphers@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-0.3.0.tgz#6ba3090afdc7a7051393486f6af210e62e0f04ec" - integrity sha512-ldbrnOjmNRwFdXcTM6uXDcxpMIFrbzAWNnpBPp4oTJTFF0XByGD6vf45WrehZGXRQTRVV+Zm8YP+EgEf+e4cWA== +"@noble/ciphers@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@noble/ciphers/-/ciphers-0.4.0.tgz#e3f69e3ce935683dd8dadb636652a5cb5cd5958c" + integrity sha512-xaUaUUDWbHIFSxaQ/pIe+33VG2mfJp6N/KxKLmZr5biWdNznCAmfu24QRhX10BbVAuqOahAoyp0S4M9md6GPDw== "@noble/curves@1.0.0", "@noble/curves@~1.0.0": version "1.0.0" @@ -3479,11 +3430,6 @@ resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz" integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== -"@types/retry@0.12.2": - version "0.12.2" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.2.tgz#ed279a64fa438bb69f2480eda44937912bb7480a" - integrity sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow== - "@types/semver@^7.5.0": version "7.5.2" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.2.tgz#31f6eec1ed7ec23f4f05608d3a2d381df041f564" @@ -3504,13 +3450,20 @@ dependencies: "@types/sinonjs__fake-timers" "*" -"@types/sinon@^10.0.15", "@types/sinon@^10.0.16": +"@types/sinon@^10.0.16": version "10.0.16" resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.16.tgz#4bf10313bd9aa8eef1e50ec9f4decd3dd455b4d3" integrity sha512-j2Du5SYpXZjJVJtXBokASpPRj+e2z+VUhCPHmM6WMfe3dpHu6iVKJMU6AiBcMp/XTAYnEj6Wc1trJUWwZ0QaAQ== dependencies: "@types/sinonjs__fake-timers" "*" +"@types/sinon@^17.0.0": + version "17.0.2" + resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-17.0.2.tgz#9a769f67e62b45b7233f1fe01cb1f231d2393e1c" + integrity sha512-Zt6heIGsdqERkxctIpvN5Pv3edgBrhoeb3yHyxffd4InN0AX2SVNKSrhdDZKGQICVOxWP/q4DyhpfPNMSrpIiA== + dependencies: + "@types/sinonjs__fake-timers" "*" + "@types/sinonjs__fake-timers@*": version "6.0.2" resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz" @@ -3758,6 +3711,15 @@ "@vitest/utils" "1.1.0" chai "^4.3.10" +"@vitest/expect@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.2.0.tgz#de93f5c32c2781c41415a8c3a6e48e1c023d6613" + integrity sha512-H+2bHzhyvgp32o7Pgj2h9RTHN0pgYaoi26Oo3mE+dCi1PAqV31kIIVfTbqMO3Bvshd5mIrJLc73EwSRrbol9Lw== + dependencies: + "@vitest/spy" "1.2.0" + "@vitest/utils" "1.2.0" + chai "^4.3.10" + "@vitest/runner@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.1.0.tgz#b3bf60f4a78f4324ca09811dd0f87b721a96b534" @@ -3767,6 +3729,15 @@ p-limit "^5.0.0" pathe "^1.1.1" +"@vitest/runner@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.2.0.tgz#84775f0f5c48620ff1943a45c19863355791c6d9" + integrity sha512-vaJkDoQaNUTroT70OhM0NPznP7H3WyRwt4LvGwCVYs/llLaqhoSLnlIhUClZpbF5RgAee29KRcNz0FEhYcgxqA== + dependencies: + "@vitest/utils" "1.2.0" + p-limit "^5.0.0" + pathe "^1.1.1" + "@vitest/snapshot@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.1.0.tgz#b9924e4303382b43bb2c31061b173e69a6fb3437" @@ -3776,6 +3747,15 @@ pathe "^1.1.1" pretty-format "^29.7.0" +"@vitest/snapshot@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.2.0.tgz#2fcddb5c6e8a9d2fc9f18ea2f8fd39b1b6e691b4" + integrity sha512-P33EE7TrVgB3HDLllrjK/GG6WSnmUtWohbwcQqmm7TAk9AVHpdgf7M3F3qRHKm6vhr7x3eGIln7VH052Smo6Kw== + dependencies: + magic-string "^0.30.5" + pathe "^1.1.1" + pretty-format "^29.7.0" + "@vitest/spy@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.1.0.tgz#7f40697e4fc217ac8c3cc89a865d1751b263f561" @@ -3783,6 +3763,13 @@ dependencies: tinyspy "^2.2.0" +"@vitest/spy@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.2.0.tgz#61104de4c19a3addefff021d884c9e20dc17ebcd" + integrity sha512-MNxSAfxUaCeowqyyGwC293yZgk7cECZU9wGb8N1pYQ0yOn/SIr8t0l9XnGRdQZvNV/ZHBYu6GO/W3tj5K3VN1Q== + dependencies: + tinyspy "^2.2.0" + "@vitest/utils@1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.1.0.tgz#d177a5f41bdb484bbb43c8d73a77ca782df068b5" @@ -3792,6 +3779,16 @@ loupe "^2.3.7" pretty-format "^29.7.0" +"@vitest/utils@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.2.0.tgz#deb9bdc3d094bf47f93a592a6a0b3946aa575e7a" + integrity sha512-FyD5bpugsXlwVpTcGLDf3wSPYy8g541fQt14qtzo8mJ4LdEpDKZ9mQy2+qdJm2TZRpjY5JLXihXCgIxiRJgi5g== + dependencies: + diff-sequences "^29.6.3" + estree-walker "^3.0.3" + loupe "^2.3.7" + pretty-format "^29.7.0" + "@wdio/config@8.27.0": version "8.27.0" resolved "https://registry.yarnpkg.com/@wdio/config/-/config-8.27.0.tgz#c738d8108b5161cf3f80bb34d0e1f4d700b1a9ce" @@ -4100,6 +4097,11 @@ acorn-walk@^8.3.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== +acorn-walk@^8.3.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + acorn@^8.10.0, acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" @@ -4672,14 +4674,6 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== -benchmark@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-2.1.4.tgz#09f3de31c916425d498cc2ee565a0ebf3c2a5629" - integrity sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ== - dependencies: - lodash "^4.17.4" - platform "^1.3.3" - big-integer@^1.6.17: version "1.6.52" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" @@ -6007,43 +6001,24 @@ data-urls@^5.0.0: whatwg-mimetype "^4.0.0" whatwg-url "^14.0.0" -datastore-core@^9.0.0, datastore-core@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-9.1.1.tgz#613db89a9bb2624943811dd39b831125319fab79" - integrity sha512-Way+QZdrlAjLOHm7hc3r5mEIfmdkZCtb/bAWv+Mhp9FGQKSyaf8yL5oOcmp3pv+WrqdFYB7qYx7xe/FX3+zcjw== - dependencies: - "@libp2p/logger" "^2.0.0" - err-code "^3.0.1" - interface-store "^5.0.0" - it-all "^3.0.1" - it-drain "^3.0.1" - it-filter "^3.0.0" - it-map "^3.0.1" - it-merge "^3.0.0" - it-pipe "^3.0.0" - it-pushable "^3.0.0" - it-sort "^3.0.1" - it-take "^3.0.1" - uint8arrays "^4.0.2" - -datastore-core@^9.0.1: - version "9.2.2" - resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-9.2.2.tgz#92b0efbc5a0b6362ecce3506ccc285b0691a834b" - integrity sha512-WFB1wVlD3Tr2yBZpJutPedBc18A4t0HvLOSksokYr/2nHBapplgnwkg2esI6xxctma+76FghhXx7G26khx2Uxg== +datastore-core@^9.0.0, datastore-core@^9.0.1, datastore-core@^9.1.1: + version "9.2.7" + resolved "https://registry.yarnpkg.com/datastore-core/-/datastore-core-9.2.7.tgz#25d0773a56f6c6d4e475d850c550a09672171242" + integrity sha512-S5ADNGRy1p6kHT6Khld+FThe1ITHuUiyYQ84VX2Kv8s6cXDiUuLlYPBIbZaWIgqR/JwxQCwa+5/08w6BZSIAow== dependencies: - "@libp2p/logger" "^3.0.0" + "@libp2p/logger" "^4.0.1" err-code "^3.0.1" interface-store "^5.0.0" it-all "^3.0.1" it-drain "^3.0.1" it-filter "^3.0.0" it-map "^3.0.1" - it-merge "^3.0.0" + it-merge "^3.0.1" it-pipe "^3.0.0" it-pushable "^3.0.0" it-sort "^3.0.1" it-take "^3.0.1" - uint8arrays "^4.0.2" + uint8arrays "^5.0.0" datastore-level@*, datastore-level@^10.1.1: version "10.1.1" @@ -6176,13 +6151,6 @@ default-browser@^4.0.0: execa "^7.1.1" titleize "^3.0.0" -default-gateway@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.0.0" - default-require-extensions@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz" @@ -6247,11 +6215,6 @@ degenerator@^5.0.0: escodegen "^2.1.0" esprima "^4.0.1" -delay@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/delay/-/delay-6.0.0.tgz#43749aefdf6cabd9e17b0d00bd3904525137e607" - integrity sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw== - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -6328,11 +6291,6 @@ dezalgo@^1.0.4: asap "^2.0.0" wrappy "1" -dgram@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/dgram/-/dgram-1.0.1.tgz" - integrity sha1-N/OyAPgDOl/3WTAwicgc42G2UcM= - di@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" @@ -6345,12 +6303,12 @@ diff-sequences@^29.6.3: diff@5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== diff@^4.0.1: version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== diff@^5.1.0: @@ -6374,7 +6332,7 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dns-over-http-resolver@^2.1.0, dns-over-http-resolver@^2.1.1: +dns-over-http-resolver@3.0.0, dns-over-http-resolver@^2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/dns-over-http-resolver/-/dns-over-http-resolver-2.1.3.tgz#bb7f2e10cc18d960339a6e30e21b8c1d99be7b38" integrity sha512-zjRYFhq+CsxPAouQWzOsxNMvEN+SHisjzhX8EMxd2Y0EG3thvn6wXQgMJLnTDImkhe4jhLbOQpXtL10nALBOSA== @@ -7253,11 +7211,6 @@ ethers@^6.7.0: tslib "2.4.0" ws "8.5.0" -event-iterator@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/event-iterator/-/event-iterator-2.0.0.tgz#10f06740cc1e9fd6bc575f334c2bc1ae9d2dbf62" - integrity sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ== - event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" @@ -7268,6 +7221,11 @@ eventemitter3@^4.0.0, eventemitter3@^4.0.4, eventemitter3@^4.0.7: resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + events@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" @@ -7788,11 +7746,6 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -freeport-promise@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/freeport-promise/-/freeport-promise-2.0.0.tgz#11e4f81e24d680b88a20c15b2103551f4b6663d8" - integrity sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg== - fromentries@^1.2.0: version "1.3.2" resolved "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz" @@ -7874,6 +7827,11 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -7985,15 +7943,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: has "^1.0.3" has-symbols "^1.0.3" -get-intrinsic@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - get-intrinsic@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" @@ -8013,6 +7962,16 @@ get-intrinsic@^1.2.1: has-proto "^1.0.1" has-symbols "^1.0.3" +get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-iterator@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz" @@ -8023,6 +7982,11 @@ get-iterator@^2.0.0: resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-2.0.0.tgz#c9ac9f8002e5d8d6b4dc9dae07c30945022a58c1" integrity sha512-BDJawD5PU2gZv6Vlp8O28H4GnZcsr3h9gZUvnAP5xXP3WOy/QAoOsyMepSkw21jur+4t5Vppde72ChjhTIzxzg== +get-iterator@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/get-iterator/-/get-iterator-2.0.1.tgz#a904829f61bace789e0d64bd1a504c511a015c3f" + integrity sha512-7HuY/hebu4gryTDT7O/XY/fvY9wRByEGdK6QOa4of8npTcv0+NS6frFKABcf6S9EBAsveTuKTsZQQBFMMNILIg== + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" @@ -8457,6 +8421,13 @@ hasha@^5.0.0: is-stream "^2.0.0" type-fest "^0.8.0" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + he@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" @@ -8817,13 +8788,13 @@ inquirer@^9.1.5: through "^2.3.6" wrap-ansi "^8.1.0" -interface-datastore@^8.0.0, interface-datastore@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-8.2.0.tgz#70076985ac17dcdb35b33c2b0f957480ce6489e1" - integrity sha512-rDMAcpCGxWMubRk2YQuSEHl11bc0xcZeBZzfLvqhoZJdByUWeo7YDJUdgyRKgD6liGXVYirtDkFU9nyn9xl2hg== +interface-datastore@^8.0.0, interface-datastore@^8.2.0, interface-datastore@^8.2.7: + version "8.2.7" + resolved "https://registry.yarnpkg.com/interface-datastore/-/interface-datastore-8.2.7.tgz#6a1e168fd98a271a92b85223bae58fa30031fb9c" + integrity sha512-ot5B5+VogufRfjhedAXZHm5NuEKyYZkDyVpTjBYIrxYUpS5GIfF2soE/dsd/FiBVqubcxa4IEToMXL5ruMwhjw== dependencies: interface-store "^5.0.0" - nanoid "^4.0.0" + nanoid "^5.0.3" uint8arrays "^4.0.2" interface-store@^5.0.0: @@ -8832,12 +8803,12 @@ interface-store@^5.0.0: integrity sha512-mjUwX3XSoreoxCS3sXS3pSRsGnUjl9T06KBqt/T7AgE9Sgp4diH64ZyURJKnj2T5WmCvTbC0Dm+mwQV5hfLSBQ== internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" + get-intrinsic "^1.2.2" + hasown "^2.0.0" side-channel "^1.0.4" internal-slot@^1.0.5: @@ -8874,10 +8845,10 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" - integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== +ipaddr.js@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== is-arguments@^1.0.4: version "1.1.0" @@ -9091,11 +9062,6 @@ is-negative-zero@^2.0.1, is-negative-zero@^2.0.2: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== -is-network-error@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-network-error/-/is-network-error-1.0.0.tgz#757d7af42263f18f616626e63af12abb19002bbc" - integrity sha512-P3fxi10Aji2FZmHTrMPSNFbNC6nnp4U5juPAIjXPHkUNubi4+qK7vvdsaNpAUwXslhYm9oyjEYTxs1xd/+Ph0w== - is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -9428,13 +9394,10 @@ it-all@^3.0.0, it-all@^3.0.1, it-all@^3.0.2: resolved "https://registry.yarnpkg.com/it-all/-/it-all-3.0.2.tgz#620b82c702c9c6d1c4caddb6407dba4a4baa970b" integrity sha512-ujqWETXhsDbF6C+6X6fvRw5ohlowRoy/o/h9BC8D+R3JQ13oLQ153w9gSWkWupOY7omZFQbJiAL1aJo5Gwe2yw== -it-batched-bytes@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/it-batched-bytes/-/it-batched-bytes-2.0.3.tgz#b05cb114c5b3dfa5d6512a18225093d1a943b358" - integrity sha512-vUhr1K6NerlrSbSKpBGW9bDd3s64GPUQePWUzoUF0zkYw2ufFpCXEYCZAtJMP45n6BJNChWDYTYwxAZvQG0b0g== - dependencies: - p-defer "^4.0.0" - uint8arraylist "^2.4.1" +it-all@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/it-all/-/it-all-3.0.4.tgz#08f2e3eb3df04fa4525a343dcacfbdf91ffee162" + integrity sha512-UMiy0i9DqCHBdWvMbzdYvVGa5/w4t1cc4nchpbnjdLhklglv8mQeEYnii0gvKESJuL1zV32Cqdb33R6/GPfxpQ== it-byte-stream@^1.0.0: version "1.0.0" @@ -9445,7 +9408,7 @@ it-byte-stream@^1.0.0: it-stream-types "^2.0.1" uint8arraylist "^2.4.1" -it-drain@^3.0.1, it-drain@^3.0.2: +it-drain@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/it-drain/-/it-drain-3.0.2.tgz#4fb2ab30119072268c68a895fa5b9f2037942c44" integrity sha512-0hJvS/4Ktt9wT/bktmovjjMAY8r6FCsXqpL3zjqBBNwoL21VgQfguEnwbLSGuCip9Zq1vfU43cbHkmaRZdBfOg== @@ -9455,18 +9418,13 @@ it-drain@^3.0.3: resolved "https://registry.yarnpkg.com/it-drain/-/it-drain-3.0.3.tgz#f80719d3d0d7e7d02dc298d86ca9d0e7f7bd666b" integrity sha512-l4s+izxUpFAR2axprpFiCaq0EtxK1QMd0LWbEtau5b+OegiZ5xdRtz35iJyh6KZY9QtuwEiQxydiOfYJc7stoA== -it-filter@^3.0.0, it-filter@^3.0.1: +it-filter@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/it-filter/-/it-filter-3.0.2.tgz#19ddf6185ea21d417e6075d5796c799fa2633b69" integrity sha512-Hhzp5anX7tmKOBqTPasBYTPlq7l4Xk4lMBfLB5GfKZnL9WCc6pr8M9Waud4nHh3s9neb4xwDWk7KQsEapgWyJw== dependencies: it-peekable "^3.0.0" -it-first@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/it-first/-/it-first-3.0.2.tgz#6186a40ca52c6212815177346a784c1db1034cbb" - integrity sha512-QPLAM2BOkait/o6W25HvP0XTEv+Os3Ce4wET//ADNaPv+WYAHWfQwJuMu5FB8X066hA1F7LEMnULvTpE7/4yQw== - it-foreach@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/it-foreach/-/it-foreach-2.0.3.tgz#40c96680d9875805203f61fdd1064b7190a17e5a" @@ -9474,17 +9432,6 @@ it-foreach@^2.0.3: dependencies: it-peekable "^3.0.0" -it-handshake@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/it-handshake/-/it-handshake-4.1.3.tgz#4e6650f8eff5cb3686c6861958645289fb3dc32a" - integrity sha512-V6Lt9A9usox9iduOX+edU1Vo94E6v9Lt9dOvg3ubFaw1qf5NCxXLi93Ao4fyCHWDYd8Y+DUhadwNtWVyn7qqLg== - dependencies: - it-pushable "^3.1.0" - it-reader "^6.0.1" - it-stream-types "^2.0.1" - p-defer "^4.0.0" - uint8arraylist "^2.0.0" - it-length-prefixed-stream@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/it-length-prefixed-stream/-/it-length-prefixed-stream-1.0.2.tgz#dbcb291118fc9cf031c89ab4be3f99cdb452f548" @@ -9496,7 +9443,18 @@ it-length-prefixed-stream@^1.0.0: uint8-varint "^2.0.1" uint8arraylist "^2.4.1" -it-length-prefixed@^9.0.1: +it-length-prefixed-stream@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/it-length-prefixed-stream/-/it-length-prefixed-stream-1.1.4.tgz#5e5a73685e820366d9a9dd944decef55b46f09ef" + integrity sha512-6YcQ5jsaYnuXBqF+oSGjSdSY9jF7HWl7yh+dxYytXxbE2GcdiOpn6pLM7m6AlIID9MCzQqMY5nOzaiatQ8A3/A== + dependencies: + it-byte-stream "^1.0.0" + it-length-prefixed "^9.0.1" + it-stream-types "^2.0.1" + uint8-varint "^2.0.1" + uint8arraylist "^2.4.1" + +it-length-prefixed@^9.0.1, it-length-prefixed@^9.0.3: version "9.0.3" resolved "https://registry.yarnpkg.com/it-length-prefixed/-/it-length-prefixed-9.0.3.tgz#73af16f786cab60a0a9bfc2997e88eb26d3a72ca" integrity sha512-YAu424ceYpXctxtjcLOqn7vJq082CaoP8J646ZusYISfQc3bpzQErgTUqMFj81V262KG2W9/YMBHsy6A/4yvmg== @@ -9508,7 +9466,7 @@ it-length-prefixed@^9.0.1: uint8arraylist "^2.0.0" uint8arrays "^4.0.2" -it-map@^3.0.1, it-map@^3.0.3: +it-map@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/it-map/-/it-map-3.0.3.tgz#42be39fc68dc9b0d70cfd8ac4b8311d4b5cd7f22" integrity sha512-Yf89GJYeYUZb2NZzWkvFHm3IBXlxro74i2vGRmpf8BYau3BhlaS37ieDenJEdYzkTGJhL/EbM1jPPw/KGVVVIw== @@ -9522,6 +9480,13 @@ it-merge@^3.0.0: dependencies: it-pushable "^3.1.0" +it-merge@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/it-merge/-/it-merge-3.0.3.tgz#c7d407c8e0473accf7f9958ce2e0f60276002e84" + integrity sha512-FYVU15KC5pb/GQX1Ims+lee8d4pdqGVCpWr0lkNj8o4xuNo7jY71k6GuEiWdP+T7W1bJqewSxX5yoTy5yZpRVA== + dependencies: + it-pushable "^3.2.0" + it-pair@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/it-pair/-/it-pair-2.0.6.tgz#072defa6b96f611af34e0b0c84573107ddb9f28f" @@ -9530,10 +9495,10 @@ it-pair@^2.0.6: it-stream-types "^2.0.1" p-defer "^4.0.0" -it-parallel@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/it-parallel/-/it-parallel-3.0.3.tgz#b02f1d6459418c7253ecf13e367111560a616491" - integrity sha512-Q5KmdvERHCOLDcgKqrzQ+yiMCdG6H9h7ZL3Zjx/Tx9xhZy8txSKoy+EiCgWZFs0rfYvxJhk6UkOpKLzJ1zM9ZA== +it-parallel@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/it-parallel/-/it-parallel-3.0.6.tgz#d8f9efa56dac5f960545b3a148d2ca171694d228" + integrity sha512-i7UM7I9LTkDJw3YIqXHFAPZX6CWYzGc+X3irdNrVExI4vPazrJdI7t5OqrSVN8CONXLAunCiqaSV/zZRbQR56A== dependencies: p-defer "^4.0.0" @@ -9551,10 +9516,10 @@ it-pipe@^3.0.0, it-pipe@^3.0.1: it-pushable "^3.1.2" it-stream-types "^2.0.1" -it-protobuf-stream@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/it-protobuf-stream/-/it-protobuf-stream-1.0.2.tgz#e8bdcc1f67b43f11090cc81f5a4931474fc37f87" - integrity sha512-2lESJIeZS2ZlYJc/1SKs6LL4Y83rCCvZv750xV1e4uuP9114yNkw2MhIGCtSReg+qNWCvzGqOwjQbKV0LFE6wQ== +it-protobuf-stream@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/it-protobuf-stream/-/it-protobuf-stream-1.1.1.tgz#cc303ac31b9de768d24288b0898c18ebd7624868" + integrity sha512-H7fiC+m85AAz84I8SQOKHKZTDREFrsYfKxEhWTlhAdySoUyiC72Xe2ocqBFy3zUWCGYq6rCTMGnCbTKntSlcog== dependencies: it-length-prefixed-stream "^1.0.0" it-stream-types "^2.0.1" @@ -9573,6 +9538,13 @@ it-pushable@^3.2.0: dependencies: p-defer "^4.0.0" +it-pushable@^3.2.1, it-pushable@^3.2.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-3.2.3.tgz#e2b80aed90cfbcd54b620c0a0785e546d4e5f334" + integrity sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg== + dependencies: + p-defer "^4.0.0" + it-reader@^6.0.1: version "6.0.4" resolved "https://registry.yarnpkg.com/it-reader/-/it-reader-6.0.4.tgz#439cb88225dcd15116be0ffde9e846a928c3871a" @@ -10102,56 +10074,32 @@ libnpmpublish@7.3.0: sigstore "^1.4.0" ssri "^10.0.1" -libp2p@0.46.12: - version "0.46.12" - resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-0.46.12.tgz#de913134c7f5d98e59bfe0356b0067e881985a76" - integrity sha512-LPEfSVW/tsFNaUplNo/QqDsg9C7wed+lBGPUUhUsRcnPnKQTqZnKBpA9pSv2+A0ST9B++uiyCOk+JK7nIlpjeA== - dependencies: - "@achingbrain/nat-port-mapper" "^1.0.9" - "@libp2p/crypto" "^2.0.4" - "@libp2p/interface" "^0.1.2" - "@libp2p/interface-internal" "^0.1.5" - "@libp2p/keychain" "^3.0.4" - "@libp2p/logger" "^3.0.2" - "@libp2p/multistream-select" "^4.0.2" - "@libp2p/peer-collections" "^4.0.4" - "@libp2p/peer-id" "^3.0.2" - "@libp2p/peer-id-factory" "^3.0.4" - "@libp2p/peer-record" "^6.0.5" - "@libp2p/peer-store" "^9.0.5" - "@libp2p/utils" "^4.0.3" - "@multiformats/mafmt" "^12.1.2" - "@multiformats/multiaddr" "^12.1.5" - "@multiformats/multiaddr-matcher" "^1.0.0" +libp2p@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/libp2p/-/libp2p-1.1.1.tgz#a57f4793ee87a0eba67a3f039724c79ad1b24224" + integrity sha512-577X5MPRH5vhJzWPLNbXg5EdWNuTzZG90HHTaCFGdrzYLyrGcQWb4RK4Ji3dZALYmx6NmuwTkZv5oojnu2ayng== + dependencies: + "@libp2p/crypto" "^3.0.4" + "@libp2p/interface" "^1.1.1" + "@libp2p/interface-internal" "^1.0.5" + "@libp2p/logger" "^4.0.4" + "@libp2p/multistream-select" "^5.1.1" + "@libp2p/peer-collections" "^5.1.3" + "@libp2p/peer-id" "^4.0.4" + "@libp2p/peer-id-factory" "^4.0.3" + "@libp2p/peer-store" "^10.0.5" + "@libp2p/utils" "^5.2.0" + "@multiformats/multiaddr" "^12.1.10" any-signal "^4.1.1" datastore-core "^9.0.1" - delay "^6.0.0" interface-datastore "^8.2.0" - it-all "^3.0.2" - it-drain "^3.0.2" - it-filter "^3.0.1" - it-first "^3.0.1" - it-handshake "^4.1.3" - it-length-prefixed "^9.0.1" - it-map "^3.0.3" it-merge "^3.0.0" - it-pair "^2.0.6" - it-parallel "^3.0.0" - it-pipe "^3.0.1" - it-protobuf-stream "^1.0.0" - it-stream-types "^2.0.1" + it-parallel "^3.0.6" merge-options "^3.0.4" - multiformats "^12.0.1" - p-defer "^4.0.0" - p-queue "^7.3.4" - p-retry "^6.0.0" - private-ip "^3.0.0" - protons-runtime "^5.0.0" - rate-limiter-flexible "^3.0.0" - uint8arraylist "^2.4.3" - uint8arrays "^4.0.6" - wherearewe "^2.0.1" - xsalsa20 "^1.1.0" + multiformats "^13.0.0" + private-ip "^3.0.1" + rate-limiter-flexible "^4.0.0" + uint8arrays "^5.0.0" light-my-request@^5.9.1: version "5.10.0" @@ -10345,7 +10293,7 @@ lodash.zip@^4.2.0: resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" integrity sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg== -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.17.4: +lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -10421,6 +10369,11 @@ lowercase-keys@^3.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== +lru-cache@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -10888,24 +10841,17 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: - version "3.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== - dependencies: - yallist "^4.0.0" - -minipass@^3.1.6: - version "3.3.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.3.tgz#fd1f0e6c06449c10dadda72618b59c00f3d6378d" - integrity sha512-N0BOsdFAlNRfmwMhjAsLVWOk7Ljmeb39iqFlsV1At+jqRhSUP9yeof8FyJu4imaJiSUp8vQebWD/guZwGQC8iA== +minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" minipass@^4.0.0, minipass@^4.2.4: - version "4.2.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.5.tgz#9e0e5256f1e3513f8c34691dd68549e85b2c8ceb" - integrity sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q== + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== minipass@^5.0.0: version "5.0.0" @@ -10913,9 +10859,9 @@ minipass@^5.0.0: integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== "minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.2.tgz#58a82b7d81c7010da5bd4b2c0c85ac4b4ec5131e" - integrity sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA== + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" @@ -11035,8 +10981,8 @@ mrmime@^1.0.0: ms@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -11056,17 +11002,7 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -multiformats@^10.0.0: - version "10.0.2" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-10.0.2.tgz#e549ae833dac77edb534bece4adf1d1a214879f0" - integrity sha512-nJEHLFOYhO4L+aNApHhCnWqa31FyqAHv9Q77AhmwU3KsM2f1j7tuJpCk5ByZ33smzycNCpSG5klNIejIyfFx2A== - -multiformats@^11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.1.tgz#ba58c3f69f032ab67dab4b48cc70f01ac2ca07fe" - integrity sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA== - -multiformats@^11.0.1, multiformats@^11.0.2: +multiformats@^11.0.1: version "11.0.2" resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-11.0.2.tgz#b14735efc42cd8581e73895e66bebb9752151b60" integrity sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg== @@ -11076,6 +11012,16 @@ multiformats@^12.0.1: resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-12.0.1.tgz#dd3e19dd44114c2672e4795a36888d263be30131" integrity sha512-s01wijBJoDUqESWSzePY0lvTw7J3PVO9x2Cc6ASI5AMZM2Gnhh7BC17+nlFhHKU7dDzaCaRfb+NiqNzOsgPUoQ== +multiformats@^12.1.3: + version "12.1.3" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-12.1.3.tgz#cbf7a9861e11e74f8228b21376088cb43ba8754e" + integrity sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw== + +multiformats@^13.0.0: + version "13.0.1" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-13.0.1.tgz#c0622affa5171189eacd57c06f977195ca7acb08" + integrity sha512-bt3R5iXe2O8xpp3wkmQhC73b/lC4S2ihU8Dndwcsysqbydqb8N+bpP116qMcClZ17g58iSIwtXUTcg2zT4sniA== + multimatch@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" @@ -11122,6 +11068,11 @@ nanoid@^4.0.0: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.2.tgz#140b3c5003959adbebf521c170f282c5e7f9fb9e" integrity sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw== +nanoid@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.0.3.tgz#6c97f53d793a7a1de6a38ebb46f50f95bf9793c7" + integrity sha512-I7X2b22cxA4LIHXPSqbBCEQSL+1wv8TuoefejsX4HFWyC6jc5JG7CEaxOltiKjc1M+YCS2YkrZZcj4+dytw9GA== + napi-macros@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz" @@ -11981,12 +11932,12 @@ p-queue@^7.2.0: eventemitter3 "^4.0.7" p-timeout "^5.0.2" -p-queue@^7.3.4: - version "7.3.4" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-7.3.4.tgz#7ef7d89b6c1a0563596d98adbc9dc404e9ed4a84" - integrity sha512-esox8CWt0j9EZECFvkFl2WNPat8LN4t7WWeXq73D9ha0V96qPRufApZi4ZhPwXAln1uVVal429HVVKPa2X0yQg== +p-queue@^7.4.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-7.4.1.tgz#7f86f853048beca8272abdbb7cec1ed2afc0f265" + integrity sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA== dependencies: - eventemitter3 "^4.0.7" + eventemitter3 "^5.0.1" p-timeout "^5.0.2" p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0: @@ -11994,15 +11945,6 @@ p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0: resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== -p-retry@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-6.1.0.tgz#ea5c188f9f818a5bfa89a27bdf043c74fa9be472" - integrity sha512-fJLEQ2KqYBJRuaA/8cKMnqhulqNM+bpcjYtXNex2t3mOXKRYPitAJt9NacSf8XAFzcYahSAbKpobiWDSqHSh2g== - dependencies: - "@types/retry" "0.12.2" - is-network-error "^1.0.0" - retry "^0.13.1" - p-timeout@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -12020,11 +11962,6 @@ p-timeout@^6.0.0: resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.1.tgz#bcee5e37d730f5474d973b6ff226751a1a5e6ff1" integrity sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w== -p-timeout@^6.1.1: - version "6.1.2" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-6.1.2.tgz#22b8d8a78abf5e103030211c5fc6dee1166a6aa5" - integrity sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ== - p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" @@ -12367,11 +12304,6 @@ pkg-types@^1.0.3: mlly "^1.2.0" pathe "^1.1.0" -platform@^1.3.3: - version "1.3.6" - resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" - integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== - postcss@^8.4.32: version "8.4.32" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" @@ -12407,14 +12339,14 @@ pretty-format@^29.7.0: ansi-styles "^5.0.0" react-is "^18.0.0" -private-ip@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-3.0.0.tgz#a65d10e2db06f6bb2f97f716f1a8976a3460a4a6" - integrity sha512-HkMBs4nMtrP+cvcw0bDi2BAZIGgiKI4Zq8Oc+dMqNBpHS8iGL4+WO/pRtc8Bwnv9rjnV0QwMDwEBymFtqv7Kww== +private-ip@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/private-ip/-/private-ip-3.0.1.tgz#1fa8108f53512c6b82f79d4d2ac665140dee5da5" + integrity sha512-Ezc16ANuhSHmWAE6lbXUKburNzGpR0J5X0Zh5Um/PZ/s57Fp+HYqYe6BYPH2QbqKr/5WebfzJQ1jq6Kj5dbRmA== dependencies: "@chainsafe/is-ip" "^2.0.1" ip-regex "^5.0.0" - ipaddr.js "^2.0.1" + ipaddr.js "^2.1.0" netmask "^2.0.2" proc-log@^3.0.0: @@ -12444,16 +12376,22 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== +progress-events@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/progress-events/-/progress-events-1.0.0.tgz#34f5e8fdb5dae3561837b22672d1e02277bb2109" + integrity sha512-zIB6QDrSbPfRg+33FZalluFIowkbV5Xh1xSuetjG+rlC5he6u2dc6VQJ0TbMdlN3R1RHdpOqxEFMKTnQ+itUwA== + progress@2.0.3, progress@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== -prom-client@^14.2.0: - version "14.2.0" - resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-14.2.0.tgz#ca94504e64156f6506574c25fb1c34df7812cf11" - integrity sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA== +prom-client@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-15.0.0.tgz#067da874a2aa5d2e21bd5cdba9f24a8178bdab6a" + integrity sha512-UocpgIrKyA2TKLVZDSfm8rGkL13C19YrQBAiG3xo3aDFWcHedxRxI3z+cIcucoxpSO0h5lff5iv/SXoxyeopeA== dependencies: + "@opentelemetry/api" "^1.4.0" tdigest "^0.1.1" prom-client@^15.1.0: @@ -12717,7 +12655,12 @@ quick-lru@^5.1.1: resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -race-signal@^1.0.0: +race-event@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/race-event/-/race-event-1.1.0.tgz#69c2d855653acf11d8b23ea8f6fa50e1180a088b" + integrity sha512-8BTiN6IAbov8mqkVEc3LiYbtUzanLfzFhwPF7kZV74ztYeQXdFPIgMCd/sy8xie6ZMtf2JPeMBedx78/RRNO3g== + +race-signal@^1.0.1, race-signal@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/race-signal/-/race-signal-1.0.2.tgz#e42379fba0cec4ee8dab7c9bbbd4aa6e0d14c25f" integrity sha512-o3xNv0iTcIDQCXFlF6fPAMEBRjFxssgGoRqLbg06m+AdzEXXLUmoNOoUHTVz2NoBI8hHwKFKoC6IqyNtWr2bww== @@ -12747,10 +12690,10 @@ range-parser@^1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rate-limiter-flexible@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-3.0.0.tgz#1dba6de44d4d5a5e6494774c2ff7657e82856673" - integrity sha512-janAJkWxWxmLka0hV+XvCTo0M8keeSeOuz8ZL33cTXrkS4ek9mQ2VJm9ri7fm03oTVth19Sfqb1ijCmo7K/vAg== +rate-limiter-flexible@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-4.0.0.tgz#4754706216f0b442e7527b1367e42b7682145010" + integrity sha512-SkA18LEPqJJKHixi6E7tzBKTXbj9gu5wPyfTykPVRZR5JGSw0dMCjtZsjlfuabVY940pu28Wu87NZN4FhztnyQ== raw-body@2.5.1: version "2.5.1" @@ -13080,7 +13023,7 @@ ret@~0.2.0: resolved "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz" integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== -retry@0.13.1, retry@^0.13.1: +retry@0.13.1: version "0.13.1" resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== @@ -13294,13 +13237,6 @@ safe-stable-stringify@^2.3.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sanitize-filename@^1.6.3: - version "1.6.3" - resolved "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - sax@1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz" @@ -14503,13 +14439,6 @@ triple-beam@^1.2.0, triple-beam@^1.3.0: resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz" integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= - dependencies: - utf8-byte-length "^1.0.1" - ts-api-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" @@ -14796,41 +14725,34 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.2.tgz#f55f668b9a64b213977ae688703b6bbb7ca861c6" integrity sha512-bbxglRjsGQMchfvXZNusUcYgiB9Hx2K4AHYXQy2DITZ9Rd+JzhX7+hoocE5Winr7z2oHvPsekkBwXtigvxevXg== -uint8-varint@^2.0.0, uint8-varint@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-2.0.1.tgz#e8f73c24974b384f6f0e1cd73c884c5a19e32f53" - integrity sha512-euvmpuulJstK5+xNuI4S1KfnxJnbI5QP52RXIR3GZ3/ZMkOsEK2AgCtFpNvEQLXMxMx2o0qcyevK1fJwOZJagQ== +uint8-varint@^2.0.0, uint8-varint@^2.0.1, uint8-varint@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-2.0.3.tgz#049fceb3e870757dec26b29633770900f3132233" + integrity sha512-seXTM8ba4uuAMDgi3UHXPdDxCBKjWWZigW+F+1ESPhOZv9ekT1qmbdzYHLSNA+u+wHj10P55dQ41y2Qh7NOqiA== dependencies: uint8arraylist "^2.0.0" - uint8arrays "^4.0.2" - -uint8arraylist@^2.0.0, uint8arraylist@^2.4.1, uint8arraylist@^2.4.3: - version "2.4.3" - resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-2.4.3.tgz#1148aa979b407d382e4eb8d9c8f2b4bf3f5910d5" - integrity sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow== - dependencies: - uint8arrays "^4.0.2" + uint8arrays "^5.0.0" -uint8arrays@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.2.tgz#163bdbcf3f7403b0781754e0436c268548b237c2" - integrity sha512-8CWXXZdOvVrIL4SeY/Gnp+idxxiGK4XFkP4FY26Sx/fpTz/b6vv4BVWELMDzQweSyyhdcuAcU14H6izzB6k1Cw== +uint8arraylist@^2.0.0, uint8arraylist@^2.4.1, uint8arraylist@^2.4.3, uint8arraylist@^2.4.7: + version "2.4.8" + resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-2.4.8.tgz#5a4d17f4defd77799cb38e93fd5db0f0dceddc12" + integrity sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ== dependencies: - multiformats "^10.0.0" + uint8arrays "^5.0.1" -uint8arrays@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.3.tgz#43109c03c4c10d312e7f2e9f4d53e5cd2398c7fd" - integrity sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg== +uint8arrays@^4.0.2, uint8arrays@^4.0.4, uint8arrays@^4.0.6, uint8arrays@^4.0.9: + version "4.0.10" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.10.tgz#3ec5cde3348903c140e87532fc53f46b8f2e921f" + integrity sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA== dependencies: - multiformats "^11.0.0" + multiformats "^12.0.1" -uint8arrays@^4.0.4, uint8arrays@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-4.0.6.tgz#bae68b536c2e87147045b95d73d29e503e45ecab" - integrity sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw== +uint8arrays@^5.0.0, uint8arrays@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-5.0.1.tgz#6016ef944379eabb6de605934ead4d7a698c9f07" + integrity sha512-ND5RpJAnPgHmZT7hWD/2T4BwRp04j8NLKvMKC/7bhiEwEjUMkQ4kvBKiH6hOqbljd6qJ2xS8reL3vl1e33grOQ== dependencies: - multiformats "^12.0.1" + multiformats "^13.0.0" unbox-primitive@^1.0.0, unbox-primitive@^1.0.2: version "1.0.2" @@ -14992,11 +14914,6 @@ userhome@1.0.0: resolved "https://registry.yarnpkg.com/userhome/-/userhome-1.0.0.tgz#b6491ff12d21a5e72671df9ccc8717e1c6688c0b" integrity sha512-ayFKY3H+Pwfy4W98yPdtH1VqH4psDeyW8lYYFzfecR9d6hqLpqhecktvYR3SEEXt7vG0S1JEpciI3g94pMErig== -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -15046,7 +14963,7 @@ utils-merge@1.0.1: uuid@3.3.2: version "3.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== uuid@8.3.2, uuid@^8.0.0, uuid@^8.3.0, uuid@^8.3.2: @@ -15138,6 +15055,17 @@ vite-node@1.1.0: picocolors "^1.0.0" vite "^5.0.0" +vite-node@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.2.0.tgz#9a359804469203a54ac49daad3065f2fd0bfb9c3" + integrity sha512-ETnQTHeAbbOxl7/pyBck9oAPZZZo+kYnFt1uQDD+hPReOc+wCjXw4r4jHriBRuVDB5isHmPXxrfc1yJnfBERqg== + dependencies: + cac "^6.7.14" + debug "^4.3.4" + pathe "^1.1.1" + picocolors "^1.0.0" + vite "^5.0.0" + vite-plugin-node-polyfills@^0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.18.0.tgz#2ad147960f7a35dbbb1c9f9c1ae928bd0f438c1e" @@ -15171,6 +15099,33 @@ vitest-when@^0.3.0: resolved "https://registry.yarnpkg.com/vitest-when/-/vitest-when-0.3.0.tgz#663d4274f1e7302bd24ec00dda8269d20b2eff04" integrity sha512-wYfmzd+GkvdNNhbeb/40PnKpetUP5I7qxvdbu1OAXRXaLrnLfSrJTa/dMIbqqrc8SA0vhonpw5p0RHDXwhDM1Q== +vitest@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.2.0.tgz#2ddff4a32ed992339655f243525c0e187b5af6d9" + integrity sha512-Ixs5m7BjqvLHXcibkzKRQUvD/XLw0E3rvqaCMlrm/0LMsA0309ZqYvTlPzkhh81VlEyVZXFlwWnkhb6/UMtcaQ== + dependencies: + "@vitest/expect" "1.2.0" + "@vitest/runner" "1.2.0" + "@vitest/snapshot" "1.2.0" + "@vitest/spy" "1.2.0" + "@vitest/utils" "1.2.0" + acorn-walk "^8.3.1" + cac "^6.7.14" + chai "^4.3.10" + debug "^4.3.4" + execa "^8.0.1" + local-pkg "^0.5.0" + magic-string "^0.30.5" + pathe "^1.1.1" + picocolors "^1.0.0" + std-env "^3.5.0" + strip-literal "^1.3.0" + tinybench "^2.5.1" + tinypool "^0.8.1" + vite "^5.0.0" + vite-node "1.2.0" + why-is-node-running "^2.2.2" + vitest@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.1.0.tgz#47ba67c564aa137b53b0197d2a992908e7f5b04d" @@ -15868,7 +15823,7 @@ xml2js@0.4.19: sax ">=0.6.0" xmlbuilder "~9.0.1" -xml2js@^0.4.19, xml2js@^0.4.23: +xml2js@^0.4.19: version "0.4.23" resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== @@ -15876,14 +15831,6 @@ xml2js@^0.4.19, xml2js@^0.4.23: sax ">=0.6.0" xmlbuilder "~11.0.0" -xml2js@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.6.0.tgz#07afc447a97d2bd6507a1f76eeadddb09f7a8282" - integrity sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - xmlbuilder@~11.0.0: version "11.0.1" resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" @@ -15899,11 +15846,6 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xsalsa20@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.1.0.tgz" - integrity sha512-zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw== - xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"