diff --git a/benchmarks/orbitdb-events.js b/benchmarks/orbitdb-events.js index 69571db..0a3cc56 100644 --- a/benchmarks/orbitdb-events.js +++ b/benchmarks/orbitdb-events.js @@ -1,33 +1,10 @@ import { createOrbitDB } from '../src/index.js' import { rimraf as rmrf } from 'rimraf' -import * as IPFS from 'ipfs-core' +import createHelia from '../test/utils/create-helia.js' import { EventEmitter } from 'events' EventEmitter.defaultMaxListeners = 10000 -const ipfsConfig = { - preload: { - enabled: false - }, - config: { - Addresses: { - API: '/ip4/127.0.0.1/tcp/0', - Swarm: ['/ip4/0.0.0.0/tcp/0'], - Gateway: '/ip4/0.0.0.0/tcp/0' - }, - Bootstrap: [], - Discovery: { - MDNS: { - Enabled: false, - Interval: 0 - }, - webRTCStar: { - Enabled: false - } - } - } -} - ;(async () => { console.log('Starting benchmark...') @@ -36,7 +13,7 @@ const ipfsConfig = { await rmrf('./ipfs') await rmrf('./orbitdb') - const ipfs = await IPFS.create({ ...ipfsConfig, repo: './ipfs' }) + const ipfs = await createHelia() const orbitdb = await createOrbitDB({ ipfs }) console.log(`Create ${entryCount} events`) diff --git a/benchmarks/orbitdb-keyvalue.js b/benchmarks/orbitdb-keyvalue.js index 125cbd0..656f5c9 100644 --- a/benchmarks/orbitdb-keyvalue.js +++ b/benchmarks/orbitdb-keyvalue.js @@ -1,33 +1,10 @@ import { createOrbitDB } from '../src/index.js' import { rimraf as rmrf } from 'rimraf' -import * as IPFS from 'ipfs-core' +import createHelia from '../test/utils/create-helia.js' import { EventEmitter } from 'events' EventEmitter.defaultMaxListeners = 10000 -const ipfsConfig = { - preload: { - enabled: false - }, - config: { - Addresses: { - API: '/ip4/127.0.0.1/tcp/0', - Swarm: ['/ip4/0.0.0.0/tcp/0'], - Gateway: '/ip4/0.0.0.0/tcp/0' - }, - Bootstrap: [], - Discovery: { - MDNS: { - Enabled: false, - Interval: 0 - }, - webRTCStar: { - Enabled: false - } - } - } -} - ;(async () => { console.log('Starting benchmark...') @@ -36,7 +13,7 @@ const ipfsConfig = { await rmrf('./ipfs') await rmrf('./orbitdb') - const ipfs = await IPFS.create({ ...ipfsConfig, repo: './ipfs' }) + const ipfs = await createHelia() const orbitdb = await createOrbitDB({ ipfs }) console.log(`Set ${entryCount} keys/values`) diff --git a/benchmarks/orbitdb-replicate.js b/benchmarks/orbitdb-replicate.js index 3b641e9..9917036 100644 --- a/benchmarks/orbitdb-replicate.js +++ b/benchmarks/orbitdb-replicate.js @@ -1,47 +1,22 @@ import { createOrbitDB } from '../src/index.js' import { rimraf as rmrf } from 'rimraf' -import * as IPFS from 'ipfs-core' +import createHelia from '../test/utils/create-helia.js' import connectPeers from '../test/utils/connect-nodes.js' import waitFor from '../test/utils/wait-for.js' import { EventEmitter } from 'events' EventEmitter.defaultMaxListeners = 10000 -const ipfsConfig = { - preload: { - enabled: false - }, - config: { - Addresses: { - API: '/ip4/127.0.0.1/tcp/0', - Swarm: ['/ip4/0.0.0.0/tcp/0'], - Gateway: '/ip4/0.0.0.0/tcp/0' - }, - Bootstrap: [], - Discovery: { - MDNS: { - Enabled: true, - Interval: 0 - }, - webRTCStar: { - Enabled: false - } - } - } -} - ;(async () => { console.log('Starting benchmark...') const entryCount = 1000 - await rmrf('./ipfs1') - await rmrf('./ipfs2') await rmrf('./orbitdb1') await rmrf('./orbitdb2') - const ipfs1 = await IPFS.create({ ...ipfsConfig, repo: './ipfs1' }) - const ipfs2 = await IPFS.create({ ...ipfsConfig, repo: './ipfs2' }) + const [ipfs1, ipfs2] = await Promise.all([createHelia(), createHelia()]) + const orbitdb1 = await createOrbitDB({ ipfs: ipfs1, directory: './orbitdb1' }) const orbitdb2 = await createOrbitDB({ ipfs: ipfs2, directory: './orbitdb2' }) @@ -75,19 +50,12 @@ const ipfsConfig = { await waitFor(() => connected, () => true) - console.log(`Iterate ${entryCount} events to replicate them`) - - const all = [] - for await (const { value } of db2.iterator()) { - all.unshift(value) - } - const endTime2 = new Date().getTime() const duration2 = endTime2 - startTime2 const operationsPerSecond2 = Math.floor(entryCount / (duration2 / 1000)) const millisecondsPerOp2 = duration2 / entryCount - console.log(`Replicating ${all.length} events took ${duration2} ms, ${operationsPerSecond2} ops/s, ${millisecondsPerOp2} ms/op`) + console.log(`Replicating ${entryCount} events took ${duration2} ms, ${operationsPerSecond2} ops/s, ${millisecondsPerOp2} ms/op`) await db1.drop() await db1.close() @@ -99,8 +67,6 @@ const ipfsConfig = { await ipfs1.stop() await ipfs2.stop() - await rmrf('./ipfs1') - await rmrf('./ipfs2') await rmrf('./orbitdb1') await rmrf('./orbitdb2') diff --git a/package-lock.json b/package-lock.json index 8087050..1af6d87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,29 +9,29 @@ "version": "1.0.2", "license": "MIT", "dependencies": { - "@ipld/dag-cbor": "^9.0.5", - "@libp2p/crypto": "^2.0.4", + "@ipld/dag-cbor": "^9.0.6", + "@libp2p/crypto": "^3.0.2", "it-pipe": "^3.0.1", "level": "^8.0.0", "lru": "^3.1.0", - "multiformats": "^12.1.1", - "p-queue": "^7.4.1", + "multiformats": "^12.1.3", + "p-queue": "^8.0.1", "timeout-abort-controller": "^3.0.0", - "uint8arrays": "^4.0.6" + "uint8arrays": "^5.0.0" }, "devDependencies": { "c8": "^8.0.1", "cross-env": "^7.0.3", - "fs-extra": "^11.1.1", + "fs-extra": "^11.2.0", "helia": "^2.1.0", - "it-all": "^3.0.3", + "it-all": "^3.0.4", "jsdoc": "^4.0.2", "mocha": "^10.2.0", "path-browserify": "^1.0.1", - "playwright-test": "^12.6.1", - "rimraf": "^5.0.1", + "playwright-test": "^14.0.0", + "rimraf": "^5.0.5", "standard": "^17.1.0", - "webpack": "^5.88.2", + "webpack": "^5.89.0", "webpack-cli": "^5.1.4" }, "engines": { @@ -172,6 +172,31 @@ "npm": ">=8.7.0" } }, + "node_modules/@chainsafe/libp2p-gossipsub/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/@chainsafe/libp2p-gossipsub/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@chainsafe/libp2p-noise": { "version": "13.0.5", "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-13.0.5.tgz", @@ -203,6 +228,31 @@ "npm": ">=7.0.0" } }, + "node_modules/@chainsafe/libp2p-noise/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/@chainsafe/libp2p-noise/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@chainsafe/libp2p-yamux": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-yamux/-/libp2p-yamux-5.0.4.tgz", @@ -236,9 +286,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.7.tgz", + "integrity": "sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==", "cpu": [ "arm" ], @@ -252,9 +302,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.7.tgz", + "integrity": "sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==", "cpu": [ "arm64" ], @@ -268,9 +318,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.7.tgz", + "integrity": "sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==", "cpu": [ "x64" ], @@ -284,9 +334,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", - "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.7.tgz", + "integrity": "sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==", "cpu": [ "arm64" ], @@ -300,9 +350,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.7.tgz", + "integrity": "sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==", "cpu": [ "x64" ], @@ -316,9 +366,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.7.tgz", + "integrity": "sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==", "cpu": [ "arm64" ], @@ -332,9 +382,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.7.tgz", + "integrity": "sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==", "cpu": [ "x64" ], @@ -348,9 +398,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.7.tgz", + "integrity": "sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==", "cpu": [ "arm" ], @@ -364,9 +414,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.7.tgz", + "integrity": "sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==", "cpu": [ "arm64" ], @@ -380,9 +430,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.7.tgz", + "integrity": "sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==", "cpu": [ "ia32" ], @@ -396,9 +446,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.7.tgz", + "integrity": "sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==", "cpu": [ "loong64" ], @@ -412,9 +462,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.7.tgz", + "integrity": "sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==", "cpu": [ "mips64el" ], @@ -428,9 +478,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.7.tgz", + "integrity": "sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==", "cpu": [ "ppc64" ], @@ -444,9 +494,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.7.tgz", + "integrity": "sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==", "cpu": [ "riscv64" ], @@ -460,9 +510,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.7.tgz", + "integrity": "sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==", "cpu": [ "s390x" ], @@ -476,9 +526,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.7.tgz", + "integrity": "sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==", "cpu": [ "x64" ], @@ -492,9 +542,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.7.tgz", + "integrity": "sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==", "cpu": [ "x64" ], @@ -508,9 +558,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.7.tgz", + "integrity": "sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==", "cpu": [ "x64" ], @@ -524,9 +574,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.7.tgz", + "integrity": "sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==", "cpu": [ "x64" ], @@ -540,9 +590,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.7.tgz", + "integrity": "sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==", "cpu": [ "arm64" ], @@ -556,9 +606,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.7.tgz", + "integrity": "sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==", "cpu": [ "ia32" ], @@ -572,9 +622,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.7.tgz", + "integrity": "sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==", "cpu": [ "x64" ], @@ -687,6 +737,43 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@helia/delegated-routing-v1-http-api-client/node_modules/p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "dev": true, + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@helia/delegated-routing-v1-http-api-client/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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@helia/delegated-routing-v1-http-api-client/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@helia/interface": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@helia/interface/-/interface-2.1.0.tgz", @@ -965,24 +1052,37 @@ } }, "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.2", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-3.0.2.tgz", + "integrity": "sha512-dZuQ+UGv1fOc5i+RQ2e/c7CUy2iE7UnmQ9XuHrLb24fe4pmb6YmGl/5TPm09O+8d5q4htOyg0RrU3GfmqmpMZQ==", "dependencies": { - "@libp2p/interface": "^0.1.6", + "@libp2p/interface": "^1.0.2", "@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", - "uint8arrays": "^4.0.6" + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/crypto/node_modules/@libp2p/interface": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.0.2.tgz", + "integrity": "sha512-z/3Yyg+7cVyzRXwzdrDkJd7YmNaLE9iZjQaixo5luI/n9uk5OFFjb9ulAsNqpq8V1xylCo2DXIC7f94KClwzVw==", + "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": { "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", @@ -1049,6 +1149,59 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/kad-dht/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/kad-dht/node_modules/p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "dev": true, + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/kad-dht/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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/keychain": { "version": "3.0.8", "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.8.tgz", @@ -1065,6 +1218,31 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/keychain/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/keychain/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/logger": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.1.0.tgz", @@ -1113,6 +1291,15 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/mplex/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/multistream-select": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.10.tgz", @@ -1135,6 +1322,15 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/multistream-select/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/peer-collections": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.11.tgz", @@ -1171,6 +1367,40 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/peer-id-factory/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/peer-id-factory/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/peer-id/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/peer-record": { "version": "6.0.12", "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.12.tgz", @@ -1188,6 +1418,31 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/peer-record/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/peer-record/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/peer-store": { "version": "9.0.12", "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.12.tgz", @@ -1210,6 +1465,15 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/peer-store/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/pubsub": { "version": "8.0.14", "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-8.0.14.tgz", @@ -1232,6 +1496,59 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/pubsub/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/pubsub/node_modules/p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "dev": true, + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/pubsub/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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/pubsub/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/tcp": { "version": "8.0.13", "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-8.0.13.tgz", @@ -1299,6 +1616,15 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/webrtc/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/websockets": { "version": "7.0.13", "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-7.0.13.tgz", @@ -1337,6 +1663,15 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@libp2p/webtransport/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@multiformats/base-x": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", @@ -1402,6 +1737,14 @@ "uint8arraylist": "^2.4.3" } }, + "node_modules/@multiformats/multiaddr/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@noble/ciphers": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.4.1.tgz", @@ -1902,6 +2245,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", + "dev": true, "dependencies": { "get-iterator": "^2.0.0", "it-stream-types": "^2.0.1" @@ -2330,15 +2674,6 @@ "multiformats": "^12.1.3" } }, - "node_modules/blockstore-core/node_modules/uint8arrays": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.0.tgz", - "integrity": "sha512-RWO7gR4x6syxnKDfZO8mDCsaaYs1/BqZCxlHgrcRge50E9GTnLmtoA4kwFSGIL4s3dQkryeTkvtG6oEFEya3yg==", - "dev": true, - "dependencies": { - "multiformats": "^12.0.1" - } - }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -2995,15 +3330,6 @@ "multiformats": "^12.1.3" } }, - "node_modules/datastore-core/node_modules/uint8arrays": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.0.tgz", - "integrity": "sha512-RWO7gR4x6syxnKDfZO8mDCsaaYs1/BqZCxlHgrcRge50E9GTnLmtoA4kwFSGIL4s3dQkryeTkvtG6oEFEya3yg==", - "dev": true, - "dependencies": { - "multiformats": "^12.0.1" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -3402,9 +3728,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", - "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.7.tgz", + "integrity": "sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==", "dev": true, "hasInstallScript": true, "bin": { @@ -3414,28 +3740,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.5", - "@esbuild/android-arm64": "0.19.5", - "@esbuild/android-x64": "0.19.5", - "@esbuild/darwin-arm64": "0.19.5", - "@esbuild/darwin-x64": "0.19.5", - "@esbuild/freebsd-arm64": "0.19.5", - "@esbuild/freebsd-x64": "0.19.5", - "@esbuild/linux-arm": "0.19.5", - "@esbuild/linux-arm64": "0.19.5", - "@esbuild/linux-ia32": "0.19.5", - "@esbuild/linux-loong64": "0.19.5", - "@esbuild/linux-mips64el": "0.19.5", - "@esbuild/linux-ppc64": "0.19.5", - "@esbuild/linux-riscv64": "0.19.5", - "@esbuild/linux-s390x": "0.19.5", - "@esbuild/linux-x64": "0.19.5", - "@esbuild/netbsd-x64": "0.19.5", - "@esbuild/openbsd-x64": "0.19.5", - "@esbuild/sunos-x64": "0.19.5", - "@esbuild/win32-arm64": "0.19.5", - "@esbuild/win32-ia32": "0.19.5", - "@esbuild/win32-x64": "0.19.5" + "@esbuild/android-arm": "0.19.7", + "@esbuild/android-arm64": "0.19.7", + "@esbuild/android-x64": "0.19.7", + "@esbuild/darwin-arm64": "0.19.7", + "@esbuild/darwin-x64": "0.19.7", + "@esbuild/freebsd-arm64": "0.19.7", + "@esbuild/freebsd-x64": "0.19.7", + "@esbuild/linux-arm": "0.19.7", + "@esbuild/linux-arm64": "0.19.7", + "@esbuild/linux-ia32": "0.19.7", + "@esbuild/linux-loong64": "0.19.7", + "@esbuild/linux-mips64el": "0.19.7", + "@esbuild/linux-ppc64": "0.19.7", + "@esbuild/linux-riscv64": "0.19.7", + "@esbuild/linux-s390x": "0.19.7", + "@esbuild/linux-x64": "0.19.7", + "@esbuild/netbsd-x64": "0.19.7", + "@esbuild/openbsd-x64": "0.19.7", + "@esbuild/sunos-x64": "0.19.7", + "@esbuild/win32-arm64": "0.19.7", + "@esbuild/win32-ia32": "0.19.7", + "@esbuild/win32-x64": "0.19.7" } }, "node_modules/esbuild-plugin-wasm": { @@ -4414,7 +4740,8 @@ "node_modules/get-iterator": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-2.0.1.tgz", - "integrity": "sha512-7HuY/hebu4gryTDT7O/XY/fvY9wRByEGdK6QOa4of8npTcv0+NS6frFKABcf6S9EBAsveTuKTsZQQBFMMNILIg==" + "integrity": "sha512-7HuY/hebu4gryTDT7O/XY/fvY9wRByEGdK6QOa4of8npTcv0+NS6frFKABcf6S9EBAsveTuKTsZQQBFMMNILIg==", + "dev": true }, "node_modules/get-stdin": { "version": "8.0.0", @@ -4878,15 +5205,6 @@ "uint8arrays": "^5.0.0" } }, - "node_modules/interface-datastore/node_modules/uint8arrays": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.0.tgz", - "integrity": "sha512-RWO7gR4x6syxnKDfZO8mDCsaaYs1/BqZCxlHgrcRge50E9GTnLmtoA4kwFSGIL4s3dQkryeTkvtG6oEFEya3yg==", - "dev": true, - "dependencies": { - "multiformats": "^12.0.1" - } - }, "node_modules/interface-store": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.5.tgz", @@ -4968,6 +5286,15 @@ "varint-decoder": "^1.0.0" } }, + "node_modules/ipfs-bitswap/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/ipns": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/ipns/-/ipns-7.0.1.tgz", @@ -4988,6 +5315,31 @@ "uint8arrays": "^4.0.2" } }, + "node_modules/ipns/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/ipns/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -5633,6 +5985,15 @@ "uint8arraylist": "^2.4.1" } }, + "node_modules/it-length-prefixed/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/it-map": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.5.tgz", @@ -5766,15 +6127,6 @@ "uint8arrays": "^5.0.0" } }, - "node_modules/it-to-buffer/node_modules/uint8arrays": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.0.tgz", - "integrity": "sha512-RWO7gR4x6syxnKDfZO8mDCsaaYs1/BqZCxlHgrcRge50E9GTnLmtoA4kwFSGIL4s3dQkryeTkvtG6oEFEya3yg==", - "dev": true, - "dependencies": { - "multiformats": "^12.0.1" - } - }, "node_modules/it-ws": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-6.1.1.tgz", @@ -5792,15 +6144,6 @@ "npm": ">=7.0.0" } }, - "node_modules/it-ws/node_modules/uint8arrays": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.0.tgz", - "integrity": "sha512-RWO7gR4x6syxnKDfZO8mDCsaaYs1/BqZCxlHgrcRge50E9GTnLmtoA4kwFSGIL4s3dQkryeTkvtG6oEFEya3yg==", - "dev": true, - "dependencies": { - "multiformats": "^12.0.1" - } - }, "node_modules/iterator.prototype": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", @@ -6142,13 +6485,66 @@ "xsalsa20": "^1.1.0" } }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "node_modules/libp2p/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/node_modules/p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "dev": true, + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/libp2p/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==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/libp2p/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dev": true, + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true, + "engines": { + "node": ">=14" } }, "node_modules/linkify-it": { @@ -6653,6 +7049,34 @@ "p-timeout": "^6.0.0" } }, + "node_modules/mortice/node_modules/p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "dev": true, + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mortice/node_modules/p-queue/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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -7244,26 +7668,15 @@ } }, "node_modules/p-queue": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", - "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.0.1.tgz", + "integrity": "sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==", "dependencies": { "eventemitter3": "^5.0.1", - "p-timeout": "^5.0.2" + "p-timeout": "^6.1.2" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue/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" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7290,7 +7703,6 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", - "dev": true, "engines": { "node": ">=14.16" }, @@ -7580,9 +7992,9 @@ "dev": true }, "node_modules/playwright-core": { - "version": "1.39.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.39.0.tgz", - "integrity": "sha512-+k4pdZgs1qiM+OUkSjx96YiKsXsmb59evFoqv8SKO067qBA+Z2s/dCzJij/ZhdQcs2zlTAgRKfeiiLm8PQ2qvw==", + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.0.tgz", + "integrity": "sha512-fvKewVJpGeca8t0ipM56jkVSU6Eo0RmFvQ/MaCQNDYm+sdvKkMBBWTE1FdeMqIdumRaXXjZChWHvIzCGM/tA/Q==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -7592,9 +8004,9 @@ } }, "node_modules/playwright-test": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/playwright-test/-/playwright-test-12.6.1.tgz", - "integrity": "sha512-M3O7VomDk7BsJzvwCc3/9TqhHkJPDIxqPDwN8JzHKrXwVIjL5TMBQLvzcbaV/KJXl8YD6dqQL+U+waU1uu68lA==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/playwright-test/-/playwright-test-14.0.0.tgz", + "integrity": "sha512-noWhbTO+naQmzrW1/GMbsf2MK3fbiyFbKcBEPt4xTfMxWQ7Je3gkTJ9EU8ryQ/2VL3twe0F2BfG3rizf/i5KvQ==", "dev": true, "dependencies": { "acorn-loose": "^8.3.0", @@ -7604,21 +8016,21 @@ "camelcase": "^8.0.0", "chokidar": "^3.5.3", "cpy": "^11.0.0", - "esbuild": "0.19.5", + "esbuild": "0.19.7", "esbuild-plugin-wasm": "^1.1.0", "events": "^3.3.0", "execa": "^8.0.1", "exit-hook": "^4.0.0", "globby": "^14.0.0", "kleur": "^4.1.5", - "lilconfig": "^2.1.0", + "lilconfig": "^3.0.0", "lodash": "^4.17.21", "merge-options": "^3.0.4", "nanoid": "^5.0.2", "ora": "^7.0.1", "p-timeout": "^6.1.2", "path-browserify": "^1.0.1", - "playwright-core": "1.39.0", + "playwright-core": "1.40.0", "polka": "^0.5.2", "premove": "^4.0.0", "process": "^0.11.10", @@ -7630,7 +8042,7 @@ "tempy": "^3.1.0", "test-exclude": "^6.0.0", "util": "^0.12.5", - "v8-to-istanbul": "^9.1.0" + "v8-to-istanbul": "^9.2.0" }, "bin": { "playwright-test": "cli.js", @@ -7849,6 +8261,14 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/protons-runtime/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -9328,6 +9748,14 @@ "uint8arrays": "^4.0.2" } }, + "node_modules/uint8-varint/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/uint8arraylist": { "version": "2.4.7", "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.7.tgz", @@ -9336,6 +9764,14 @@ "uint8arrays": "^4.0.2" } }, + "node_modules/uint8arraylist/node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/uint8arrays": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", diff --git a/package.json b/package.json index 453a476..f8b86d1 100644 --- a/package.json +++ b/package.json @@ -18,29 +18,29 @@ "type": "module", "main": "src/index.js", "dependencies": { - "@ipld/dag-cbor": "^9.0.5", - "@libp2p/crypto": "^2.0.4", + "@ipld/dag-cbor": "^9.0.6", + "@libp2p/crypto": "^3.0.2", "it-pipe": "^3.0.1", "level": "^8.0.0", "lru": "^3.1.0", - "multiformats": "^12.1.1", - "p-queue": "^7.4.1", + "multiformats": "^12.1.3", + "p-queue": "^8.0.1", "timeout-abort-controller": "^3.0.0", - "uint8arrays": "^4.0.6" + "uint8arrays": "^5.0.0" }, "devDependencies": { "c8": "^8.0.1", "cross-env": "^7.0.3", - "fs-extra": "^11.1.1", + "fs-extra": "^11.2.0", "helia": "^2.1.0", - "it-all": "^3.0.3", + "it-all": "^3.0.4", "jsdoc": "^4.0.2", "mocha": "^10.2.0", "path-browserify": "^1.0.1", - "playwright-test": "^12.6.1", - "rimraf": "^5.0.1", + "playwright-test": "^14.0.0", + "rimraf": "^5.0.5", "standard": "^17.1.0", - "webpack": "^5.88.2", + "webpack": "^5.89.0", "webpack-cli": "^5.1.4" }, "scripts": { diff --git a/src/config/libp2p/index.js b/src/config/libp2p/index.js index 6f30831..fd7b7dc 100644 --- a/src/config/libp2p/index.js +++ b/src/config/libp2p/index.js @@ -8,7 +8,7 @@ import { gossipsub } from '@chainsafe/libp2p-gossipsub' import { circuitRelayTransport } from 'libp2p/circuit-relay' /** - * A basic Libp2p configuration for node servers. + * A basic Libp2p configuration for Node.js nodes. */ export const DefaultLibp2pOptions = { addresses: { @@ -24,13 +24,9 @@ export const DefaultLibp2pOptions = { }) ], connectionEncryption: [noise()], - streamMuxers: [ - yamux() - ], + streamMuxers: [yamux()], connectionGater: { - denyDialMultiaddr: () => { - return false - } + denyDialMultiaddr: () => false }, services: { identify: identifyService(), @@ -55,13 +51,9 @@ export const DefaultLibp2pBrowserOptions = { }) ], connectionEncryption: [noise()], - streamMuxers: [ - yamux() - ], + streamMuxers: [yamux()], connectionGater: { - denyDialMultiaddr: () => { - return false - } + denyDialMultiaddr: () => false }, services: { identify: identifyService(), diff --git a/src/sync.js b/src/sync.js index 9123011..9d9faa8 100644 --- a/src/sync.js +++ b/src/sync.js @@ -115,6 +115,9 @@ const Sync = async ({ ipfs, log, events, onSynced, start, timeout }) => { if (!ipfs) throw new Error('An instance of ipfs is required.') if (!log) throw new Error('An instance of log is required.') + const libp2p = ipfs.libp2p + const pubsub = ipfs.libp2p.services.pubsub + const address = log.id const headsSyncAddress = pathJoin('/orbitdb/heads/', address) @@ -194,7 +197,7 @@ const Sync = async ({ ipfs, log, events, onSynced, start, timeout }) => { const { signal } = timeoutController try { peers.add(peerId) - const stream = await ipfs.libp2p.dialProtocol(remotePeer, headsSyncAddress, { signal }) + const stream = await libp2p.dialProtocol(remotePeer, headsSyncAddress, { signal }) await pipe(sendHeads, stream, receiveHeads(peerId)) } catch (e) { console.error(e) @@ -218,18 +221,19 @@ const Sync = async ({ ipfs, log, events, onSynced, start, timeout }) => { } const handleUpdateMessage = async message => { + const { topic, data } = message.detail + const task = async () => { - const messageHasData = message => message.detail.data !== undefined try { - if (messageHasData(message) && onSynced) { - await onSynced(message.detail.data) + if (data && onSynced) { + await onSynced(data) } } catch (e) { events.emit('error', e) } } - if (message.detail.topic === address) { + if (topic === address) { queue.add(task) } } @@ -243,7 +247,7 @@ const Sync = async ({ ipfs, log, events, onSynced, start, timeout }) => { */ const add = async (entry) => { if (started) { - await ipfs.libp2p.services.pubsub.publish(address, entry.bytes) + await pubsub.publish(address, entry.bytes) } } @@ -257,10 +261,10 @@ const Sync = async ({ ipfs, log, events, onSynced, start, timeout }) => { if (started) { started = false await queue.onIdle() - ipfs.libp2p.services.pubsub.removeEventListener('subscription-change', handlePeerSubscribed) - ipfs.libp2p.services.pubsub.removeEventListener('message', handleUpdateMessage) - await ipfs.libp2p.unhandle(headsSyncAddress) - await ipfs.libp2p.services.pubsub.unsubscribe(address) + pubsub.removeEventListener('subscription-change', handlePeerSubscribed) + pubsub.removeEventListener('message', handleUpdateMessage) + await libp2p.unhandle(headsSyncAddress) + await pubsub.unsubscribe(address) peers.clear() } } @@ -274,11 +278,11 @@ const Sync = async ({ ipfs, log, events, onSynced, start, timeout }) => { const startSync = async () => { if (!started) { // Exchange head entries with peers when connected - await ipfs.libp2p.handle(headsSyncAddress, handleReceiveHeads) - ipfs.libp2p.services.pubsub.addEventListener('subscription-change', handlePeerSubscribed) - ipfs.libp2p.services.pubsub.addEventListener('message', handleUpdateMessage) + await libp2p.handle(headsSyncAddress, handleReceiveHeads) + pubsub.addEventListener('subscription-change', handlePeerSubscribed) + pubsub.addEventListener('message', handleUpdateMessage) // Subscribe to the pubsub channel for this database through which updates are sent - await ipfs.libp2p.services.pubsub.subscribe(address) + await pubsub.subscribe(address) started = true } } diff --git a/test/database.test.js b/test/database.test.js index 28b4fde..5677b58 100644 --- a/test/database.test.js +++ b/test/database.test.js @@ -30,7 +30,6 @@ describe('Database', function () { } before(async () => { - // ipfs = await IPFS.create({ ...config.daemon1, repo: './ipfs1' }) ipfs = await createHelia() await copy(testKeysPath, keysPath) keystore = await KeyStore({ path: keysPath }) diff --git a/test/databases/documents.test.js b/test/databases/documents.test.js index c5c2fdf..56395a2 100644 --- a/test/databases/documents.test.js +++ b/test/databases/documents.test.js @@ -19,7 +19,6 @@ describe('Documents Database', function () { const databaseId = 'documents-AAA' before(async () => { - // ipfs = await IPFS.create({ ...config.daemon1, repo: './ipfs1' }) ipfs = await createHelia() await copy(testKeysPath, keysPath) diff --git a/test/databases/events.test.js b/test/databases/events.test.js index 55a1a46..ef8aefa 100644 --- a/test/databases/events.test.js +++ b/test/databases/events.test.js @@ -19,7 +19,6 @@ describe('Events Database', function () { const databaseId = 'events-AAA' before(async () => { - // ipfs = await IPFS.create({ ...config.daemon1, repo: './ipfs1' }) ipfs = await createHelia() await copy(testKeysPath, keysPath) diff --git a/test/databases/keyvalue-indexed.js b/test/databases/keyvalue-indexed.js index f178470..0fbe532 100644 --- a/test/databases/keyvalue-indexed.js +++ b/test/databases/keyvalue-indexed.js @@ -21,7 +21,6 @@ describe('KeyValueIndexed Database', function () { const databaseId = 'keyvalue-AAA' before(async () => { - // ipfs = await IPFS.create({ ...config.daemon1, repo: './ipfs1' }) ipfs = await createHelia() await copy(testKeysPath, keysPath) diff --git a/test/databases/keyvalue.test.js b/test/databases/keyvalue.test.js index 8318ef9..6a1cd3e 100644 --- a/test/databases/keyvalue.test.js +++ b/test/databases/keyvalue.test.js @@ -19,7 +19,6 @@ describe('KeyValue Database', function () { const databaseId = 'keyvalue-AAA' before(async () => { - // ipfs = await IPFS.create({ ...config.daemon1, repo: './ipfs1' }) ipfs = await createHelia() await copy(testKeysPath, keysPath) diff --git a/test/manifest-store.test.js b/test/manifest-store.test.js index c122d7d..9339351 100644 --- a/test/manifest-store.test.js +++ b/test/manifest-store.test.js @@ -9,7 +9,6 @@ describe('Manifest', () => { let manifestStore before(async () => { - // ipfs = await IPFS.create({ ...config.daemon1, repo }) ipfs = await createHelia() manifestStore = await ManifestStore({ ipfs }) }) diff --git a/test/orbitdb-custom-database-types.test.js b/test/orbitdb-custom-database-types.test.js index 387807e..19292e4 100644 --- a/test/orbitdb-custom-database-types.test.js +++ b/test/orbitdb-custom-database-types.test.js @@ -26,7 +26,6 @@ describe('Add a custom database type', function () { let orbitdb before(async () => { - // ipfs = await IPFS.create({ ...config.daemon1, repo: './ipfs1' }) ipfs = await createHelia() orbitdb = await createOrbitDB({ ipfs }) }) diff --git a/test/orbitdb-custom-identity-providers.test.js b/test/orbitdb-custom-identity-providers.test.js index b06c89d..6bc9554 100644 --- a/test/orbitdb-custom-identity-providers.test.js +++ b/test/orbitdb-custom-identity-providers.test.js @@ -11,7 +11,6 @@ describe('Add a custom identity provider', function () { let ipfs before(async () => { - // ipfs = await IPFS.create({ ...config.daemon1, repo: './ipfs1' }) ipfs = await createHelia() }) diff --git a/test/orbitdb-drop.test.js b/test/orbitdb-drop.test.js index 25933d2..68edf98 100644 --- a/test/orbitdb-drop.test.js +++ b/test/orbitdb-drop.test.js @@ -11,7 +11,6 @@ describe('Drop databases', function () { let db before(async () => { - // ipfs = await IPFS.create({ ...config.daemon1, repo: './ipfs' }) ipfs = await createHelia() }) diff --git a/test/orbitdb.test.js b/test/orbitdb.test.js index 05f1f88..d0ab970 100644 --- a/test/orbitdb.test.js +++ b/test/orbitdb.test.js @@ -50,7 +50,7 @@ describe('OrbitDB', function () { it('has the IPFS instance given as a parameter', async () => { const { id: expectedId } = ipfs1.libp2p.peerId - const { id: resultId } = ipfs1.libp2p.peerId + const { id: resultId } = orbitdb1.ipfs.libp2p.peerId strictEqual(expectedId, resultId) }) diff --git a/test/storage.test.js b/test/storage.test.js index 9f19ed3..5e8ca82 100644 --- a/test/storage.test.js +++ b/test/storage.test.js @@ -16,7 +16,6 @@ describe('Storages', function () { let testIdentity before(async () => { - // ipfs = await IPFS.create({ ...config.daemon1, repo: './ipfs1' }) ipfs = await createHelia() await copy(testKeysPath, keysPath) keystore = await KeyStore({ path: keysPath }) diff --git a/test/sync.test.js b/test/sync.test.js index cf26abe..edc7a40 100644 --- a/test/sync.test.js +++ b/test/sync.test.js @@ -62,7 +62,7 @@ describe('Sync protocol', function () { await sync.stop() } if (log) { - await log.close + await log.close() } }) diff --git a/test/utils/connect-nodes.js b/test/utils/connect-nodes.js index 93b0d1f..82eff47 100644 --- a/test/utils/connect-nodes.js +++ b/test/utils/connect-nodes.js @@ -14,29 +14,18 @@ const connectIpfsNodes = async (ipfs1, ipfs2, options = { await ipfs1.libp2p.dial(multiaddr(`/ip4/127.0.0.1/tcp/12345/ws/p2p/${relayId}`)) - let a1 + let address1 await waitFor(() => { - a1 = ipfs1.libp2p.getMultiaddrs().filter(ma => WebRTC.matches(ma)).pop() - - if (a1 != null) { - return true - } else { - return false - } + address1 = ipfs1.libp2p.getMultiaddrs().filter(ma => WebRTC.matches(ma)).pop() + return address1 != null }, () => true) - await ipfs2.libp2p.dial(a1) + await ipfs2.libp2p.dial(address1) } else { await ipfs2.libp2p.peerStore.save(ipfs1.libp2p.peerId, { multiaddrs: ipfs1.libp2p.getMultiaddrs().filter(options.filter) }) await ipfs2.libp2p.dial(ipfs1.libp2p.peerId) } - - return new Promise((resolve) => { - setTimeout(() => { - resolve() - }, 1000) - }) } export default connectIpfsNodes diff --git a/test/utils/create-helia.js b/test/utils/create-helia.js index 9830c22..68ff04d 100644 --- a/test/utils/create-helia.js +++ b/test/utils/create-helia.js @@ -1,4 +1,5 @@ import { createHelia } from 'helia' +import { bitswap } from 'helia/block-brokers' import { createLibp2p } from 'libp2p' import { DefaultLibp2pOptions, DefaultLibp2pBrowserOptions } from '../../src/index.js' @@ -9,5 +10,10 @@ export default async () => { const libp2p = await createLibp2p({ ...options }) - return createHelia({ libp2p }) + const heliaOptions = { + libp2p, + blockBrokers: [bitswap()] + } + + return createHelia({ ...heliaOptions }) }