diff --git a/package-lock.json b/package-lock.json index 8facea91..69d254e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,12 +9,12 @@ "version": "10.1.1", "license": "Apache-2.0", "dependencies": { - "@libp2p/crypto": "^2.0.0", - "@libp2p/interface": "^0.1.4", - "@libp2p/interface-internal": "^0.1.0", - "@libp2p/logger": "^3.0.0", - "@libp2p/peer-id": "^3.0.0", - "@libp2p/pubsub": "^8.0.0", + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/interface-internal": "^1.0.1", + "@libp2p/logger": "^4.0.1", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/pubsub": "^9.0.0", "@multiformats/multiaddr": "^12.1.3", "abortable-iterator": "^5.0.1", "denque": "^2.1.0", @@ -29,10 +29,10 @@ "devDependencies": { "@chainsafe/as-sha256": "^0.2.4", "@dapplion/benchmark": "^0.2.4", - "@libp2p/floodsub": "^8.0.0", - "@libp2p/interface-compliance-tests": "^4.0.0", - "@libp2p/peer-id-factory": "^3.0.0", - "@libp2p/peer-store": "^9.0.0", + "@libp2p/floodsub": "^9.0.0", + "@libp2p/interface-compliance-tests": "^5.0.2", + "@libp2p/peer-id-factory": "^4.0.0", + "@libp2p/peer-store": "^10.0.0", "@types/node": "^17.0.21", "aegir": "^41.0.0", "datastore-core": "^9.1.1", @@ -1745,54 +1745,6 @@ "node": ">=16" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", - "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", - "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", - "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@esbuild/darwin-arm64": { "version": "0.19.5", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", @@ -1809,294 +1761,6 @@ "node": ">=12" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", - "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", - "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", - "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", - "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", - "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", - "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", - "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", - "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", - "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", - "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", - "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", - "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", - "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", - "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", - "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", - "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", - "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", - "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -2505,14 +2169,14 @@ } }, "node_modules/@libp2p/crypto": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.8.tgz", - "integrity": "sha512-8e5fh6bsJNpSjhrggtlm8QF+BERjelJswIjRS69aKgxp24R4z2kDM4pRYPkfQjXJDLNDtqWtKNmePgX23+QJsA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-3.0.1.tgz", + "integrity": "sha512-CvqzsWvAYaga/Du3gDRChN9d8PUnOoCQg3VlugKf6tfw5+1pd7sMDhyMLajXqFsWqQUY6FojgB1TS4izpODMpw==", "dependencies": { - "@libp2p/interface": "^0.1.6", + "@libp2p/interface": "^1.0.1", "@noble/curves": "^1.1.0", "@noble/hashes": "^1.3.1", - "multiformats": "^12.0.1", + "multiformats": "^12.1.3", "node-forge": "^1.1.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", @@ -2520,23 +2184,90 @@ } }, "node_modules/@libp2p/floodsub": { - "version": "8.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/floodsub/-/floodsub-8.0.13.tgz", - "integrity": "sha512-gjPpEdHogeTJrw5bC/iwbTjbYMpKYa8z2ALVldoeZHD8UAzNzJ8zNyw1f7Sd0l9a65PxhiOnStqV0+aZx0MnBg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/floodsub/-/floodsub-9.0.0.tgz", + "integrity": "sha512-L8d/M5Hl5/9aog2/o5n65VGYb4hy2GT239xK0T2XiLm4+19KahlSssXEV1zxZdomIvWizX0kF76j/Sa9RV3Raw==", "dev": true, "dependencies": { - "@libp2p/interface": "^0.1.6", - "@libp2p/logger": "^3.1.0", - "@libp2p/pubsub": "^8.0.10", + "@libp2p/interface": "^1.0.1", + "@libp2p/pubsub": "^9.0.0", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, "node_modules/@libp2p/interface": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.1.tgz", + "integrity": "sha512-TRo1YxJ+AVjt5ms+mTOp8xcoCis5HAUMzv0XfCvxtIw77Bog6TPR5VdkGutlEQOKUMzXtLP0lW88fTQBeiiOnA==", + "dependencies": { + "@multiformats/multiaddr": "^12.1.10", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.1.3", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/interface-compliance-tests": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/interface-compliance-tests/-/interface-compliance-tests-5.0.2.tgz", + "integrity": "sha512-91VN/bpMzXW6EcdwuMp/JCuhmSqBI56fjmE+rWfxqJKkc/B8UeZR/JER2qulaD5okQpab2AyvMMrvSPazGphQw==", + "dev": true, + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@libp2p/interface-internal": "^0.1.11", + "@libp2p/logger": "^4.0.1", + "@libp2p/multistream-select": "^4.0.9", + "@libp2p/peer-collections": "^4.0.10", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/peer-id-factory": "^3.0.10", + "@libp2p/utils": "^5.0.1", + "@multiformats/multiaddr": "^12.1.10", + "abortable-iterator": "^5.0.1", + "aegir": "^41.0.2", + "delay": "^6.0.0", + "it-all": "^3.0.2", + "it-drain": "^3.0.2", + "it-map": "^3.0.4", + "it-ndjson": "^1.0.3", + "it-pair": "^2.0.6", + "it-pipe": "^3.0.1", + "it-protobuf-stream": "^1.0.2", + "it-pushable": "^3.2.1", + "it-stream-types": "^2.0.1", + "it-to-buffer": "^4.0.2", + "merge-options": "^3.0.4", + "p-defer": "^4.0.0", + "p-event": "^6.0.0", + "p-limit": "^5.0.0", + "p-wait-for": "^5.0.2", + "protons-runtime": "^5.0.0", + "sinon": "^17.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/crypto": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.8.tgz", + "integrity": "sha512-8e5fh6bsJNpSjhrggtlm8QF+BERjelJswIjRS69aKgxp24R4z2kDM4pRYPkfQjXJDLNDtqWtKNmePgX23+QJsA==", + "dev": true, + "dependencies": { + "@libp2p/interface": "^0.1.6", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "multiformats": "^12.0.1", + "node-forge": "^1.1.0", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/crypto/node_modules/@libp2p/interface": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.6.tgz", "integrity": "sha512-Lzc5cS/hXuoXhuAbVIxJIHLCYmfPcbU0vVgrpMoiP1Qb2Q3ETU4A46GB8s8mWXgSU6tr9RcqerUqzFYD6+OAag==", + "dev": true, "dependencies": { "@multiformats/multiaddr": "^12.1.5", "abortable-iterator": "^5.0.1", @@ -2548,45 +2279,76 @@ "uint8arraylist": "^2.4.3" } }, - "node_modules/@libp2p/interface-compliance-tests": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-compliance-tests/-/interface-compliance-tests-4.1.5.tgz", - "integrity": "sha512-3NyrQWjmMW2eAC0WleSUWJJRZIRHWhZmkDESM/QEFhsXayykBif54OrqV8jDZEG/7s+uZYoNPbacNMxHDCTkXg==", + "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/interface-internal": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-0.1.12.tgz", + "integrity": "sha512-tUZ4hxU8fO4397p/GtXNvAANHiLA/Uxdil90TuNNCnlb+GZijDYEEJiqBfnk2zYAdwm7Q9iO0fVxZCpfoW8B7Q==", "dev": true, "dependencies": { "@libp2p/interface": "^0.1.6", - "@libp2p/interface-internal": "^0.1.9", - "@libp2p/logger": "^3.1.0", - "@libp2p/multistream-select": "^4.0.6", "@libp2p/peer-collections": "^4.0.8", - "@libp2p/peer-id": "^3.0.6", - "@libp2p/peer-id-factory": "^3.0.8", + "@multiformats/multiaddr": "^12.1.5", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/interface-internal/node_modules/@libp2p/interface": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.6.tgz", + "integrity": "sha512-Lzc5cS/hXuoXhuAbVIxJIHLCYmfPcbU0vVgrpMoiP1Qb2Q3ETU4A46GB8s8mWXgSU6tr9RcqerUqzFYD6+OAag==", + "dev": true, + "dependencies": { "@multiformats/multiaddr": "^12.1.5", "abortable-iterator": "^5.0.1", - "aegir": "^41.0.2", - "delay": "^6.0.0", - "it-all": "^3.0.2", - "it-drain": "^3.0.2", - "it-handshake": "^4.1.3", - "it-map": "^3.0.3", - "it-ndjson": "^1.0.3", - "it-pair": "^2.0.6", - "it-pipe": "^3.0.1", - "it-protobuf-stream": "^1.0.0", "it-pushable": "^3.2.0", "it-stream-types": "^2.0.1", - "it-to-buffer": "^4.0.2", - "merge-options": "^3.0.4", + "multiformats": "^12.0.1", "p-defer": "^4.0.0", - "p-event": "^6.0.0", - "p-limit": "^5.0.0", - "p-wait-for": "^5.0.2", + "race-signal": "^1.0.0", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/peer-id-factory": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.11.tgz", + "integrity": "sha512-BmXKgeyAGezPyoY/uni95t439+AE0eqEKMxjfkfy2Hv/LcJ9gdR3zjRl7Hzci1O12b+yeVFtYVU8DZtBCcsZjQ==", + "dev": true, + "dependencies": { + "@libp2p/crypto": "^2.0.8", + "@libp2p/interface": "^0.1.6", + "@libp2p/peer-id": "^3.0.6", + "multiformats": "^12.0.1", "protons-runtime": "^5.0.0", - "sinon": "^17.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/interface": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.6.tgz", + "integrity": "sha512-Lzc5cS/hXuoXhuAbVIxJIHLCYmfPcbU0vVgrpMoiP1Qb2Q3ETU4A46GB8s8mWXgSU6tr9RcqerUqzFYD6+OAag==", + "dev": true, + "dependencies": { + "@multiformats/multiaddr": "^12.1.5", + "abortable-iterator": "^5.0.1", + "it-pushable": "^3.2.0", + "it-stream-types": "^2.0.1", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "race-signal": "^1.0.0", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/interface-compliance-tests/node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/peer-id": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.6.tgz", + "integrity": "sha512-iN1Ia5gH2U1V/GOVRmLHmVY6fblxzrOPUoZrMYjHl/K4s+AiI7ym/527WDeQvhQpD7j3TfDwcAYforD2dLGpLw==", + "dev": true, + "dependencies": { + "@libp2p/interface": "^0.1.6", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, "node_modules/@libp2p/interface-compliance-tests/node_modules/@sinonjs/fake-timers": { "version": "11.2.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", @@ -2636,95 +2398,100 @@ } }, "node_modules/@libp2p/interface-internal": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-0.1.9.tgz", - "integrity": "sha512-0HoY3ojG773VqE/m5vw9XtpKzuTqlCNqbOcwh2JvQvrLIiQgwu1zbn6t+T6cKK49eTBGfUqj3uWN7YQgX8rdGA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-1.0.1.tgz", + "integrity": "sha512-mJ2uWPzjnIk9Y1/Ca/xk0coz8PCg8tnAQgxN+GNG0cdAbY6Wu7dNDm0P3aTh9NYfjCp+5nzSSEE2UW/nr7TB9Q==", "dependencies": { - "@libp2p/interface": "^0.1.6", - "@libp2p/peer-collections": "^4.0.8", - "@multiformats/multiaddr": "^12.1.5", + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-collections": "^5.0.0", + "@multiformats/multiaddr": "^12.1.10", "uint8arraylist": "^2.4.3" } }, + "node_modules/@libp2p/interface-internal/node_modules/@libp2p/peer-collections": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.0.0.tgz", + "integrity": "sha512-2h6BF6t68TxnsErZrPzkMapH0GpZSCmOaimUMidrs9oSnxIMf62QnNAbfar8U2XbXnPJD9WkEicnSuJgDwg8Vw==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1" + } + }, "node_modules/@libp2p/logger": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.1.0.tgz", - "integrity": "sha512-qJbJBAhxHVsRBtQSOIkSLi0lskUSFjzE+zm0QvoyxzZKSz+mX41mZLbnofPIVOVauoDQ40dXpe7WDUOq8AbiQQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-4.0.1.tgz", + "integrity": "sha512-d7kJmbkphNvEI3Da4so+4nxUJhwW/T/d8Pd+aQIuT27RYNeVoRfkFkjYwPIP+NvJXtU4LDju7VDPLbPbU2zFGA==", "dependencies": { - "@libp2p/interface": "^0.1.6", - "@multiformats/multiaddr": "^12.1.5", + "@libp2p/interface": "^1.0.1", + "@multiformats/multiaddr": "^12.1.10", "debug": "^4.3.4", "interface-datastore": "^8.2.0", - "multiformats": "^12.0.1" + "multiformats": "^12.1.3" } }, "node_modules/@libp2p/multistream-select": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.6.tgz", - "integrity": "sha512-WT3thUOqUpzKjTctLkgezQep0C23uIPyE0J5H7tBBoB+h6Ocp90A7aQWsBZMbszGKcNOeAkIIYE7dZ0J1MdKeg==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.9.tgz", + "integrity": "sha512-ZDDiWabs4GHRSlnhySjFwP0FYV/38j8oVz6Tza/0QC1XOPmPDJeW4E7FegJKLT3caRiZRclrKTv/NRntedPvYA==", "dev": true, "dependencies": { - "@libp2p/interface": "^0.1.6", - "@libp2p/logger": "^3.1.0", - "abortable-iterator": "^5.0.1", - "it-first": "^3.0.1", - "it-handshake": "^4.1.3", - "it-length-prefixed": "^9.0.1", - "it-merge": "^3.0.0", + "@libp2p/interface": "^1.0.1", + "it-length-prefixed": "^9.0.3", + "it-length-prefixed-stream": "^1.1.1", "it-pipe": "^3.0.1", - "it-pushable": "^3.2.0", - "it-reader": "^6.0.1", "it-stream-types": "^2.0.1", - "uint8-varint": "^2.0.0", + "p-defer": "^4.0.0", + "uint8-varint": "^2.0.2", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, "node_modules/@libp2p/peer-collections": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.8.tgz", - "integrity": "sha512-Tk7W7pgPRH1v1+DmCx+XDqWX/E1Q7t7dNz3gsKZ1smstLwF6P1OhmYgDuVpMUvJiYroM7j7X6CcPZEoVUvNVog==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.10.tgz", + "integrity": "sha512-CRMWP9p25ubArL1Cf8BYwSMFqLB/U3iAN1xvTunPV69o1kKrZjFCuolTRahD3W1c9EzFHIHegCkZlZMn76h93w==", + "dev": true, "dependencies": { - "@libp2p/interface": "^0.1.6", - "@libp2p/peer-id": "^3.0.6" + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1" } }, "node_modules/@libp2p/peer-id": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.6.tgz", - "integrity": "sha512-iN1Ia5gH2U1V/GOVRmLHmVY6fblxzrOPUoZrMYjHl/K4s+AiI7ym/527WDeQvhQpD7j3TfDwcAYforD2dLGpLw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.0.1.tgz", + "integrity": "sha512-rEgZ4YPSVh7gqIXxWE9HVw318Og8fJohI2vWXNx2h+Ib/iMQTGrqGgSaJhjUMWYIy8MadpjofCPXObPEIX3E3g==", "dependencies": { - "@libp2p/interface": "^0.1.6", - "multiformats": "^12.0.1", + "@libp2p/interface": "^1.0.1", + "multiformats": "^12.1.3", "uint8arrays": "^4.0.6" } }, "node_modules/@libp2p/peer-id-factory": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.8.tgz", - "integrity": "sha512-T0pOKWwFw01GqpeA03RRztG2qr0Zl2cSdt20d/WQ+BAjyrJNr7PSBTXux3nRGGdmzoUfJTJU6f992PDtq1z/mQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-4.0.0.tgz", + "integrity": "sha512-dFbQOpxqEw4CqV+ZalMc5UABqts+hskMoaqytjmR55pXgL4KDamOyg7hBT/HrHRp2sStf8E2vwQ5wnjv1W9uFQ==", "dev": true, "dependencies": { - "@libp2p/crypto": "^2.0.8", - "@libp2p/interface": "^0.1.6", - "@libp2p/peer-id": "^3.0.6", - "multiformats": "^12.0.1", + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1", + "multiformats": "^12.1.3", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, "node_modules/@libp2p/peer-record": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.9.tgz", - "integrity": "sha512-S8SibblcvJWMeOnHfL62nlQuwvgxDb4fB132Fw/2ej4wABqJa94KrllFk+oejJW7rzWIPCKhImcN5YY/ymIkiQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-7.0.0.tgz", + "integrity": "sha512-Kr5XgyRzqJjK4rBu+QA2e2zGT59rp2OKD8kviwpE4NwKWyDs85JaRduorso9KujJG/F0uZI8tOhPjadO1Lwatw==", "dev": true, "dependencies": { - "@libp2p/crypto": "^2.0.8", - "@libp2p/interface": "^0.1.6", - "@libp2p/peer-id": "^3.0.6", - "@libp2p/utils": "^4.0.7", - "@multiformats/multiaddr": "^12.1.5", + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/utils": "^5.0.2", + "@multiformats/multiaddr": "^12.1.10", "protons-runtime": "^5.0.0", "uint8-varint": "^2.0.0", "uint8arraylist": "^2.4.3", @@ -2732,62 +2499,81 @@ } }, "node_modules/@libp2p/peer-store": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.9.tgz", - "integrity": "sha512-8wP45gEozPw7mE5/p+2onAUXEPvb5pWiriV2UqPqrt9FZ7OTRUfD4sMxMxFgCGg8K5pcrXuQPBWyG7OEn4GOGg==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-10.0.0.tgz", + "integrity": "sha512-DQilgZXfwokKTbr1EDQssIfn5bAMLCEUronhqy9VEIrF7mkiSqjsBtOcftDEJT4dXhDOV8F7mifznvJI32tZIA==", "dev": true, "dependencies": { - "@libp2p/interface": "^0.1.6", - "@libp2p/logger": "^3.1.0", - "@libp2p/peer-collections": "^4.0.8", - "@libp2p/peer-id": "^3.0.6", - "@libp2p/peer-id-factory": "^3.0.8", - "@libp2p/peer-record": "^6.0.9", - "@multiformats/multiaddr": "^12.1.5", + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-collections": "^5.0.0", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/peer-id-factory": "^4.0.0", + "@libp2p/peer-record": "^7.0.0", + "@multiformats/multiaddr": "^12.1.10", "interface-datastore": "^8.2.0", "it-all": "^3.0.2", "mortice": "^3.0.1", - "multiformats": "^12.0.1", + "multiformats": "^12.1.3", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, - "node_modules/@libp2p/pubsub": { - "version": "8.0.10", - "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-8.0.10.tgz", - "integrity": "sha512-Bein6ZRg834sxcQeAvzrf8UUwMRZ42EkPJjv+0IXXOTpJE/pU25sP844yI7y+QPCFZ/tYLZ0/VVsf4y4s7diMQ==", + "node_modules/@libp2p/peer-store/node_modules/@libp2p/peer-collections": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.0.0.tgz", + "integrity": "sha512-2h6BF6t68TxnsErZrPzkMapH0GpZSCmOaimUMidrs9oSnxIMf62QnNAbfar8U2XbXnPJD9WkEicnSuJgDwg8Vw==", + "dev": true, "dependencies": { - "@libp2p/crypto": "^2.0.8", - "@libp2p/interface": "^0.1.6", - "@libp2p/interface-internal": "^0.1.9", - "@libp2p/logger": "^3.1.0", - "@libp2p/peer-collections": "^4.0.8", - "@libp2p/peer-id": "^3.0.6", - "abortable-iterator": "^5.0.1", - "it-length-prefixed": "^9.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1" + } + }, + "node_modules/@libp2p/pubsub": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-9.0.0.tgz", + "integrity": "sha512-yvgKBNKtF09x4ahbxJrxj/OBTNvOoJibR28YaTlrlCIDU78wMMhIx89Ma14g2FAN1OsxagifyAgq188vGrsGfA==", + "dependencies": { + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/interface-internal": "^1.0.1", + "@libp2p/peer-collections": "^5.0.0", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/utils": "^5.0.2", + "it-length-prefixed": "^9.0.3", "it-pipe": "^3.0.1", - "it-pushable": "^3.2.0", - "multiformats": "^12.0.1", - "p-queue": "^7.3.4", + "it-pushable": "^3.2.1", + "multiformats": "^12.1.3", + "p-queue": "^7.4.1", "uint8arraylist": "^2.4.3", "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/peer-collections": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-5.0.0.tgz", + "integrity": "sha512-2h6BF6t68TxnsErZrPzkMapH0GpZSCmOaimUMidrs9oSnxIMf62QnNAbfar8U2XbXnPJD9WkEicnSuJgDwg8Vw==", + "dependencies": { + "@libp2p/interface": "^1.0.1", + "@libp2p/peer-id": "^4.0.1" + } + }, "node_modules/@libp2p/utils": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-4.0.7.tgz", - "integrity": "sha512-xA6mS4II14870/DmmI3GFRWdNwHeOd2QV3ltatpdVmeEQpdn82jjtCzqn45AChjCugFOskOthXnQiWp+FvdKZg==", - "dev": true, + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-5.0.2.tgz", + "integrity": "sha512-PcDAH8pwtXq0pfoO9arHtg3CsqF+reheUd0OaQ9/Fn0YjjNpqcpseQyByBiwhiuQsauWo5RU+CKqRaRdvXKemA==", "dependencies": { "@chainsafe/is-ip": "^2.0.2", - "@libp2p/interface": "^0.1.6", - "@libp2p/logger": "^3.1.0", - "@multiformats/multiaddr": "^12.1.5", - "@multiformats/multiaddr-matcher": "^1.0.1", + "@libp2p/interface": "^1.0.1", + "@multiformats/multiaddr": "^12.1.10", + "@multiformats/multiaddr-matcher": "^1.1.0", + "get-iterator": "^2.0.1", "is-loopback-addr": "^2.0.1", + "it-pushable": "^3.2.2", "it-stream-types": "^2.0.1", - "private-ip": "^3.0.0", + "p-queue": "^7.4.1", + "private-ip": "^3.0.1", + "race-signal": "^1.0.1", "uint8arraylist": "^2.4.3" } }, @@ -2809,13 +2595,27 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-matcher/-/multiaddr-matcher-1.1.0.tgz", "integrity": "sha512-B/QbKpAxaHYVXFnbTdTgYqPDxmqoF2RYffwYoOv1MWfi2vBCZLdzmEKUBKv6fQr6s+LJFSHn2j2vczmwMFCQIA==", - "dev": true, "dependencies": { "@chainsafe/is-ip": "^2.0.1", "@multiformats/multiaddr": "^12.0.0", "multiformats": "^12.0.1" } }, + "node_modules/@multiformats/multiaddr/node_modules/@libp2p/interface": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.6.tgz", + "integrity": "sha512-Lzc5cS/hXuoXhuAbVIxJIHLCYmfPcbU0vVgrpMoiP1Qb2Q3ETU4A46GB8s8mWXgSU6tr9RcqerUqzFYD6+OAag==", + "dependencies": { + "@multiformats/multiaddr": "^12.1.5", + "abortable-iterator": "^5.0.1", + "it-pushable": "^3.2.0", + "it-stream-types": "^2.0.1", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "race-signal": "^1.0.0", + "uint8arraylist": "^2.4.3" + } + }, "node_modules/@noble/curves": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", @@ -4843,15 +4643,6 @@ "node": ">=8" } }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "extraneous": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", @@ -6662,6 +6453,35 @@ "uint8arrays": "^4.0.2" } }, + "node_modules/datastore-core/node_modules/@libp2p/interface": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.6.tgz", + "integrity": "sha512-Lzc5cS/hXuoXhuAbVIxJIHLCYmfPcbU0vVgrpMoiP1Qb2Q3ETU4A46GB8s8mWXgSU6tr9RcqerUqzFYD6+OAag==", + "dev": true, + "dependencies": { + "@multiformats/multiaddr": "^12.1.5", + "abortable-iterator": "^5.0.1", + "it-pushable": "^3.2.0", + "it-stream-types": "^2.0.1", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "race-signal": "^1.0.0", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/datastore-core/node_modules/@libp2p/logger": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.1.0.tgz", + "integrity": "sha512-qJbJBAhxHVsRBtQSOIkSLi0lskUSFjzE+zm0QvoyxzZKSz+mX41mZLbnofPIVOVauoDQ40dXpe7WDUOq8AbiQQ==", + "dev": true, + "dependencies": { + "@libp2p/interface": "^0.1.6", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, "node_modules/date-fns": { "version": "1.30.1", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", @@ -10130,7 +9950,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", - "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -10142,7 +9961,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "dev": true, "engines": { "node": ">= 10" } @@ -10404,8 +10222,7 @@ "node_modules/is-loopback-addr": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.2.tgz", - "integrity": "sha512-26POf2KRCno/KTNL5Q0b/9TYnL00xEsSaLfiFRmjM7m7Lw7ZMmFybzzuX4CcsLAluZGd+niLUiMRxEooVE3aqg==", - "dev": true + "integrity": "sha512-26POf2KRCno/KTNL5Q0b/9TYnL00xEsSaLfiFRmjM7m7Lw7ZMmFybzzuX4CcsLAluZGd+niLUiMRxEooVE3aqg==" }, "node_modules/is-nan": { "version": "1.3.2", @@ -10956,29 +10773,6 @@ "it-peekable": "^3.0.0" } }, - "node_modules/it-first": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-3.0.3.tgz", - "integrity": "sha512-RC8tplctsDpoBUljwsp1viiyaR5fPvMe+FgbbcU0sFjKkJa7iwbB4CCPhHtVYSdjsrREfr0QEotfQrBoGyt7Dw==", - "dev": true - }, - "node_modules/it-handshake": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.1.3.tgz", - "integrity": "sha512-V6Lt9A9usox9iduOX+edU1Vo94E6v9Lt9dOvg3ubFaw1qf5NCxXLi93Ao4fyCHWDYd8Y+DUhadwNtWVyn7qqLg==", - "dev": true, - "dependencies": { - "it-pushable": "^3.1.0", - "it-reader": "^6.0.1", - "it-stream-types": "^2.0.1", - "p-defer": "^4.0.0", - "uint8arraylist": "^2.0.0" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/it-length-prefixed": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.3.tgz", @@ -10997,9 +10791,9 @@ } }, "node_modules/it-length-prefixed-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-length-prefixed-stream/-/it-length-prefixed-stream-1.1.0.tgz", - "integrity": "sha512-TdpxiL8SQ6QMyfyfXW7clHfeicjraYRaG5C9VIo84zU8n2SeiS6ySKz6/uFC0hhAidzMRExVUkXNz489u4GeLA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/it-length-prefixed-stream/-/it-length-prefixed-stream-1.1.4.tgz", + "integrity": "sha512-6YcQ5jsaYnuXBqF+oSGjSdSY9jF7HWl7yh+dxYytXxbE2GcdiOpn6pLM7m6AlIID9MCzQqMY5nOzaiatQ8A3/A==", "dev": true, "dependencies": { "it-byte-stream": "^1.0.0", @@ -13598,7 +13392,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "dev": true, "engines": { "node": ">= 0.4.0" } @@ -19468,7 +19261,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-3.0.1.tgz", "integrity": "sha512-Ezc16ANuhSHmWAE6lbXUKburNzGpR0J5X0Zh5Um/PZ/s57Fp+HYqYe6BYPH2QbqKr/5WebfzJQ1jq6Kj5dbRmA==", - "dev": true, "dependencies": { "@chainsafe/is-ip": "^2.0.1", "ip-regex": "^5.0.0", @@ -19684,9 +19476,9 @@ } }, "node_modules/race-signal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/race-signal/-/race-signal-1.0.1.tgz", - "integrity": "sha512-a5un4dInIWoB7+76DieVE+Xv+wmyochKJ3P2GVs9dUKIzGuPyFR5iU3gEWJvztde/15fSOGkslbIsPxi+Loosw==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/race-signal/-/race-signal-1.0.2.tgz", + "integrity": "sha512-o3xNv0iTcIDQCXFlF6fPAMEBRjFxssgGoRqLbg06m+AdzEXXLUmoNOoUHTVz2NoBI8hHwKFKoC6IqyNtWr2bww==" }, "node_modules/ramda": { "version": "0.25.0", diff --git a/package.json b/package.json index b525204a..d70a22d2 100644 --- a/package.json +++ b/package.json @@ -72,12 +72,11 @@ }, "homepage": "https://github.com/ChainSafe/js-libp2p-gossipsub#readme", "dependencies": { - "@libp2p/crypto": "^2.0.0", - "@libp2p/interface": "^0.1.4", - "@libp2p/interface-internal": "^0.1.0", - "@libp2p/logger": "^3.0.0", - "@libp2p/peer-id": "^3.0.0", - "@libp2p/pubsub": "^8.0.0", + "@libp2p/crypto": "^3.0.1", + "@libp2p/interface": "^1.0.1", + "@libp2p/interface-internal": "^1.0.1", + "@libp2p/peer-id": "^4.0.1", + "@libp2p/pubsub": "^9.0.0", "@multiformats/multiaddr": "^12.1.3", "abortable-iterator": "^5.0.1", "denque": "^2.1.0", @@ -92,10 +91,11 @@ "devDependencies": { "@chainsafe/as-sha256": "^0.2.4", "@dapplion/benchmark": "^0.2.4", - "@libp2p/floodsub": "^8.0.0", - "@libp2p/interface-compliance-tests": "^4.0.0", - "@libp2p/peer-id-factory": "^3.0.0", - "@libp2p/peer-store": "^9.0.0", + "@libp2p/floodsub": "^9.0.0", + "@libp2p/interface-compliance-tests": "^5.0.2", + "@libp2p/logger": "^4.0.1", + "@libp2p/peer-id-factory": "^4.0.0", + "@libp2p/peer-store": "^10.0.0", "@types/node": "^17.0.21", "aegir": "^41.0.0", "datastore-core": "^9.1.1", diff --git a/src/index.ts b/src/index.ts index df09fed8..fda57c44 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,4 @@ -import { CustomEvent, TypedEventEmitter } from '@libp2p/interface/events' -import { StrictSign, StrictNoSign, TopicValidatorResult } from '@libp2p/interface/pubsub' -import { type Logger, logger } from '@libp2p/logger' +import { CustomEvent, TypedEventEmitter, StrictSign, StrictNoSign, TopicValidatorResult } from '@libp2p/interface' import { peerIdFromBytes, peerIdFromString } from '@libp2p/peer-id' import { pipe } from 'it-pipe' import { pushable } from 'it-pushable' @@ -62,18 +60,18 @@ import { getPublishConfigFromPeerId } from './utils/publishConfig.js' import { removeFirstNItemsFromSet, removeItemsFromSet } from './utils/set.js' import { SimpleTimeCache } from './utils/time-cache.js' import type { GossipsubOptsSpec } from './config.js' -import type { Connection, Stream } from '@libp2p/interface/connection' -import type { PeerId } from '@libp2p/interface/peer-id' -import type { Peer, PeerStore } from '@libp2p/interface/peer-store' import type { + Connection, Stream, PeerId, Peer, PeerStore, Message, PublishResult, PubSub, PubSubEvents, PubSubInit, SubscriptionChangeData, - TopicValidatorFn -} from '@libp2p/interface/pubsub' + TopicValidatorFn, + Logger, + ComponentLogger +} from '@libp2p/interface' import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' import type { IncomingStreamData, Registrar } from '@libp2p/interface-internal/registrar' import type { Multiaddr } from '@multiformats/multiaddr' @@ -224,6 +222,7 @@ export interface GossipSubComponents { peerStore: PeerStore registrar: Registrar connectionManager: ConnectionManager + logger: ComponentLogger } export class GossipSub extends TypedEventEmitter implements PubSub { @@ -431,7 +430,7 @@ export class GossipSub extends TypedEventEmitter implements Pub } // From pubsub - this.log = logger(opts.debugName ?? 'libp2p:gossipsub') + this.log = components.logger.forComponent(opts.debugName ?? 'libp2p:gossipsub') // Gossipsub diff --git a/src/metrics.ts b/src/metrics.ts index a7d77205..cb329662 100644 --- a/src/metrics.ts +++ b/src/metrics.ts @@ -1,4 +1,4 @@ -import { TopicValidatorResult } from '@libp2p/interface/pubsub' +import { TopicValidatorResult } from '@libp2p/interface' import { MessageStatus, type PeerIdStr, diff --git a/src/score/peer-score-params.ts b/src/score/peer-score-params.ts index 6f001b2c..cf2761c0 100644 --- a/src/score/peer-score-params.ts +++ b/src/score/peer-score-params.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { ERR_INVALID_PEER_SCORE_PARAMS } from './constants.js' // This file defines PeerScoreParams and TopicScoreParams interfaces diff --git a/src/score/peer-score-thresholds.ts b/src/score/peer-score-thresholds.ts index 18fa3114..b2e8dccc 100644 --- a/src/score/peer-score-thresholds.ts +++ b/src/score/peer-score-thresholds.ts @@ -1,4 +1,4 @@ -import { CodeError } from '@libp2p/interface/errors' +import { CodeError } from '@libp2p/interface' import { ERR_INVALID_PEER_SCORE_THRESHOLDS } from './constants.js' // This file defines PeerScoreThresholds interface diff --git a/src/stream.ts b/src/stream.ts index 2591ce62..00573326 100644 --- a/src/stream.ts +++ b/src/stream.ts @@ -2,7 +2,7 @@ import { abortableSource } from 'abortable-iterator' import { encode, decode } from 'it-length-prefixed' import { pipe } from 'it-pipe' import { pushable, type Pushable } from 'it-pushable' -import type { Stream } from '@libp2p/interface/connection' +import type { Stream } from '@libp2p/interface' import type { Uint8ArrayList } from 'uint8arraylist' interface OutboundStreamOpts { diff --git a/src/types.ts b/src/types.ts index 859c23df..25fbad35 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,7 +1,5 @@ -import { type Message, TopicValidatorResult } from '@libp2p/interface/pubsub' +import { type Message, TopicValidatorResult, type PrivateKey, type PeerId } from '@libp2p/interface' import type { RPC } from './message/rpc.js' -import type { PrivateKey } from '@libp2p/interface/keys' -import type { PeerId } from '@libp2p/interface/peer-id' import type { Multiaddr } from '@multiformats/multiaddr' export type MsgIdStr = string diff --git a/src/utils/buildRawMessage.ts b/src/utils/buildRawMessage.ts index 56ad558e..bb1b870b 100644 --- a/src/utils/buildRawMessage.ts +++ b/src/utils/buildRawMessage.ts @@ -1,6 +1,6 @@ import { randomBytes } from '@libp2p/crypto' import { marshalPublicKey, unmarshalPublicKey } from '@libp2p/crypto/keys' -import { StrictSign, StrictNoSign, type Message } from '@libp2p/interface/pubsub' +import { StrictSign, StrictNoSign, type Message, type PublicKey, type PeerId } from '@libp2p/interface' import { peerIdFromBytes } from '@libp2p/peer-id' import { concat as uint8ArrayConcat } from 'uint8arrays/concat' import { equals as uint8ArrayEquals } from 'uint8arrays/equals' @@ -8,8 +8,6 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { toString as uint8ArrayToString } from 'uint8arrays/to-string' import { RPC } from '../message/rpc.js' import { type PublishConfig, PublishConfigType, type TopicStr, ValidateError } from '../types.js' -import type { PublicKey } from '@libp2p/interface/keys' -import type { PeerId } from '@libp2p/interface/peer-id' export const SignPrefix = uint8ArrayFromString('libp2p-pubsub:') diff --git a/src/utils/msgIdFn.ts b/src/utils/msgIdFn.ts index d822edf4..a36d40ab 100644 --- a/src/utils/msgIdFn.ts +++ b/src/utils/msgIdFn.ts @@ -1,6 +1,6 @@ import { msgId } from '@libp2p/pubsub/utils' import { sha256 } from 'multiformats/hashes/sha2' -import type { Message } from '@libp2p/interface/pubsub' +import type { Message } from '@libp2p/interface' /** * Generate a message id, based on the `key` and `seqno` diff --git a/src/utils/publishConfig.ts b/src/utils/publishConfig.ts index 79b9d4f0..7d3acdad 100644 --- a/src/utils/publishConfig.ts +++ b/src/utils/publishConfig.ts @@ -1,7 +1,7 @@ import { unmarshalPrivateKey } from '@libp2p/crypto/keys' -import { StrictSign, StrictNoSign } from '@libp2p/interface/pubsub' +import { StrictSign, StrictNoSign } from '@libp2p/interface' import { type PublishConfig, PublishConfigType } from '../types.js' -import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerId } from '@libp2p/interface' /** * Prepare a PublishConfig object from a PeerId. diff --git a/test/2-nodes.spec.ts b/test/2-nodes.spec.ts index 3722fc3d..97a710a9 100644 --- a/test/2-nodes.spec.ts +++ b/test/2-nodes.spec.ts @@ -1,4 +1,4 @@ -import { stop } from '@libp2p/interface/startable' +import { stop } from '@libp2p/interface' import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks' import { expect } from 'aegir/chai' import defer from 'p-defer' @@ -12,7 +12,7 @@ import { createComponentsArray, type GossipSubAndComponents } from './utils/create-pubsub.js' -import type { Message, SubscriptionChangeData } from '@libp2p/interface/pubsub' +import type { Message, SubscriptionChangeData } from '@libp2p/interface' const shouldNotHappen = (): never => expect.fail() diff --git a/test/accept-from.spec.ts b/test/accept-from.spec.ts index 13f7e3cc..d8b662c2 100644 --- a/test/accept-from.spec.ts +++ b/test/accept-from.spec.ts @@ -1,10 +1,11 @@ +import { type PeerStore } from '@libp2p/interface' +import { defaultLogger } from '@libp2p/logger' import { expect } from 'aegir/chai' import sinon from 'sinon' import { stubInterface } from 'ts-sinon' import { GossipSub } from '../src/index.js' import { createPeerId } from './utils/index.js' import { fastMsgIdFn } from './utils/msgId.js' -import type { PeerStore } from '@libp2p/interface/peer-store' import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' import type { Registrar } from '@libp2p/interface-internal/registrar' @@ -26,7 +27,8 @@ describe('Gossipsub acceptFrom', () => { peerId, registrar: stubInterface(), peerStore: stubInterface(), - connectionManager: stubInterface() + connectionManager: stubInterface(), + logger: defaultLogger() }, { emitSelf: false, fastMsgIdFn } ) diff --git a/test/allowedTopics.spec.ts b/test/allowedTopics.spec.ts index c147502b..48d54f50 100644 --- a/test/allowedTopics.spec.ts +++ b/test/allowedTopics.spec.ts @@ -1,4 +1,4 @@ -import { stop } from '@libp2p/interface/startable' +import { stop } from '@libp2p/interface' import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks' import { expect } from 'aegir/chai' import { pEvent } from 'p-event' diff --git a/test/compliance.spec.ts b/test/compliance.spec.ts index 5e7998ca..5e3da4d4 100644 --- a/test/compliance.spec.ts +++ b/test/compliance.spec.ts @@ -1,5 +1,6 @@ -import { TypedEventEmitter } from '@libp2p/interface/events' +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 { MemoryDatastore } from 'datastore-core' import { GossipSub } from '../src/index.js' @@ -20,7 +21,8 @@ describe.skip('interface compliance', function () { peerStore: new PersistentPeerStore({ peerId: args.components.peerId, datastore: new MemoryDatastore(), - events: new TypedEventEmitter() + events: new TypedEventEmitter(), + logger: defaultLogger() }) }, { diff --git a/test/e2e/go-gossipsub.spec.ts b/test/e2e/go-gossipsub.spec.ts index 4a8f5175..7f363fd5 100644 --- a/test/e2e/go-gossipsub.spec.ts +++ b/test/e2e/go-gossipsub.spec.ts @@ -1,6 +1,6 @@ import { FloodSub } from '@libp2p/floodsub' -import { type Message, TopicValidatorResult } from '@libp2p/interface/pubsub' -import { stop } from '@libp2p/interface/startable' +import { type Message, TopicValidatorResult, type Libp2pEvents } from '@libp2p/interface' +import { stop } from '@libp2p/interface' import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks' import { expect } from 'aegir/chai' import delay from 'delay' @@ -22,7 +22,6 @@ import { awaitEvents, checkReceivedSubscription, checkReceivedSubscriptions } fr import { fastMsgIdFn } from '../utils/index.js' import type { IRPC, RPC } from '../../src/message/rpc.js' import type { TopicScoreParams } from '../../src/score/peer-score-params.js' -import type { Libp2pEvents } from '@libp2p/interface' /** * These tests were translated from: diff --git a/test/floodsub.spec.ts b/test/floodsub.spec.ts index 1c5520dd..0fb47a49 100644 --- a/test/floodsub.spec.ts +++ b/test/floodsub.spec.ts @@ -1,5 +1,5 @@ import { FloodSub } from '@libp2p/floodsub' -import { stop } from '@libp2p/interface/startable' +import { stop } from '@libp2p/interface' import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks' import { expect } from 'aegir/chai' import delay from 'delay' @@ -7,7 +7,7 @@ import { pEvent } from 'p-event' import pRetry from 'p-retry' import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { connectPubsubNodes, createComponents, type GossipSubAndComponents } from './utils/create-pubsub.js' -import type { SubscriptionChangeData, Message } from '@libp2p/interface/pubsub' +import type { SubscriptionChangeData, Message } from '@libp2p/interface' describe('gossipsub fallbacks to floodsub', () => { describe('basics', () => { diff --git a/test/gossip.spec.ts b/test/gossip.spec.ts index a0017b07..cb191a5c 100644 --- a/test/gossip.spec.ts +++ b/test/gossip.spec.ts @@ -1,5 +1,6 @@ -import { stop } from '@libp2p/interface/startable' +import { stop } from '@libp2p/interface' import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks' +import { defaultLogger } from '@libp2p/logger' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { expect } from 'aegir/chai' import { pEvent } from 'p-event' @@ -9,7 +10,7 @@ import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' import { GossipsubDhi } from '../src/constants.js' import { GossipSub } from '../src/index.js' import { connectAllPubSubNodes, createComponentsArray, type GossipSubAndComponents } from './utils/create-pubsub.js' -import type { PeerStore } from '@libp2p/interface/peer-store' +import type { PeerStore } from '@libp2p/interface' import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' import type { Registrar } from '@libp2p/interface-internal/registrar' @@ -218,7 +219,8 @@ describe('gossip', () => { peerId: await createEd25519PeerId(), registrar, peerStore: stubInterface(), - connectionManager: stubInterface() + connectionManager: stubInterface(), + logger: defaultLogger() }, { maxInboundStreams, diff --git a/test/heartbeat.spec.ts b/test/heartbeat.spec.ts index e86ff797..d6482ba9 100644 --- a/test/heartbeat.spec.ts +++ b/test/heartbeat.spec.ts @@ -1,4 +1,4 @@ -import { stop } from '@libp2p/interface/startable' +import { stop } from '@libp2p/interface' import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks' import { expect } from 'aegir/chai' import { pEvent } from 'p-event' diff --git a/test/mesh.spec.ts b/test/mesh.spec.ts index 821d7c94..42acb9a0 100644 --- a/test/mesh.spec.ts +++ b/test/mesh.spec.ts @@ -1,4 +1,4 @@ -import { stop } from '@libp2p/interface/startable' +import { stop } from '@libp2p/interface' import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks' import { expect } from 'aegir/chai' import delay from 'delay' diff --git a/test/signature-policy.spec.ts b/test/signature-policy.spec.ts index 1f51c6a7..91e64ac2 100644 --- a/test/signature-policy.spec.ts +++ b/test/signature-policy.spec.ts @@ -1,4 +1,4 @@ -import { stop } from '@libp2p/interface/startable' +import { stop } from '@libp2p/interface' import { mockNetwork } from '@libp2p/interface-compliance-tests/mocks' import { expect } from 'aegir/chai' import { pEvent } from 'p-event' diff --git a/test/utils/create-pubsub.ts b/test/utils/create-pubsub.ts index 7e6b1ef7..4e5952c1 100644 --- a/test/utils/create-pubsub.ts +++ b/test/utils/create-pubsub.ts @@ -1,14 +1,13 @@ import { setMaxListeners } from 'events' -import { TypedEventEmitter, type TypedEventTarget } from '@libp2p/interface/events' -import { start } from '@libp2p/interface/startable' +import { TypedEventEmitter, start } from '@libp2p/interface' import { mockRegistrar, mockConnectionManager, mockNetwork } from '@libp2p/interface-compliance-tests/mocks' +import { defaultLogger } from '@libp2p/logger' import { createRSAPeerId } from '@libp2p/peer-id-factory' import { PersistentPeerStore } from '@libp2p/peer-store' import { MemoryDatastore } from 'datastore-core' import { stubInterface } from 'ts-sinon' import { GossipSub, type GossipSubComponents, type GossipsubOpts } from '../../src/index.js' -import type { Libp2pEvents } from '@libp2p/interface' -import type { PubSub } from '@libp2p/interface/pubsub' +import type { TypedEventTarget, Libp2pEvents, PubSub } from '@libp2p/interface' import type { ConnectionManager } from '@libp2p/interface-internal/connection-manager' export interface CreateComponentsOpts { @@ -30,6 +29,7 @@ export const createComponents = async (opts: CreateComponentsOpts): Promise() + const logger = defaultLogger() const components: GossipSubTestComponents = { peerId, @@ -38,9 +38,11 @@ export const createComponents = async (opts: CreateComponentsOpts): Promise