From 8f332cbe3d14d46e226241989fb1f19102d992f8 Mon Sep 17 00:00:00 2001 From: drhongos Date: Tue, 6 Jun 2023 19:33:10 +0200 Subject: [PATCH] bumping libp2p by https://github.com/libp2p/universal-connectivity/pull/73 --- improvements_dforms.md | 13 - package-lock.json | 1810 +++++------------ packages/frontend/next.config.js | 1 + packages/frontend/package.json | 9 +- packages/frontend/src/components/chat.tsx | 11 +- .../frontend/src/components/peerControl.tsx | 60 +- .../frontend/src/components/topicsControl.tsx | 5 +- packages/frontend/src/context/ctx.tsx | 11 +- .../src/context/listen-addresses-ctx.tsx | 34 + packages/frontend/src/lib/libp2p.ts | 93 +- 10 files changed, 654 insertions(+), 1393 deletions(-) create mode 100644 packages/frontend/src/context/listen-addresses-ctx.tsx diff --git a/improvements_dforms.md b/improvements_dforms.md index 38c91157..82fc4fea 100644 --- a/improvements_dforms.md +++ b/improvements_dforms.md @@ -20,19 +20,6 @@ - validar en server: Public Message: At [datetime] the node [peerId] was validated as [account] -bumped libp2p and other dependencies - - no hay relayer activado, FIXME - - needs to ts-ignore a lot of conditioned stuff in components - - BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG - helia uses ipfs-bitswap that inside implements - "@libp2p/interface-libp2p": "^3.1.0", - helia uses "^3.2.0" - that changes considerable the Libp2p type ! - - try to check if it works (it breaks) - - bump ipfs-bitswap dependency (locally (try again)) - BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG BUG - - firmar el nodo libp2p para verificar en server https://wagmi.sh/react/hooks/useSignMessage diff --git a/package-lock.json b/package-lock.json index 4db9b064..19785f57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -142,48 +142,6 @@ "npm": ">=8.7.0" } }, - "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/interface-peer-store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", - "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-gossipsub/node_modules/abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "dependencies": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/it-length-prefixed": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz", @@ -273,54 +231,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@chainsafe/libp2p-yamux/node_modules/@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-yamux/node_modules/@libp2p/interface-stream-muxer": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-4.1.2.tgz", - "integrity": "sha512-dQJcn67UaAa8YQFRJDhbo4uT453z/2lCzD/ZwTk1YOqJxATXbXgVcB8dXDQFEUiUX3ZjVQ1IBu+NlQd+IZ++zw==", - "dependencies": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interfaces": "^3.0.0", - "@libp2p/logger": "^2.0.7", - "abortable-iterator": "^5.0.1", - "any-signal": "^4.1.1", - "it-pushable": "^3.1.3", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@chainsafe/libp2p-yamux/node_modules/abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "dependencies": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@chainsafe/libp2p-yamux/node_modules/it-pipe": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-3.0.1.tgz", @@ -1305,19 +1215,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/bootstrap/node_modules/@libp2p/interface-peer-store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", - "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/crypto": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-1.0.15.tgz", @@ -1339,11 +1236,10 @@ } }, "node_modules/@libp2p/interface-address-manager": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-2.0.5.tgz", - "integrity": "sha512-e2vLstKkYlAG2PZe6SEBpnnP2Y/ej6URue+zAiyjJPuXoOGNzHyLaqcv7MKye171OEf9dg5wv1gFphWcUJJbSA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-3.0.1.tgz", + "integrity": "sha512-8N1nfOtZ/CnZ/cL0Bnj59fhcSs7orI4evmNVsv2DM1VaNHXqc9tPy8JmQE2HRjrUXeUPwtzzG2eoP7l0ZYdC0g==", "dependencies": { - "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^12.0.0" }, "engines": { @@ -1352,15 +1248,15 @@ } }, "node_modules/@libp2p/interface-connection": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.1.1.tgz", - "integrity": "sha512-+hxfYLv4jf+MruQEJiJeIyo/wI33/53wRL0XJTkxwQQPAkLHfZWCUY4kY9sXALd3+ASjXAENvJj9VvzZTlkRDQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", + "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" + "it-stream-types": "^2.0.1", + "uint8arraylist": "^2.4.3" }, "engines": { "node": ">=16.0.0", @@ -1395,31 +1291,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-connection-gater/node_modules/@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection-gater/node_modules/it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/interface-connection-manager": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-3.0.1.tgz", @@ -1436,23 +1307,7 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-connection-manager/node_modules/@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-connection-manager/node_modules/it-stream-types": { + "node_modules/@libp2p/interface-connection/node_modules/it-stream-types": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", @@ -1536,92 +1391,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-libp2p/node_modules/@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-libp2p/node_modules/@libp2p/interface-peer-store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", - "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-libp2p/node_modules/@libp2p/interface-stream-muxer": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-4.1.2.tgz", - "integrity": "sha512-dQJcn67UaAa8YQFRJDhbo4uT453z/2lCzD/ZwTk1YOqJxATXbXgVcB8dXDQFEUiUX3ZjVQ1IBu+NlQd+IZ++zw==", - "dependencies": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interfaces": "^3.0.0", - "@libp2p/logger": "^2.0.7", - "abortable-iterator": "^5.0.1", - "any-signal": "^4.1.1", - "it-pushable": "^3.1.3", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-libp2p/node_modules/@libp2p/interface-transport": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-4.0.3.tgz", - "integrity": "sha512-jXFQ3blhFMEyQbFw/U8Glo3F/fUO5LEaX5HIdeqNpCliK+XnwTfpkcaG+WsJrcApWK4FFyUHc+GGqiWR0hAFFg==", - "dependencies": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interface-stream-muxer": "^4.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-libp2p/node_modules/abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "dependencies": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-libp2p/node_modules/it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/interface-metrics": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-4.0.8.tgz", @@ -1634,31 +1403,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-metrics/node_modules/@libp2p/interface-connection": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.0.1.tgz", - "integrity": "sha512-SnGIXQLMydRh+xuuGNI7BPHfZ6+jn0z5FKKiCrUZ4vJBqnsyBQoEsg24Z+dl9P9JSRRRuYUcfJexBirInNf92w==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.1.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-metrics/node_modules/it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/interface-peer-discovery": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.0.5.tgz", @@ -1712,14 +1456,11 @@ } }, "node_modules/@libp2p/interface-peer-store": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-1.2.9.tgz", - "integrity": "sha512-jAAlbP1NXpEJOG6Dbr0QdP71TBYjHBc/65Ulwdn4J4f04PW1bI4JIMQeq6+/sLfaGVryvvUT/a52io8UUtB21Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", + "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interface-record": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^12.0.0" }, "engines": { @@ -1743,31 +1484,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-pubsub/node_modules/@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-pubsub/node_modules/it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/interface-record": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@libp2p/interface-record/-/interface-record-2.0.6.tgz", @@ -1794,14 +1510,17 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-registrar/node_modules/@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", + "node_modules/@libp2p/interface-stream-muxer": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-4.1.2.tgz", + "integrity": "sha512-dQJcn67UaAa8YQFRJDhbo4uT453z/2lCzD/ZwTk1YOqJxATXbXgVcB8dXDQFEUiUX3ZjVQ1IBu+NlQd+IZ++zw==", "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/interface-connection": "^5.0.0", "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", + "@libp2p/logger": "^2.0.7", + "abortable-iterator": "^5.0.1", + "any-signal": "^4.1.1", + "it-pushable": "^3.1.3", "it-stream-types": "^2.0.1", "uint8arraylist": "^2.4.3" }, @@ -1810,7 +1529,7 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-registrar/node_modules/it-stream-types": { + "node_modules/@libp2p/interface-stream-muxer/node_modules/it-stream-types": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", @@ -1819,63 +1538,26 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-stream-muxer": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.6.tgz", - "integrity": "sha512-wbLrH/bdF8qe0CpPd3BFMSmUs085vc3/8zx5uhXJySD672enAc8Jw9gmAYd1pIqELdqJqBDg9EI0y1XMRxvVkw==", - "dependencies": { - "@libp2p/interface-connection": "^4.0.0", - "@libp2p/interfaces": "^3.0.0", - "it-stream-types": "^1.0.4" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/interface-stream-muxer/node_modules/@libp2p/interface-connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/interface-transport": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-2.1.3.tgz", - "integrity": "sha512-ez+0X+w2Wyw3nJY6mP0DHFgrRnln/miAH4TJLcRfUSJHjGXH5ZfpuK1TnRxXpEUiqOezSbwke06/znI27KpRiQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-4.0.3.tgz", + "integrity": "sha512-jXFQ3blhFMEyQbFw/U8Glo3F/fUO5LEaX5HIdeqNpCliK+XnwTfpkcaG+WsJrcApWK4FFyUHc+GGqiWR0hAFFg==", "dependencies": { - "@libp2p/interface-connection": "^4.0.0", - "@libp2p/interface-stream-muxer": "^3.0.0", + "@libp2p/interface-connection": "^5.0.0", + "@libp2p/interface-stream-muxer": "^4.0.0", "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4" + "it-stream-types": "^2.0.1" }, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, - "node_modules/@libp2p/interface-transport/node_modules/@libp2p/interface-connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" - }, + "node_modules/@libp2p/interface-transport/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1891,21 +1573,22 @@ } }, "node_modules/@libp2p/kad-dht": { - "version": "8.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-8.0.12.tgz", - "integrity": "sha512-bb1MlBSFkGvNOHq79tod0B8k/+4Sl8QmPgc6LAoV8jTeEX+DDVjAZ+D3BHiiZ8//nJ5w4sJTTzUJxHgyEg0HJw==", + "version": "9.3.6", + "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-9.3.6.tgz", + "integrity": "sha512-17ZNl4saDpHUu8Y72Gm9A4zdusoNYQcY4FO0vDynJnXlxWk2EruBqMExbqnCWR76d/lsufOs7GQnqIJzOdz7eg==", "dependencies": { "@libp2p/crypto": "^1.0.4", - "@libp2p/interface-address-manager": "^2.0.0", + "@libp2p/interface-address-manager": "^3.0.0", "@libp2p/interface-connection": "^5.0.1", - "@libp2p/interface-connection-manager": "^2.0.0", - "@libp2p/interface-dht": "^2.0.0", + "@libp2p/interface-connection-manager": "^3.0.0", + "@libp2p/interface-content-routing": "^2.1.0", "@libp2p/interface-metrics": "^4.0.0", - "@libp2p/interface-peer-discovery": "^1.0.1", + "@libp2p/interface-peer-discovery": "^2.0.0", "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interface-peer-info": "^1.0.3", - "@libp2p/interface-peer-store": "^1.2.2", - "@libp2p/interface-registrar": "^2.0.3", + "@libp2p/interface-peer-routing": "^1.1.0", + "@libp2p/interface-peer-store": "^2.0.0", + "@libp2p/interface-registrar": "^2.0.11", "@libp2p/interfaces": "^3.2.0", "@libp2p/logger": "^2.0.1", "@libp2p/peer-collections": "^3.0.0", @@ -1913,9 +1596,11 @@ "@libp2p/record": "^3.0.0", "@libp2p/topology": "^4.0.0", "@multiformats/multiaddr": "^12.0.0", + "@types/sinon": "^10.0.14", "abortable-iterator": "^5.0.1", "any-signal": "^4.1.1", "datastore-core": "^9.0.1", + "events": "^3.3.0", "hashlru": "^2.3.0", "interface-datastore": "^8.0.0", "it-all": "^3.0.1", @@ -1929,11 +1614,12 @@ "it-pipe": "^3.0.0", "it-stream-types": "^2.0.1", "it-take": "^3.0.1", - "k-bucket": "^5.1.0", "multiformats": "^11.0.0", "p-defer": "^4.0.0", + "p-event": "^5.0.1", "p-queue": "^7.3.4", "private-ip": "^3.0.0", + "progress-events": "^1.0.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.0.0", "uint8arrays": "^4.0.2", @@ -1944,45 +1630,13 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/kad-dht/node_modules/@libp2p/interface-connection": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.0.1.tgz", - "integrity": "sha512-SnGIXQLMydRh+xuuGNI7BPHfZ6+jn0z5FKKiCrUZ4vJBqnsyBQoEsg24Z+dl9P9JSRRRuYUcfJexBirInNf92w==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.1.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/kad-dht/node_modules/@libp2p/interface-connection-manager": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-2.1.1.tgz", - "integrity": "sha512-cIhSRSQs2iHBI8G3vc7Y7cQY2CMYIQYul05qT+or+wZnHdW6CbR44j9s/pPgKLl5cKJPzdLvaEuIY1fTwqnNag==", - "dependencies": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@libp2p/peer-collections": "^3.0.1", - "@multiformats/multiaddr": "^12.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/kad-dht/node_modules/abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", + "node_modules/@libp2p/kad-dht/node_modules/@libp2p/interface-peer-discovery": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-discovery/-/interface-peer-discovery-2.0.0.tgz", + "integrity": "sha512-Mien5t3Tc+ntP5p50acKUYJN90ouMnq1lOTQDKQNvGcXoajG8A1AEYLocnzVia/MXiexuj6S/Q28WBBacoOlBg==", "dependencies": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" + "@libp2p/interface-peer-info": "^1.0.0", + "@libp2p/interfaces": "^3.0.0" }, "engines": { "node": ">=16.0.0", @@ -2088,19 +1742,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/multistream-select/node_modules/abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "dependencies": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/multistream-select/node_modules/it-length-prefixed": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz", @@ -2236,19 +1877,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/peer-store/node_modules/@libp2p/interface-peer-store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", - "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/pubsub": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-7.0.1.tgz", @@ -2278,35 +1906,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/pubsub/node_modules/@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/pubsub/node_modules/abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "dependencies": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@libp2p/pubsub/node_modules/it-length-prefixed": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz", @@ -2409,56 +2008,12 @@ "@libp2p/interface-peer-store": "^2.0.0", "@libp2p/interfaces": "^3.2.0", "@libp2p/logger": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0", - "abortable-iterator": "^5.0.0", - "is-loopback-addr": "^2.0.1", - "it-stream-types": "^2.0.1", - "private-ip": "^3.0.0", - "uint8arraylist": "^2.3.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/utils/node_modules/@libp2p/interface-connection": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.0.1.tgz", - "integrity": "sha512-SnGIXQLMydRh+xuuGNI7BPHfZ6+jn0z5FKKiCrUZ4vJBqnsyBQoEsg24Z+dl9P9JSRRRuYUcfJexBirInNf92w==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.1.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/utils/node_modules/@libp2p/interface-peer-store": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.1.tgz", - "integrity": "sha512-y2JNTbn/kav0JyaEcCN4BFEJwjRIe6AoNDaWl6C69ioGOBykVzTS2MA64u9y+oaj7uSgt4AkZEIWNDFXlz74mA==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/@libp2p/utils/node_modules/abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "dependencies": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" + "@multiformats/multiaddr": "^12.0.0", + "abortable-iterator": "^5.0.0", + "is-loopback-addr": "^2.0.1", + "it-stream-types": "^2.0.1", + "private-ip": "^3.0.0", + "uint8arraylist": "^2.3.2" }, "engines": { "node": ">=16.0.0", @@ -2475,37 +2030,64 @@ } }, "node_modules/@libp2p/webrtc": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-1.1.8.tgz", - "integrity": "sha512-0vCwjXVxAp+tAWUZDoiRik+Nx0kdGR8Nwb8OCuiP+sDn349LkYuG5mr0TpVAw3XmAV0dYCMZ4GFWadZpiuQ9Rw==", - "dependencies": { - "@chainsafe/libp2p-noise": "^11.0.0", - "@libp2p/interface-connection": "^4.0.0", - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-peer-store": "^2.0.0", - "@libp2p/interface-registrar": "^2.0.8", - "@libp2p/interface-stream-muxer": "^3.0.0", - "@libp2p/interface-transport": "^2.0.0", - "@libp2p/interfaces": "^3.2.0", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.1.1", - "@protobuf-ts/runtime": "^2.8.0", - "abortable-iterator": "^4.0.2", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-2.0.6.tgz", + "integrity": "sha512-qHZ0NWq4/332D1YcmHyGDNY3qaMlrMLGX3Lh4CYdRboQRVecBZ/unrSo05Sm7F6n/swsK5s8pl+hvvksalHAJg==", + "dependencies": { + "@chainsafe/libp2p-noise": "^12.0.0", + "@libp2p/interface-connection": "^5.0.2", + "@libp2p/interface-metrics": "^4.0.8", + "@libp2p/interface-peer-id": "^2.0.2", + "@libp2p/interface-registrar": "^2.0.12", + "@libp2p/interface-stream-muxer": "^4.1.2", + "@libp2p/interface-transport": "^4.0.3", + "@libp2p/interfaces": "^3.3.2", + "@libp2p/logger": "^2.0.7", + "@libp2p/peer-id": "^2.0.3", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.2", + "abortable-iterator": "^5.0.1", "detect-browser": "^5.3.0", - "err-code": "^3.0.1", - "it-length-prefixed": "^8.0.3", - "it-merge": "^2.0.0", - "it-pb-stream": "^3.2.1", + "it-length-prefixed": "^9.0.1", + "it-pb-stream": "^4.0.1", "it-pipe": "^3.0.1", - "it-pushable": "^3.1.0", - "it-stream-types": "^1.0.4", + "it-pushable": "^3.1.3", + "it-stream-types": "^2.0.1", "multiformats": "^11.0.2", "multihashes": "^4.0.3", "p-defer": "^4.0.0", + "p-event": "^5.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.3" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/webrtc/node_modules/@chainsafe/libp2p-noise": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-12.0.1.tgz", + "integrity": "sha512-VYuc5a3raIcCmv4F+LOfez7/9rmMgfjNo9h66cspLJKHuWgpzzIRRL9srVth6VC5DMjftExHM0aZv47Tf5govQ==", + "dependencies": { + "@libp2p/crypto": "^1.0.11", + "@libp2p/interface-connection-encrypter": "^4.0.0", + "@libp2p/interface-keys": "^1.0.6", + "@libp2p/interface-metrics": "^4.0.4", + "@libp2p/interface-peer-id": "^2.0.0", + "@libp2p/logger": "^2.0.5", + "@libp2p/peer-id": "^2.0.0", + "@noble/hashes": "^1.3.0", + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/x25519": "^1.0.3", + "it-length-prefixed": "^9.0.1", + "it-pair": "^2.0.2", + "it-pb-stream": "^4.0.1", + "it-pipe": "^3.0.1", + "it-stream-types": "^2.0.1", "protons-runtime": "^5.0.0", - "timeout-abort-controller": "^3.0.0", - "uint8arraylist": "^2.3.3", + "uint8arraylist": "^2.3.2", "uint8arrays": "^4.0.2" }, "engines": { @@ -2513,43 +2095,47 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/webrtc/node_modules/@libp2p/interface-connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", + "node_modules/@libp2p/webrtc/node_modules/@libp2p/interface-connection-encrypter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-4.0.1.tgz", + "integrity": "sha512-fOtZpaFL2f5vID/RaBpVMAR9OKx5DmDT/yMEFTCarNc6Bb37fWwClI4WNCtoVbDQwcnr4H4ZIo0+9yCxjEIjjQ==", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" + "it-stream-types": "^2.0.1" }, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, - "node_modules/@libp2p/webrtc/node_modules/@libp2p/interface-peer-store": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.1.tgz", - "integrity": "sha512-y2JNTbn/kav0JyaEcCN4BFEJwjRIe6AoNDaWl6C69ioGOBykVzTS2MA64u9y+oaj7uSgt4AkZEIWNDFXlz74mA==", + "node_modules/@libp2p/webrtc/node_modules/it-length-prefixed": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz", + "integrity": "sha512-ZBD8ZFLERj8d1q9CeBtk0eJ4EpeI3qwnkmWtemBSm3ZI2dM8PUweNVk5haZ2vw3EIq2uYQiabV9YwNm6EASM4A==", "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0" + "err-code": "^3.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^1.0.1", + "uint8arraylist": "^2.0.0", + "uint8arrays": "^4.0.2" }, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, - "node_modules/@libp2p/webrtc/node_modules/it-merge": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-2.0.1.tgz", - "integrity": "sha512-ItoBy3dPlNKnhjHR8e7nfabfZzH4Jy2OMPvayYH3XHy4YNqSVKmWTIxhz7KX4UMBsLChlIJZ+5j6csJgrYGQtw==", + "node_modules/@libp2p/webrtc/node_modules/it-pb-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/it-pb-stream/-/it-pb-stream-4.0.1.tgz", + "integrity": "sha512-xFYnnChsx4imzxI5eBP31bJ+2+vFYS9akHQNMM8suFd+DKWOqMlxiJvcqZEkciBXCB3Wj8HF8Wyx5baSxn31gg==", "dependencies": { - "it-pushable": "^3.1.0" + "err-code": "^3.0.1", + "it-length-prefixed": "^9.0.0", + "it-pushable": "^3.1.2", + "it-stream-types": "^2.0.1", + "protons-runtime": "^5.0.0", + "uint8-varint": "^1.0.6", + "uint8arraylist": "^2.0.0" }, "engines": { "node": ">=16.0.0", @@ -2582,7 +2168,7 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/webrtc/node_modules/it-pipe/node_modules/it-stream-types": { + "node_modules/@libp2p/webrtc/node_modules/it-stream-types": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", @@ -2592,20 +2178,21 @@ } }, "node_modules/@libp2p/websockets": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-5.0.10.tgz", - "integrity": "sha512-q8aKm0rhDxZjc4TzDpB0quog4pViFnz+Ok+UbGEk3xXxHwT3QCxaDVPKMemMqN/1N3OahVvcodpcvFSuWmus+A==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-6.0.3.tgz", + "integrity": "sha512-pwOr3iAbczWmmCg1nHnC2Dl0Ek81Y6LE8ptImiUbuZ08q1E/fTumM8pRNmrrsogSshG4lugebArIO9SNMylJZg==", "dependencies": { - "@libp2p/interface-connection": "^4.0.0", - "@libp2p/interface-transport": "^2.0.0", + "@libp2p/interface-connection": "^5.0.0", + "@libp2p/interface-transport": "^4.0.0", "@libp2p/interfaces": "^3.0.3", "@libp2p/logger": "^2.0.0", "@libp2p/utils": "^3.0.2", "@multiformats/mafmt": "^12.0.0", "@multiformats/multiaddr": "^12.0.0", "@multiformats/multiaddr-to-uri": "^9.0.2", - "abortable-iterator": "^4.0.2", - "it-ws": "^5.0.6", + "@types/ws": "^8.5.4", + "abortable-iterator": "^5.0.0", + "it-ws": "^6.0.0", "p-defer": "^4.0.0", "p-timeout": "^6.0.0", "wherearewe": "^2.0.1", @@ -2616,36 +2203,28 @@ "npm": ">=7.0.0" } }, - "node_modules/@libp2p/websockets/node_modules/@libp2p/interface-connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", + "node_modules/@libp2p/websockets/node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" + "@types/node": "*" } }, "node_modules/@libp2p/webtransport": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@libp2p/webtransport/-/webtransport-1.0.11.tgz", - "integrity": "sha512-3vI/M7V6XD23d+MQG7cvJV4RVoP+55YdQS9PzGjdvlRwq/01wCjFd0j+jNdWaRkl7HTa7KwUOxrOKcE6NE0Sow==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/webtransport/-/webtransport-2.0.1.tgz", + "integrity": "sha512-MB0JV28WAN4wnpa9bYsjDKxBxNMcBMej8QEYyT+7N7vh76w58D2GiUwia5UpTNKweltJVe23qCn6KVBKjMgJOA==", "dependencies": { "@chainsafe/libp2p-noise": "^11.0.0", - "@libp2p/interface-connection": "^3.0.2", + "@libp2p/interface-connection": "^5.0.0", "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-stream-muxer": "^3.0.0", - "@libp2p/interface-transport": "^2.0.0", + "@libp2p/interface-stream-muxer": "^4.0.0", + "@libp2p/interface-transport": "^4.0.1", "@libp2p/logger": "^2.0.2", "@libp2p/peer-id": "^2.0.0", "@multiformats/multiaddr": "^12.1.0", - "it-stream-types": "^1.0.4", + "it-stream-types": "^2.0.1", "multiformats": "^11.0.0", "uint8arraylist": "^2.3.3" }, @@ -2654,6 +2233,15 @@ "npm": ">=7.0.0" } }, + "node_modules/@libp2p/webtransport/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@lit-labs/ssr-dom-shim": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.1.1.tgz", @@ -3124,11 +2712,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/@protobuf-ts/runtime": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.0.tgz", - "integrity": "sha512-DnJtLZFMglADv9jiawBmg0RaET4a6fNSAaAHuU6Ovw2ZhJ23ehIY0NrlYLS0Lc8HRH0S5rkLI1QF1A1h8uKUnA==" - }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -3595,6 +3178,19 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" }, + "node_modules/@types/sinon": { + "version": "10.0.15", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.15.tgz", + "integrity": "sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ==", + "dependencies": { + "@types/sinonjs__fake-timers": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", + "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==" + }, "node_modules/@types/trusted-types": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", @@ -4389,12 +3985,25 @@ } }, "node_modules/abortable-iterator": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-4.0.3.tgz", - "integrity": "sha512-GJ5fyS9O0hK/TMf+weR+WMEwSEBWVuStHqHmUYWbfHPULyVf7QdUnAvh41+1cUWtHVf0Z/qtQynidxz4ZFDPOg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", + "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", "dependencies": { "get-iterator": "^2.0.0", - "it-stream-types": "^1.0.3" + "it-stream-types": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/abortable-iterator/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, "node_modules/acorn": { @@ -7478,13 +7087,13 @@ } }, "node_modules/it-ws": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-5.0.6.tgz", - "integrity": "sha512-TEEJQaGtkxgP/nGVq8dq48nPT85Afu8kwwvtDFLj4rQLWRhZcb26RWdXLdn9qhXkWPiWbK5H7JWBW1Bebj/SuQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-6.0.1.tgz", + "integrity": "sha512-tWsIEN/hYlBGgvikP3B/afBBR0nZesw6mwQjyeBfpOK69mKYNMOqWn/OxurQaK3TLhxTmbAoy/yLX6jYEqcQVw==", "dependencies": { "event-iterator": "^2.0.0", "iso-url": "^1.1.2", - "it-stream-types": "^1.0.2", + "it-stream-types": "^2.0.1", "uint8arrays": "^4.0.2", "ws": "^8.4.0" }, @@ -7493,6 +7102,15 @@ "npm": ">=7.0.0" } }, + "node_modules/it-ws/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/jayson": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", @@ -7678,14 +7296,6 @@ "node": ">=4.0" } }, - "node_modules/k-bucket": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", - "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/keccak": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", @@ -7781,125 +7391,36 @@ "it-handshake": "^4.1.3", "it-length-prefixed": "^9.0.1", "it-map": "^3.0.2", - "it-merge": "^3.0.0", - "it-pair": "^2.0.2", - "it-parallel": "^3.0.0", - "it-pb-stream": "^4.0.1", - "it-pipe": "^3.0.1", - "it-stream-types": "^2.0.1", - "merge-options": "^3.0.4", - "multiformats": "^11.0.0", - "p-defer": "^4.0.0", - "p-queue": "^7.3.4", - "p-retry": "^5.0.0", - "private-ip": "^3.0.0", - "protons-runtime": "^5.0.0", - "rate-limiter-flexible": "^2.3.11", - "uint8arraylist": "^2.3.2", - "uint8arrays": "^4.0.2", - "wherearewe": "^2.0.0", - "xsalsa20": "^1.1.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/@libp2p/interface-address-manager": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-3.0.1.tgz", - "integrity": "sha512-8N1nfOtZ/CnZ/cL0Bnj59fhcSs7orI4evmNVsv2DM1VaNHXqc9tPy8JmQE2HRjrUXeUPwtzzG2eoP7l0ZYdC0g==", - "dependencies": { - "@multiformats/multiaddr": "^12.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/@libp2p/interface-connection-encrypter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-4.0.1.tgz", - "integrity": "sha512-fOtZpaFL2f5vID/RaBpVMAR9OKx5DmDT/yMEFTCarNc6Bb37fWwClI4WNCtoVbDQwcnr4H4ZIo0+9yCxjEIjjQ==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "it-stream-types": "^2.0.1" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/@libp2p/interface-peer-discovery": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-discovery/-/interface-peer-discovery-2.0.0.tgz", - "integrity": "sha512-Mien5t3Tc+ntP5p50acKUYJN90ouMnq1lOTQDKQNvGcXoajG8A1AEYLocnzVia/MXiexuj6S/Q28WBBacoOlBg==", - "dependencies": { - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/@libp2p/interface-peer-store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", - "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", - "dependencies": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/libp2p/node_modules/@libp2p/interface-stream-muxer": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-4.1.2.tgz", - "integrity": "sha512-dQJcn67UaAa8YQFRJDhbo4uT453z/2lCzD/ZwTk1YOqJxATXbXgVcB8dXDQFEUiUX3ZjVQ1IBu+NlQd+IZ++zw==", - "dependencies": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interfaces": "^3.0.0", - "@libp2p/logger": "^2.0.7", - "abortable-iterator": "^5.0.1", - "any-signal": "^4.1.1", - "it-pushable": "^3.1.3", + "it-merge": "^3.0.0", + "it-pair": "^2.0.2", + "it-parallel": "^3.0.0", + "it-pb-stream": "^4.0.1", + "it-pipe": "^3.0.1", "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" + "merge-options": "^3.0.4", + "multiformats": "^11.0.0", + "p-defer": "^4.0.0", + "p-queue": "^7.3.4", + "p-retry": "^5.0.0", + "private-ip": "^3.0.0", + "protons-runtime": "^5.0.0", + "rate-limiter-flexible": "^2.3.11", + "uint8arraylist": "^2.3.2", + "uint8arrays": "^4.0.2", + "wherearewe": "^2.0.0", + "xsalsa20": "^1.1.0" }, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, - "node_modules/libp2p/node_modules/@libp2p/interface-transport": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-4.0.3.tgz", - "integrity": "sha512-jXFQ3blhFMEyQbFw/U8Glo3F/fUO5LEaX5HIdeqNpCliK+XnwTfpkcaG+WsJrcApWK4FFyUHc+GGqiWR0hAFFg==", + "node_modules/libp2p/node_modules/@libp2p/interface-connection-encrypter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-4.0.1.tgz", + "integrity": "sha512-fOtZpaFL2f5vID/RaBpVMAR9OKx5DmDT/yMEFTCarNc6Bb37fWwClI4WNCtoVbDQwcnr4H4ZIo0+9yCxjEIjjQ==", "dependencies": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interface-stream-muxer": "^4.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", + "@libp2p/interface-peer-id": "^2.0.0", "it-stream-types": "^2.0.1" }, "engines": { @@ -7907,13 +7428,13 @@ "npm": ">=7.0.0" } }, - "node_modules/libp2p/node_modules/abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", + "node_modules/libp2p/node_modules/@libp2p/interface-peer-discovery": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-discovery/-/interface-peer-discovery-2.0.0.tgz", + "integrity": "sha512-Mien5t3Tc+ntP5p50acKUYJN90ouMnq1lOTQDKQNvGcXoajG8A1AEYLocnzVia/MXiexuj6S/Q28WBBacoOlBg==", "dependencies": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" + "@libp2p/interface-peer-info": "^1.0.0", + "@libp2p/interfaces": "^3.0.0" }, "engines": { "node": ">=16.0.0", @@ -8666,6 +8187,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "dependencies": { + "p-timeout": "^5.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-event/node_modules/p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -9035,6 +8581,15 @@ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" }, + "node_modules/progress-events": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/progress-events/-/progress-events-1.0.0.tgz", + "integrity": "sha512-zIB6QDrSbPfRg+33FZalluFIowkbV5Xh1xSuetjG+rlC5he6u2dc6VQJ0TbMdlN3R1RHdpOqxEFMKTnQ+itUwA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -9359,11 +8914,6 @@ "node": ">=4" } }, - "node_modules/retimer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", - "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" - }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -10026,14 +9576,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, - "node_modules/timeout-abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz", - "integrity": "sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==", - "dependencies": { - "retimer": "^3.0.0" - } - }, "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -10749,10 +10291,11 @@ "@headlessui/react": "^1.7.13", "@heroicons/react": "^2.0.16", "@libp2p/bootstrap": "^8.0.0", - "@libp2p/kad-dht": "^8.0.6", - "@libp2p/webrtc": "^1.1.2", - "@libp2p/websockets": "^5.0.3", - "@libp2p/webtransport": "^1.0.7", + "@libp2p/interface-pubsub": "^4.0.0", + "@libp2p/kad-dht": "^9.1.0", + "@libp2p/webrtc": "^2.0.4", + "@libp2p/websockets": "^6.0.1", + "@libp2p/webtransport": "^2.0.1", "@multiformats/mafmt": "^12.1.0", "@multiformats/multiaddr": "^12.1.1", "@types/node": "18.14.6", @@ -10993,36 +10536,6 @@ "uint8arrays": "^4.0.2" }, "dependencies": { - "@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "@libp2p/interface-peer-store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", - "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - } - }, - "abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "requires": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - } - }, "it-length-prefixed": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz", @@ -11094,42 +10607,6 @@ "uint8arraylist": "^2.4.3" }, "dependencies": { - "@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "@libp2p/interface-stream-muxer": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-4.1.2.tgz", - "integrity": "sha512-dQJcn67UaAa8YQFRJDhbo4uT453z/2lCzD/ZwTk1YOqJxATXbXgVcB8dXDQFEUiUX3ZjVQ1IBu+NlQd+IZ++zw==", - "requires": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interfaces": "^3.0.0", - "@libp2p/logger": "^2.0.7", - "abortable-iterator": "^5.0.1", - "any-signal": "^4.1.1", - "it-pushable": "^3.1.3", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "requires": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - } - }, "it-pipe": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-3.0.1.tgz", @@ -11736,15 +11213,6 @@ "@libp2p/interface-peer-info": "^1.0.0", "@libp2p/interfaces": "^3.0.0" } - }, - "@libp2p/interface-peer-store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", - "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - } } } }, @@ -11765,24 +11233,30 @@ } }, "@libp2p/interface-address-manager": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-2.0.5.tgz", - "integrity": "sha512-e2vLstKkYlAG2PZe6SEBpnnP2Y/ej6URue+zAiyjJPuXoOGNzHyLaqcv7MKye171OEf9dg5wv1gFphWcUJJbSA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-3.0.1.tgz", + "integrity": "sha512-8N1nfOtZ/CnZ/cL0Bnj59fhcSs7orI4evmNVsv2DM1VaNHXqc9tPy8JmQE2HRjrUXeUPwtzzG2eoP7l0ZYdC0g==", "requires": { - "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^12.0.0" } }, "@libp2p/interface-connection": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.1.1.tgz", - "integrity": "sha512-+hxfYLv4jf+MruQEJiJeIyo/wI33/53wRL0XJTkxwQQPAkLHfZWCUY4kY9sXALd3+ASjXAENvJj9VvzZTlkRDQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", + "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", "requires": { "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" + "it-stream-types": "^2.0.1", + "uint8arraylist": "^2.4.3" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + } } }, "@libp2p/interface-connection-encrypter": { @@ -11803,25 +11277,6 @@ "@libp2p/interface-connection": "^5.0.0", "@libp2p/interface-peer-id": "^2.0.0", "@multiformats/multiaddr": "^12.0.0" - }, - "dependencies": { - "@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" - } } }, "@libp2p/interface-connection-manager": { @@ -11834,25 +11289,6 @@ "@libp2p/interfaces": "^3.0.0", "@libp2p/peer-collections": "^3.0.1", "@multiformats/multiaddr": "^12.0.0" - }, - "dependencies": { - "@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" - } } }, "@libp2p/interface-content-routing": { @@ -11908,70 +11344,6 @@ "@libp2p/interface-transport": "^4.0.0", "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^12.0.0" - }, - "dependencies": { - "@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "@libp2p/interface-peer-store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", - "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - } - }, - "@libp2p/interface-stream-muxer": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-4.1.2.tgz", - "integrity": "sha512-dQJcn67UaAa8YQFRJDhbo4uT453z/2lCzD/ZwTk1YOqJxATXbXgVcB8dXDQFEUiUX3ZjVQ1IBu+NlQd+IZ++zw==", - "requires": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interfaces": "^3.0.0", - "@libp2p/logger": "^2.0.7", - "abortable-iterator": "^5.0.1", - "any-signal": "^4.1.1", - "it-pushable": "^3.1.3", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "@libp2p/interface-transport": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-4.0.3.tgz", - "integrity": "sha512-jXFQ3blhFMEyQbFw/U8Glo3F/fUO5LEaX5HIdeqNpCliK+XnwTfpkcaG+WsJrcApWK4FFyUHc+GGqiWR0hAFFg==", - "requires": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interface-stream-muxer": "^4.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1" - } - }, - "abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "requires": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - } - }, - "it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" - } } }, "@libp2p/interface-metrics": { @@ -11980,25 +11352,6 @@ "integrity": "sha512-1b9HjYyJH0m35kvPHipuoz2EtYCxyq34NUhuV8VK1VNtrouMpA3uCKp5FI7yHCA6V6+ux1R3UriKgNFOSGbIXQ==", "requires": { "@libp2p/interface-connection": "^5.0.0" - }, - "dependencies": { - "@libp2p/interface-connection": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.0.1.tgz", - "integrity": "sha512-SnGIXQLMydRh+xuuGNI7BPHfZ6+jn0z5FKKiCrUZ4vJBqnsyBQoEsg24Z+dl9P9JSRRRuYUcfJexBirInNf92w==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.1.2" - } - }, - "it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" - } } }, "@libp2p/interface-peer-discovery": { @@ -12038,14 +11391,11 @@ } }, "@libp2p/interface-peer-store": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-1.2.9.tgz", - "integrity": "sha512-jAAlbP1NXpEJOG6Dbr0QdP71TBYjHBc/65Ulwdn4J4f04PW1bI4JIMQeq6+/sLfaGVryvvUT/a52io8UUtB21Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", + "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", "requires": { "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interface-record": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^12.0.0" } }, @@ -12059,25 +11409,6 @@ "@libp2p/interfaces": "^3.0.0", "it-pushable": "^3.1.3", "uint8arraylist": "^2.4.3" - }, - "dependencies": { - "@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" - } } }, "@libp2p/interface-record": { @@ -12096,74 +11427,46 @@ "requires": { "@libp2p/interface-connection": "^5.0.0", "@libp2p/interface-peer-id": "^2.0.0" - }, - "dependencies": { - "@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" - } } }, "@libp2p/interface-stream-muxer": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.6.tgz", - "integrity": "sha512-wbLrH/bdF8qe0CpPd3BFMSmUs085vc3/8zx5uhXJySD672enAc8Jw9gmAYd1pIqELdqJqBDg9EI0y1XMRxvVkw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-4.1.2.tgz", + "integrity": "sha512-dQJcn67UaAa8YQFRJDhbo4uT453z/2lCzD/ZwTk1YOqJxATXbXgVcB8dXDQFEUiUX3ZjVQ1IBu+NlQd+IZ++zw==", "requires": { - "@libp2p/interface-connection": "^4.0.0", + "@libp2p/interface-connection": "^5.0.0", "@libp2p/interfaces": "^3.0.0", - "it-stream-types": "^1.0.4" + "@libp2p/logger": "^2.0.7", + "abortable-iterator": "^5.0.1", + "any-signal": "^4.1.1", + "it-pushable": "^3.1.3", + "it-stream-types": "^2.0.1", + "uint8arraylist": "^2.4.3" }, "dependencies": { - "@libp2p/interface-connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" - } + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" } } }, "@libp2p/interface-transport": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-2.1.3.tgz", - "integrity": "sha512-ez+0X+w2Wyw3nJY6mP0DHFgrRnln/miAH4TJLcRfUSJHjGXH5ZfpuK1TnRxXpEUiqOezSbwke06/znI27KpRiQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-4.0.3.tgz", + "integrity": "sha512-jXFQ3blhFMEyQbFw/U8Glo3F/fUO5LEaX5HIdeqNpCliK+XnwTfpkcaG+WsJrcApWK4FFyUHc+GGqiWR0hAFFg==", "requires": { - "@libp2p/interface-connection": "^4.0.0", - "@libp2p/interface-stream-muxer": "^3.0.0", + "@libp2p/interface-connection": "^5.0.0", + "@libp2p/interface-stream-muxer": "^4.0.0", "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4" - }, - "dependencies": { - "@libp2p/interface-connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" - } + "it-stream-types": "^2.0.1" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" } } }, @@ -12173,21 +11476,22 @@ "integrity": "sha512-p/M7plbrxLzuQchvNwww1Was7ZeGE2NaOFulMaZBYIihU8z3fhaV+a033OqnC/0NTX/yhfdNOG7znhYq3XoR/g==" }, "@libp2p/kad-dht": { - "version": "8.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-8.0.12.tgz", - "integrity": "sha512-bb1MlBSFkGvNOHq79tod0B8k/+4Sl8QmPgc6LAoV8jTeEX+DDVjAZ+D3BHiiZ8//nJ5w4sJTTzUJxHgyEg0HJw==", + "version": "9.3.6", + "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-9.3.6.tgz", + "integrity": "sha512-17ZNl4saDpHUu8Y72Gm9A4zdusoNYQcY4FO0vDynJnXlxWk2EruBqMExbqnCWR76d/lsufOs7GQnqIJzOdz7eg==", "requires": { "@libp2p/crypto": "^1.0.4", - "@libp2p/interface-address-manager": "^2.0.0", + "@libp2p/interface-address-manager": "^3.0.0", "@libp2p/interface-connection": "^5.0.1", - "@libp2p/interface-connection-manager": "^2.0.0", - "@libp2p/interface-dht": "^2.0.0", + "@libp2p/interface-connection-manager": "^3.0.0", + "@libp2p/interface-content-routing": "^2.1.0", "@libp2p/interface-metrics": "^4.0.0", - "@libp2p/interface-peer-discovery": "^1.0.1", + "@libp2p/interface-peer-discovery": "^2.0.0", "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interface-peer-info": "^1.0.3", - "@libp2p/interface-peer-store": "^1.2.2", - "@libp2p/interface-registrar": "^2.0.3", + "@libp2p/interface-peer-routing": "^1.1.0", + "@libp2p/interface-peer-store": "^2.0.0", + "@libp2p/interface-registrar": "^2.0.11", "@libp2p/interfaces": "^3.2.0", "@libp2p/logger": "^2.0.1", "@libp2p/peer-collections": "^3.0.0", @@ -12195,9 +11499,11 @@ "@libp2p/record": "^3.0.0", "@libp2p/topology": "^4.0.0", "@multiformats/multiaddr": "^12.0.0", + "@types/sinon": "^10.0.14", "abortable-iterator": "^5.0.1", "any-signal": "^4.1.1", "datastore-core": "^9.0.1", + "events": "^3.3.0", "hashlru": "^2.3.0", "interface-datastore": "^8.0.0", "it-all": "^3.0.1", @@ -12211,48 +11517,25 @@ "it-pipe": "^3.0.0", "it-stream-types": "^2.0.1", "it-take": "^3.0.1", - "k-bucket": "^5.1.0", "multiformats": "^11.0.0", "p-defer": "^4.0.0", + "p-event": "^5.0.1", "p-queue": "^7.3.4", "private-ip": "^3.0.0", + "progress-events": "^1.0.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.0.0", "uint8arrays": "^4.0.2", "varint": "^6.0.0" }, "dependencies": { - "@libp2p/interface-connection": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.0.1.tgz", - "integrity": "sha512-SnGIXQLMydRh+xuuGNI7BPHfZ6+jn0z5FKKiCrUZ4vJBqnsyBQoEsg24Z+dl9P9JSRRRuYUcfJexBirInNf92w==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.1.2" - } - }, - "@libp2p/interface-connection-manager": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-2.1.1.tgz", - "integrity": "sha512-cIhSRSQs2iHBI8G3vc7Y7cQY2CMYIQYul05qT+or+wZnHdW6CbR44j9s/pPgKLl5cKJPzdLvaEuIY1fTwqnNag==", - "requires": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@libp2p/peer-collections": "^3.0.1", - "@multiformats/multiaddr": "^12.0.0" - } - }, - "abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", + "@libp2p/interface-peer-discovery": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-discovery/-/interface-peer-discovery-2.0.0.tgz", + "integrity": "sha512-Mien5t3Tc+ntP5p50acKUYJN90ouMnq1lOTQDKQNvGcXoajG8A1AEYLocnzVia/MXiexuj6S/Q28WBBacoOlBg==", "requires": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" + "@libp2p/interface-peer-info": "^1.0.0", + "@libp2p/interfaces": "^3.0.0" } }, "it-length-prefixed": { @@ -12332,15 +11615,6 @@ "uint8arrays": "^4.0.2" }, "dependencies": { - "abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "requires": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - } - }, "it-length-prefixed": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz", @@ -12444,17 +11718,6 @@ "protons-runtime": "^5.0.0", "uint8arraylist": "^2.1.1", "uint8arrays": "^4.0.2" - }, - "dependencies": { - "@libp2p/interface-peer-store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", - "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - } - } } }, "@libp2p/pubsub": { @@ -12482,27 +11745,6 @@ "uint8arrays": "^4.0.2" }, "dependencies": { - "@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "requires": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - } - }, "it-length-prefixed": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz", @@ -12589,38 +11831,6 @@ "uint8arraylist": "^2.3.2" }, "dependencies": { - "@libp2p/interface-connection": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.0.1.tgz", - "integrity": "sha512-SnGIXQLMydRh+xuuGNI7BPHfZ6+jn0z5FKKiCrUZ4vJBqnsyBQoEsg24Z+dl9P9JSRRRuYUcfJexBirInNf92w==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.1.2" - } - }, - "@libp2p/interface-peer-store": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.1.tgz", - "integrity": "sha512-y2JNTbn/kav0JyaEcCN4BFEJwjRIe6AoNDaWl6C69ioGOBykVzTS2MA64u9y+oaj7uSgt4AkZEIWNDFXlz74mA==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0" - } - }, - "abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "requires": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - } - }, "it-stream-types": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", @@ -12629,69 +11839,96 @@ } }, "@libp2p/webrtc": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-1.1.8.tgz", - "integrity": "sha512-0vCwjXVxAp+tAWUZDoiRik+Nx0kdGR8Nwb8OCuiP+sDn349LkYuG5mr0TpVAw3XmAV0dYCMZ4GFWadZpiuQ9Rw==", - "requires": { - "@chainsafe/libp2p-noise": "^11.0.0", - "@libp2p/interface-connection": "^4.0.0", - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-peer-store": "^2.0.0", - "@libp2p/interface-registrar": "^2.0.8", - "@libp2p/interface-stream-muxer": "^3.0.0", - "@libp2p/interface-transport": "^2.0.0", - "@libp2p/interfaces": "^3.2.0", - "@libp2p/logger": "^2.0.0", - "@libp2p/peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.1.1", - "@protobuf-ts/runtime": "^2.8.0", - "abortable-iterator": "^4.0.2", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-2.0.6.tgz", + "integrity": "sha512-qHZ0NWq4/332D1YcmHyGDNY3qaMlrMLGX3Lh4CYdRboQRVecBZ/unrSo05Sm7F6n/swsK5s8pl+hvvksalHAJg==", + "requires": { + "@chainsafe/libp2p-noise": "^12.0.0", + "@libp2p/interface-connection": "^5.0.2", + "@libp2p/interface-metrics": "^4.0.8", + "@libp2p/interface-peer-id": "^2.0.2", + "@libp2p/interface-registrar": "^2.0.12", + "@libp2p/interface-stream-muxer": "^4.1.2", + "@libp2p/interface-transport": "^4.0.3", + "@libp2p/interfaces": "^3.3.2", + "@libp2p/logger": "^2.0.7", + "@libp2p/peer-id": "^2.0.3", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.2", + "abortable-iterator": "^5.0.1", "detect-browser": "^5.3.0", - "err-code": "^3.0.1", - "it-length-prefixed": "^8.0.3", - "it-merge": "^2.0.0", - "it-pb-stream": "^3.2.1", + "it-length-prefixed": "^9.0.1", + "it-pb-stream": "^4.0.1", "it-pipe": "^3.0.1", - "it-pushable": "^3.1.0", - "it-stream-types": "^1.0.4", + "it-pushable": "^3.1.3", + "it-stream-types": "^2.0.1", "multiformats": "^11.0.2", "multihashes": "^4.0.3", "p-defer": "^4.0.0", + "p-event": "^5.0.1", "protons-runtime": "^5.0.0", - "timeout-abort-controller": "^3.0.0", - "uint8arraylist": "^2.3.3", - "uint8arrays": "^4.0.2" + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.3" }, "dependencies": { - "@libp2p/interface-connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", + "@chainsafe/libp2p-noise": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-12.0.1.tgz", + "integrity": "sha512-VYuc5a3raIcCmv4F+LOfez7/9rmMgfjNo9h66cspLJKHuWgpzzIRRL9srVth6VC5DMjftExHM0aZv47Tf5govQ==", "requires": { + "@libp2p/crypto": "^1.0.11", + "@libp2p/interface-connection-encrypter": "^4.0.0", + "@libp2p/interface-keys": "^1.0.6", + "@libp2p/interface-metrics": "^4.0.4", "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" + "@libp2p/logger": "^2.0.5", + "@libp2p/peer-id": "^2.0.0", + "@noble/hashes": "^1.3.0", + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/x25519": "^1.0.3", + "it-length-prefixed": "^9.0.1", + "it-pair": "^2.0.2", + "it-pb-stream": "^4.0.1", + "it-pipe": "^3.0.1", + "it-stream-types": "^2.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.3.2", + "uint8arrays": "^4.0.2" } }, - "@libp2p/interface-peer-store": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.1.tgz", - "integrity": "sha512-y2JNTbn/kav0JyaEcCN4BFEJwjRIe6AoNDaWl6C69ioGOBykVzTS2MA64u9y+oaj7uSgt4AkZEIWNDFXlz74mA==", + "@libp2p/interface-connection-encrypter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-4.0.1.tgz", + "integrity": "sha512-fOtZpaFL2f5vID/RaBpVMAR9OKx5DmDT/yMEFTCarNc6Bb37fWwClI4WNCtoVbDQwcnr4H4ZIo0+9yCxjEIjjQ==", "requires": { "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-peer-info": "^1.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0" + "it-stream-types": "^2.0.1" } }, - "it-merge": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-2.0.1.tgz", - "integrity": "sha512-ItoBy3dPlNKnhjHR8e7nfabfZzH4Jy2OMPvayYH3XHy4YNqSVKmWTIxhz7KX4UMBsLChlIJZ+5j6csJgrYGQtw==", + "it-length-prefixed": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz", + "integrity": "sha512-ZBD8ZFLERj8d1q9CeBtk0eJ4EpeI3qwnkmWtemBSm3ZI2dM8PUweNVk5haZ2vw3EIq2uYQiabV9YwNm6EASM4A==", "requires": { - "it-pushable": "^3.1.0" + "err-code": "^3.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^1.0.1", + "uint8arraylist": "^2.0.0", + "uint8arrays": "^4.0.2" + } + }, + "it-pb-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/it-pb-stream/-/it-pb-stream-4.0.1.tgz", + "integrity": "sha512-xFYnnChsx4imzxI5eBP31bJ+2+vFYS9akHQNMM8suFd+DKWOqMlxiJvcqZEkciBXCB3Wj8HF8Wyx5baSxn31gg==", + "requires": { + "err-code": "^3.0.1", + "it-length-prefixed": "^9.0.0", + "it-pushable": "^3.1.2", + "it-stream-types": "^2.0.1", + "protons-runtime": "^5.0.0", + "uint8-varint": "^1.0.6", + "uint8arraylist": "^2.0.0" } }, "it-pipe": { @@ -12711,67 +11948,71 @@ "requires": { "it-pushable": "^3.1.0" } - }, - "it-stream-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", - "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" } } + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" } } }, "@libp2p/websockets": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-5.0.10.tgz", - "integrity": "sha512-q8aKm0rhDxZjc4TzDpB0quog4pViFnz+Ok+UbGEk3xXxHwT3QCxaDVPKMemMqN/1N3OahVvcodpcvFSuWmus+A==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-6.0.3.tgz", + "integrity": "sha512-pwOr3iAbczWmmCg1nHnC2Dl0Ek81Y6LE8ptImiUbuZ08q1E/fTumM8pRNmrrsogSshG4lugebArIO9SNMylJZg==", "requires": { - "@libp2p/interface-connection": "^4.0.0", - "@libp2p/interface-transport": "^2.0.0", + "@libp2p/interface-connection": "^5.0.0", + "@libp2p/interface-transport": "^4.0.0", "@libp2p/interfaces": "^3.0.3", "@libp2p/logger": "^2.0.0", "@libp2p/utils": "^3.0.2", "@multiformats/mafmt": "^12.0.0", "@multiformats/multiaddr": "^12.0.0", "@multiformats/multiaddr-to-uri": "^9.0.2", - "abortable-iterator": "^4.0.2", - "it-ws": "^5.0.6", + "@types/ws": "^8.5.4", + "abortable-iterator": "^5.0.0", + "it-ws": "^6.0.0", "p-defer": "^4.0.0", "p-timeout": "^6.0.0", "wherearewe": "^2.0.1", "ws": "^8.12.1" }, "dependencies": { - "@libp2p/interface-connection": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-4.0.0.tgz", - "integrity": "sha512-6xx/NmEc84HX7QmsjSC3hHredQYjHv4Dkf4G27adAPf+qN+vnPxmQ7gaTnk243a0++DOFTbZ2gKX/15G2B6SRg==", + "@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^1.0.4", - "uint8arraylist": "^2.1.2" + "@types/node": "*" } } } }, "@libp2p/webtransport": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@libp2p/webtransport/-/webtransport-1.0.11.tgz", - "integrity": "sha512-3vI/M7V6XD23d+MQG7cvJV4RVoP+55YdQS9PzGjdvlRwq/01wCjFd0j+jNdWaRkl7HTa7KwUOxrOKcE6NE0Sow==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/webtransport/-/webtransport-2.0.1.tgz", + "integrity": "sha512-MB0JV28WAN4wnpa9bYsjDKxBxNMcBMej8QEYyT+7N7vh76w58D2GiUwia5UpTNKweltJVe23qCn6KVBKjMgJOA==", "requires": { "@chainsafe/libp2p-noise": "^11.0.0", - "@libp2p/interface-connection": "^3.0.2", + "@libp2p/interface-connection": "^5.0.0", "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-stream-muxer": "^3.0.0", - "@libp2p/interface-transport": "^2.0.0", + "@libp2p/interface-stream-muxer": "^4.0.0", + "@libp2p/interface-transport": "^4.0.1", "@libp2p/logger": "^2.0.2", "@libp2p/peer-id": "^2.0.0", "@multiformats/multiaddr": "^12.1.0", - "it-stream-types": "^1.0.4", + "it-stream-types": "^2.0.1", "multiformats": "^11.0.0", "uint8arraylist": "^2.3.3" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + } } }, "@lit-labs/ssr-dom-shim": { @@ -13076,11 +12317,6 @@ "tslib": "^2.4.0" } }, - "@protobuf-ts/runtime": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.0.tgz", - "integrity": "sha512-DnJtLZFMglADv9jiawBmg0RaET4a6fNSAaAHuU6Ovw2ZhJ23ehIY0NrlYLS0Lc8HRH0S5rkLI1QF1A1h8uKUnA==" - }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -13492,6 +12728,19 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" }, + "@types/sinon": { + "version": "10.0.15", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.15.tgz", + "integrity": "sha512-3lrFNQG0Kr2LDzvjyjB6AMJk4ge+8iYhQfdnSwIwlG88FUOV43kPcQqDZkDa/h3WSZy6i8Fr0BSjfQtB1B3xuQ==", + "requires": { + "@types/sinonjs__fake-timers": "*" + } + }, + "@types/sinonjs__fake-timers": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz", + "integrity": "sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==" + }, "@types/trusted-types": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", @@ -14173,12 +13422,19 @@ "requires": {} }, "abortable-iterator": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-4.0.3.tgz", - "integrity": "sha512-GJ5fyS9O0hK/TMf+weR+WMEwSEBWVuStHqHmUYWbfHPULyVf7QdUnAvh41+1cUWtHVf0Z/qtQynidxz4ZFDPOg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", + "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", "requires": { "get-iterator": "^2.0.0", - "it-stream-types": "^1.0.3" + "it-stream-types": "^2.0.1" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + } } }, "acorn": { @@ -16386,15 +15642,22 @@ "integrity": "sha512-y92geQxh23+SgEIm6n+krY/Erpx9/MahzjqXuReNvsXHR/VPDuyXMfYqG5mXBwowj8t4qW23kL8BF49fYv5+cg==" }, "it-ws": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-5.0.6.tgz", - "integrity": "sha512-TEEJQaGtkxgP/nGVq8dq48nPT85Afu8kwwvtDFLj4rQLWRhZcb26RWdXLdn9qhXkWPiWbK5H7JWBW1Bebj/SuQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-6.0.1.tgz", + "integrity": "sha512-tWsIEN/hYlBGgvikP3B/afBBR0nZesw6mwQjyeBfpOK69mKYNMOqWn/OxurQaK3TLhxTmbAoy/yLX6jYEqcQVw==", "requires": { "event-iterator": "^2.0.0", "iso-url": "^1.1.2", - "it-stream-types": "^1.0.2", + "it-stream-types": "^2.0.1", "uint8arrays": "^4.0.2", "ws": "^8.4.0" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + } } }, "jayson": { @@ -16534,14 +15797,6 @@ "object.assign": "^4.1.3" } }, - "k-bucket": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", - "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", - "requires": { - "randombytes": "^2.1.0" - } - }, "keccak": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", @@ -16650,26 +15905,6 @@ "xsalsa20": "^1.1.0" }, "dependencies": { - "@libp2p/interface-address-manager": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-3.0.1.tgz", - "integrity": "sha512-8N1nfOtZ/CnZ/cL0Bnj59fhcSs7orI4evmNVsv2DM1VaNHXqc9tPy8JmQE2HRjrUXeUPwtzzG2eoP7l0ZYdC0g==", - "requires": { - "@multiformats/multiaddr": "^12.0.0" - } - }, - "@libp2p/interface-connection": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-5.1.0.tgz", - "integrity": "sha512-KFjCnGvFVlu0hHS/O8NOsst32mIzUQEkRWq5EhOBehXjjpOJBcm8XQaqmhBlxVfHEYm7XQsztEtFumveszzm1A==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, "@libp2p/interface-connection-encrypter": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-4.0.1.tgz", @@ -16688,51 +15923,6 @@ "@libp2p/interfaces": "^3.0.0" } }, - "@libp2p/interface-peer-store": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-2.0.3.tgz", - "integrity": "sha512-xOVjzJCs3qhpUVUmOg3n8E8PUuUrmtzL9G8+Ht1HO+PJQX4HsyDjIgeUnSAnp6XBtiRyx5E/bE0xqThGZskPuQ==", - "requires": { - "@libp2p/interface-peer-id": "^2.0.0", - "@multiformats/multiaddr": "^12.0.0" - } - }, - "@libp2p/interface-stream-muxer": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-4.1.2.tgz", - "integrity": "sha512-dQJcn67UaAa8YQFRJDhbo4uT453z/2lCzD/ZwTk1YOqJxATXbXgVcB8dXDQFEUiUX3ZjVQ1IBu+NlQd+IZ++zw==", - "requires": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interfaces": "^3.0.0", - "@libp2p/logger": "^2.0.7", - "abortable-iterator": "^5.0.1", - "any-signal": "^4.1.1", - "it-pushable": "^3.1.3", - "it-stream-types": "^2.0.1", - "uint8arraylist": "^2.4.3" - } - }, - "@libp2p/interface-transport": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-4.0.3.tgz", - "integrity": "sha512-jXFQ3blhFMEyQbFw/U8Glo3F/fUO5LEaX5HIdeqNpCliK+XnwTfpkcaG+WsJrcApWK4FFyUHc+GGqiWR0hAFFg==", - "requires": { - "@libp2p/interface-connection": "^5.0.0", - "@libp2p/interface-stream-muxer": "^4.0.0", - "@libp2p/interfaces": "^3.0.0", - "@multiformats/multiaddr": "^12.0.0", - "it-stream-types": "^2.0.1" - } - }, - "abortable-iterator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", - "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", - "requires": { - "get-iterator": "^2.0.0", - "it-stream-types": "^2.0.1" - } - }, "it-length-prefixed": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.1.tgz", @@ -17248,6 +16438,21 @@ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" }, + "p-event": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "requires": { + "p-timeout": "^5.0.2" + }, + "dependencies": { + "p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==" + } + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -17481,6 +16686,11 @@ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" }, + "progress-events": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/progress-events/-/progress-events-1.0.0.tgz", + "integrity": "sha512-zIB6QDrSbPfRg+33FZalluFIowkbV5Xh1xSuetjG+rlC5he6u2dc6VQJ0TbMdlN3R1RHdpOqxEFMKTnQ+itUwA==" + }, "prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -17717,11 +16927,6 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, - "retimer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", - "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" - }, "retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -18190,14 +17395,6 @@ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, - "timeout-abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz", - "integrity": "sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==", - "requires": { - "retimer": "^3.0.0" - } - }, "tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -18363,10 +17560,11 @@ "@headlessui/react": "^1.7.13", "@heroicons/react": "^2.0.16", "@libp2p/bootstrap": "^8.0.0", - "@libp2p/kad-dht": "^8.0.6", - "@libp2p/webrtc": "^1.1.2", - "@libp2p/websockets": "^5.0.3", - "@libp2p/webtransport": "^1.0.7", + "@libp2p/interface-pubsub": "^4.0.0", + "@libp2p/kad-dht": "^9.1.0", + "@libp2p/webrtc": "^2.0.4", + "@libp2p/websockets": "^6.0.1", + "@libp2p/webtransport": "^2.0.1", "@multiformats/mafmt": "^12.1.0", "@multiformats/multiaddr": "^12.1.1", "@types/node": "18.14.6", diff --git a/packages/frontend/next.config.js b/packages/frontend/next.config.js index a843cbee..42620627 100644 --- a/packages/frontend/next.config.js +++ b/packages/frontend/next.config.js @@ -1,6 +1,7 @@ /** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, + productionBrowserSourceMaps: true, } module.exports = nextConfig diff --git a/packages/frontend/package.json b/packages/frontend/package.json index 9b75e483..abf9cf79 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -14,10 +14,11 @@ "@headlessui/react": "^1.7.13", "@heroicons/react": "^2.0.16", "@libp2p/bootstrap": "^8.0.0", - "@libp2p/kad-dht": "^8.0.6", - "@libp2p/webrtc": "^1.1.2", - "@libp2p/websockets": "^5.0.3", - "@libp2p/webtransport": "^1.0.7", + "@libp2p/interface-pubsub": "^4.0.0", + "@libp2p/kad-dht": "^9.1.0", + "@libp2p/webrtc": "^2.0.4", + "@libp2p/websockets": "^6.0.1", + "@libp2p/webtransport": "^2.0.1", "@multiformats/mafmt": "^12.1.0", "@multiformats/multiaddr": "^12.1.1", "@types/node": "18.14.6", diff --git a/packages/frontend/src/components/chat.tsx b/packages/frontend/src/components/chat.tsx index ff7ae4cd..2ce172c3 100644 --- a/packages/frontend/src/components/chat.tsx +++ b/packages/frontend/src/components/chat.tsx @@ -65,13 +65,14 @@ export default function ChatContainer({topic}: ChatProps) { setMessageHistory([...messageHistory, { msg, from: 'other', peerId: evt.detail.from.toString(), topic: evt.detail.topic }]) } } - + //@ts-ignore: conditionally rendered libp2p.services.pubsub.addEventListener('message', messageCB) return () => { // Cleanup handlers 👇 // libp2p.services.pubsub.unsubscribe(CHAT_TOPIC) - libp2p.services.pubsub.removeEventListener('message', messageCB) + //@ts-ignore: conditionally rendered + libp2p.services.pubsub.removeEventListener('message', messageCB) } }, [libp2p, messageHistory, setMessageHistory]) @@ -80,16 +81,18 @@ export default function ChatContainer({topic}: ChatProps) { console.log( 'peers in gossip:', - libp2p.services.pubsub.getSubscribers(topic).toString(), + //@ts-ignore: conditionally rendered + libp2p.services.pubsub.getSubscribers(topic).toString(), ) + //@ts-ignore: conditionally rendered const res = await libp2p.services.pubsub.publish( topic, new TextEncoder().encode(input), ) console.log( 'sent message to: ', - res.recipients.map((peerId) => peerId.toString()), + res.recipients.map((peerId: any) => peerId.toString()), ) const myPeerId = libp2p.peerId.toString() diff --git a/packages/frontend/src/components/peerControl.tsx b/packages/frontend/src/components/peerControl.tsx index 414771a1..9e2f8ed2 100644 --- a/packages/frontend/src/components/peerControl.tsx +++ b/packages/frontend/src/components/peerControl.tsx @@ -6,24 +6,31 @@ import { multiaddr } from '@multiformats/multiaddr' import { connectToMultiaddr } from '../lib/libp2p' import PeerInfo from "./peerInfo" import type { Connection } from '@libp2p/interface-connection' +import { useListenAddressesContext } from '@/context/listen-addresses-ctx' function PeerControl() { const { libp2p } = useLibp2pContext() const { peerStats, setPeerStats } = usePeerContext() + const { listenAddresses, setListenAddresses } = useListenAddressesContext() const [maddr, setMultiaddr] = useState('') const [peersListOpen, setPeersListOpen] = useState(false) const [manuallySet, setManuallySet] = useState(false) useEffect(() => { - const peerConnectedCB = (evt: any) => { - const connection = evt.detail - setPeerStats({ ...peerStats, peerIds: [...peerStats.peerIds, connection.remotePeer], connections: [...peerStats.connections, connection], connected: true }) - } - - libp2p.addEventListener('peer:connect', peerConnectedCB) + const interval = setInterval(() => { + const connections = libp2p.getConnections() + setPeerStats({ + ...peerStats, + peerIds: connections.map(conn => conn.remotePeer), + connections: connections, + connected: true + }) + }) + // libp2p.addEventListener('peer:connect', peerConnectedCB) return () => { - libp2p.removeEventListener('peer:connect', peerConnectedCB) - } +// libp2p.removeEventListener('peer:connect', peerConnectedCB) + clearInterval(interval) + } }, [libp2p, peerStats, setPeerStats]) const handleConnectToMultiaddr = useCallback( @@ -34,7 +41,7 @@ function PeerControl() { try { const connection = await connectToMultiaddr(libp2p)(multiaddr(maddr)) - console.log('connection: ', connection) + //console.log('connection: ', connection) return connection } catch (e) { @@ -44,21 +51,36 @@ function PeerControl() { [libp2p, maddr], ) + useEffect(() => { + const interval = setInterval(() => { + const multiaddrs = libp2p.getMultiaddrs() + + setListenAddresses({ + ...listenAddresses, + multiaddrs + }) + }, 1000) + + return () => { + clearInterval(interval) + } + }, [libp2p, listenAddresses, setListenAddresses]) + const getFormattedConnections = (connections: Connection[]): PeerProtoTuple[] => { const protoNames: Map = new Map() connections.forEach((conn) => { -// console.log(`connection ${conn}`) - const exists = protoNames.get(conn.toString()) - const dedupedProtonames = [...new Set(conn.toString())] +// console.log(`connection ${JSON.stringify(conn)}`) + const exists = protoNames.get(conn.remotePeer.toString()) + const dedupedProtonames = [...new Set(conn.remotePeer.toString())] if (exists?.length) { const namesToAdd = dedupedProtonames.filter((name) => !exists.includes(name)) // console.log('namesToAdd: ', namesToAdd) - protoNames.set(conn.toString(), [...exists, ...namesToAdd]) + protoNames.set(conn.remotePeer.toString(), [...exists, ...namesToAdd]) } else { - protoNames.set(conn.toString(), dedupedProtonames) + protoNames.set(conn.remotePeer.toString(), dedupedProtonames) } }) @@ -68,7 +90,15 @@ function PeerControl() { })) } - +/* + useEffect(() => { + getFormattedConnections(peerStats.connections) + .map( + (pair) => + console.log(`peer ${JSON.stringify(pair)}`) + ) + },[]) + */ const handleMultiaddrChange = useCallback( (e: React.ChangeEvent) => { setMultiaddr(e.target.value) diff --git a/packages/frontend/src/components/topicsControl.tsx b/packages/frontend/src/components/topicsControl.tsx index 5184a885..9a4302bd 100644 --- a/packages/frontend/src/components/topicsControl.tsx +++ b/packages/frontend/src/components/topicsControl.tsx @@ -16,6 +16,7 @@ function TopicsControl({topicSelected, setTopicSelected}: TopicsControlProps) { }, []) const updateTopics = () => { + //@ts-ignore: conditionally rendered let topics = libp2p.services.pubsub.getTopics() if (topics != topicsList) { setTopicsList(topics) @@ -30,6 +31,7 @@ function TopicsControl({topicSelected, setTopicSelected}: TopicsControlProps) { ) const suscribeToTopic = () => { if (topicToSuscribe) { + //@ts-ignore: conditionally rendered libp2p.services.pubsub.subscribe(topicToSuscribe) updateTopics() setTopicToSuscribe(null) @@ -60,7 +62,8 @@ function TopicsControl({topicSelected, setTopicSelected}: TopicsControlProps) { > {d}{' '} -{' '} - ({libp2p.services.pubsub.getSubscribers(d).length/* does not update */}) + {/* @ts-ignore: conditionally rendered */} + ({libp2p.services.pubsub.getSubscribers(d).length}) )} diff --git a/packages/frontend/src/context/ctx.tsx b/packages/frontend/src/context/ctx.tsx index bed845e8..0a172c56 100644 --- a/packages/frontend/src/context/ctx.tsx +++ b/packages/frontend/src/context/ctx.tsx @@ -11,12 +11,15 @@ import type { Libp2p } from '@libp2p/interface-libp2p' import { startLibp2p } from '../lib/libp2p' import { ChatProvider } from './chat-ctx' import { PeerProvider } from './peer-ctx' +import { ListenAddressesProvider } from './listen-addresses-ctx' +import { PubSub } from '@libp2p/interface-pubsub' + //import { createHelia } from 'helia'; //import type { Helia } from '@helia/interface' // 👇 The context type will be avilable "anywhere" in the app interface Libp2pContextInterface { - libp2p: Libp2p + libp2p: Libp2p<{pubsub: PubSub}> } export const libp2pContext = createContext({ // @ts-ignore to avoid having to check isn't undefined everywhere. Can't be undefined because children are conditionally rendered @@ -29,7 +32,7 @@ interface WrapperProps { } let loaded = false export function AppWrapper({ children }: WrapperProps) { - const [libp2p, setLibp2p] = useState() + const [libp2p, setLibp2p] = useState>() // const [helia, setHelia] = useState() useEffect(() => { @@ -67,7 +70,9 @@ export function AppWrapper({ children }: WrapperProps) { - {children} + + {children} + diff --git a/packages/frontend/src/context/listen-addresses-ctx.tsx b/packages/frontend/src/context/listen-addresses-ctx.tsx new file mode 100644 index 00000000..0c714f3b --- /dev/null +++ b/packages/frontend/src/context/listen-addresses-ctx.tsx @@ -0,0 +1,34 @@ +import React, { ReactNode, createContext, useContext, useState } from 'react' +import { Multiaddr } from '@multiformats/multiaddr' + +export interface ListenAddresses { + multiaddrs: Multiaddr[] +} + +export interface ListenAddressesContextInterface { + listenAddresses: ListenAddresses; + setListenAddresses: (addresses: ListenAddresses) => void; +} + +export const listenAddressesContext = createContext({ + listenAddresses: { + multiaddrs: [] + }, + setListenAddresses: () => { } +}) + +export const useListenAddressesContext = () => { + return useContext(listenAddressesContext); +}; + +export const ListenAddressesProvider = ({ children }: { children: ReactNode }) => { + const [listenAddresses, setListenAddresses] = useState({ + multiaddrs: [] + }); + + return ( + + {children} + + ); +}; \ No newline at end of file diff --git a/packages/frontend/src/lib/libp2p.ts b/packages/frontend/src/lib/libp2p.ts index b9985841..3d52a880 100644 --- a/packages/frontend/src/lib/libp2p.ts +++ b/packages/frontend/src/lib/libp2p.ts @@ -15,45 +15,57 @@ import { webTransport } from '@libp2p/webtransport' import { webRTC, webRTCDirect } from '@libp2p/webrtc' import { CHAT_TOPIC, CIRCUIT_RELAY_CODE, WEBRTC_BOOTSTRAP_NODE, WEBTRANSPORT_BOOTSTRAP_NODE } from './constants' import * as filters from "@libp2p/websockets/filters" - -// @ts-ignore import { circuitRelayTransport } from 'libp2p/circuit-relay' - +import { identifyService } from 'libp2p/identify' export async function startLibp2p() { // localStorage.debug = 'libp2p*,-*:trace' // application-specific data lives in the datastore const libp2p = await createLibp2p({ - // set the inbound and outbound stream limits to these values - // because we were seeing a lot of the default limits being hit -// dht: kadDHT({ -// protocolPrefix: "/universal-connectivity", -// maxInboundStreams: 5000, -// maxOutboundStreams: 5000, -// clientMode: true -// }), - transports: [webTransport(), webSockets({ - filter: filters.all, - }), webRTC({ - rtcConfiguration: { - iceServers:[ - { - urls: [ - 'stun:stun.l.google.com:19302', - 'stun:global.stun.twilio.com:3478' - ] - } - ] - } - }), webRTCDirect(), circuitRelayTransport({ - discoverRelays: 10, - }),], + addresses: { + listen: [ + '/webrtc' + ] + }, + transports: [ + webTransport(), + webSockets({ + filter: filters.all, + }), + webRTC({ + rtcConfiguration: { + iceServers:[ + { + urls: [ + 'stun:stun.l.google.com:19302', + 'stun:global.stun.twilio.com:3478' + ] + } + ] + } + }), + webRTCDirect(), + circuitRelayTransport({ + discoverRelays: 1, + }), + ], + connectionManager: { + maxConnections: 10, + minConnections: 2 // 5?? why? + }, connectionEncryption: [noise()], + connectionGater: { + denyDialMultiaddr: async () => false, + }, streamMuxers: [yamux()], peerDiscovery: [ bootstrap({ list: [ + '/dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN', + '/dnsaddr/bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa', + '/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb', + '/dnsaddr/bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt', WEBRTC_BOOTSTRAP_NODE, WEBTRANSPORT_BOOTSTRAP_NODE, ], @@ -65,30 +77,17 @@ export async function startLibp2p() { msgIdFn: msgIdFnStrictNoSign, ignoreDuplicatePublishError: true, }), -// identify: { -// // these are set because we were seeing a lot of identify and identify push -// // stream limits being hit -// maxPushOutgoingStreams: 1000, -// maxPushIncomingStreams: 1000, -// maxInboundStreams: 1000, -// maxOutboundStreams: 1000, -// }, + dht: kadDHT(), + identify: identifyService() }, -// autonat: { -// startupDelay: 60 * 60 * 24 * 1000, -// }, }) libp2p.services.pubsub.subscribe(CHAT_TOPIC) -// relayer -// for (const peer of await libp2p.peerStore.all()) { - // ... -// libp2p.services.pubsub.addEventListener('change:multiaddrs', ({detail: {peerId, multiaddrs}}) => { -// console.log(`changed multiaddrs: peer ${peerId.toString()} multiaddrs: ${multiaddrs}`) -// setWebRTCRelayAddress(multiaddrs, libp2p.peerId.toString()) -// }) - // } - + libp2p.addEventListener('self:peer:update', ({detail: { peer }}) => { + const multiaddrs = peer.addresses.map(({ multiaddr }) => multiaddr) + console.log(`changed multiaddrs: peer ${peer.id.toString()} multiaddrs: ${multiaddrs}`) + setWebRTCRelayAddress(multiaddrs, libp2p.peerId.toString()) + }) return libp2p }