diff --git a/package-lock.json b/package-lock.json index 71c56460..976cf91f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ "@libp2p/floodsub": "^10.0.0", "@libp2p/interface-compliance-tests": "^6.0.0", "@libp2p/logger": "^5.0.0", - "@libp2p/peer-store": "^11.0.0", + "@libp2p/peer-store": "^11.0.3", "@types/node": "^20.11.6", "@types/sinon": "^17.0.3", "abortable-iterator": "^5.1.0", @@ -1583,9 +1583,10 @@ "dev": true }, "node_modules/@chainsafe/is-ip": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.2.tgz", - "integrity": "sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.1.0.tgz", + "integrity": "sha512-KIjt+6IfysQ4GCv66xihEitBjvhU/bixbbbFxdJ1sqCp4uJ0wuZiYBPhksZoy4lfaF0k9cwNzY5upEW/VWdw3w==", + "license": "MIT" }, "node_modules/@chainsafe/netmask": { "version": "2.0.0", @@ -2534,16 +2535,16 @@ "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" }, "node_modules/@libp2p/crypto": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.0.tgz", - "integrity": "sha512-qU3D2jApJNIp0VMZ2B2QhZ1PK9sTnc4WTQ7NZ/LbZC9hDfeqZlviHhgwWzy0L6d7P0ScDi+XdIX5zxxugOL6DA==", - "dependencies": { - "@libp2p/interface": "^2.0.0", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", - "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.1.7.tgz", + "integrity": "sha512-7DO0piidLEKfCuNfS420BlHG0e2tH7W/zugdsPSiC/1Apa/s1B1dBkaIEgfDkGjrRP4S/8Or86Rtq7zXeEu67g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.10.5", + "@noble/curves": "^1.9.1", + "@noble/hashes": "^1.8.0", + "multiformats": "^13.3.6", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } @@ -2562,15 +2563,18 @@ } }, "node_modules/@libp2p/interface": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.0.0.tgz", - "integrity": "sha512-NaPyfEFcxRzu3jL3z3lsX84+Dvnu9RpeHI9SjdYvcsEnIQbRllDgA9rmA8SnQkyNKlW9V37UkXAQCQnIaOvT1Q==", + "version": "2.10.5", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.10.5.tgz", + "integrity": "sha512-Z52n04Mph/myGdwyExbFi5S/HqrmZ9JOmfLc2v4r2Cik3GRdw98vrGH19PFvvwjLwAjaqsweCtlGaBzAz09YDw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@multiformats/multiaddr": "^12.2.3", + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^12.4.4", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", - "progress-events": "^1.0.0", + "it-stream-types": "^2.0.2", + "main-event": "^1.0.1", + "multiformats": "^13.3.6", + "progress-events": "^1.0.1", "uint8arraylist": "^2.4.8" } }, @@ -2627,15 +2631,16 @@ } }, "node_modules/@libp2p/logger": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.0.0.tgz", - "integrity": "sha512-KyNF21SaTkKnvl2z0jhCQxT5aK7MWs2xnmSo8YeWNdMecz4rTQxPhcpCGn2MuSFIBJWVIbbvRE3w2SH3tKXcJg==", + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.1.21.tgz", + "integrity": "sha512-V1TWlZM5BuKkiGQ7En4qOnseVP82JwDIpIfNjceUZz1ArL32A5HXJjLQnJchkZ3VW8PVciJzUos/vP6slhPY6Q==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.0.0", - "@multiformats/multiaddr": "^12.2.3", - "interface-datastore": "^8.3.0", - "multiformats": "^13.1.0", - "weald": "^1.0.2" + "@libp2p/interface": "^2.10.5", + "@multiformats/multiaddr": "^12.4.4", + "interface-datastore": "^8.3.1", + "multiformats": "^13.3.6", + "weald": "^1.0.4" } }, "node_modules/@libp2p/multistream-select": { @@ -2656,62 +2661,67 @@ } }, "node_modules/@libp2p/peer-collections": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-6.0.0.tgz", - "integrity": "sha512-+Qea+cbXx5giP99nmhYm0zWeThJLDArJ1pd8Tgeurt77fll/SDCXBVfEHGUrcR9cSaT1X9gtFCA7OFLP7hVVzg==", + "version": "6.0.34", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-6.0.34.tgz", + "integrity": "sha512-rw8gDGhou4sF6W6i9ntmRARFePX19Dw9MMVpZHr6Kx9q2kvBJq91IXUzsXP06roexEOu1CUlZwxtUAqOBy+Eww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.0.0", - "@libp2p/peer-id": "^5.0.0", - "@libp2p/utils": "^6.0.0", - "multiformats": "^13.2.2" + "@libp2p/interface": "^2.10.5", + "@libp2p/peer-id": "^5.1.8", + "@libp2p/utils": "^6.7.1", + "multiformats": "^13.3.6" } }, "node_modules/@libp2p/peer-id": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.0.tgz", - "integrity": "sha512-1niX7fZJsOXKCs0UtArtgmNbEHkO6MDA/IfAZ84wBW/qAvdXbvxqYazWYKBfTRrD+3MG1GQ5l3MR8ciRx8pyyg==", - "dependencies": { - "@libp2p/crypto": "^5.0.0", - "@libp2p/interface": "^2.0.0", - "multiformats": "^13.1.0", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.1.8.tgz", + "integrity": "sha512-pGaM4BwjnXdGtAtd84L4/wuABpsnFYE+AQ+h3GxNFme0IsTaTVKWd1jBBE5YFeKHBHGUOhF3TlHsdjFfjQA7TA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.7", + "@libp2p/interface": "^2.10.5", + "multiformats": "^13.3.6", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/peer-record": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-8.0.0.tgz", - "integrity": "sha512-NdNLYl6HrNuIF16TUwTwSW42iJN0clOzOh57D+6FtqRyAlSlOOwksXx6YSM7/4i6Xj0wqIZzTKDHra9VGq0v0Q==", - "dev": true, - "dependencies": { - "@libp2p/crypto": "^5.0.0", - "@libp2p/interface": "^2.0.0", - "@libp2p/peer-id": "^5.0.0", - "@libp2p/utils": "^6.0.0", - "@multiformats/multiaddr": "^12.2.3", - "multiformats": "^13.2.2", - "protons-runtime": "^5.4.0", + "version": "8.0.34", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-8.0.34.tgz", + "integrity": "sha512-GqvRBpvclscoKuF0JUfLyZTv+BwzICBBe50LFiAKio8LijZMBr43b+AcEaSEwFWDwlWmaKU73q8EQLrCb/e67Q==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.7", + "@libp2p/interface": "^2.10.5", + "@libp2p/peer-id": "^5.1.8", + "@libp2p/utils": "^6.7.1", + "@multiformats/multiaddr": "^12.4.4", + "multiformats": "^13.3.6", + "protons-runtime": "^5.5.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/peer-store": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-11.0.0.tgz", - "integrity": "sha512-yl/71nv1osfHEe3lrEqpHcETO6ejw//8tPFHBw3ofzrSP+g2Z9xD2V0MoB7LwOTJWC22tXSH7UNNO5I9qeXMpw==", - "dev": true, - "dependencies": { - "@libp2p/crypto": "^5.0.0", - "@libp2p/interface": "^2.0.0", - "@libp2p/peer-collections": "^6.0.0", - "@libp2p/peer-id": "^5.0.0", - "@libp2p/peer-record": "^8.0.0", - "@multiformats/multiaddr": "^12.2.3", - "interface-datastore": "^8.3.0", - "it-all": "^3.0.6", - "mortice": "^3.0.4", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-11.2.6.tgz", + "integrity": "sha512-3Lc982/7drqlXa51s9l1/DFHD48zzIjMMYajxFM2KbobyStH+lztYnFc3kNGB9sZijULaW1480PvbTMm9WaJ0g==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.7", + "@libp2p/interface": "^2.10.5", + "@libp2p/peer-collections": "^6.0.34", + "@libp2p/peer-id": "^5.1.8", + "@libp2p/peer-record": "^8.0.34", + "@multiformats/multiaddr": "^12.4.4", + "interface-datastore": "^8.3.1", + "it-all": "^3.0.8", + "main-event": "^1.0.1", + "mortice": "^3.2.1", + "multiformats": "^13.3.6", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } @@ -2737,31 +2747,32 @@ } }, "node_modules/@libp2p/utils": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.0.0.tgz", - "integrity": "sha512-hpLusfKKLHL8W6RgIecfwf9j94AnYNNLhiaFgWgeIQ4BP+3i+nTW65DZBD2Ngzrd6lTPfb40PLSP3uBwv2q4fA==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.7.1.tgz", + "integrity": "sha512-x3WImvw4unmx1ZeAedj8AkRe4UImUlkw0ZItYAiKiekElMNUXwv+Yt48dI/LmB38JIof8sng29XvUeCVU3F6OA==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@chainsafe/is-ip": "^2.0.2", - "@libp2p/crypto": "^5.0.0", - "@libp2p/interface": "^2.0.0", - "@libp2p/logger": "^5.0.0", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.2.1", + "@chainsafe/is-ip": "^2.1.0", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/crypto": "^5.1.7", + "@libp2p/interface": "^2.10.5", + "@libp2p/logger": "^5.1.21", + "@multiformats/multiaddr": "^12.4.4", "@sindresorhus/fnv1a": "^3.1.0", - "@types/murmurhash3js-revisited": "^3.0.3", "any-signal": "^4.1.1", "delay": "^6.0.0", "get-iterator": "^2.0.1", "is-loopback-addr": "^2.0.2", - "it-foreach": "^2.1.1", + "is-plain-obj": "^4.1.0", + "it-foreach": "^2.1.3", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "murmurhash3js-revisited": "^3.0.0", + "it-stream-types": "^2.0.2", + "main-event": "^1.0.1", "netmask": "^2.0.2", "p-defer": "^4.0.1", "race-event": "^1.3.0", - "race-signal": "^1.0.2", + "race-signal": "^1.1.3", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } @@ -2781,34 +2792,27 @@ } }, "node_modules/@multiformats/multiaddr": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.3.1.tgz", - "integrity": "sha512-yoGODQY4nIj41ENJClucS8FtBoe8w682bzbKldEQr9lSlfdHqAsRC+vpJAOBpiMwPps1tHua4kxrDmvprdhoDQ==", + "version": "12.5.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.5.1.tgz", + "integrity": "sha512-+DDlr9LIRUS8KncI1TX/FfUn8F2dl6BIxJgshS/yFQCNB5IAF0OGzcwB39g5NLE22s4qqDePv0Qof6HdpJ/4aQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.1", "@chainsafe/netmask": "^2.0.0", "@multiformats/dns": "^1.0.3", + "abort-error": "^1.0.1", "multiformats": "^13.0.0", "uint8-varint": "^2.0.1", "uint8arrays": "^5.0.0" } }, - "node_modules/@multiformats/multiaddr-matcher": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-matcher/-/multiaddr-matcher-1.2.4.tgz", - "integrity": "sha512-GgpqzQFL4Mj8t7cLNHC5nuYUuSm0kTtSUyYswiyWwTSUY3XwRAMx0UiFWQg+ETk0u+/IvFaHxfnyEoH3tasvwg==", - "dependencies": { - "@chainsafe/is-ip": "^2.0.1", - "@multiformats/multiaddr": "^12.0.0", - "multiformats": "^13.0.0" - } - }, "node_modules/@noble/curves": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", - "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.5.0" + "@noble/hashes": "1.8.0" }, "engines": { "node": "^14.21.3 || >=16" @@ -2818,9 +2822,10 @@ } }, "node_modules/@noble/hashes": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", - "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", "engines": { "node": "^14.21.3 || >=16" }, @@ -4107,11 +4112,6 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", "dev": true }, - "node_modules/@types/murmurhash3js-revisited": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.3.tgz", - "integrity": "sha512-QvlqvYtGBYIDeO8dFdY4djkRubcrc+yTJtBc7n8VZPlJDUS/00A+PssbvERM8f9bYRmcaSEHPZgZojeQj7kzAA==" - }, "node_modules/@types/node": { "version": "20.16.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz", @@ -4723,6 +4723,12 @@ "node": ">=6.5" } }, + "node_modules/abort-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/abort-error/-/abort-error-1.0.1.tgz", + "integrity": "sha512-fxqCblJiIPdSXIUrxI0PL+eJG49QdP9SQ70qtB65MVAoMr2rASlOyAbJFOylfB467F/f+5BCLJJq58RYi7mGfg==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/abortable-iterator": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.1.0.tgz", @@ -5229,24 +5235,6 @@ "node": ">=8" } }, - "node_modules/asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "dependencies": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/asn1js/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, "node_modules/assert": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", @@ -10217,12 +10205,13 @@ "dev": true }, "node_modules/interface-datastore": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.3.0.tgz", - "integrity": "sha512-RM/rTSmRcnoCwGZIHrPm+nlGYVoT4R0lcFvNnDyhdFT4R6BuHHhfFP47UldVEjs98SfxLuMhaNMsyjI918saHw==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.3.2.tgz", + "integrity": "sha512-R3NLts7pRbJKc3qFdQf+u40hK8XWc0w4Qkx3OFEstC80VoaDUABY/dXA2EJPhtNC+bsrf41Ehvqb6+pnIclyRA==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "interface-store": "6.0.0", - "uint8arrays": "^5.0.2" + "interface-store": "^6.0.0", + "uint8arrays": "^5.1.0" } }, "node_modules/interface-store": { @@ -10631,7 +10620,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "dev": true, "engines": { "node": ">=12" }, @@ -11050,10 +11038,11 @@ } }, "node_modules/it-all": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.6.tgz", - "integrity": "sha512-HXZWbxCgQZJfrv5rXvaVeaayXED8nTKx9tj9fpBhmcUJcedVZshMMMqTj0RG2+scGypb9Ut1zd1ifbf3lA8L+Q==", - "dev": true + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.9.tgz", + "integrity": "sha512-fz1oJJ36ciGnu2LntAlE6SA97bFZpW7Rnt0uEc1yazzR2nKokZLr8lIRtgnpex4NsmaBcvHF+Z9krljWFy/mmg==", + "dev": true, + "license": "Apache-2.0 OR MIT" }, "node_modules/it-byte-stream": { "version": "1.1.0", @@ -11082,9 +11071,10 @@ } }, "node_modules/it-foreach": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-2.1.1.tgz", - "integrity": "sha512-ID4Gxnavk/LVQLQESAQ9hR6dR63Ih6X+8VdxEktX8rpz2dCGAbZpey/eljTNbMfV2UKXHiu6UsneoNBZuac97g==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-2.1.4.tgz", + "integrity": "sha512-gFntBbNLpVK9uDmaHusugICD8/Pp+OCqbF5q1Z8K+B8WaG20YgMePWbMxI1I25+JmNWWr3hk0ecKyiI9pOLgeA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-peekable": "^3.0.0" } @@ -11192,6 +11182,20 @@ "p-defer": "^4.0.0" } }, + "node_modules/it-queue": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/it-queue/-/it-queue-1.1.0.tgz", + "integrity": "sha512-aK9unJRIaJc9qiv53LByhF7/I2AuD7Ro4oLfLieVLL9QXNvRx++ANMpv8yCp2UO0KAtBuf70GOxSYb6ElFVRpQ==", + "dev": true, + "license": "Apache-2.0 OR MIT", + "dependencies": { + "abort-error": "^1.0.1", + "it-pushable": "^3.2.3", + "main-event": "^1.0.0", + "race-event": "^1.3.0", + "race-signal": "^1.1.3" + } + }, "node_modules/it-queueless-pushable": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/it-queueless-pushable/-/it-queueless-pushable-1.0.0.tgz", @@ -12009,6 +12013,12 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/main-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/main-event/-/main-event-1.0.1.tgz", + "integrity": "sha512-NWtdGrAca/69fm6DIVd8T9rtfDII4Q8NQbIbsKQq2VzS9eqOGYs8uaNQjcuaCq/d9H/o625aOTJX2Qoxzqw0Pw==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -13507,14 +13517,15 @@ } }, "node_modules/mortice": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.4.tgz", - "integrity": "sha512-MUHRCAztSl4v/dAmK8vbYi5u1n9NZtQu4H3FsqS7qgMFQIAFw9lTpHiErd9kJpapqmvEdD1L3dUmiikifAvLsQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.3.1.tgz", + "integrity": "sha512-t3oESfijIPGsmsdLEKjF+grHfrbnKSXflJtgb1wY14cjxZpS6GnhHRXTxxzCAoCCnq1YYfpEPwY3gjiCPhOufQ==", "dev": true, + "license": "Apache-2.0 OR MIT", "dependencies": { - "observable-webworkers": "^2.0.1", - "p-queue": "^8.0.1", - "p-timeout": "^6.0.0" + "abort-error": "^1.0.0", + "it-queue": "^1.1.0", + "main-event": "^1.0.0" } }, "node_modules/mri": { @@ -13542,9 +13553,10 @@ "dev": true }, "node_modules/multiformats": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.2.2.tgz", - "integrity": "sha512-RWI+nyf0q64vyOxL8LbKtjJMki0sogRL/8axvklNtiTM0iFCVtHwME9w6+0P1/v4dQvsIg8A45oT3ka1t/M/+A==" + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.0.tgz", + "integrity": "sha512-Mkb/QcclrJxKC+vrcIFl297h52QcKh2Az/9A5vbWytbQt4225UWWWmIuSsKksdww9NkIeYcA7DkfftyLuC/JSg==", + "license": "Apache-2.0 OR MIT" }, "node_modules/multimatch": { "version": "5.0.0", @@ -13565,14 +13577,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/murmurhash3js-revisited": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", - "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", @@ -17591,16 +17595,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/observable-webworkers": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", - "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==", - "dev": true, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -19817,27 +19811,6 @@ "node": ">=6" } }, - "node_modules/pvtsutils": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", - "dependencies": { - "tslib": "^2.6.1" - } - }, - "node_modules/pvtsutils/node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -19886,9 +19859,10 @@ "integrity": "sha512-kaLm7axfOnahIqD3jQ4l1e471FIFcEGebXEnhxyLscuUzV8C94xVHtWEqDDXxll7+yu/6lW0w1Ff4HbtvHvOHg==" }, "node_modules/race-signal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/race-signal/-/race-signal-1.1.0.tgz", - "integrity": "sha512-VqsW1uzCXfKBd2DhA3K3NhQlqQr04+5WQ7+kHpf1HzT01Q+ePSFWZdQHXKZPuLmm2eXTZM1XLO76cq15ZRAaEA==" + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/race-signal/-/race-signal-1.1.3.tgz", + "integrity": "sha512-Mt2NznMgepLfORijhQMncE26IhkmjEphig+/1fKC0OtaKwys/gpvpmswSjoN01SS+VO951mj0L4VIDXdXsjnfA==", + "license": "Apache-2.0 OR MIT" }, "node_modules/ramda": { "version": "0.27.2", @@ -24078,9 +24052,10 @@ } }, "node_modules/weald": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/weald/-/weald-1.0.2.tgz", - "integrity": "sha512-iG5cIuBwsPe1ZcoGGd4X6QYlepU1vLr4l4oWpzQWqeJPSo9B8bxxyE6xlnj3TCmThtha7gyVL+uuZgUFkPyfDg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/weald/-/weald-1.0.4.tgz", + "integrity": "sha512-+kYTuHonJBwmFhP1Z4YQK/dGi3jAnJGCYhyODFpHK73rbxnp9lnZQj7a2m+WVgn8fXr5bJaxUpF6l8qZpPeNWQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "ms": "^3.0.0-canary.1", "supports-color": "^9.4.0" diff --git a/package.json b/package.json index b5e61189..b72e093c 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "@libp2p/floodsub": "^10.0.0", "@libp2p/interface-compliance-tests": "^6.0.0", "@libp2p/logger": "^5.0.0", - "@libp2p/peer-store": "^11.0.0", + "@libp2p/peer-store": "^11.0.3", "@types/node": "^20.11.6", "@types/sinon": "^17.0.3", "abortable-iterator": "^5.1.0", diff --git a/test/compliance.spec.ts b/test/compliance.spec.ts index d5e364ac..9984a07a 100644 --- a/test/compliance.spec.ts +++ b/test/compliance.spec.ts @@ -1,7 +1,7 @@ import { TypedEventEmitter } from '@libp2p/interface' import tests from '@libp2p/interface-compliance-tests/pubsub' import { defaultLogger } from '@libp2p/logger' -import { PersistentPeerStore } from '@libp2p/peer-store' +import { persistentPeerStore } from '@libp2p/peer-store' import { MemoryDatastore } from 'datastore-core' import { GossipSub } from '../src/index.js' import type { Libp2pEvents } from '@libp2p/interface' @@ -18,7 +18,7 @@ describe.skip('interface compliance', function () { const pubsub = new GossipSub( { ...args.components, - peerStore: new PersistentPeerStore({ + peerStore: persistentPeerStore({ peerId: args.components.peerId, datastore: new MemoryDatastore(), events: new TypedEventEmitter(), diff --git a/test/e2e/go-gossipsub.spec.ts b/test/e2e/go-gossipsub.spec.ts index 190b6c4c..03c48018 100644 --- a/test/e2e/go-gossipsub.spec.ts +++ b/test/e2e/go-gossipsub.spec.ts @@ -1,4 +1,4 @@ -import { FloodSub } from '@libp2p/floodsub' +import { floodsub } from '@libp2p/floodsub' import { type Message, TopicValidatorResult, type Libp2pEvents } from '@libp2p/interface' import { stop } from '@libp2p/interface' import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks' @@ -693,7 +693,7 @@ describe('go-libp2p-pubsub gossipsub tests', function () { }) const fsubs = await createComponentsArray({ number: 10, - pubsub: FloodSub + pubsub: floodsub }) psubs = gsubs.concat(fsubs) diff --git a/test/floodsub.spec.ts b/test/floodsub.spec.ts index 078ddf1a..4c05f37c 100644 --- a/test/floodsub.spec.ts +++ b/test/floodsub.spec.ts @@ -1,4 +1,4 @@ -import { FloodSub } from '@libp2p/floodsub' +import { floodsub } from '@libp2p/floodsub' import { stop } from '@libp2p/interface' import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks' import { expect } from 'aegir/chai' @@ -23,7 +23,7 @@ describe('gossipsub fallbacks to floodsub', () => { } }) nodeFs = await createComponents({ - pubsub: FloodSub + pubsub: floodsub }) }) @@ -61,7 +61,7 @@ describe('gossipsub fallbacks to floodsub', () => { } }) nodeFs = await createComponents({ - pubsub: FloodSub + pubsub: floodsub }) }) @@ -97,7 +97,7 @@ describe('gossipsub fallbacks to floodsub', () => { } }) nodeFs = await createComponents({ - pubsub: FloodSub + pubsub: floodsub }) await connectPubsubNodes(nodeGs, nodeFs) @@ -158,7 +158,7 @@ describe('gossipsub fallbacks to floodsub', () => { } }) nodeFs = await createComponents({ - pubsub: FloodSub + pubsub: floodsub }) await connectPubsubNodes(nodeGs, nodeFs) @@ -227,7 +227,7 @@ describe('gossipsub fallbacks to floodsub', () => { } }) nodeFs = await createComponents({ - pubsub: FloodSub + pubsub: floodsub }) await connectPubsubNodes(nodeGs, nodeFs) diff --git a/test/utils/create-pubsub.ts b/test/utils/create-pubsub.ts index eb564592..ebc6b0c5 100644 --- a/test/utils/create-pubsub.ts +++ b/test/utils/create-pubsub.ts @@ -4,16 +4,17 @@ import { TypedEventEmitter, start } from '@libp2p/interface' import { mockRegistrar, mockConnectionManager, mockNetwork } from '@libp2p/interface-compliance-tests/mocks' import { defaultLogger } from '@libp2p/logger' import { peerIdFromPrivateKey } from '@libp2p/peer-id' -import { PersistentPeerStore } from '@libp2p/peer-store' +import { persistentPeerStore } from '@libp2p/peer-store' import { MemoryDatastore } from 'datastore-core' import { stubInterface } from 'sinon-ts' -import { GossipSub, type GossipSubComponents, type GossipsubOpts } from '../../src/index.js' -import type { TypedEventTarget, Libp2pEvents, PubSub } from '@libp2p/interface' +import { gossipsub, type GossipSub, type GossipSubComponents, type GossipsubOpts } from '../../src/index.js' +import type { floodsub } from '@libp2p/floodsub' +import type { TypedEventTarget, Libp2pEvents } from '@libp2p/interface' import type { ConnectionManager } from '@libp2p/interface-internal' export interface CreateComponentsOpts { init?: Partial - pubsub?: { new (opts?: any): PubSub } + pubsub?: typeof floodsub } export interface GossipSubTestComponents extends GossipSubComponents { @@ -26,7 +27,7 @@ export interface GossipSubAndComponents { } export const createComponents = async (opts: CreateComponentsOpts): Promise => { - const Ctor = opts.pubsub ?? GossipSub + const Ctor = opts.pubsub ?? gossipsub const privateKey = await generateKeyPair('Ed25519') const peerId = peerIdFromPrivateKey(privateKey) @@ -38,7 +39,7 @@ export const createComponents = async (opts: CreateComponentsOpts): Promise(), - peerStore: new PersistentPeerStore({ + peerStore: persistentPeerStore({ peerId, datastore: new MemoryDatastore(), events, @@ -49,7 +50,7 @@ export const createComponents = async (opts: CreateComponentsOpts): Promise