From d6e0e7b9031bddcc75a977170571cbaefb94ecd6 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sun, 22 Oct 2023 07:51:45 -0700 Subject: [PATCH 01/12] got helia working --- package-lock.json | 9376 ++++++++++++++++++++++++++++++- package.json | 10 + src/adapters/ipfs/ipfs-coord.js | 14 +- src/adapters/ipfs/ipfs.js | 138 +- 4 files changed, 9434 insertions(+), 104 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5f560c2..255943b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,18 @@ "version": "3.0.0", "license": "MIT", "dependencies": { + "@chainsafe/libp2p-gossipsub": "10.1.0", + "@chainsafe/libp2p-noise": "13.0.1", + "@chainsafe/libp2p-yamux": "5.0.0", + "@libp2p/bootstrap": "9.0.8", + "@libp2p/tcp": "8.0.9", "axios": "0.27.2", "bcryptjs": "2.4.3", + "blockstore-fs": "1.1.6", + "datastore-fs": "9.1.5", "glob": "7.1.6", + "helia": "2.0.3", + "helia-coord": "../helia-coord", "ipfs-coord-esm": "9.1.13", "ipfs-http-client": "58.0.0", "jsonrpc-lite": "2.2.0", @@ -28,6 +37,7 @@ "koa-router": "10.0.0", "koa-static": "5.0.0", "koa2-ratelimit": "0.9.1", + "libp2p": "0.46.14", "line-reader": "0.4.0", "minimal-slp-wallet": "5.11.1", "mongoose": "5.13.14", @@ -51,6 +61,149 @@ "uuid": "8.3.2" } }, + "../helia-coord": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "bch-encrypt-lib": "2.0.0", + "uuid": "9.0.0" + }, + "devDependencies": { + "@istanbuljs/esm-loader-hook": "0.2.0", + "chai": "4.3.6", + "cross-env": "7.0.3", + "lodash.clonedeep": "4.5.0", + "minimal-slp-wallet": "5.8.9", + "mocha": "10.0.0", + "nyc": "15.1.0", + "sinon": "14.0.0", + "standard": "17.0.0" + }, + "peerDependencies": { + "ipfs-http-client": ">= 58.0.0" + } + }, + "node_modules/@achingbrain/nat-port-mapper": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.12.tgz", + "integrity": "sha512-rU4G75TEOTIPlkeDnPEVwx/VmMMFta42kY2SMmVobRkrtNLnxtU08Yhriu6tSBc9oO0wXdfNNeuLnNnEnL7w/A==", + "dependencies": { + "@achingbrain/ssdp": "^4.0.1", + "@libp2p/logger": "^3.0.0", + "default-gateway": "^7.2.2", + "err-code": "^3.0.1", + "it-first": "^3.0.1", + "p-defer": "^4.0.0", + "p-timeout": "^6.1.1", + "xml2js": "^0.6.0" + } + }, + "node_modules/@achingbrain/nat-port-mapper/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@achingbrain/nat-port-mapper/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@achingbrain/nat-port-mapper/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@achingbrain/nat-port-mapper/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@achingbrain/nat-port-mapper/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==" + }, + "node_modules/@achingbrain/nat-port-mapper/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@achingbrain/nat-port-mapper/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@achingbrain/nat-port-mapper/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@achingbrain/nat-port-mapper/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@achingbrain/ssdp": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@achingbrain/ssdp/-/ssdp-4.0.6.tgz", + "integrity": "sha512-Y4JE2L9150i50V6lg/Y8+ilhxRpUZKKv+PKo68Aj7MjPfaUAar6ZHilF9h4/Zb3q0fqGMXNc9o11cQLNI8J8bA==", + "dependencies": { + "event-iterator": "^2.0.0", + "freeport-promise": "^2.0.0", + "merge-options": "^3.0.4", + "xml2js": "^0.6.2" + } + }, "node_modules/@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", @@ -163,6 +316,364 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@chainsafe/is-ip": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.2.tgz", + "integrity": "sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA==" + }, + "node_modules/@chainsafe/libp2p-gossipsub": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-10.1.0.tgz", + "integrity": "sha512-mOVYJAvxYRkh2HeggNFW/7ukEccQDVEI9LPhvlnJk7gnJhyJJ6mhZxUAaytfp3v3qTkmeBRnEL0eJOQBm+MoOA==", + "dependencies": { + "@libp2p/crypto": "^2.0.0", + "@libp2p/interface": "^0.1.0", + "@libp2p/interface-internal": "^0.1.0", + "@libp2p/logger": "^3.0.0", + "@libp2p/peer-id": "^3.0.0", + "@libp2p/pubsub": "^8.0.0", + "@multiformats/multiaddr": "^12.1.3", + "abortable-iterator": "^5.0.1", + "denque": "^2.1.0", + "it-length-prefixed": "^9.0.1", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.0", + "multiformats": "^12.0.1", + "protobufjs": "^7.2.4", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.4" + }, + "engines": { + "npm": ">=8.7.0" + } + }, + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@chainsafe/libp2p-gossipsub/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@chainsafe/libp2p-noise": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-13.0.1.tgz", + "integrity": "sha512-eeOFubXyS9sK0oBg/qRfve6LVGzZX1vyULVidaKGTJr8Y4dtyU4+Btqw/aVo3o1lhdvb/qoY+p/Ep2pUsvJKhg==", + "dependencies": { + "@libp2p/crypto": "^2.0.0", + "@libp2p/interface": "^0.1.0", + "@libp2p/logger": "^3.0.0", + "@libp2p/peer-id": "^3.0.0", + "@noble/ciphers": "^0.3.0", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "it-byte-stream": "^1.0.0", + "it-length-prefixed": "^9.0.1", + "it-length-prefixed-stream": "^1.0.0", + "it-pair": "^2.0.6", + "it-pipe": "^3.0.1", + "it-stream-types": "^2.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.4" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@chainsafe/libp2p-yamux": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-yamux/-/libp2p-yamux-5.0.0.tgz", + "integrity": "sha512-aWTnBPR2hJt0A2y579sMtZVB6IqgSSHlZ6Eg+WDxNZQ0zcexafuruZQDj+z3FUTNPz+E8IeuyCi7tjI4IEehjw==", + "dependencies": { + "@libp2p/interface": "^0.1.0", + "@libp2p/logger": "^3.0.0", + "abortable-iterator": "^5.0.1", + "it-foreach": "^2.0.3", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.0", + "uint8arraylist": "^2.4.3" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@chainsafe/libp2p-yamux/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@chainsafe/libp2p-yamux/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@chainsafe/libp2p-yamux/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@chainsafe/libp2p-yamux/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@chainsafe/libp2p-yamux/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@chainsafe/libp2p-yamux/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@chainsafe/libp2p-yamux/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@chainsafe/netmask": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz", + "integrity": "sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1" + } + }, "node_modules/@chris.troutner/bip32-utils": { "version": "1.0.5", "resolved": "http://94.130.170.209:4873/@chris.troutner%2fbip32-utils/-/bip32-utils-1.0.5.tgz", @@ -267,6 +778,69 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/@helia/interface": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@helia/interface/-/interface-2.0.0.tgz", + "integrity": "sha512-LW8iRyits8/Tyi6KkZy6I8VydJZvdmeI5kxLanbLNgcCKrgE9bgrlUjR1cQXV5N+CDV8Rn9FRp6I7tYEYnTC0Q==", + "dependencies": { + "@libp2p/interface": "^0.1.1", + "interface-blockstore": "^5.0.0", + "interface-datastore": "^8.0.0", + "interface-store": "^5.0.1", + "ipfs-bitswap": "^19.0.0", + "multiformats": "^12.0.1", + "progress-events": "^1.0.0" + } + }, + "node_modules/@helia/interface/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@helia/interface/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@helia/interface/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@helia/interface/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@helia/interface/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", @@ -402,6 +976,154 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, + "node_modules/@libp2p/bootstrap": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-9.0.8.tgz", + "integrity": "sha512-d1kcvu9X64KVK/ec8Glr0mtqyjBoQUja8pGUH7vZ9nM5dIn7FITKgFMQwz//EImnsmbUoOEeEUBEzk2mialmww==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-id": "^3.0.3", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5" + } + }, + "node_modules/@libp2p/bootstrap/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/bootstrap/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/bootstrap/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/bootstrap/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/bootstrap/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/bootstrap/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/bootstrap/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/bootstrap/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/crypto": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.5.tgz", + "integrity": "sha512-m6Rn7i9q3SHCzMUBkEwZgAKS4evpGQ4SEx/YD96pM0ZoPtU5PFO0psfrerraanxFBh8wUX4vkCtKfyTPH7F+bQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@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/crypto/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/crypto/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/interface": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.3.tgz", + "integrity": "sha512-C1O7Xqd2TGVWrIOEDx6kGJSk4YOysWGmYG5Oh3chnsCY0wjUSsLDpl9+wKrdiM/lJbAlHlV65ZOvSkIQ9cWPBQ==", + "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-connection": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.0.1.tgz", @@ -418,6 +1140,52 @@ "npm": ">=7.0.0" } }, + "node_modules/@libp2p/interface-internal": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-0.1.6.tgz", + "integrity": "sha512-n4Sv9tSr+2QRN7tHShmUJILQRoIPRPPkl0Zr8mVOW91XcdN2CfLYrzqeM1Yvl/iZx98bNMZXJveZV9OVuBynuQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@libp2p/peer-collections": "^4.0.5", + "@multiformats/multiaddr": "^12.1.5", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/interface-internal/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/interface-internal/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface-internal/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/interface-keychain": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@libp2p/interface-keychain/-/interface-keychain-1.0.3.tgz", @@ -471,6 +1239,61 @@ "npm": ">=7.0.0" } }, + "node_modules/@libp2p/interface/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/interface/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/interface/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/interface/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/interfaces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.0.3.tgz", @@ -480,6 +1303,486 @@ "npm": ">=7.0.0" } }, + "node_modules/@libp2p/ipni-content-routing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/ipni-content-routing/-/ipni-content-routing-2.0.1.tgz", + "integrity": "sha512-35KVsxUP/Vr2PpoFk7Mz4oDcimQtRvu13RttByjIeh/dl0MbH5ch5iiP8mfno2iiJPYcjuVkXhMkGJZ0Dreing==", + "dependencies": { + "@libp2p/interface": "^0.1.1", + "@libp2p/logger": "^3.0.1", + "@libp2p/peer-id": "^3.0.1", + "@multiformats/multiaddr": "^12.1.2", + "any-signal": "^4.1.1", + "browser-readablestream-to-it": "^2.0.2", + "iterable-ndjson": "^1.1.0", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "p-queue": "^7.3.4" + } + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/browser-readablestream-to-it": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.4.tgz", + "integrity": "sha512-EOjEEA+tJInvKg/Pml6QYxVY6gD8lka/ceLmkUbEeuWlzZx/a5k5ugupVFUUKSfI/88+v0VFs7JSFi5iYpp3IA==" + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/ipni-content-routing/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==", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/ipni-content-routing/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/kad-dht": { + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-10.0.9.tgz", + "integrity": "sha512-O/Kwg4+eMip/I4n810WmCHAaQlB83LxvhOEcGtfRsKwF7JnJn/0Tu8+vEaIJATA7Ear6rWrhqyo7qgJonIauqA==", + "dependencies": { + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/interface-internal": "^0.1.6", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-collections": "^4.0.5", + "@libp2p/peer-id": "^3.0.3", + "@multiformats/multiaddr": "^12.1.5", + "@types/sinon": "^10.0.15", + "abortable-iterator": "^5.0.1", + "any-signal": "^4.1.1", + "datastore-core": "^9.0.1", + "events": "^3.3.0", + "hashlru": "^2.3.0", + "interface-datastore": "^8.2.0", + "it-all": "^3.0.2", + "it-drain": "^3.0.2", + "it-first": "^3.0.1", + "it-length": "^3.0.1", + "it-length-prefixed": "^9.0.1", + "it-map": "^3.0.3", + "it-merge": "^3.0.0", + "it-parallel": "^3.0.0", + "it-pipe": "^3.0.1", + "it-stream-types": "^2.0.1", + "it-take": "^3.0.1", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "p-event": "^6.0.0", + "p-queue": "^7.3.4", + "private-ip": "^3.0.0", + "progress-events": "^1.0.0", + "protons-runtime": "^5.0.0", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/@libp2p/kad-dht/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/kad-dht/node_modules/it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + }, + "node_modules/@libp2p/kad-dht/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==" + }, + "node_modules/@libp2p/kad-dht/node_modules/it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "dependencies": { + "it-peekable": "^3.0.0" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "node_modules/@libp2p/kad-dht/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/keychain": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.5.tgz", + "integrity": "sha512-D8Tisc5yi2+ykM4Yw4Qsan/hGITF+jfHMC6Nti1upOOLAhGFpm92if/hkb2rZH3Q1iXs7l3fIhgOs9VayNplhA==", + "dependencies": { + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-id": "^3.0.3", + "interface-datastore": "^8.2.0", + "merge-options": "^3.0.4", + "sanitize-filename": "^1.6.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/keychain/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/keychain/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/keychain/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/keychain/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/keychain/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/keychain/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/keychain/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/keychain/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/logger": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.1.tgz", @@ -495,6 +1798,366 @@ "npm": ">=7.0.0" } }, + "node_modules/@libp2p/mdns": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-9.0.10.tgz", + "integrity": "sha512-EFbZbUxIjW7KDoGh7brZ2GLjY5Etbsq794aAbTfTXUQsClhPlErgnj6X21mDYq9IE2cD+ZazkqmKpfR9FOB5RQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-id": "^3.0.3", + "@libp2p/utils": "^4.0.4", + "@multiformats/multiaddr": "^12.1.5", + "@types/multicast-dns": "^7.2.1", + "dns-packet": "^5.4.0", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/@libp2p/mdns/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/mdns/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/mdns/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/mdns/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/mdns/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/mdns/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/mdns/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/mdns/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/mplex": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-9.0.8.tgz", + "integrity": "sha512-NHsoBWEImqr7nVNujNmedFW5ctefPG4kMAW0+UhLwJsq6X0p3qtaGbAAQZm6PqI7KIE16lEXFJkZfFFgMOpXJQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "abortable-iterator": "^5.0.1", + "benchmark": "^2.1.4", + "it-batched-bytes": "^2.0.2", + "it-pushable": "^3.2.0", + "it-stream-types": "^2.0.1", + "rate-limiter-flexible": "^3.0.0", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/mplex/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/mplex/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/mplex/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/mplex/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/mplex/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/mplex/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/mplex/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/mplex/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/multistream-select": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.3.tgz", + "integrity": "sha512-6iBYf/TAqi0oqusZ3LJ3DC0odABRukuLN+4Xh7tDmHCJX0tCjSSRibRYsiFcBNQMpcI0btRkQ0dZ0KqKhQ2kUw==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "abortable-iterator": "^5.0.1", + "it-first": "^3.0.1", + "it-handshake": "^4.1.3", + "it-length-prefixed": "^9.0.1", + "it-merge": "^3.0.0", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.0", + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/multistream-select/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/multistream-select/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/multistream-select/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/multistream-select/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/multistream-select/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==" + }, + "node_modules/@libp2p/multistream-select/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/multistream-select/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/multistream-select/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/multistream-select/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/peer-collections": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.5.tgz", + "integrity": "sha512-GdbVufdDLhYyHbDBO2juK54Nm+Cdu01ws0N0hNB0yVLM7GIP075RLgSO/0vTpLoPS1cEufKPsYfl4Bb5nKHaRg==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@libp2p/peer-id": "^3.0.3" + } + }, + "node_modules/@libp2p/peer-collections/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-collections/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/peer-collections/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@libp2p/peer-id": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-1.1.15.tgz", @@ -510,6 +2173,985 @@ "npm": ">=7.0.0" } }, + "node_modules/@libp2p/peer-id-factory": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.5.tgz", + "integrity": "sha512-i7h/u3zDvcj8+GR+kpazmjikr3A6Rr5flVZmrTZfarkq5qAmD1bWd0vbgPrtKEgbhT+1S8NL3jR05/n7cbF7Tw==", + "dependencies": { + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/peer-id": "^3.0.3", + "multiformats": "^12.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-id-factory/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/peer-id-factory/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/peer-record": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.6.tgz", + "integrity": "sha512-SNFafmUrnEOB2zplYJVjheN5UVFbi2UBdrYfIwi4SEaPA4ZFprnWBeQcVaLUSq7t2JkBGZUmWwtj4teVIxr60g==", + "dependencies": { + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/peer-id": "^3.0.3", + "@libp2p/utils": "^4.0.4", + "@multiformats/multiaddr": "^12.1.5", + "protons-runtime": "^5.0.0", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-record/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-record/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/peer-record/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/peer-record/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/peer-store": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.6.tgz", + "integrity": "sha512-aBAvRKKg2Hsf0/bGrHEcxr6cGL8RDJhBx2xBhNuu7sROMd0isPrKNxfnrQKadYMxlQUnGzIEY3qFVQJJPFHZvA==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-collections": "^4.0.5", + "@libp2p/peer-id": "^3.0.3", + "@libp2p/peer-id-factory": "^3.0.5", + "@libp2p/peer-record": "^6.0.6", + "@multiformats/multiaddr": "^12.1.5", + "interface-datastore": "^8.2.0", + "it-all": "^3.0.2", + "mortice": "^3.0.1", + "multiformats": "^12.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-store/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/peer-store/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/peer-store/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/peer-store/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/peer-store/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/peer-store/node_modules/it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + }, + "node_modules/@libp2p/peer-store/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/peer-store/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/peer-store/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/pubsub": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-8.0.7.tgz", + "integrity": "sha512-gpkKNMlxdF/tObBPE/3pY3aItfleLWUr7ghEpnK2CcRWkmb+ZACGC2MrYM9IbdHn3/jfQFSWoxJwMcoFJ8IJ0w==", + "dependencies": { + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/interface-internal": "^0.1.6", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-collections": "^4.0.5", + "@libp2p/peer-id": "^3.0.3", + "abortable-iterator": "^5.0.1", + "it-length-prefixed": "^9.0.1", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.0", + "multiformats": "^12.0.1", + "p-queue": "^7.3.4", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/pubsub/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/pubsub/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/@libp2p/pubsub/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/pubsub/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/pubsub/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/pubsub/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "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==", + "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==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/pubsub/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/tcp": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-8.0.9.tgz", + "integrity": "sha512-SCZ22aSt5D5yvxt1pthCcU7hXO6z9qGo/3E3E3pyJaDS/wmLDHJzDuaOhpI7/fRs9lWfRhNAZIhCU4zo+Qeb+w==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/utils": "^4.0.4", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5", + "@types/sinon": "^10.0.15", + "stream-to-it": "^0.2.2" + } + }, + "node_modules/@libp2p/tcp/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/tcp/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/tcp/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/tcp/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/tcp/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/tcp/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/tcp/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-V++nWaCEO5QBk800SJ3kzzVn62cyBLt7fzVPDvVnxPyfLBn9prfShYb7XmvuZrnGSRCaUvD3b+q7CHGUEcdP2g==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.2", + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.1", + "is-loopback-addr": "^2.0.1", + "it-stream-types": "^2.0.1", + "private-ip": "^3.0.0", + "uint8arraylist": "^2.4.3" + } + }, + "node_modules/@libp2p/utils/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/utils/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/utils/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/utils/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/utils/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/utils/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/utils/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/utils/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/webrtc": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-3.2.3.tgz", + "integrity": "sha512-OQxG4AyWpMPWT363Dm2haU/V18JJ191WEz062vH0lPZtgtF4adl80EjQgyMYwYQFh/8cho5Hf0emAlWKbqQA8w==", + "dependencies": { + "@chainsafe/libp2p-noise": "^13.0.0", + "@libp2p/interface": "^0.1.3", + "@libp2p/interface-internal": "^0.1.6", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-id": "^3.0.3", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.1", + "abortable-iterator": "^5.0.1", + "any-signal": "^4.1.1", + "detect-browser": "^5.3.0", + "it-length-prefixed": "^9.0.1", + "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", + "multiformats": "^12.0.1", + "multihashes": "^4.0.3", + "node-datachannel": "^0.5.0-dev", + "p-defer": "^4.0.0", + "p-event": "^6.0.0", + "p-timeout": "^6.1.2", + "protons-runtime": "^5.0.0", + "race-signal": "^1.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/webrtc/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/webrtc/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/webrtc/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/webrtc/node_modules/any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/webrtc/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/webrtc/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/webrtc/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/webrtc/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/webrtc/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/webrtc/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/webrtc/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/websockets": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-7.0.9.tgz", + "integrity": "sha512-+MJKxGrLSv/aSHpdhlc05sVVPWg9TVJMCHfpN3WXG0B9DVk/qLdX+mCHpmPvRRdrDoYx6QfWvzHmhDHwfKNAdg==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/utils": "^4.0.4", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-to-uri": "^9.0.2", + "@types/ws": "^8.5.4", + "abortable-iterator": "^5.0.1", + "it-ws": "^6.0.0", + "p-defer": "^4.0.0", + "wherearewe": "^2.0.1", + "ws": "^8.12.1" + } + }, + "node_modules/@libp2p/websockets/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/websockets/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/websockets/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/websockets/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/websockets/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/websockets/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/websockets/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/websockets/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/webtransport": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@libp2p/webtransport/-/webtransport-3.1.3.tgz", + "integrity": "sha512-nlEJ4YgML5bHYnuZrYxek4y8UaM+VFlwfvmTXgZx9+nmjpap+GAn5KuI8LJwu3Jp1coKzoK3K7GFzLteNqSsdQ==", + "dependencies": { + "@chainsafe/libp2p-noise": "^13.0.0", + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-id": "^3.0.3", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.0.1", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/webtransport/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@libp2p/webtransport/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/@libp2p/webtransport/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@libp2p/webtransport/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/@libp2p/webtransport/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/@libp2p/webtransport/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/webtransport/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@libp2p/webtransport/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/@libp2p/webtransport/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "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", + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + }, + "node_modules/@multiformats/mafmt": { + "version": "12.1.6", + "resolved": "https://registry.npmjs.org/@multiformats/mafmt/-/mafmt-12.1.6.tgz", + "integrity": "sha512-tlJRfL21X+AKn9b5i5VnaTD6bNttpSpcqwKVmDmSHLwxoz97fAHaepqFOk/l1fIu94nImIXneNbhsJx/RQNIww==", + "dependencies": { + "@multiformats/multiaddr": "^12.0.0" + } + }, + "node_modules/@multiformats/mafmt/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@multiformats/mafmt/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@multiformats/mafmt/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/@multiformats/multiaddr": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.4.3.tgz", @@ -527,12 +3169,126 @@ "npm": ">=7.0.0" } }, - "node_modules/@multiformats/multiaddr-to-uri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.1.tgz", - "integrity": "sha512-kSyHZ2lKjoEzHu/TM4ZVwFj4AWV1B9qFBFJjYb/fK1NqrnrNb/M3uhoyckJvP7WZvpDsnEc7fUCpmPipDY6LMw==", + "node_modules/@multiformats/multiaddr-matcher": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-matcher/-/multiaddr-matcher-1.0.2.tgz", + "integrity": "sha512-YzviFV31TsDbatWhEmkNnpWC82F/Wfc+alaOBT94Lk6KJeKKfzsaLhYPsjyhElXiUtCKvB3p5e4+WsE5ZYy1kg==", "dependencies": { - "@multiformats/multiaddr": "^10.1.1" + "@chainsafe/is-ip": "^2.0.1", + "@multiformats/multiaddr": "^12.0.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/@multiformats/multiaddr-matcher/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@multiformats/multiaddr-matcher/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@multiformats/multiaddr-matcher/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@multiformats/multiaddr-to-uri": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.7.tgz", + "integrity": "sha512-i3ldtPMN6XJt+MCi34hOl0wGuGEHfWWMw6lmNag5BpckPwPTf9XGOOFMmh7ed/uO3Vjah/g173iOe61HTQVoBA==", + "dependencies": { + "@multiformats/multiaddr": "^12.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@multiformats/multiaddr-to-uri/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/@multiformats/multiaddr-to-uri/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@multiformats/multiaddr-to-uri/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/@noble/ciphers": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.3.0.tgz", + "integrity": "sha512-ldbrnOjmNRwFdXcTM6uXDcxpMIFrbzAWNnpBPp4oTJTFF0XByGD6vf45WrehZGXRQTRVV+Zm8YP+EgEf+e4cWA==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@nodelib/fs.scandir": { @@ -1157,6 +3913,14 @@ "@types/node": "*" } }, + "node_modules/@types/dns-packet": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@types/dns-packet/-/dns-packet-5.6.2.tgz", + "integrity": "sha512-vgUZ0ilYvpnTDx7tBmmAUn1HsyzK3huAtulHaDbBBCW5UdaDrEei5XJjWHnD4s8r9/MSL1hJ8s+nvJdcvNKgMA==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/eslint": { "version": "8.4.6", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", @@ -1217,6 +3981,15 @@ "@types/node": "*" } }, + "node_modules/@types/multicast-dns": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@types/multicast-dns/-/multicast-dns-7.2.3.tgz", + "integrity": "sha512-2SZ079yRhuhDn5BssqkQGp07vErjm3PD8S/JAlduWXacZ8SVHF0q6R2m0PwjjgTDU1vE3kibNPlmnr1iKbP/Sw==", + "dependencies": { + "@types/dns-packet": "*", + "@types/node": "*" + } + }, "node_modules/@types/node": { "version": "18.7.18", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", @@ -1239,12 +4012,38 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "node_modules/@types/sinon": { + "version": "10.0.20", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.20.tgz", + "integrity": "sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==", + "dependencies": { + "@types/sinonjs__fake-timers": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.4", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.4.tgz", + "integrity": "sha512-GDV68H0mBSN449sa5HEj51E0wfpVQb8xNSMzxf/PrypMFcLTMwJMOM/cgXiv71Mq5drkOQmUGvL1okOZcu6RrQ==" + }, + "node_modules/@types/ws": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.8.tgz", + "integrity": "sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "node_modules/@vascosantos/moving-average": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", + "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -1424,6 +4223,33 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "node_modules/abortable-iterator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", + "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", + "dependencies": { + "get-iterator": "^2.0.0", + "it-stream-types": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/abortable-iterator/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==" + }, + "node_modules/abortable-iterator/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -2149,6 +4975,15 @@ "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", "dev": true }, + "node_modules/benchmark": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz", + "integrity": "sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==", + "dependencies": { + "lodash": "^4.17.4", + "platform": "^1.3.3" + } + }, "node_modules/big-integer": { "version": "1.6.51", "resolved": "http://94.130.170.209:4873/big-integer/-/big-integer-1.6.51.tgz", @@ -2311,6 +5146,174 @@ "browser-readablestream-to-it": "^1.0.3" } }, + "node_modules/blockstore-core": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-4.3.4.tgz", + "integrity": "sha512-JecnNXiDPEdeS9AeFWO0PUKKmmRMW0D+ggUb4lgK0XMDOUAWmhkaiDPhgBjEKrlya0n60XOjcgBYhg18CUqOFw==", + "dependencies": { + "@libp2p/logger": "^3.0.0", + "err-code": "^3.0.1", + "interface-blockstore": "^5.0.0", + "interface-store": "^5.0.0", + "it-drain": "^3.0.1", + "it-filter": "^3.0.0", + "it-merge": "^3.0.1", + "it-pushable": "^3.0.0", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/blockstore-core/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/blockstore-core/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/blockstore-core/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/blockstore-core/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/blockstore-core/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/blockstore-core/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/blockstore-core/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/blockstore-fs": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/blockstore-fs/-/blockstore-fs-1.1.6.tgz", + "integrity": "sha512-7tmntHl7icxusYQ9tDSOYEQKO1QXhZ45AqchfIRvB9ihUpxTTqMx2RRXPN94Fr3pc6PWJ+HwwxeGJobxAnm1cQ==", + "dependencies": { + "blockstore-core": "^4.0.0", + "fast-write-atomic": "^0.2.0", + "interface-blockstore": "^5.0.0", + "interface-store": "^5.0.0", + "it-glob": "^2.0.1", + "it-map": "^3.0.1", + "it-parallel-batch": "^3.0.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/blockstore-fs/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/blockstore-fs/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/blockstore-fs/node_modules/it-glob": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-2.0.5.tgz", + "integrity": "sha512-LMigc3F1ODHf8oNY05AcSsU2McT4ecqkmoDcJ93SEEZ3KgmFHzVwsszbyj8j1EFmXreR9gwWH6r53dUnGXboIA==", + "dependencies": { + "minimatch": "^9.0.0" + } + }, + "node_modules/blockstore-fs/node_modules/it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "dependencies": { + "it-peekable": "^3.0.0" + } + }, + "node_modules/blockstore-fs/node_modules/it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "node_modules/blockstore-fs/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/blockstore-fs/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", @@ -2744,6 +5747,11 @@ "fsevents": "~2.3.2" } }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -3248,6 +6256,229 @@ "node": ">=0.10" } }, + "node_modules/datastore-core": { + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-9.2.3.tgz", + "integrity": "sha512-jcvrVDt+jp7lUp2WhMXXgX/hoi3VcJebN+z/ZXbIRKOVfNOF4bl8cvr7sQ1y9qITikgC2coXFYd79Wzt/n13ZQ==", + "dependencies": { + "@libp2p/logger": "^3.0.0", + "err-code": "^3.0.1", + "interface-store": "^5.0.0", + "it-all": "^3.0.1", + "it-drain": "^3.0.1", + "it-filter": "^3.0.0", + "it-map": "^3.0.1", + "it-merge": "^3.0.1", + "it-pipe": "^3.0.0", + "it-pushable": "^3.0.0", + "it-sort": "^3.0.1", + "it-take": "^3.0.1", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/datastore-core/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/datastore-core/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/datastore-core/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/datastore-core/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/datastore-core/node_modules/it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + }, + "node_modules/datastore-core/node_modules/it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "dependencies": { + "it-peekable": "^3.0.0" + } + }, + "node_modules/datastore-core/node_modules/it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "node_modules/datastore-core/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/datastore-core/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/datastore-core/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/datastore-fs": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-9.1.5.tgz", + "integrity": "sha512-AiyjfcpIqpydXagNp7VYf0TPjW+sosgnUHuX0CBdXjXn1r1cxYjkfDmFPPkXe99wARchmFgNA8iZgb9dcZKHIg==", + "dependencies": { + "datastore-core": "^9.0.0", + "fast-write-atomic": "^0.2.0", + "interface-datastore": "^8.0.0", + "interface-store": "^5.0.0", + "it-glob": "^2.0.1", + "it-map": "^3.0.1", + "it-parallel-batch": "^3.0.0" + } + }, + "node_modules/datastore-fs/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/datastore-fs/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/datastore-fs/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/datastore-fs/node_modules/it-glob": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-2.0.5.tgz", + "integrity": "sha512-LMigc3F1ODHf8oNY05AcSsU2McT4ecqkmoDcJ93SEEZ3KgmFHzVwsszbyj8j1EFmXreR9gwWH6r53dUnGXboIA==", + "dependencies": { + "minimatch": "^9.0.0" + } + }, + "node_modules/datastore-fs/node_modules/it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "dependencies": { + "it-peekable": "^3.0.0" + } + }, + "node_modules/datastore-fs/node_modules/it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "node_modules/datastore-fs/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/datastore-fs/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/datastore-fs/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/datastore-fs/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", @@ -3336,7 +6567,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, "engines": { "node": ">=4.0.0" } @@ -3347,6 +6577,130 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/default-gateway": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-7.2.2.tgz", + "integrity": "sha512-AD7TrdNNPXRZIGw63dw+lnGmT4v7ggZC5NHNJgAYWm5njrwoze1q5JSAW9YuLy2tjnoLUG/r8FEB93MCh9QJPg==", + "dependencies": { + "execa": "^7.1.1" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-gateway/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -3414,6 +6768,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/delay": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-6.0.0.tgz", + "integrity": "sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3458,6 +6823,19 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "engines": { + "node": ">=8" + } + }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -4802,6 +8180,11 @@ "node": ">=0.10.0" } }, + "node_modules/event-iterator": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", + "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" + }, "node_modules/eventemitter3": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", @@ -4859,6 +8242,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "engines": { + "node": ">=6" + } + }, "node_modules/expose-loader": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-3.1.0.tgz", @@ -4926,6 +8317,11 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-write-atomic": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", + "integrity": "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==" + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -5135,6 +8531,15 @@ "node": ">= 6" } }, + "node_modules/freeport-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/freeport-promise/-/freeport-promise-2.0.0.tgz", + "integrity": "sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -5203,6 +8608,11 @@ } ] }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, "node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -5439,6 +8849,11 @@ "xtend": "~4.0.1" } }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + }, "node_modules/glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -5715,6 +9130,11 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hashlru": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", + "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -5724,6 +9144,226 @@ "he": "bin/he" } }, + "node_modules/helia": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/helia/-/helia-2.0.3.tgz", + "integrity": "sha512-8Uze/U48R9p3013+oh5Eg29RwkzRXpCHDYyKxf7yU1S5GGnVguaWrmEHYJ2pKMMYMCgNasmCvfouurKIQvM+cg==", + "dependencies": { + "@chainsafe/libp2p-gossipsub": "^10.0.0", + "@chainsafe/libp2p-noise": "^13.0.0", + "@chainsafe/libp2p-yamux": "^5.0.0", + "@helia/interface": "^2.0.0", + "@ipld/dag-cbor": "^9.0.0", + "@ipld/dag-json": "^10.0.1", + "@ipld/dag-pb": "^4.0.3", + "@libp2p/bootstrap": "^9.0.2", + "@libp2p/interface": "^0.1.1", + "@libp2p/ipni-content-routing": "^2.0.0", + "@libp2p/kad-dht": "^10.0.2", + "@libp2p/logger": "^3.0.1", + "@libp2p/mdns": "^9.0.2", + "@libp2p/mplex": "^9.0.2", + "@libp2p/tcp": "^8.0.2", + "@libp2p/webrtc": "^3.1.3", + "@libp2p/websockets": "^7.0.2", + "@libp2p/webtransport": "^3.0.3", + "blockstore-core": "^4.0.0", + "cborg": "^4.0.1", + "datastore-core": "^9.0.0", + "interface-blockstore": "^5.0.0", + "interface-datastore": "^8.0.0", + "interface-store": "^5.0.1", + "ipfs-bitswap": "^19.0.0", + "ipns": "^7.0.1", + "it-all": "^3.0.2", + "it-drain": "^3.0.1", + "it-filter": "^3.0.1", + "it-foreach": "^2.0.2", + "libp2p": "^0.46.6", + "mortice": "^3.0.1", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "p-queue": "^7.3.4", + "progress-events": "^1.0.0", + "uint8arrays": "^4.0.3" + } + }, + "node_modules/helia-coord": { + "resolved": "../helia-coord", + "link": true + }, + "node_modules/helia/node_modules/@ipld/dag-cbor": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.0.6.tgz", + "integrity": "sha512-3kNab5xMppgWw6DVYx2BzmFq8t7I56AGWfp5kaU1fIPkwHVpBRglJJTYsGtbVluCi/s/q97HZM3bC+aDW4sxbQ==", + "dependencies": { + "cborg": "^4.0.0", + "multiformats": "^12.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/helia/node_modules/@ipld/dag-json": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.1.5.tgz", + "integrity": "sha512-AIIDRGPgIqVG2K1O42dPDzNOfP0YWV/suGApzpF+YWZLwkwdGVsxjmXcJ/+rwOhRGdjpuq/xQBKPCu1Ao6rdOQ==", + "dependencies": { + "cborg": "^4.0.0", + "multiformats": "^12.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/helia/node_modules/@ipld/dag-pb": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-4.0.6.tgz", + "integrity": "sha512-wOij3jfDKZsb9yjhQeHp+TQy0pu1vmUkGv324xciFFZ7xGbDfAGTQW03lSA5aJ/7HBBNYgjEE0nvHmNW1Qjfag==", + "dependencies": { + "multiformats": "^12.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/helia/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/helia/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/helia/node_modules/cborg": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.3.tgz", + "integrity": "sha512-poLvpK30KT5KI8gzDx3J/IuVCbsLqMT2fEbOrOuX0H7Hyj8yg5LezeWhRh9aLa5Z6MfPC5sriW3HVJF328M8LQ==", + "bin": { + "cborg": "lib/bin.js" + } + }, + "node_modules/helia/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/helia/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/helia/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/helia/node_modules/it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + }, + "node_modules/helia/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/helia/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/helia/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/helia/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==", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/helia/node_modules/p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/helia/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -6089,6 +9729,29 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, + "node_modules/interface-blockstore": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-5.2.6.tgz", + "integrity": "sha512-Cp6+QPY81kunaxQV/j5BWk3uSW6kpos8dLveJ3P2lbmA/yX2XeMwVlNOnQyGg0evhp1qmMLhf6eCswNiSMW3CA==", + "dependencies": { + "interface-store": "^5.0.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/interface-blockstore/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/interface-blockstore/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/interface-datastore": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.0.tgz", @@ -6161,6 +9824,145 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/ipfs-bitswap": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-19.0.1.tgz", + "integrity": "sha512-q5xVJdg8/I9LiBTWfYcfcgPvC8H17QbACYg5HeIrpo3Hci5lQ1HEvWS20IsbmpaSJ3Bv9dHY6orCvmy0OsvTLw==", + "dependencies": { + "@libp2p/interface": "^0.1.1", + "@libp2p/logger": "^3.0.1", + "@multiformats/multiaddr": "^12.1.0", + "@vascosantos/moving-average": "^1.1.0", + "any-signal": "^4.1.1", + "blockstore-core": "^4.0.0", + "events": "^3.3.0", + "interface-blockstore": "^5.0.0", + "interface-store": "^5.1.0", + "it-foreach": "^2.0.2", + "it-length-prefixed": "^9.0.0", + "it-map": "^3.0.2", + "it-pipe": "^3.0.1", + "it-take": "^3.0.1", + "just-debounce-it": "^3.0.1", + "multiformats": "^12.0.1", + "progress-events": "^1.0.0", + "protons-runtime": "^5.0.0", + "timeout-abort-controller": "^3.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.2", + "varint": "^6.0.0", + "varint-decoder": "^1.0.0" + } + }, + "node_modules/ipfs-bitswap/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/ipfs-bitswap/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/ipfs-bitswap/node_modules/any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-bitswap/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/ipfs-bitswap/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/ipfs-bitswap/node_modules/it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "dependencies": { + "it-peekable": "^3.0.0" + } + }, + "node_modules/ipfs-bitswap/node_modules/it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "node_modules/ipfs-bitswap/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-bitswap/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/ipfs-bitswap/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/ipfs-coord-esm": { "version": "9.1.13", "resolved": "http://94.130.170.209:4873/ipfs-coord-esm/-/ipfs-coord-esm-9.1.13.tgz", @@ -6317,6 +10119,122 @@ "node-fetch": "*" } }, + "node_modules/ipns": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ipns/-/ipns-7.0.1.tgz", + "integrity": "sha512-S74hlKNeAW9eExGmRwEfOLAk5l/lEL3HajcenbIc7PTeyeL6PkKE31qQmTi7qynn1ll32hMAo1OagbtnceCtXQ==", + "dependencies": { + "@libp2p/crypto": "^2.0.3", + "@libp2p/interface": "^0.1.2", + "@libp2p/logger": "^3.0.2", + "@libp2p/peer-id": "^3.0.2", + "cborg": "^4.0.1", + "err-code": "^3.0.1", + "interface-datastore": "^8.1.0", + "multiformats": "^12.0.1", + "protons-runtime": "^5.0.0", + "timestamp-nano": "^1.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/ipns/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/ipns/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/ipns/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/ipns/node_modules/cborg": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.3.tgz", + "integrity": "sha512-poLvpK30KT5KI8gzDx3J/IuVCbsLqMT2fEbOrOuX0H7Hyj8yg5LezeWhRh9aLa5Z6MfPC5sriW3HVJF328M8LQ==", + "bin": { + "cborg": "lib/bin.js" + } + }, + "node_modules/ipns/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/ipns/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/ipns/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipns/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/ipns/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "http://94.130.170.209:4873/is-arguments/-/is-arguments-1.1.1.tgz", @@ -6496,6 +10414,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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==" + }, "node_modules/is-map": { "version": "2.0.2", "resolved": "http://94.130.170.209:4873/is-map/-/is-map-2.0.2.tgz", @@ -6516,6 +10439,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-network-error": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.0.0.tgz", + "integrity": "sha512-P3fxi10Aji2FZmHTrMPSNFbNC6nnp4U5juPAIjXPHkUNubi4+qK7vvdsaNpAUwXslhYm9oyjEYTxs1xd/+Ph0w==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -6837,11 +10771,86 @@ "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" }, + "node_modules/it-batch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-3.0.3.tgz", + "integrity": "sha512-KdKVGOZgYhxiHTMphzPKaiNL99yyUgeDoqRmSedbKJr05nP5RxtiIPWX+i1dLCADRjExbGtKfFsrogNgH0h9SA==" + }, + "node_modules/it-batched-bytes": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/it-batched-bytes/-/it-batched-bytes-2.0.4.tgz", + "integrity": "sha512-n4V19XACvFG+b8lCkuvidYvwpyz3++DAolqZGI+9AcDvIPMAhVwwtFCe9SiDIz45OzQnnNYwBgBxbIinHPgraA==", + "dependencies": { + "p-defer": "^4.0.0", + "uint8arraylist": "^2.4.1" + } + }, + "node_modules/it-batched-bytes/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/it-byte-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/it-byte-stream/-/it-byte-stream-1.0.1.tgz", + "integrity": "sha512-Nu1/y8ObmrEmpHfWBHrWKtla9xwTdnMceB7v1z7tM+H84VP5Ou59wyFiJHsyvuIETLfKFY+TfhEbOJy24FRGjQ==", + "dependencies": { + "it-pushable": "^3.2.0", + "it-stream-types": "^2.0.1", + "uint8arraylist": "^2.4.1" + } + }, + "node_modules/it-byte-stream/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-drain": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-3.0.3.tgz", + "integrity": "sha512-l4s+izxUpFAR2axprpFiCaq0EtxK1QMd0LWbEtau5b+OegiZ5xdRtz35iJyh6KZY9QtuwEiQxydiOfYJc7stoA==" + }, + "node_modules/it-filter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-3.0.3.tgz", + "integrity": "sha512-2zXUrJuuV6QHM21ahc8NqVUUxkLMVDWXBoUBcj9GCQLQez2OXmddTHN0r0F5B+TkNTpeL618yIgXi1HNPJOxow==", + "dependencies": { + "it-peekable": "^3.0.0" + } + }, + "node_modules/it-filter/node_modules/it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, "node_modules/it-first": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" }, + "node_modules/it-foreach": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-2.0.4.tgz", + "integrity": "sha512-txxcoc09g+KdLyOapxAuB12H9zUb2FuZC/TqSXRT+YR0T5fHnvcDIhspgvx/e/HiPKlKjOR8onA0qtuiAtcXqg==", + "dependencies": { + "it-peekable": "^3.0.0" + } + }, + "node_modules/it-foreach/node_modules/it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, "node_modules/it-glob": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", @@ -6851,31 +10860,330 @@ "minimatch": "^3.0.4" } }, + "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==", + "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-handshake/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-handshake/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/it-last": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" }, + "node_modules/it-length": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-length/-/it-length-3.0.3.tgz", + "integrity": "sha512-aLoeonDJV6wMgT1ElEruc61c3FYxGa3yymujfZ0Uk4Up7mUJ15xl1ixxPnGbm+BnMkEQylJXjzp1vNYEY9blvg==" + }, + "node_modules/it-length-prefixed": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.3.tgz", + "integrity": "sha512-YAu424ceYpXctxtjcLOqn7vJq082CaoP8J646ZusYISfQc3bpzQErgTUqMFj81V262KG2W9/YMBHsy6A/4yvmg==", + "dependencies": { + "err-code": "^3.0.1", + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.1", + "uint8arraylist": "^2.0.0", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-length-prefixed-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-length-prefixed-stream/-/it-length-prefixed-stream-1.0.2.tgz", + "integrity": "sha512-gWevodoctgwWUaRJN9t+xEs1H1GQNYAjLCR7FO50fon9Ph4OJGgrxPKTc26QXKrC/cIQZLkHYClphUw0wl1k2A==", + "dependencies": { + "it-byte-stream": "^1.0.0", + "it-length-prefixed": "^9.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.1", + "uint8arraylist": "^2.4.1" + } + }, + "node_modules/it-length-prefixed-stream/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-length-prefixed/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-length-prefixed/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-length-prefixed/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/it-map": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" }, + "node_modules/it-merge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-3.0.2.tgz", + "integrity": "sha512-bMk2km8lTz+Rwv30hzDUdGIcqQkOemFJqmGT2wqQZ6/zHKCsYqdRunPrteCqHLV/nIVhUK8nZZkDA2eJ4MJZiA==", + "dependencies": { + "it-pushable": "^3.2.0" + } + }, + "node_modules/it-pair": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-2.0.6.tgz", + "integrity": "sha512-5M0t5RAcYEQYNG5BV7d7cqbdwbCAp5yLdzvkxsZmkuZsLbTdZzah6MQySYfaAQjNDCq6PUnDt0hqBZ4NwMfW6g==", + "dependencies": { + "it-stream-types": "^2.0.1", + "p-defer": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-pair/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-pair/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/it-parallel": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-3.0.4.tgz", + "integrity": "sha512-fuA+SysGxbZc+Yl7EUvzQqZ8bNYQghZ0Mq9zA+fxMQ5eQYzatNg6oJk1y1PvPvNqLgKJMzEInpRO6PbLC3hGAg==", + "dependencies": { + "p-defer": "^4.0.0" + } + }, + "node_modules/it-parallel-batch": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-3.0.2.tgz", + "integrity": "sha512-8ci62F5gn5aS8/wEC0kvRKWCmenHlIi+R8waEF/SP1ImQhhkve9l4/DXEmoL7UeI5FqJktzkMzZwqDng0ZppKw==", + "dependencies": { + "it-batch": "^3.0.0" + } + }, + "node_modules/it-parallel/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/it-peekable": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" }, + "node_modules/it-pipe": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-3.0.1.tgz", + "integrity": "sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA==", + "dependencies": { + "it-merge": "^3.0.0", + "it-pushable": "^3.1.2", + "it-stream-types": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-pipe/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-protobuf-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-protobuf-stream/-/it-protobuf-stream-1.0.2.tgz", + "integrity": "sha512-2lESJIeZS2ZlYJc/1SKs6LL4Y83rCCvZv750xV1e4uuP9114yNkw2MhIGCtSReg+qNWCvzGqOwjQbKV0LFE6wQ==", + "dependencies": { + "it-length-prefixed-stream": "^1.0.0", + "it-stream-types": "^2.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.1" + } + }, + "node_modules/it-protobuf-stream/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.2.1.tgz", + "integrity": "sha512-sLFz2Q0oyDCJpTciZog7ipP4vSftfPy3e6JnH6YyztRa1XqkpGQaafK3Jw/JlfEBtCXfnX9uVfcpu3xpSAqCVQ==", + "dependencies": { + "p-defer": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-pushable/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/it-reader": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.4.tgz", + "integrity": "sha512-XCWifEcNFFjjBHtor4Sfaj8rcpt+FkY0L6WdhD578SCDhV4VUm7fCkF3dv5a+fTcfQqvN9BsxBTvWbYO6iCjTg==", + "dependencies": { + "it-stream-types": "^2.0.1", + "uint8arraylist": "^2.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-reader/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-sort": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-3.0.3.tgz", + "integrity": "sha512-9BuQc5Y2fmBUNhevQBUDHfItrQmzWoZcnzydJl91V6na6M+RkbNj71UtCPPNIpOt/SQG+va0pe1wMQJ9lP2Oew==", + "dependencies": { + "it-all": "^3.0.0" + } + }, + "node_modules/it-sort/node_modules/it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" }, "node_modules/it-stream-types": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.4.tgz", "integrity": "sha512-0F3CqTIcIHwtnmIgqd03a7sw8BegAmE32N2w7anIGdALea4oAN4ltqPgDMZ7zn4XPLZifXEZlBXSzgg64L1Ebw==" }, + "node_modules/it-take": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-3.0.3.tgz", + "integrity": "sha512-Ay5SXEyrBKD0tO8PQif2QjrStImIsLIg0F50Uu4EeXOw8C9DfVIGfsGL3X9s65F2I9skDp9mLgBzl71IToMxNw==" + }, + "node_modules/it-to-buffer": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/it-to-buffer/-/it-to-buffer-4.0.3.tgz", + "integrity": "sha512-/xdI2hD/LvK7tzS/9DY9oKATmUZ9rg9uG7IfQRBAokM/LLujJ179fqRGneluqwKpXOtCpMRo43LJZXr8aibv6Q==", + "dependencies": { + "uint8arrays": "^4.0.2" + } + }, + "node_modules/it-to-buffer/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-to-buffer/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/it-to-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", @@ -6889,6 +11197,57 @@ "readable-stream": "^3.6.0" } }, + "node_modules/it-ws": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-6.0.5.tgz", + "integrity": "sha512-xp7tF4fHgx8+vN3Qy/8wGiWUKbC9E1U1g9PwtlbdxD7pY4zld71ZyWZVFHLxnxxg14T9mVNK5uO7U9HK11VQ5g==", + "dependencies": { + "@types/ws": "^8.2.2", + "event-iterator": "^2.0.0", + "iso-url": "^1.1.2", + "it-stream-types": "^2.0.1", + "uint8arrays": "^4.0.2", + "ws": "^8.4.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-ws/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-ws/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/it-ws/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/iterable-ndjson": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", + "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", + "dependencies": { + "string_decoder": "^1.2.0" + } + }, "node_modules/java-properties": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", @@ -7128,6 +11487,11 @@ "node": ">=4.0" } }, + "node_modules/just-debounce-it": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-3.2.0.tgz", + "integrity": "sha512-WXzwLL0745uNuedrCsCs3rpmfD6DBaf7uuVwaq98/8dafURfgQaBsSpjiPp5+CW6Vjltwy9cOGI6qE71b3T8iQ==" + }, "node_modules/just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", @@ -7544,6 +11908,252 @@ "node": ">= 0.8.0" } }, + "node_modules/libp2p": { + "version": "0.46.14", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.14.tgz", + "integrity": "sha512-7HC1VdVqeSVRZ8PdtGHwpCyGGz2Xrd5TeLcOspqdBXL6EOXeFY0n0P6qaC83IVzVP4SWULCbnzjstACw+SGluw==", + "dependencies": { + "@achingbrain/nat-port-mapper": "^1.0.9", + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/interface-internal": "^0.1.6", + "@libp2p/keychain": "^3.0.5", + "@libp2p/logger": "^3.0.3", + "@libp2p/multistream-select": "^4.0.3", + "@libp2p/peer-collections": "^4.0.5", + "@libp2p/peer-id": "^3.0.3", + "@libp2p/peer-id-factory": "^3.0.5", + "@libp2p/peer-record": "^6.0.6", + "@libp2p/peer-store": "^9.0.6", + "@libp2p/utils": "^4.0.4", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.0", + "any-signal": "^4.1.1", + "datastore-core": "^9.0.1", + "delay": "^6.0.0", + "events": "^3.3.0", + "interface-datastore": "^8.2.0", + "it-all": "^3.0.2", + "it-drain": "^3.0.2", + "it-filter": "^3.0.1", + "it-first": "^3.0.1", + "it-handshake": "^4.1.3", + "it-length-prefixed": "^9.0.1", + "it-map": "^3.0.3", + "it-merge": "^3.0.0", + "it-pair": "^2.0.6", + "it-parallel": "^3.0.0", + "it-pipe": "^3.0.1", + "it-protobuf-stream": "^1.0.0", + "it-stream-types": "^2.0.1", + "merge-options": "^3.0.4", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "p-queue": "^7.3.4", + "p-retry": "^6.0.0", + "private-ip": "^3.0.0", + "protons-runtime": "^5.0.0", + "rate-limiter-flexible": "^3.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6", + "wherearewe": "^2.0.1", + "xsalsa20": "^1.1.0" + } + }, + "node_modules/libp2p/node_modules/@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "node_modules/libp2p/node_modules/@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "dependencies": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/libp2p/node_modules/@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.6.0" + } + }, + "node_modules/libp2p/node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" + }, + "node_modules/libp2p/node_modules/any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/libp2p/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/libp2p/node_modules/interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "dependencies": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/libp2p/node_modules/interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "node_modules/libp2p/node_modules/it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + }, + "node_modules/libp2p/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==" + }, + "node_modules/libp2p/node_modules/it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "dependencies": { + "it-peekable": "^3.0.0" + } + }, + "node_modules/libp2p/node_modules/it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "node_modules/libp2p/node_modules/it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/libp2p/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/libp2p/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "node_modules/libp2p/node_modules/p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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-retry": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.1.0.tgz", + "integrity": "sha512-fJLEQ2KqYBJRuaA/8cKMnqhulqNM+bpcjYtXNex2t3mOXKRYPitAJt9NacSf8XAFzcYahSAbKpobiWDSqHSh2g==", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "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==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/libp2p/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/line-reader": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/line-reader/-/line-reader-0.4.0.tgz", @@ -8179,6 +12789,11 @@ "node": ">=0.10.0" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, "node_modules/mocha": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", @@ -8446,6 +13061,69 @@ "mongoose": "*" } }, + "node_modules/mortice": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.1.tgz", + "integrity": "sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==", + "dependencies": { + "nanoid": "^4.0.0", + "observable-webworkers": "^2.0.1", + "p-queue": "^7.2.0", + "p-timeout": "^6.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/mortice/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/mortice/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" + } + }, + "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==", + "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==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mpath": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", @@ -8492,11 +13170,55 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dependencies": { + "@multiformats/base-x": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, "node_modules/multiformats": { "version": "9.8.1", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.8.1.tgz", "integrity": "sha512-Cu7NfUYtCV+WN7w59WsRRF138S+um4tTo11ScYsWbNgWyCEGOu8wID1e5eMJs91gFZ0I7afodkkdxCF8NGkqZQ==" }, + "node_modules/multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/multihashes/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + }, "node_modules/nan": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", @@ -8513,6 +13235,11 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, "node_modules/native-fetch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", @@ -8546,6 +13273,14 @@ "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", "dev": true }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/nise": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", @@ -8574,12 +13309,54 @@ "isarray": "0.0.1" } }, + "node_modules/node-abi": { + "version": "3.51.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz", + "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/node-addon-api": { "version": "2.0.2", "resolved": "http://94.130.170.209:4873/node-addon-api/-/node-addon-api-2.0.2.tgz", "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", "license": "MIT" }, + "node_modules/node-datachannel": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/node-datachannel/-/node-datachannel-0.5.0.tgz", + "integrity": "sha512-B7164CUhXPuMZAmX5wUUq0jp0SDc1BcCgpA7oFjqe4jSdlq1WUH3a4xu4u3CcWMbNqKVSO1OBWisPkjnpTfo1Q==", + "hasInstallScript": true, + "dependencies": { + "node-domexception": "^2.0.1", + "prebuild-install": "^7.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/node-domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-2.0.1.tgz", + "integrity": "sha512-M85rnSC7WQ7wnfQTARPT4LrK7nwCHLdDFOCcItZMhTQjyCebJH8GciKqYJNgaOFZs9nFmTmd/VMyi3OW5jA47w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=16" + } + }, "node_modules/node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -8598,6 +13375,14 @@ "node": "4.x || >=6.0.0" } }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, "node_modules/node-gyp-build": { "version": "4.6.0", "resolved": "http://94.130.170.209:4873/node-gyp-build/-/node-gyp-build-4.6.0.tgz", @@ -11445,6 +16230,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/observable-webworkers": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", + "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -11554,6 +16348,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-event": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.0.tgz", + "integrity": "sha512-Xbfxd0CfZmHLGKXH32k1JKjQYX6Rkv0UtQdaFJ8OyNcf+c0oWCeXHc1C4CX/IESZLmcvfPa5aFIO/vCr5gqtag==", + "dependencies": { + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-fifo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", @@ -11655,6 +16463,17 @@ "node": ">=8" } }, + "node_modules/p-timeout": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", + "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -11937,6 +16756,11 @@ "node": ">=10" } }, + "node_modules/platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, "node_modules/please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -11946,6 +16770,31 @@ "semver-compare": "^1.0.0" } }, + "node_modules/prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -11971,11 +16820,34 @@ "node": ">=6" } }, + "node_modules/private-ip": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-3.0.1.tgz", + "integrity": "sha512-Ezc16ANuhSHmWAE6lbXUKburNzGpR0J5X0Zh5Um/PZ/s57Fp+HYqYe6BYPH2QbqKr/5WebfzJQ1jq6Kj5dbRmA==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "ip-regex": "^5.0.0", + "ipaddr.js": "^2.1.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">=14.16" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "node_modules/progress-events": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/progress-events/-/progress-events-1.0.0.tgz", + "integrity": "sha512-zIB6QDrSbPfRg+33FZalluFIowkbV5Xh1xSuetjG+rlC5he6u2dc6VQJ0TbMdlN3R1RHdpOqxEFMKTnQ+itUwA==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -11988,9 +16860,9 @@ } }, "node_modules/protobufjs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.1.tgz", - "integrity": "sha512-d0nMQqS/aT3lfV8bKi9Gbg73vPd2LcDdTDOu6RE/M+h9DY8g1EmDzk3ADPccthEWfTBjkR2oxNdx9Gs8YubT+g==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", + "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", "hasInstallScript": true, "dependencies": { "@protobufjs/aspromise": "^1.1.2", @@ -12010,6 +16882,32 @@ "node": ">=12.0.0" } }, + "node_modules/protons-runtime": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-5.0.5.tgz", + "integrity": "sha512-Sx33HMiA5w1ZxmfkfURnesrKKnyaHKIQuY0aOVfdKWZ00v/ssxZe3sdn7niUr22OTaCsFZF2nGYidjHMHHBuTg==", + "dependencies": { + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + } + }, + "node_modules/protons-runtime/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/protons-runtime/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -12131,6 +17029,11 @@ "node": ">=8" } }, + "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==" + }, "node_modules/random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", @@ -12147,6 +17050,11 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/rate-limiter-flexible": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-3.0.2.tgz", + "integrity": "sha512-5kQnZBfQ025dBL7cjqLxrCk0ud8DWEMZJH06VJyhch+Es0gQ/lny9yiIRf6mcbBj8aMTSCn2Xp9KDDao3Raq6g==" + }, "node_modules/raw-body": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", @@ -12199,7 +17107,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -12214,7 +17121,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -12801,6 +17707,14 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, "node_modules/saslprep": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", @@ -12831,6 +17745,11 @@ "node": "*" } }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, "node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -13112,8 +18031,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/signale": { "version": "1.4.0", @@ -13212,6 +18130,74 @@ "node": ">=4" } }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-get/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/simple-get/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -14006,6 +18992,65 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/tar-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -14149,6 +19194,11 @@ "readable-stream": "3" } }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, "node_modules/time-span": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", @@ -14171,6 +19221,14 @@ "retimer": "^3.0.0" } }, + "node_modules/timestamp-nano": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.1.tgz", + "integrity": "sha512-4oGOVZWTu5sl89PtCDnhQBSt7/vL1zVEwAfxH1p49JhTosxzVQWYBYFRFZ8nJmo0G6f824iyP/44BFAwIoKvIA==", + "engines": { + "node": ">= 4.5.0" + } + }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -14247,6 +19305,14 @@ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, "node_modules/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -14283,7 +19349,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -14384,18 +19449,61 @@ "node": ">= 0.8" } }, - "node_modules/uint8arraylist": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.3.2.tgz", - "integrity": "sha512-4ybc/jixmtGhUrebJ0bzB95TjEbskWxBKBRrAozw7P6WcAcZdPMYSLdDuNoEEGo/Cwe+0TNic9CXzWUWzy1quw==", + "node_modules/uint8-varint": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.1.tgz", + "integrity": "sha512-euvmpuulJstK5+xNuI4S1KfnxJnbI5QP52RXIR3GZ3/ZMkOsEK2AgCtFpNvEQLXMxMx2o0qcyevK1fJwOZJagQ==", "dependencies": { - "uint8arrays": "^3.1.0" + "uint8arraylist": "^2.0.0", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/uint8-varint/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/uint8-varint/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/uint8arraylist": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.3.tgz", + "integrity": "sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow==", + "dependencies": { + "uint8arrays": "^4.0.2" }, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, + "node_modules/uint8arraylist/node_modules/multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/uint8arraylist/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, "node_modules/uint8arrays": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", @@ -14525,6 +19633,11 @@ "node": ">=4" } }, + "node_modules/utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -14575,6 +19688,23 @@ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" }, + "node_modules/varint-decoder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/varint-decoder/-/varint-decoder-1.0.0.tgz", + "integrity": "sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ==", + "dependencies": { + "varint": "^5.0.0" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/varint-decoder/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + }, "node_modules/varuint-bitcoin": { "version": "1.1.2", "resolved": "http://94.130.170.209:4873/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", @@ -14770,6 +19900,18 @@ "node": ">=10.13.0" } }, + "node_modules/wherearewe": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-2.0.1.tgz", + "integrity": "sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw==", + "dependencies": { + "is-electron": "^2.2.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -14955,6 +20097,26 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, + "node_modules/ws": { + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", @@ -14964,6 +20126,31 @@ "node": ">=8" } }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xsalsa20": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz", + "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==" + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -15084,6 +20271,103 @@ } }, "dependencies": { + "@achingbrain/nat-port-mapper": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.12.tgz", + "integrity": "sha512-rU4G75TEOTIPlkeDnPEVwx/VmMMFta42kY2SMmVobRkrtNLnxtU08Yhriu6tSBc9oO0wXdfNNeuLnNnEnL7w/A==", + "requires": { + "@achingbrain/ssdp": "^4.0.1", + "@libp2p/logger": "^3.0.0", + "default-gateway": "^7.2.2", + "err-code": "^3.0.1", + "it-first": "^3.0.1", + "p-defer": "^4.0.0", + "p-timeout": "^6.1.1", + "xml2js": "^0.6.0" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-first": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-3.0.3.tgz", + "integrity": "sha512-RC8tplctsDpoBUljwsp1viiyaR5fPvMe+FgbbcU0sFjKkJa7iwbB4CCPhHtVYSdjsrREfr0QEotfQrBoGyt7Dw==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@achingbrain/ssdp": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@achingbrain/ssdp/-/ssdp-4.0.6.tgz", + "integrity": "sha512-Y4JE2L9150i50V6lg/Y8+ilhxRpUZKKv+PKo68Aj7MjPfaUAar6ZHilF9h4/Zb3q0fqGMXNc9o11cQLNI8J8bA==", + "requires": { + "event-iterator": "^2.0.0", + "freeport-promise": "^2.0.0", + "merge-options": "^3.0.4", + "xml2js": "^0.6.2" + } + }, "@babel/code-frame": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", @@ -15174,6 +20458,292 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@chainsafe/is-ip": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.2.tgz", + "integrity": "sha512-ndGqEMG1W5WkGagaqOZHpPU172AGdxr+LD15sv3WIUvT5oCFUrG1Y0CW/v2Egwj4JXEvSibaIIIqImsm98y1nA==" + }, + "@chainsafe/libp2p-gossipsub": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-10.1.0.tgz", + "integrity": "sha512-mOVYJAvxYRkh2HeggNFW/7ukEccQDVEI9LPhvlnJk7gnJhyJJ6mhZxUAaytfp3v3qTkmeBRnEL0eJOQBm+MoOA==", + "requires": { + "@libp2p/crypto": "^2.0.0", + "@libp2p/interface": "^0.1.0", + "@libp2p/interface-internal": "^0.1.0", + "@libp2p/logger": "^3.0.0", + "@libp2p/peer-id": "^3.0.0", + "@libp2p/pubsub": "^8.0.0", + "@multiformats/multiaddr": "^12.1.3", + "abortable-iterator": "^5.0.1", + "denque": "^2.1.0", + "it-length-prefixed": "^9.0.1", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.0", + "multiformats": "^12.0.1", + "protobufjs": "^7.2.4", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.4" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@chainsafe/libp2p-noise": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-13.0.1.tgz", + "integrity": "sha512-eeOFubXyS9sK0oBg/qRfve6LVGzZX1vyULVidaKGTJr8Y4dtyU4+Btqw/aVo3o1lhdvb/qoY+p/Ep2pUsvJKhg==", + "requires": { + "@libp2p/crypto": "^2.0.0", + "@libp2p/interface": "^0.1.0", + "@libp2p/logger": "^3.0.0", + "@libp2p/peer-id": "^3.0.0", + "@noble/ciphers": "^0.3.0", + "@noble/curves": "^1.1.0", + "@noble/hashes": "^1.3.1", + "it-byte-stream": "^1.0.0", + "it-length-prefixed": "^9.0.1", + "it-length-prefixed-stream": "^1.0.0", + "it-pair": "^2.0.6", + "it-pipe": "^3.0.1", + "it-stream-types": "^2.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.4" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@chainsafe/libp2p-yamux": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-yamux/-/libp2p-yamux-5.0.0.tgz", + "integrity": "sha512-aWTnBPR2hJt0A2y579sMtZVB6IqgSSHlZ6Eg+WDxNZQ0zcexafuruZQDj+z3FUTNPz+E8IeuyCi7tjI4IEehjw==", + "requires": { + "@libp2p/interface": "^0.1.0", + "@libp2p/logger": "^3.0.0", + "abortable-iterator": "^5.0.1", + "it-foreach": "^2.0.3", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.0", + "uint8arraylist": "^2.4.3" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@chainsafe/netmask": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz", + "integrity": "sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==", + "requires": { + "@chainsafe/is-ip": "^2.0.1" + } + }, "@chris.troutner/bip32-utils": { "version": "1.0.5", "resolved": "http://94.130.170.209:4873/@chris.troutner%2fbip32-utils/-/bip32-utils-1.0.5.tgz", @@ -15252,6 +20822,55 @@ } } }, + "@helia/interface": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@helia/interface/-/interface-2.0.0.tgz", + "integrity": "sha512-LW8iRyits8/Tyi6KkZy6I8VydJZvdmeI5kxLanbLNgcCKrgE9bgrlUjR1cQXV5N+CDV8Rn9FRp6I7tYEYnTC0Q==", + "requires": { + "@libp2p/interface": "^0.1.1", + "interface-blockstore": "^5.0.0", + "interface-datastore": "^8.0.0", + "interface-store": "^5.0.1", + "ipfs-bitswap": "^19.0.0", + "multiformats": "^12.0.1", + "progress-events": "^1.0.0" + }, + "dependencies": { + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "@humanwhocodes/config-array": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", @@ -15361,6 +20980,173 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, + "@libp2p/bootstrap": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-9.0.8.tgz", + "integrity": "sha512-d1kcvu9X64KVK/ec8Glr0mtqyjBoQUja8pGUH7vZ9nM5dIn7FITKgFMQwz//EImnsmbUoOEeEUBEzk2mialmww==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-id": "^3.0.3", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/crypto": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.5.tgz", + "integrity": "sha512-m6Rn7i9q3SHCzMUBkEwZgAKS4evpGQ4SEx/YD96pM0ZoPtU5PFO0psfrerraanxFBh8wUX4vkCtKfyTPH7F+bQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@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" + }, + "dependencies": { + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/interface": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.3.tgz", + "integrity": "sha512-C1O7Xqd2TGVWrIOEDx6kGJSk4YOysWGmYG5Oh3chnsCY0wjUSsLDpl9+wKrdiM/lJbAlHlV65ZOvSkIQ9cWPBQ==", + "requires": { + "@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" + }, + "dependencies": { + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "@libp2p/interface-connection": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.0.1.tgz", @@ -15373,6 +21159,46 @@ "uint8arraylist": "^2.1.1" } }, + "@libp2p/interface-internal": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-0.1.6.tgz", + "integrity": "sha512-n4Sv9tSr+2QRN7tHShmUJILQRoIPRPPkl0Zr8mVOW91XcdN2CfLYrzqeM1Yvl/iZx98bNMZXJveZV9OVuBynuQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@libp2p/peer-collections": "^4.0.5", + "@multiformats/multiaddr": "^12.1.5", + "uint8arraylist": "^2.4.3" + }, + "dependencies": { + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "@libp2p/interface-keychain": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@libp2p/interface-keychain/-/interface-keychain-1.0.3.tgz", @@ -15415,6 +21241,384 @@ "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.0.3.tgz", "integrity": "sha512-8IIxw7TKpaYTtVfZN3jePLlm/E/VzqPpqerN+jhA+1s86akRSeyxVBYi3W9SWDSf0oIauHJSDE8KNxLceAfeag==" }, + "@libp2p/ipni-content-routing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@libp2p/ipni-content-routing/-/ipni-content-routing-2.0.1.tgz", + "integrity": "sha512-35KVsxUP/Vr2PpoFk7Mz4oDcimQtRvu13RttByjIeh/dl0MbH5ch5iiP8mfno2iiJPYcjuVkXhMkGJZ0Dreing==", + "requires": { + "@libp2p/interface": "^0.1.1", + "@libp2p/logger": "^3.0.1", + "@libp2p/peer-id": "^3.0.1", + "@multiformats/multiaddr": "^12.1.2", + "any-signal": "^4.1.1", + "browser-readablestream-to-it": "^2.0.2", + "iterable-ndjson": "^1.1.0", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "p-queue": "^7.3.4" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==" + }, + "browser-readablestream-to-it": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.4.tgz", + "integrity": "sha512-EOjEEA+tJInvKg/Pml6QYxVY6gD8lka/ceLmkUbEeuWlzZx/a5k5ugupVFUUKSfI/88+v0VFs7JSFi5iYpp3IA==" + }, + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + }, + "p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "requires": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + } + }, + "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==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/kad-dht": { + "version": "10.0.9", + "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-10.0.9.tgz", + "integrity": "sha512-O/Kwg4+eMip/I4n810WmCHAaQlB83LxvhOEcGtfRsKwF7JnJn/0Tu8+vEaIJATA7Ear6rWrhqyo7qgJonIauqA==", + "requires": { + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/interface-internal": "^0.1.6", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-collections": "^4.0.5", + "@libp2p/peer-id": "^3.0.3", + "@multiformats/multiaddr": "^12.1.5", + "@types/sinon": "^10.0.15", + "abortable-iterator": "^5.0.1", + "any-signal": "^4.1.1", + "datastore-core": "^9.0.1", + "events": "^3.3.0", + "hashlru": "^2.3.0", + "interface-datastore": "^8.2.0", + "it-all": "^3.0.2", + "it-drain": "^3.0.2", + "it-first": "^3.0.1", + "it-length": "^3.0.1", + "it-length-prefixed": "^9.0.1", + "it-map": "^3.0.3", + "it-merge": "^3.0.0", + "it-parallel": "^3.0.0", + "it-pipe": "^3.0.1", + "it-stream-types": "^2.0.1", + "it-take": "^3.0.1", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "p-event": "^6.0.0", + "p-queue": "^7.3.4", + "private-ip": "^3.0.0", + "progress-events": "^1.0.0", + "protons-runtime": "^5.0.0", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==" + }, + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + }, + "it-first": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-3.0.3.tgz", + "integrity": "sha512-RC8tplctsDpoBUljwsp1viiyaR5fPvMe+FgbbcU0sFjKkJa7iwbB4CCPhHtVYSdjsrREfr0QEotfQrBoGyt7Dw==" + }, + "it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "requires": { + "it-peekable": "^3.0.0" + } + }, + "it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + }, + "p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "requires": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + } + }, + "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==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/keychain": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.5.tgz", + "integrity": "sha512-D8Tisc5yi2+ykM4Yw4Qsan/hGITF+jfHMC6Nti1upOOLAhGFpm92if/hkb2rZH3Q1iXs7l3fIhgOs9VayNplhA==", + "requires": { + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-id": "^3.0.3", + "interface-datastore": "^8.2.0", + "merge-options": "^3.0.4", + "sanitize-filename": "^1.6.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "@libp2p/logger": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.1.tgz", @@ -15426,6 +21630,302 @@ "multiformats": "^9.6.3" } }, + "@libp2p/mdns": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-9.0.10.tgz", + "integrity": "sha512-EFbZbUxIjW7KDoGh7brZ2GLjY5Etbsq794aAbTfTXUQsClhPlErgnj6X21mDYq9IE2cD+ZazkqmKpfR9FOB5RQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-id": "^3.0.3", + "@libp2p/utils": "^4.0.4", + "@multiformats/multiaddr": "^12.1.5", + "@types/multicast-dns": "^7.2.1", + "dns-packet": "^5.4.0", + "multicast-dns": "^7.2.5" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/mplex": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-9.0.8.tgz", + "integrity": "sha512-NHsoBWEImqr7nVNujNmedFW5ctefPG4kMAW0+UhLwJsq6X0p3qtaGbAAQZm6PqI7KIE16lEXFJkZfFFgMOpXJQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "abortable-iterator": "^5.0.1", + "benchmark": "^2.1.4", + "it-batched-bytes": "^2.0.2", + "it-pushable": "^3.2.0", + "it-stream-types": "^2.0.1", + "rate-limiter-flexible": "^3.0.0", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/multistream-select": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.3.tgz", + "integrity": "sha512-6iBYf/TAqi0oqusZ3LJ3DC0odABRukuLN+4Xh7tDmHCJX0tCjSSRibRYsiFcBNQMpcI0btRkQ0dZ0KqKhQ2kUw==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "abortable-iterator": "^5.0.1", + "it-first": "^3.0.1", + "it-handshake": "^4.1.3", + "it-length-prefixed": "^9.0.1", + "it-merge": "^3.0.0", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.0", + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-first": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-3.0.3.tgz", + "integrity": "sha512-RC8tplctsDpoBUljwsp1viiyaR5fPvMe+FgbbcU0sFjKkJa7iwbB4CCPhHtVYSdjsrREfr0QEotfQrBoGyt7Dw==" + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/peer-collections": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.5.tgz", + "integrity": "sha512-GdbVufdDLhYyHbDBO2juK54Nm+Cdu01ws0N0hNB0yVLM7GIP075RLgSO/0vTpLoPS1cEufKPsYfl4Bb5nKHaRg==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@libp2p/peer-id": "^3.0.3" + }, + "dependencies": { + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "@libp2p/peer-id": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-1.1.15.tgz", @@ -15437,6 +21937,805 @@ "uint8arrays": "^3.0.0" } }, + "@libp2p/peer-id-factory": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.5.tgz", + "integrity": "sha512-i7h/u3zDvcj8+GR+kpazmjikr3A6Rr5flVZmrTZfarkq5qAmD1bWd0vbgPrtKEgbhT+1S8NL3jR05/n7cbF7Tw==", + "requires": { + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/peer-id": "^3.0.3", + "multiformats": "^12.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/peer-record": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.6.tgz", + "integrity": "sha512-SNFafmUrnEOB2zplYJVjheN5UVFbi2UBdrYfIwi4SEaPA4ZFprnWBeQcVaLUSq7t2JkBGZUmWwtj4teVIxr60g==", + "requires": { + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/peer-id": "^3.0.3", + "@libp2p/utils": "^4.0.4", + "@multiformats/multiaddr": "^12.1.5", + "protons-runtime": "^5.0.0", + "uint8-varint": "^2.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/peer-store": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.6.tgz", + "integrity": "sha512-aBAvRKKg2Hsf0/bGrHEcxr6cGL8RDJhBx2xBhNuu7sROMd0isPrKNxfnrQKadYMxlQUnGzIEY3qFVQJJPFHZvA==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-collections": "^4.0.5", + "@libp2p/peer-id": "^3.0.3", + "@libp2p/peer-id-factory": "^3.0.5", + "@libp2p/peer-record": "^6.0.6", + "@multiformats/multiaddr": "^12.1.5", + "interface-datastore": "^8.2.0", + "it-all": "^3.0.2", + "mortice": "^3.0.1", + "multiformats": "^12.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/pubsub": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-8.0.7.tgz", + "integrity": "sha512-gpkKNMlxdF/tObBPE/3pY3aItfleLWUr7ghEpnK2CcRWkmb+ZACGC2MrYM9IbdHn3/jfQFSWoxJwMcoFJ8IJ0w==", + "requires": { + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/interface-internal": "^0.1.6", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-collections": "^4.0.5", + "@libp2p/peer-id": "^3.0.3", + "abortable-iterator": "^5.0.1", + "it-length-prefixed": "^9.0.1", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.0", + "multiformats": "^12.0.1", + "p-queue": "^7.3.4", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "requires": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + } + }, + "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==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/tcp": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-8.0.9.tgz", + "integrity": "sha512-SCZ22aSt5D5yvxt1pthCcU7hXO6z9qGo/3E3E3pyJaDS/wmLDHJzDuaOhpI7/fRs9lWfRhNAZIhCU4zo+Qeb+w==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/utils": "^4.0.4", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5", + "@types/sinon": "^10.0.15", + "stream-to-it": "^0.2.2" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/utils": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-4.0.4.tgz", + "integrity": "sha512-V++nWaCEO5QBk800SJ3kzzVn62cyBLt7fzVPDvVnxPyfLBn9prfShYb7XmvuZrnGSRCaUvD3b+q7CHGUEcdP2g==", + "requires": { + "@chainsafe/is-ip": "^2.0.2", + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.1", + "is-loopback-addr": "^2.0.1", + "it-stream-types": "^2.0.1", + "private-ip": "^3.0.0", + "uint8arraylist": "^2.4.3" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/webrtc": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-3.2.3.tgz", + "integrity": "sha512-OQxG4AyWpMPWT363Dm2haU/V18JJ191WEz062vH0lPZtgtF4adl80EjQgyMYwYQFh/8cho5Hf0emAlWKbqQA8w==", + "requires": { + "@chainsafe/libp2p-noise": "^13.0.0", + "@libp2p/interface": "^0.1.3", + "@libp2p/interface-internal": "^0.1.6", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-id": "^3.0.3", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.1", + "abortable-iterator": "^5.0.1", + "any-signal": "^4.1.1", + "detect-browser": "^5.3.0", + "it-length-prefixed": "^9.0.1", + "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", + "multiformats": "^12.0.1", + "multihashes": "^4.0.3", + "node-datachannel": "^0.5.0-dev", + "p-defer": "^4.0.0", + "p-event": "^6.0.0", + "p-timeout": "^6.1.2", + "protons-runtime": "^5.0.0", + "race-signal": "^1.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==" + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/websockets": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-7.0.9.tgz", + "integrity": "sha512-+MJKxGrLSv/aSHpdhlc05sVVPWg9TVJMCHfpN3WXG0B9DVk/qLdX+mCHpmPvRRdrDoYx6QfWvzHmhDHwfKNAdg==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/utils": "^4.0.4", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-to-uri": "^9.0.2", + "@types/ws": "^8.5.4", + "abortable-iterator": "^5.0.1", + "it-ws": "^6.0.0", + "p-defer": "^4.0.0", + "wherearewe": "^2.0.1", + "ws": "^8.12.1" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@libp2p/webtransport": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@libp2p/webtransport/-/webtransport-3.1.3.tgz", + "integrity": "sha512-nlEJ4YgML5bHYnuZrYxek4y8UaM+VFlwfvmTXgZx9+nmjpap+GAn5KuI8LJwu3Jp1coKzoK3K7GFzLteNqSsdQ==", + "requires": { + "@chainsafe/libp2p-noise": "^13.0.0", + "@libp2p/interface": "^0.1.3", + "@libp2p/logger": "^3.0.3", + "@libp2p/peer-id": "^3.0.3", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.1", + "it-stream-types": "^2.0.1", + "multiformats": "^12.0.1", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@multiformats/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + }, + "@multiformats/mafmt": { + "version": "12.1.6", + "resolved": "https://registry.npmjs.org/@multiformats/mafmt/-/mafmt-12.1.6.tgz", + "integrity": "sha512-tlJRfL21X+AKn9b5i5VnaTD6bNttpSpcqwKVmDmSHLwxoz97fAHaepqFOk/l1fIu94nImIXneNbhsJx/RQNIww==", + "requires": { + "@multiformats/multiaddr": "^12.0.0" + }, + "dependencies": { + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "@multiformats/multiaddr": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-10.4.3.tgz", @@ -15450,14 +22749,100 @@ "varint": "^6.0.0" } }, - "@multiformats/multiaddr-to-uri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.1.tgz", - "integrity": "sha512-kSyHZ2lKjoEzHu/TM4ZVwFj4AWV1B9qFBFJjYb/fK1NqrnrNb/M3uhoyckJvP7WZvpDsnEc7fUCpmPipDY6LMw==", + "@multiformats/multiaddr-matcher": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-matcher/-/multiaddr-matcher-1.0.2.tgz", + "integrity": "sha512-YzviFV31TsDbatWhEmkNnpWC82F/Wfc+alaOBT94Lk6KJeKKfzsaLhYPsjyhElXiUtCKvB3p5e4+WsE5ZYy1kg==", "requires": { - "@multiformats/multiaddr": "^10.1.1" + "@chainsafe/is-ip": "^2.0.1", + "@multiformats/multiaddr": "^12.0.0", + "multiformats": "^12.0.1" + }, + "dependencies": { + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } } }, + "@multiformats/multiaddr-to-uri": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.7.tgz", + "integrity": "sha512-i3ldtPMN6XJt+MCi34hOl0wGuGEHfWWMw6lmNag5BpckPwPTf9XGOOFMmh7ed/uO3Vjah/g173iOe61HTQVoBA==", + "requires": { + "@multiformats/multiaddr": "^12.0.0" + }, + "dependencies": { + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "@noble/ciphers": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.3.0.tgz", + "integrity": "sha512-ldbrnOjmNRwFdXcTM6uXDcxpMIFrbzAWNnpBPp4oTJTFF0XByGD6vf45WrehZGXRQTRVV+Zm8YP+EgEf+e4cWA==" + }, + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -15969,6 +23354,14 @@ "@types/node": "*" } }, + "@types/dns-packet": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/@types/dns-packet/-/dns-packet-5.6.2.tgz", + "integrity": "sha512-vgUZ0ilYvpnTDx7tBmmAUn1HsyzK3huAtulHaDbBBCW5UdaDrEei5XJjWHnD4s8r9/MSL1hJ8s+nvJdcvNKgMA==", + "requires": { + "@types/node": "*" + } + }, "@types/eslint": { "version": "8.4.6", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", @@ -16029,6 +23422,15 @@ "@types/node": "*" } }, + "@types/multicast-dns": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@types/multicast-dns/-/multicast-dns-7.2.3.tgz", + "integrity": "sha512-2SZ079yRhuhDn5BssqkQGp07vErjm3PD8S/JAlduWXacZ8SVHF0q6R2m0PwjjgTDU1vE3kibNPlmnr1iKbP/Sw==", + "requires": { + "@types/dns-packet": "*", + "@types/node": "*" + } + }, "@types/node": { "version": "18.7.18", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", @@ -16051,12 +23453,38 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "@types/sinon": { + "version": "10.0.20", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.20.tgz", + "integrity": "sha512-2APKKruFNCAZgx3daAyACGzWuJ028VVCUDk6o2rw/Z4PXT0ogwdV4KUegW0MwVs0Zu59auPXbbuBJHF12Sx1Eg==", + "requires": { + "@types/sinonjs__fake-timers": "*" + } + }, + "@types/sinonjs__fake-timers": { + "version": "8.1.4", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.4.tgz", + "integrity": "sha512-GDV68H0mBSN449sa5HEj51E0wfpVQb8xNSMzxf/PrypMFcLTMwJMOM/cgXiv71Mq5drkOQmUGvL1okOZcu6RrQ==" + }, + "@types/ws": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.8.tgz", + "integrity": "sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==", + "requires": { + "@types/node": "*" + } + }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, + "@vascosantos/moving-average": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", + "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -16223,6 +23651,27 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "abortable-iterator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-5.0.1.tgz", + "integrity": "sha512-hlZ5Z8UwqrKsJcelVPEqDduZowJPBQJ9ZhBC2FXpja3lXy8X6MoI5uMzIgmrA8+3jcVnp8TF/tx+IBBqYJNUrg==", + "requires": { + "get-iterator": "^2.0.0", + "it-stream-types": "^2.0.1" + }, + "dependencies": { + "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==" + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + } + } + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -16771,6 +24220,15 @@ "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", "dev": true }, + "benchmark": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz", + "integrity": "sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==", + "requires": { + "lodash": "^4.17.4", + "platform": "^1.3.3" + } + }, "big-integer": { "version": "1.6.51", "resolved": "http://94.130.170.209:4873/big-integer/-/big-integer-1.6.51.tgz", @@ -16913,6 +24371,148 @@ "browser-readablestream-to-it": "^1.0.3" } }, + "blockstore-core": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-4.3.4.tgz", + "integrity": "sha512-JecnNXiDPEdeS9AeFWO0PUKKmmRMW0D+ggUb4lgK0XMDOUAWmhkaiDPhgBjEKrlya0n60XOjcgBYhg18CUqOFw==", + "requires": { + "@libp2p/logger": "^3.0.0", + "err-code": "^3.0.1", + "interface-blockstore": "^5.0.0", + "interface-store": "^5.0.0", + "it-drain": "^3.0.1", + "it-filter": "^3.0.0", + "it-merge": "^3.0.1", + "it-pushable": "^3.0.0", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "blockstore-fs": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/blockstore-fs/-/blockstore-fs-1.1.6.tgz", + "integrity": "sha512-7tmntHl7icxusYQ9tDSOYEQKO1QXhZ45AqchfIRvB9ihUpxTTqMx2RRXPN94Fr3pc6PWJ+HwwxeGJobxAnm1cQ==", + "requires": { + "blockstore-core": "^4.0.0", + "fast-write-atomic": "^0.2.0", + "interface-blockstore": "^5.0.0", + "interface-store": "^5.0.0", + "it-glob": "^2.0.1", + "it-map": "^3.0.1", + "it-parallel-batch": "^3.0.0", + "multiformats": "^12.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-glob": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-2.0.5.tgz", + "integrity": "sha512-LMigc3F1ODHf8oNY05AcSsU2McT4ecqkmoDcJ93SEEZ3KgmFHzVwsszbyj8j1EFmXreR9gwWH6r53dUnGXboIA==", + "requires": { + "minimatch": "^9.0.0" + } + }, + "it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "requires": { + "it-peekable": "^3.0.0" + } + }, + "it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + } + } + }, "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", @@ -17226,6 +24826,11 @@ "readdirp": "~3.6.0" } }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, "chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -17642,6 +25247,191 @@ "assert-plus": "^1.0.0" } }, + "datastore-core": { + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-9.2.3.tgz", + "integrity": "sha512-jcvrVDt+jp7lUp2WhMXXgX/hoi3VcJebN+z/ZXbIRKOVfNOF4bl8cvr7sQ1y9qITikgC2coXFYd79Wzt/n13ZQ==", + "requires": { + "@libp2p/logger": "^3.0.0", + "err-code": "^3.0.1", + "interface-store": "^5.0.0", + "it-all": "^3.0.1", + "it-drain": "^3.0.1", + "it-filter": "^3.0.0", + "it-map": "^3.0.1", + "it-merge": "^3.0.1", + "it-pipe": "^3.0.0", + "it-pushable": "^3.0.0", + "it-sort": "^3.0.1", + "it-take": "^3.0.1", + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + }, + "it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "requires": { + "it-peekable": "^3.0.0" + } + }, + "it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "datastore-fs": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-9.1.5.tgz", + "integrity": "sha512-AiyjfcpIqpydXagNp7VYf0TPjW+sosgnUHuX0CBdXjXn1r1cxYjkfDmFPPkXe99wARchmFgNA8iZgb9dcZKHIg==", + "requires": { + "datastore-core": "^9.0.0", + "fast-write-atomic": "^0.2.0", + "interface-datastore": "^8.0.0", + "interface-store": "^5.0.0", + "it-glob": "^2.0.1", + "it-map": "^3.0.1", + "it-parallel-batch": "^3.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-glob": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-2.0.5.tgz", + "integrity": "sha512-LMigc3F1ODHf8oNY05AcSsU2McT4ecqkmoDcJ93SEEZ3KgmFHzVwsszbyj8j1EFmXreR9gwWH6r53dUnGXboIA==", + "requires": { + "minimatch": "^9.0.0" + } + }, + "it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "requires": { + "it-peekable": "^3.0.0" + } + }, + "it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", @@ -17705,8 +25495,7 @@ "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "deep-is": { "version": "0.1.4", @@ -17714,6 +25503,78 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "default-gateway": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-7.2.2.tgz", + "integrity": "sha512-AD7TrdNNPXRZIGw63dw+lnGmT4v7ggZC5NHNJgAYWm5njrwoze1q5JSAW9YuLy2tjnoLUG/r8FEB93MCh9QJPg==", + "requires": { + "execa": "^7.1.1" + }, + "dependencies": { + "execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==" + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==" + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==" + }, + "npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==" + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==" + } + } + }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -17760,6 +25621,11 @@ } } }, + "delay": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-6.0.0.tgz", + "integrity": "sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==" + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -17791,6 +25657,16 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, + "detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + }, + "detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" + }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -18718,6 +26594,11 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "event-iterator": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", + "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" + }, "eventemitter3": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", @@ -18762,6 +26643,11 @@ } } }, + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" + }, "expose-loader": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-3.1.0.tgz", @@ -18814,6 +26700,11 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "fast-write-atomic": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", + "integrity": "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==" + }, "fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -18965,6 +26856,11 @@ "mime-types": "^2.1.12" } }, + "freeport-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/freeport-promise/-/freeport-promise-2.0.0.tgz", + "integrity": "sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg==" + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -19018,6 +26914,11 @@ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, "fs-extra": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -19199,6 +27100,11 @@ } } }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -19394,12 +27300,198 @@ "minimalistic-assert": "^1.0.1" } }, + "hashlru": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", + "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "helia": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/helia/-/helia-2.0.3.tgz", + "integrity": "sha512-8Uze/U48R9p3013+oh5Eg29RwkzRXpCHDYyKxf7yU1S5GGnVguaWrmEHYJ2pKMMYMCgNasmCvfouurKIQvM+cg==", + "requires": { + "@chainsafe/libp2p-gossipsub": "^10.0.0", + "@chainsafe/libp2p-noise": "^13.0.0", + "@chainsafe/libp2p-yamux": "^5.0.0", + "@helia/interface": "^2.0.0", + "@ipld/dag-cbor": "^9.0.0", + "@ipld/dag-json": "^10.0.1", + "@ipld/dag-pb": "^4.0.3", + "@libp2p/bootstrap": "^9.0.2", + "@libp2p/interface": "^0.1.1", + "@libp2p/ipni-content-routing": "^2.0.0", + "@libp2p/kad-dht": "^10.0.2", + "@libp2p/logger": "^3.0.1", + "@libp2p/mdns": "^9.0.2", + "@libp2p/mplex": "^9.0.2", + "@libp2p/tcp": "^8.0.2", + "@libp2p/webrtc": "^3.1.3", + "@libp2p/websockets": "^7.0.2", + "@libp2p/webtransport": "^3.0.3", + "blockstore-core": "^4.0.0", + "cborg": "^4.0.1", + "datastore-core": "^9.0.0", + "interface-blockstore": "^5.0.0", + "interface-datastore": "^8.0.0", + "interface-store": "^5.0.1", + "ipfs-bitswap": "^19.0.0", + "ipns": "^7.0.1", + "it-all": "^3.0.2", + "it-drain": "^3.0.1", + "it-filter": "^3.0.1", + "it-foreach": "^2.0.2", + "libp2p": "^0.46.6", + "mortice": "^3.0.1", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "p-queue": "^7.3.4", + "progress-events": "^1.0.0", + "uint8arrays": "^4.0.3" + }, + "dependencies": { + "@ipld/dag-cbor": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.0.6.tgz", + "integrity": "sha512-3kNab5xMppgWw6DVYx2BzmFq8t7I56AGWfp5kaU1fIPkwHVpBRglJJTYsGtbVluCi/s/q97HZM3bC+aDW4sxbQ==", + "requires": { + "cborg": "^4.0.0", + "multiformats": "^12.0.1" + } + }, + "@ipld/dag-json": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.1.5.tgz", + "integrity": "sha512-AIIDRGPgIqVG2K1O42dPDzNOfP0YWV/suGApzpF+YWZLwkwdGVsxjmXcJ/+rwOhRGdjpuq/xQBKPCu1Ao6rdOQ==", + "requires": { + "cborg": "^4.0.0", + "multiformats": "^12.0.1" + } + }, + "@ipld/dag-pb": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-4.0.6.tgz", + "integrity": "sha512-wOij3jfDKZsb9yjhQeHp+TQy0pu1vmUkGv324xciFFZ7xGbDfAGTQW03lSA5aJ/7HBBNYgjEE0nvHmNW1Qjfag==", + "requires": { + "multiformats": "^12.0.1" + } + }, + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "cborg": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.3.tgz", + "integrity": "sha512-poLvpK30KT5KI8gzDx3J/IuVCbsLqMT2fEbOrOuX0H7Hyj8yg5LezeWhRh9aLa5Z6MfPC5sriW3HVJF328M8LQ==" + }, + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + }, + "p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "requires": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + } + }, + "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==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "helia-coord": { + "version": "file:../helia-coord", + "requires": { + "@istanbuljs/esm-loader-hook": "0.2.0", + "bch-encrypt-lib": "2.0.0", + "chai": "4.3.6", + "cross-env": "7.0.3", + "lodash.clonedeep": "4.5.0", + "minimal-slp-wallet": "5.8.9", + "mocha": "10.0.0", + "nyc": "15.1.0", + "sinon": "14.0.0", + "standard": "17.0.0", + "uuid": "9.0.0" + } + }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -19658,6 +27750,27 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, + "interface-blockstore": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-5.2.6.tgz", + "integrity": "sha512-Cp6+QPY81kunaxQV/j5BWk3uSW6kpos8dLveJ3P2lbmA/yX2XeMwVlNOnQyGg0evhp1qmMLhf6eCswNiSMW3CA==", + "requires": { + "interface-store": "^5.0.0", + "multiformats": "^12.0.1" + }, + "dependencies": { + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + } + } + }, "interface-datastore": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.0.tgz", @@ -19703,6 +27816,120 @@ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==" }, + "ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==" + }, + "ipfs-bitswap": { + "version": "19.0.1", + "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-19.0.1.tgz", + "integrity": "sha512-q5xVJdg8/I9LiBTWfYcfcgPvC8H17QbACYg5HeIrpo3Hci5lQ1HEvWS20IsbmpaSJ3Bv9dHY6orCvmy0OsvTLw==", + "requires": { + "@libp2p/interface": "^0.1.1", + "@libp2p/logger": "^3.0.1", + "@multiformats/multiaddr": "^12.1.0", + "@vascosantos/moving-average": "^1.1.0", + "any-signal": "^4.1.1", + "blockstore-core": "^4.0.0", + "events": "^3.3.0", + "interface-blockstore": "^5.0.0", + "interface-store": "^5.1.0", + "it-foreach": "^2.0.2", + "it-length-prefixed": "^9.0.0", + "it-map": "^3.0.2", + "it-pipe": "^3.0.1", + "it-take": "^3.0.1", + "just-debounce-it": "^3.0.1", + "multiformats": "^12.0.1", + "progress-events": "^1.0.0", + "protons-runtime": "^5.0.0", + "timeout-abort-controller": "^3.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.2", + "varint": "^6.0.0", + "varint-decoder": "^1.0.0" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==" + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "requires": { + "it-peekable": "^3.0.0" + } + }, + "it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "ipfs-coord-esm": { "version": "9.1.13", "resolved": "http://94.130.170.209:4873/ipfs-coord-esm/-/ipfs-coord-esm-9.1.13.tgz", @@ -19834,6 +28061,101 @@ } } }, + "ipns": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ipns/-/ipns-7.0.1.tgz", + "integrity": "sha512-S74hlKNeAW9eExGmRwEfOLAk5l/lEL3HajcenbIc7PTeyeL6PkKE31qQmTi7qynn1ll32hMAo1OagbtnceCtXQ==", + "requires": { + "@libp2p/crypto": "^2.0.3", + "@libp2p/interface": "^0.1.2", + "@libp2p/logger": "^3.0.2", + "@libp2p/peer-id": "^3.0.2", + "cborg": "^4.0.1", + "err-code": "^3.0.1", + "interface-datastore": "^8.1.0", + "multiformats": "^12.0.1", + "protons-runtime": "^5.0.0", + "timestamp-nano": "^1.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "cborg": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.0.3.tgz", + "integrity": "sha512-poLvpK30KT5KI8gzDx3J/IuVCbsLqMT2fEbOrOuX0H7Hyj8yg5LezeWhRh9aLa5Z6MfPC5sriW3HVJF328M8LQ==" + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "is-arguments": { "version": "1.1.1", "resolved": "http://94.130.170.209:4873/is-arguments/-/is-arguments-1.1.1.tgz", @@ -19951,6 +28273,11 @@ "super-regex": "^0.2.0" } }, + "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==" + }, "is-map": { "version": "2.0.2", "resolved": "http://94.130.170.209:4873/is-map/-/is-map-2.0.2.tgz", @@ -19961,6 +28288,11 @@ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" }, + "is-network-error": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.0.0.tgz", + "integrity": "sha512-P3fxi10Aji2FZmHTrMPSNFbNC6nnp4U5juPAIjXPHkUNubi4+qK7vvdsaNpAUwXslhYm9oyjEYTxs1xd/+Ph0w==" + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -20176,11 +28508,84 @@ "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" }, + "it-batch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-3.0.3.tgz", + "integrity": "sha512-KdKVGOZgYhxiHTMphzPKaiNL99yyUgeDoqRmSedbKJr05nP5RxtiIPWX+i1dLCADRjExbGtKfFsrogNgH0h9SA==" + }, + "it-batched-bytes": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/it-batched-bytes/-/it-batched-bytes-2.0.4.tgz", + "integrity": "sha512-n4V19XACvFG+b8lCkuvidYvwpyz3++DAolqZGI+9AcDvIPMAhVwwtFCe9SiDIz45OzQnnNYwBgBxbIinHPgraA==", + "requires": { + "p-defer": "^4.0.0", + "uint8arraylist": "^2.4.1" + }, + "dependencies": { + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + } + } + }, + "it-byte-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/it-byte-stream/-/it-byte-stream-1.0.1.tgz", + "integrity": "sha512-Nu1/y8ObmrEmpHfWBHrWKtla9xwTdnMceB7v1z7tM+H84VP5Ou59wyFiJHsyvuIETLfKFY+TfhEbOJy24FRGjQ==", + "requires": { + "it-pushable": "^3.2.0", + "it-stream-types": "^2.0.1", + "uint8arraylist": "^2.4.1" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + } + } + }, + "it-drain": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-3.0.3.tgz", + "integrity": "sha512-l4s+izxUpFAR2axprpFiCaq0EtxK1QMd0LWbEtau5b+OegiZ5xdRtz35iJyh6KZY9QtuwEiQxydiOfYJc7stoA==" + }, + "it-filter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-3.0.3.tgz", + "integrity": "sha512-2zXUrJuuV6QHM21ahc8NqVUUxkLMVDWXBoUBcj9GCQLQez2OXmddTHN0r0F5B+TkNTpeL618yIgXi1HNPJOxow==", + "requires": { + "it-peekable": "^3.0.0" + }, + "dependencies": { + "it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + } + } + }, "it-first": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" }, + "it-foreach": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-2.0.4.tgz", + "integrity": "sha512-txxcoc09g+KdLyOapxAuB12H9zUb2FuZC/TqSXRT+YR0T5fHnvcDIhspgvx/e/HiPKlKjOR8onA0qtuiAtcXqg==", + "requires": { + "it-peekable": "^3.0.0" + }, + "dependencies": { + "it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + } + } + }, "it-glob": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", @@ -20190,31 +28595,268 @@ "minimatch": "^3.0.4" } }, + "it-handshake": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.1.3.tgz", + "integrity": "sha512-V6Lt9A9usox9iduOX+edU1Vo94E6v9Lt9dOvg3ubFaw1qf5NCxXLi93Ao4fyCHWDYd8Y+DUhadwNtWVyn7qqLg==", + "requires": { + "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" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + } + } + }, "it-last": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==" }, + "it-length": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-length/-/it-length-3.0.3.tgz", + "integrity": "sha512-aLoeonDJV6wMgT1ElEruc61c3FYxGa3yymujfZ0Uk4Up7mUJ15xl1ixxPnGbm+BnMkEQylJXjzp1vNYEY9blvg==" + }, + "it-length-prefixed": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-9.0.3.tgz", + "integrity": "sha512-YAu424ceYpXctxtjcLOqn7vJq082CaoP8J646ZusYISfQc3bpzQErgTUqMFj81V262KG2W9/YMBHsy6A/4yvmg==", + "requires": { + "err-code": "^3.0.1", + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.1", + "uint8arraylist": "^2.0.0", + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "it-length-prefixed-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-length-prefixed-stream/-/it-length-prefixed-stream-1.0.2.tgz", + "integrity": "sha512-gWevodoctgwWUaRJN9t+xEs1H1GQNYAjLCR7FO50fon9Ph4OJGgrxPKTc26QXKrC/cIQZLkHYClphUw0wl1k2A==", + "requires": { + "it-byte-stream": "^1.0.0", + "it-length-prefixed": "^9.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.1", + "uint8arraylist": "^2.4.1" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + } + } + }, "it-map": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" }, + "it-merge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-3.0.2.tgz", + "integrity": "sha512-bMk2km8lTz+Rwv30hzDUdGIcqQkOemFJqmGT2wqQZ6/zHKCsYqdRunPrteCqHLV/nIVhUK8nZZkDA2eJ4MJZiA==", + "requires": { + "it-pushable": "^3.2.0" + } + }, + "it-pair": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-2.0.6.tgz", + "integrity": "sha512-5M0t5RAcYEQYNG5BV7d7cqbdwbCAp5yLdzvkxsZmkuZsLbTdZzah6MQySYfaAQjNDCq6PUnDt0hqBZ4NwMfW6g==", + "requires": { + "it-stream-types": "^2.0.1", + "p-defer": "^4.0.0" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + } + } + }, + "it-parallel": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-3.0.4.tgz", + "integrity": "sha512-fuA+SysGxbZc+Yl7EUvzQqZ8bNYQghZ0Mq9zA+fxMQ5eQYzatNg6oJk1y1PvPvNqLgKJMzEInpRO6PbLC3hGAg==", + "requires": { + "p-defer": "^4.0.0" + }, + "dependencies": { + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + } + } + }, + "it-parallel-batch": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-3.0.2.tgz", + "integrity": "sha512-8ci62F5gn5aS8/wEC0kvRKWCmenHlIi+R8waEF/SP1ImQhhkve9l4/DXEmoL7UeI5FqJktzkMzZwqDng0ZppKw==", + "requires": { + "it-batch": "^3.0.0" + } + }, "it-peekable": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==" }, + "it-pipe": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-3.0.1.tgz", + "integrity": "sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA==", + "requires": { + "it-merge": "^3.0.0", + "it-pushable": "^3.1.2", + "it-stream-types": "^2.0.1" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + } + } + }, + "it-protobuf-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-protobuf-stream/-/it-protobuf-stream-1.0.2.tgz", + "integrity": "sha512-2lESJIeZS2ZlYJc/1SKs6LL4Y83rCCvZv750xV1e4uuP9114yNkw2MhIGCtSReg+qNWCvzGqOwjQbKV0LFE6wQ==", + "requires": { + "it-length-prefixed-stream": "^1.0.0", + "it-stream-types": "^2.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.1" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + } + } + }, "it-pushable": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.0.tgz", - "integrity": "sha512-sEAdT86u6aIWvLkH4hlOmgvHpRyUOUG22HD365H+Dh67zYpaPdILmT4Om7Wjdb+m/SjEB81z3nYCoIrgVYpOFA==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.2.1.tgz", + "integrity": "sha512-sLFz2Q0oyDCJpTciZog7ipP4vSftfPy3e6JnH6YyztRa1XqkpGQaafK3Jw/JlfEBtCXfnX9uVfcpu3xpSAqCVQ==", + "requires": { + "p-defer": "^4.0.0" + }, + "dependencies": { + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + } + } + }, + "it-reader": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.4.tgz", + "integrity": "sha512-XCWifEcNFFjjBHtor4Sfaj8rcpt+FkY0L6WdhD578SCDhV4VUm7fCkF3dv5a+fTcfQqvN9BsxBTvWbYO6iCjTg==", + "requires": { + "it-stream-types": "^2.0.1", + "uint8arraylist": "^2.0.0" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + } + } + }, + "it-sort": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-3.0.3.tgz", + "integrity": "sha512-9BuQc5Y2fmBUNhevQBUDHfItrQmzWoZcnzydJl91V6na6M+RkbNj71UtCPPNIpOt/SQG+va0pe1wMQJ9lP2Oew==", + "requires": { + "it-all": "^3.0.0" + }, + "dependencies": { + "it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + } + } }, "it-stream-types": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.4.tgz", "integrity": "sha512-0F3CqTIcIHwtnmIgqd03a7sw8BegAmE32N2w7anIGdALea4oAN4ltqPgDMZ7zn4XPLZifXEZlBXSzgg64L1Ebw==" }, + "it-take": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-3.0.3.tgz", + "integrity": "sha512-Ay5SXEyrBKD0tO8PQif2QjrStImIsLIg0F50Uu4EeXOw8C9DfVIGfsGL3X9s65F2I9skDp9mLgBzl71IToMxNw==" + }, + "it-to-buffer": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/it-to-buffer/-/it-to-buffer-4.0.3.tgz", + "integrity": "sha512-/xdI2hD/LvK7tzS/9DY9oKATmUZ9rg9uG7IfQRBAokM/LLujJ179fqRGneluqwKpXOtCpMRo43LJZXr8aibv6Q==", + "requires": { + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "it-to-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", @@ -20228,6 +28870,47 @@ "readable-stream": "^3.6.0" } }, + "it-ws": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-6.0.5.tgz", + "integrity": "sha512-xp7tF4fHgx8+vN3Qy/8wGiWUKbC9E1U1g9PwtlbdxD7pY4zld71ZyWZVFHLxnxxg14T9mVNK5uO7U9HK11VQ5g==", + "requires": { + "@types/ws": "^8.2.2", + "event-iterator": "^2.0.0", + "iso-url": "^1.1.2", + "it-stream-types": "^2.0.1", + "uint8arrays": "^4.0.2", + "ws": "^8.4.0" + }, + "dependencies": { + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "iterable-ndjson": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/iterable-ndjson/-/iterable-ndjson-1.1.0.tgz", + "integrity": "sha512-OOp1Lb0o3k5MkXHx1YaIY5Z0ELosZfTnBaas9f8opJVcZGBIONA2zY/6CYE+LKkqrSDooIneZbrBGgOZnHPkrg==", + "requires": { + "string_decoder": "^1.2.0" + } + }, "java-properties": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", @@ -20422,6 +29105,11 @@ "object.assign": "^4.1.3" } }, + "just-debounce-it": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-3.2.0.tgz", + "integrity": "sha512-WXzwLL0745uNuedrCsCs3rpmfD6DBaf7uuVwaq98/8dafURfgQaBsSpjiPp5+CW6Vjltwy9cOGI6qE71b3T8iQ==" + }, "just-extend": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", @@ -20779,6 +29467,202 @@ "type-check": "~0.4.0" } }, + "libp2p": { + "version": "0.46.14", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.14.tgz", + "integrity": "sha512-7HC1VdVqeSVRZ8PdtGHwpCyGGz2Xrd5TeLcOspqdBXL6EOXeFY0n0P6qaC83IVzVP4SWULCbnzjstACw+SGluw==", + "requires": { + "@achingbrain/nat-port-mapper": "^1.0.9", + "@libp2p/crypto": "^2.0.5", + "@libp2p/interface": "^0.1.3", + "@libp2p/interface-internal": "^0.1.6", + "@libp2p/keychain": "^3.0.5", + "@libp2p/logger": "^3.0.3", + "@libp2p/multistream-select": "^4.0.3", + "@libp2p/peer-collections": "^4.0.5", + "@libp2p/peer-id": "^3.0.3", + "@libp2p/peer-id-factory": "^3.0.5", + "@libp2p/peer-record": "^6.0.6", + "@libp2p/peer-store": "^9.0.6", + "@libp2p/utils": "^4.0.4", + "@multiformats/mafmt": "^12.1.2", + "@multiformats/multiaddr": "^12.1.5", + "@multiformats/multiaddr-matcher": "^1.0.0", + "any-signal": "^4.1.1", + "datastore-core": "^9.0.1", + "delay": "^6.0.0", + "events": "^3.3.0", + "interface-datastore": "^8.2.0", + "it-all": "^3.0.2", + "it-drain": "^3.0.2", + "it-filter": "^3.0.1", + "it-first": "^3.0.1", + "it-handshake": "^4.1.3", + "it-length-prefixed": "^9.0.1", + "it-map": "^3.0.3", + "it-merge": "^3.0.0", + "it-pair": "^2.0.6", + "it-parallel": "^3.0.0", + "it-pipe": "^3.0.1", + "it-protobuf-stream": "^1.0.0", + "it-stream-types": "^2.0.1", + "merge-options": "^3.0.4", + "multiformats": "^12.0.1", + "p-defer": "^4.0.0", + "p-queue": "^7.3.4", + "p-retry": "^6.0.0", + "private-ip": "^3.0.0", + "protons-runtime": "^5.0.0", + "rate-limiter-flexible": "^3.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6", + "wherearewe": "^2.0.1", + "xsalsa20": "^1.1.0" + }, + "dependencies": { + "@libp2p/logger": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", + "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "requires": { + "@libp2p/interface": "^0.1.3", + "@multiformats/multiaddr": "^12.1.5", + "debug": "^4.3.4", + "interface-datastore": "^8.2.0", + "multiformats": "^12.0.1" + } + }, + "@libp2p/peer-id": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", + "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "requires": { + "@libp2p/interface": "^0.1.3", + "multiformats": "^12.0.1", + "uint8arrays": "^4.0.6" + } + }, + "@multiformats/multiaddr": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.7.tgz", + "integrity": "sha512-MZRj+uUrtF2WqgByrsPolrdyPDSFstw7Fe0ewabWgWl27fcOmfDOSrEt2aUVkSzapXbyCG7JQh0QvimmTF4aMA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==" + }, + "any-signal": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.1.1.tgz", + "integrity": "sha512-iADenERppdC+A2YKbOXXB2WUeABLaM6qnpZ70kZbPZ1cZMMJ7eF+3CaYm+/PhBizgkzlvssC7QuHS30oOiQYWA==" + }, + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "interface-datastore": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.2.5.tgz", + "integrity": "sha512-kvLGJMz3RPoJF/g5DbEvfWWempIiSBLVMf63b0PBsziVcSkj0ofzHYI86v8vqpGedkQ81DtPCUKyvX9W7zWvrQ==", + "requires": { + "interface-store": "^5.0.0", + "nanoid": "^4.0.0", + "uint8arrays": "^4.0.2" + } + }, + "interface-store": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-5.1.4.tgz", + "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" + }, + "it-all": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.3.tgz", + "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" + }, + "it-first": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-3.0.3.tgz", + "integrity": "sha512-RC8tplctsDpoBUljwsp1viiyaR5fPvMe+FgbbcU0sFjKkJa7iwbB4CCPhHtVYSdjsrREfr0QEotfQrBoGyt7Dw==" + }, + "it-map": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.0.4.tgz", + "integrity": "sha512-h5zCxovJQ+mzJT75xP4GkJuFrJQ5l7IIdhZ6AOWaE02g5F7T1k1j4CB/uKSRR05LLLOi1LqG+7CrH9bi8GIXYA==", + "requires": { + "it-peekable": "^3.0.0" + } + }, + "it-peekable": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.2.tgz", + "integrity": "sha512-nWwUdhNQ1CfAuoJmsaUotNMYUrfNIlY9gBA1jwWfWSu1I0mLY2brwreKHGOUptXLJUiG5pR04He0xYZMWBRiGA==" + }, + "it-stream-types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.1.tgz", + "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" + }, + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "p-defer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==" + }, + "p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "requires": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + } + }, + "p-retry": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.1.0.tgz", + "integrity": "sha512-fJLEQ2KqYBJRuaA/8cKMnqhulqNM+bpcjYtXNex2t3mOXKRYPitAJt9NacSf8XAFzcYahSAbKpobiWDSqHSh2g==", + "requires": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + } + }, + "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==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "line-reader": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/line-reader/-/line-reader-0.4.0.tgz", @@ -21274,6 +30158,11 @@ } } }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, "mocha": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", @@ -21462,6 +30351,45 @@ "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", "requires": {} }, + "mortice": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.1.tgz", + "integrity": "sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==", + "requires": { + "nanoid": "^4.0.0", + "observable-webworkers": "^2.0.1", + "p-queue": "^7.2.0", + "p-timeout": "^6.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==" + }, + "p-queue": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.4.1.tgz", + "integrity": "sha512-vRpMXmIkYF2/1hLBKisKeVYJZ8S2tZ0zEAmIJgdVKP2nq0nh4qCdf8bgw+ZgKrkh71AOCaqzwbJJk1WtdcF3VA==", + "requires": { + "eventemitter3": "^5.0.1", + "p-timeout": "^5.0.2" + }, + "dependencies": { + "p-timeout": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==" + } + } + } + } + }, "mpath": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", @@ -21504,11 +30432,45 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, "multiformats": { "version": "9.8.1", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.8.1.tgz", "integrity": "sha512-Cu7NfUYtCV+WN7w59WsRRF138S+um4tTo11ScYsWbNgWyCEGOu8wID1e5eMJs91gFZ0I7afodkkdxCF8NGkqZQ==" }, + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "requires": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "dependencies": { + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } + } + }, "nan": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", @@ -21519,6 +30481,11 @@ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, "native-fetch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", @@ -21547,6 +30514,11 @@ "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", "dev": true }, + "netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" + }, "nise": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", @@ -21577,11 +30549,33 @@ } } }, + "node-abi": { + "version": "3.51.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz", + "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==", + "requires": { + "semver": "^7.3.5" + } + }, "node-addon-api": { "version": "2.0.2", "resolved": "http://94.130.170.209:4873/node-addon-api/-/node-addon-api-2.0.2.tgz", "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, + "node-datachannel": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/node-datachannel/-/node-datachannel-0.5.0.tgz", + "integrity": "sha512-B7164CUhXPuMZAmX5wUUq0jp0SDc1BcCgpA7oFjqe4jSdlq1WUH3a4xu4u3CcWMbNqKVSO1OBWisPkjnpTfo1Q==", + "requires": { + "node-domexception": "^2.0.1", + "prebuild-install": "^7.0.1" + } + }, + "node-domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-2.0.1.tgz", + "integrity": "sha512-M85rnSC7WQ7wnfQTARPT4LrK7nwCHLdDFOCcItZMhTQjyCebJH8GciKqYJNgaOFZs9nFmTmd/VMyi3OW5jA47w==" + }, "node-emoji": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", @@ -21596,6 +30590,11 @@ "resolved": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, "node-gyp-build": { "version": "4.6.0", "resolved": "http://94.130.170.209:4873/node-gyp-build/-/node-gyp-build-4.6.0.tgz", @@ -23574,6 +32573,11 @@ "es-abstract": "^1.19.1" } }, + "observable-webworkers": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", + "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==" + }, "on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -23653,6 +32657,14 @@ "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", "dev": true }, + "p-event": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.0.tgz", + "integrity": "sha512-Xbfxd0CfZmHLGKXH32k1JKjQYX6Rkv0UtQdaFJ8OyNcf+c0oWCeXHc1C4CX/IESZLmcvfPa5aFIO/vCr5gqtag==", + "requires": { + "p-timeout": "^6.1.2" + } + }, "p-fifo": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", @@ -23724,6 +32736,11 @@ "retry": "^0.13.1" } }, + "p-timeout": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz", + "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==" + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -23933,6 +32950,11 @@ "find-up": "^5.0.0" } }, + "platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -23942,6 +32964,25 @@ "semver-compare": "^1.0.0" } }, + "prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "requires": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + } + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -23958,11 +32999,27 @@ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" }, + "private-ip": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-3.0.1.tgz", + "integrity": "sha512-Ezc16ANuhSHmWAE6lbXUKburNzGpR0J5X0Zh5Um/PZ/s57Fp+HYqYe6BYPH2QbqKr/5WebfzJQ1jq6Kj5dbRmA==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "ip-regex": "^5.0.0", + "ipaddr.js": "^2.1.0", + "netmask": "^2.0.2" + } + }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "progress-events": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/progress-events/-/progress-events-1.0.0.tgz", + "integrity": "sha512-zIB6QDrSbPfRg+33FZalluFIowkbV5Xh1xSuetjG+rlC5he6u2dc6VQJ0TbMdlN3R1RHdpOqxEFMKTnQ+itUwA==" + }, "prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -23975,9 +33032,9 @@ } }, "protobufjs": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.1.tgz", - "integrity": "sha512-d0nMQqS/aT3lfV8bKi9Gbg73vPd2LcDdTDOu6RE/M+h9DY8g1EmDzk3ADPccthEWfTBjkR2oxNdx9Gs8YubT+g==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.5.tgz", + "integrity": "sha512-gGXRSXvxQ7UiPgfw8gevrfRWcTlSbOFg+p/N+JVJEK5VhueL2miT6qTymqAmjr1Q5WbOCyJbyrk6JfWKwlFn6A==", "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -23993,6 +33050,30 @@ "long": "^5.0.0" } }, + "protons-runtime": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-5.0.5.tgz", + "integrity": "sha512-Sx33HMiA5w1ZxmfkfURnesrKKnyaHKIQuY0aOVfdKWZ00v/ssxZe3sdn7niUr22OTaCsFZF2nGYidjHMHHBuTg==", + "requires": { + "uint8arraylist": "^2.4.3", + "uint8arrays": "^4.0.6" + }, + "dependencies": { + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, "psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -24074,6 +33155,11 @@ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true }, + "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==" + }, "random-bytes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", @@ -24087,6 +33173,11 @@ "safe-buffer": "^5.1.0" } }, + "rate-limiter-flexible": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-3.0.2.tgz", + "integrity": "sha512-5kQnZBfQ025dBL7cjqLxrCk0ud8DWEMZJH06VJyhch+Es0gQ/lny9yiIRf6mcbBj8aMTSCn2Xp9KDDao3Raq6g==" + }, "raw-body": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", @@ -24129,7 +33220,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -24140,8 +33230,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" } } }, @@ -24584,6 +33673,14 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, "saslprep": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", @@ -24608,6 +33705,11 @@ } } }, + "sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -24825,8 +33927,7 @@ "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "signale": { "version": "1.4.0", @@ -24906,6 +34007,36 @@ } } }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "requires": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } + } + }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -25507,6 +34638,50 @@ } } }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, "temp-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", @@ -25606,6 +34781,11 @@ "readable-stream": "3" } }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, "time-span": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", @@ -25622,6 +34802,11 @@ "retimer": "^3.0.0" } }, + "timestamp-nano": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.1.tgz", + "integrity": "sha512-4oGOVZWTu5sl89PtCDnhQBSt7/vL1zVEwAfxH1p49JhTosxzVQWYBYFRFZ8nJmo0G6f824iyP/44BFAwIoKvIA==" + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -25680,6 +34865,14 @@ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, "tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -25712,7 +34905,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -25785,12 +34977,51 @@ "random-bytes": "~1.0.0" } }, - "uint8arraylist": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.3.2.tgz", - "integrity": "sha512-4ybc/jixmtGhUrebJ0bzB95TjEbskWxBKBRrAozw7P6WcAcZdPMYSLdDuNoEEGo/Cwe+0TNic9CXzWUWzy1quw==", + "uint8-varint": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.1.tgz", + "integrity": "sha512-euvmpuulJstK5+xNuI4S1KfnxJnbI5QP52RXIR3GZ3/ZMkOsEK2AgCtFpNvEQLXMxMx2o0qcyevK1fJwOZJagQ==", "requires": { - "uint8arrays": "^3.1.0" + "uint8arraylist": "^2.0.0", + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } + } + }, + "uint8arraylist": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.3.tgz", + "integrity": "sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow==", + "requires": { + "uint8arrays": "^4.0.2" + }, + "dependencies": { + "multiformats": { + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", + "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + } } }, "uint8arrays": { @@ -25888,6 +35119,11 @@ "prepend-http": "^2.0.0" } }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -25929,6 +35165,21 @@ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" }, + "varint-decoder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/varint-decoder/-/varint-decoder-1.0.0.tgz", + "integrity": "sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ==", + "requires": { + "varint": "^5.0.0" + }, + "dependencies": { + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } + } + }, "varuint-bitcoin": { "version": "1.1.2", "resolved": "http://94.130.170.209:4873/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", @@ -26058,6 +35309,14 @@ "source-map": "^0.6.1" } }, + "wherearewe": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-2.0.1.tgz", + "integrity": "sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw==", + "requires": { + "is-electron": "^2.2.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -26199,12 +35458,37 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, + "ws": { + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "requires": {} + }, "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, + "xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "xsalsa20": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz", + "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 163f8bb..6bd90e2 100644 --- a/package.json +++ b/package.json @@ -24,9 +24,18 @@ }, "repository": "Permissionless-Software-Foundation/ipfs-service-provider", "dependencies": { + "@chainsafe/libp2p-gossipsub": "10.1.0", + "@chainsafe/libp2p-noise": "13.0.1", + "@chainsafe/libp2p-yamux": "5.0.0", + "@libp2p/bootstrap": "9.0.8", + "@libp2p/tcp": "8.0.9", "axios": "0.27.2", "bcryptjs": "2.4.3", + "blockstore-fs": "1.1.6", + "datastore-fs": "9.1.5", "glob": "7.1.6", + "helia": "2.0.3", + "helia-coord": "../helia-coord", "ipfs-coord-esm": "9.1.13", "ipfs-http-client": "58.0.0", "jsonrpc-lite": "2.2.0", @@ -43,6 +52,7 @@ "koa-router": "10.0.0", "koa-static": "5.0.0", "koa2-ratelimit": "0.9.1", + "libp2p": "0.46.14", "line-reader": "0.4.0", "minimal-slp-wallet": "5.11.1", "mongoose": "5.13.14", diff --git a/src/adapters/ipfs/ipfs-coord.js b/src/adapters/ipfs/ipfs-coord.js index 93dee3e..e7341b6 100644 --- a/src/adapters/ipfs/ipfs-coord.js +++ b/src/adapters/ipfs/ipfs-coord.js @@ -5,7 +5,8 @@ */ // Global npm libraries -import IpfsCoord from 'ipfs-coord-esm' +// import IpfsCoord from 'ipfs-coord-esm' +import IpfsCoord from 'helia-coord' // import BCHJS from '@psf/bch-js'; import SlpWallet from 'minimal-slp-wallet' @@ -64,12 +65,15 @@ class IpfsCoordAdapter { } } + const nullLog = () => {} + const ipfsCoordOptions = { ipfs: this.ipfs, type: 'node.js', // type: 'browser', wallet: this.wallet, - privateLog: console.log, // Default to console.log + // privateLog: console.log, // Default to console.log + privateLog: nullLog, isCircuitRelay: this.config.isCircuitRelay, circuitRelayInfo, apiInfo: this.config.apiInfo, @@ -78,9 +82,9 @@ class IpfsCoordAdapter { } // Production env uses external go-ipfs node. - if (this.config.isProduction) { - ipfsCoordOptions.nodeType = 'external' - } + // if (this.config.isProduction) { + // ipfsCoordOptions.nodeType = 'external' + // } this.ipfsCoord = new this.IpfsCoord(ipfsCoordOptions) diff --git a/src/adapters/ipfs/ipfs.js b/src/adapters/ipfs/ipfs.js index e0bdb03..85407a1 100644 --- a/src/adapters/ipfs/ipfs.js +++ b/src/adapters/ipfs/ipfs.js @@ -13,9 +13,17 @@ // const IPFS = require('@chris.troutner/ipfs') // import IPFSembedded from 'ipfs'; -import { create } from 'ipfs-http-client' +import { createHelia } from 'helia' import fs from 'fs' -import http from 'http' +import { FsBlockstore } from 'blockstore-fs' +import { FsDatastore } from 'datastore-fs' +import { createLibp2p } from 'libp2p' +import { tcp } from '@libp2p/tcp' +import { noise } from '@chainsafe/libp2p-noise' +import { yamux } from '@chainsafe/libp2p-yamux' +import { bootstrap } from '@libp2p/bootstrap' +import { identifyService } from 'libp2p/identify' +import { gossipsub } from '@chainsafe/libp2p-gossipsub' // Local libraries import config from '../../../config/index.js' @@ -27,7 +35,7 @@ class IpfsAdapter { // Encapsulate dependencies this.config = config this.fs = fs - this.create = create + // this.create = create // Choose the IPFS constructor based on the config settings. // this.IPFS = IPFSembedded // default @@ -42,62 +50,23 @@ class IpfsAdapter { // Start an IPFS node. async start () { try { - // Ipfs Options - const ipfsOptionsEmbedded = { - repo: IPFS_DIR, - start: true, - config: { - relay: { - enabled: true, // enable circuit relay dialer and listener - hop: { - enabled: config.isCircuitRelay // enable circuit relay HOP (make this node a relay) - } - }, - pubsub: true, // enable pubsub - Swarm: { - ConnMgr: { - HighWater: 30, - LowWater: 10 - } - }, - Addresses: { - Swarm: [ - `/ip4/0.0.0.0/tcp/${this.config.ipfsTcpPort}`, - `/ip4/0.0.0.0/tcp/${this.config.ipfsWsPort}/ws` - ] - }, - Datastore: { - StorageMax: '2GB', - StorageGCWatermark: 50, - GCPeriod: '15m' - } - } - } + // Create an IPFS node + const ipfs = await this.createNode() + // console.log('ipfs: ', ipfs) - const ipfsOptionsExternal = { - host: this.config.ipfsHost, - port: this.config.ipfsApiPort, - agent: http.Agent({ keepAlive: true, maxSockets: 2000 }) - } + // Get the multiaddrs for the node. + const multiaddrs = ipfs.libp2p.getMultiaddrs() + console.log('Multiaddrs: ', multiaddrs) - let ipfsOptions = ipfsOptionsEmbedded - if (this.config.isProduction) { - ipfsOptions = ipfsOptionsExternal - } - - // Create a new IPFS node. - this.ipfs = await this.create(ipfsOptions) - - // Set the 'server' profile so the node does not scan private networks. - await this.ipfs.config.profiles.apply('server') - - // Debugging: Display IPFS config settings. - // const configSettings = await this.ipfs.config.getAll() - // console.log(`configSettings: ${JSON.stringify(configSettings, null, 2)}`) + this.multiaddrs = multiaddrs + this.id = ipfs.libp2p.peerId.toString() + console.log('IPFS ID: ', this.id) // Signal that this adapter is ready. this.isReady = true + this.ipfs = ipfs + return this.ipfs } catch (err) { console.error('Error in ipfs.js/start()') @@ -111,6 +80,69 @@ class IpfsAdapter { } } + // This function creates an IPFS node using Helia. + // It returns the node as an object. + async createNode () { + try { + + // Create block and data stores. + const blockstore = new FsBlockstore(`${IPFS_DIR}/blockstore`) + const datastore = new FsDatastore(`${IPFS_DIR}/datastore`) + + // libp2p is the networking layer that underpins Helia + const libp2p = await createLibp2p({ + datastore, + addresses: { + listen: [ + '/ip4/127.0.0.1/tcp/0', + `/ip4/0.0.0.0/tcp/${this.config.ipfsTcpPort}` + ] + }, + transports: [ + tcp() + ], + connectionEncryption: [ + noise() + ], + streamMuxers: [ + yamux() + ], + peerDiscovery: [ + bootstrap({ + list: [ + // '/dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN', + // '/dnsaddr/bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa', + // '/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb', + // '/dnsaddr/bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt' + '/ip4/5.161.108.190/tcp/4102/p2p/12D3KooWKNuBjaMgEDN2tGqzmdfM2bmd22VEuboC4X7x8ua4DvUg', + '/ip4/5.161.108.190/tcp/4001/p2p/12D3KooWMW3u8ygGHqNHjxXsw7TA39vgrSQEx7vEGoUh7EiCwGGv', + '/ip4/137.184.13.92/tcp/4001/p2p/12D3KooWMbpo92kSGwWiN6QH7fvstMWiLZKcxmReq3Hhbpya2bq4', + '/ip4/78.46.129.7/tcp/4001/p2p/12D3KooWJyc54njjeZGbLew4D8u1ghrmZTTPyh3QpBF7dxtd3zGY', + '/ip4/5.161.72.148/tcp/4001/p2p/12D3KooWAVG5kn46P9mjKCLUSPesmmLeKf2a79qRt6u22hJaEARJ', + '/ip4/161.35.99.207/tcp/4001/p2p/12D3KooWDtj9cfj1SKuLbDNKvKRKSsGN8qivq9M8CYpLPDpcD5pu', + '/ip4/192.168.2.173/tcp/4001/p2p/12D3KooWAz2hbriyU9o1wHNU2nxqG8mMgAdWnXCSfWiv5kxSfW49' + ] + }) + ], + services: { + identify: identifyService(), + pubsub: gossipsub({ allowPublishToZeroPeers: true }) + } + }) + + // create a Helia node + const helia = await createHelia({ + blockstore, + datastore, + libp2p + }) + + return helia + } catch (err) { + console.error('Error creating Helia node: ', err) + } + } + async stop () { await this.ipfs.stop() From 18fe63a5ad0c3a40eb36e3b38cc473291a5487cd Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sun, 22 Oct 2023 17:35:10 -0700 Subject: [PATCH 02/12] fix(tests): Fixed broken tests --- package-lock.json | 13 ++++++++++ package.json | 1 + src/adapters/ipfs/ipfs.js | 18 ++++++++----- test/unit/adapters/ipfs.adapter.unit.js | 34 ++++++++++++------------- test/unit/mocks/helia-mock.js | 13 ++++++++++ 5 files changed, 55 insertions(+), 24 deletions(-) create mode 100644 test/unit/mocks/helia-mock.js diff --git a/package-lock.json b/package-lock.json index 255943b..13afa3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,6 +54,7 @@ "chai": "4.3.0", "coveralls": "3.1.0", "husky": "4.3.8", + "lodash.clonedeep": "^4.5.0", "mocha": "10.0.0", "semantic-release": "19.0.3", "sinon": "9.2.4", @@ -12248,6 +12249,12 @@ "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", "dev": true }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, "node_modules/lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", @@ -29741,6 +29748,12 @@ "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", "dev": true }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "dev": true + }, "lodash.escaperegexp": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", diff --git a/package.json b/package.json index 6bd90e2..2bc8185 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "chai": "4.3.0", "coveralls": "3.1.0", "husky": "4.3.8", + "lodash.clonedeep": "^4.5.0", "mocha": "10.0.0", "semantic-release": "19.0.3", "sinon": "9.2.4", diff --git a/src/adapters/ipfs/ipfs.js b/src/adapters/ipfs/ipfs.js index 85407a1..2c0945f 100644 --- a/src/adapters/ipfs/ipfs.js +++ b/src/adapters/ipfs/ipfs.js @@ -9,10 +9,6 @@ */ // Global npm libraries -// const IPFS = require('ipfs') -// const IPFS = require('@chris.troutner/ipfs') -// import IPFSembedded from 'ipfs'; - import { createHelia } from 'helia' import fs from 'fs' import { FsBlockstore } from 'blockstore-fs' @@ -28,7 +24,13 @@ import { gossipsub } from '@chainsafe/libp2p-gossipsub' // Local libraries import config from '../../../config/index.js' -const IPFS_DIR = './.ipfsdata/ipfs' +// Hack to get __dirname back. +// https://blog.logrocket.com/alternatives-dirname-node-js-es-modules/ +import * as url from 'url' +const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) +console.log('__dirname: ', __dirname) + +const IPFS_DIR = `${__dirname}../../../.ipfsdata/ipfs` class IpfsAdapter { constructor (localConfig) { @@ -45,6 +47,11 @@ class IpfsAdapter { // Properties of this class instance. this.isReady = false + + // Bind 'this' object to all subfunctions + this.start = this.start.bind(this) + this.createNode = this.createNode.bind(this) + this.stop = this.stop.bind(this) } // Start an IPFS node. @@ -84,7 +91,6 @@ class IpfsAdapter { // It returns the node as an object. async createNode () { try { - // Create block and data stores. const blockstore = new FsBlockstore(`${IPFS_DIR}/blockstore`) const datastore = new FsDatastore(`${IPFS_DIR}/datastore`) diff --git a/test/unit/adapters/ipfs.adapter.unit.js b/test/unit/adapters/ipfs.adapter.unit.js index dcc060d..a0d0aee 100644 --- a/test/unit/adapters/ipfs.adapter.unit.js +++ b/test/unit/adapters/ipfs.adapter.unit.js @@ -2,21 +2,28 @@ Unit tests for the IPFS Adapter. */ +// Global npm libraries import { assert } from 'chai' - import sinon from 'sinon' +import cloneDeep from 'lodash.clonedeep' + +// Local libraries import IPFSLib from '../../../src/adapters/ipfs/ipfs.js' -import create from '../mocks/ipfs-mock.js' +// import create from '../mocks/ipfs-mock.js' import config from '../../../config/index.js' +import createHeliaLib from '../mocks/helia-mock.js' // config.isProduction = true; describe('#IPFS-adapter', () => { let uut let sandbox + let ipfs beforeEach(() => { uut = new IPFSLib() + ipfs = cloneDeep(createHeliaLib) + sandbox = sinon.createSandbox() }) @@ -45,35 +52,26 @@ describe('#IPFS-adapter', () => { describe('#start', () => { it('should return a promise that resolves into an instance of IPFS.', async () => { // Mock dependencies. - uut.create = create + sandbox.stub(uut, 'createNode').resolves(ipfs) const result = await uut.start() // console.log('result: ', result) + // Assert properties of the instance are set. assert.equal(uut.isReady, true) + assert.property(uut, 'multiaddrs') + assert.property(uut, 'id') - assert.property(result, 'config') - }) - - it('should return a promise that resolves into an instance of IPFS in production mode.', async () => { - // Mock dependencies. - uut.create = create - uut.config.isProduction = true - const result = await uut.start() - // console.log('result: ', result) - - assert.equal(uut.isReady, true) - - assert.property(result, 'config') + // Output should be an instance of IPFS + assert.property(result, 'libp2p') }) it('should catch and throw an error', async () => { try { // Force an error - sandbox.stub(uut, 'create').rejects(new Error('test error')) + sandbox.stub(uut, 'createNode').rejects(new Error('test error')) await uut.start() - assert.fail('Unexpected code path.') } catch (err) { // console.log(err) diff --git a/test/unit/mocks/helia-mock.js b/test/unit/mocks/helia-mock.js new file mode 100644 index 0000000..3d2bc8e --- /dev/null +++ b/test/unit/mocks/helia-mock.js @@ -0,0 +1,13 @@ +/* + Mocking library for helia. + This is used to replace the helia library when running unit tests. +*/ + +const ipfs = { + libp2p: { + getMultiaddrs: () => [], + peerId: 'fake-id' + } +} + +export default ipfs From 825bc6d2dea1157895d885a34b4033e2e62a5fee Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 23 Oct 2023 09:16:06 -0700 Subject: [PATCH 03/12] fix(ipfs): Creating block & data store directories if they don't exit --- README.md | 12 +++-- package.json | 2 +- src/adapters/ipfs/ipfs.js | 58 ++++++++++---------- test/unit/adapters/ipfs.adapter.unit.js | 71 ++++++++++++++++++------- 4 files changed, 89 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index 283698f..892ed0f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,13 @@ ## Overview -This is a 'boilerplate' repository. It's intended to be forked to start new projects. However, it can also be run as a stand-alone Circuit Relay, for supporting the PSF network. +This is a 'boilerplate' repository. It's intended to be forked to start new projects. Some code projects that are forks of this repository and regularly pull in changes: +- [pay-to-write database (P2WDB)](https://p2wdb.com/) +- [ipfs-bch-wallet-consumer](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer) +- [ipfs-bch-wallet-service](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-service) + + +In addition to being forked as a boilerpalte, it can also be run as a stand-alone application to create a [Circuit Relay](https://cashstack.info/docs/local-back-end/circuit-relay), which can support the [PSF](https://psfoundation.info) IPFS network. It can also be used for experimenting with [helia-coord](https://github.com/Permissionless-Software-Foundation/helia-coord) and the [psf-bch-wallet](https://github.com/Permissionless-Software-Foundation/psf-bch-wallet) command-line wallet. ## Boilerplate @@ -12,11 +18,11 @@ This repository has been forked from the [koa-api-boilerplate](https://github.co - [Koa](https://koajs.com/) framework for REST APIs - User management -- Access and rate-limit control using [JWT tokens](https://jwt.io/). +- Access and rate-limit control using [JWT tokens](https://jwt.io/) This boilerplate extends that code to provide the basic features required to be a 'service provider' on the [IPFS](https://ipfs.io) network. This is a core concept in the [web3 Cash Stack](https://cashstack.info). These basic features include: -- [ipfs-coord](https://www.npmjs.com/package/ipfs-coord) for coordinating service providers and consumers across the IPFS network. +- [helia-coord](https://github.com/Permissionless-Software-Foundation/helia-coord) for coordinating service providers and consumers across the IPFS network. - JSON RPC for creating an API between providers and consumers. If you are interested in creating your own service provider on the IPFS network, fork this repository and start building. diff --git a/package.json b/package.json index 2bc8185..71031f7 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "chai": "4.3.0", "coveralls": "3.1.0", "husky": "4.3.8", - "lodash.clonedeep": "^4.5.0", + "lodash.clonedeep": "4.5.0", "mocha": "10.0.0", "semantic-release": "19.0.3", "sinon": "9.2.4", diff --git a/src/adapters/ipfs/ipfs.js b/src/adapters/ipfs/ipfs.js index 2c0945f..cd2459e 100644 --- a/src/adapters/ipfs/ipfs.js +++ b/src/adapters/ipfs/ipfs.js @@ -28,8 +28,9 @@ import config from '../../../config/index.js' // https://blog.logrocket.com/alternatives-dirname-node-js-es-modules/ import * as url from 'url' const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) -console.log('__dirname: ', __dirname) +// console.log('__dirname: ', __dirname) +const ROOT_DIR = `${__dirname}../../../` const IPFS_DIR = `${__dirname}../../../.ipfsdata/ipfs` class IpfsAdapter { @@ -37,13 +38,7 @@ class IpfsAdapter { // Encapsulate dependencies this.config = config this.fs = fs - // this.create = create - - // Choose the IPFS constructor based on the config settings. - // this.IPFS = IPFSembedded // default - // if (this.config.isProduction) { - // this.IPFS = IPFSexternal - // } + this.createLibp2p = createLibp2p // Properties of this class instance. this.isReady = false @@ -52,11 +47,15 @@ class IpfsAdapter { this.start = this.start.bind(this) this.createNode = this.createNode.bind(this) this.stop = this.stop.bind(this) + this.ensureBlocksDir = this.ensureBlocksDir.bind(this) } // Start an IPFS node. async start () { try { + // Ensure the directory structure exists that is needed by the IPFS node to store data. + this.ensureBlocksDir() + // Create an IPFS node const ipfs = await this.createNode() // console.log('ipfs: ', ipfs) @@ -96,7 +95,7 @@ class IpfsAdapter { const datastore = new FsDatastore(`${IPFS_DIR}/datastore`) // libp2p is the networking layer that underpins Helia - const libp2p = await createLibp2p({ + const libp2p = await this.createLibp2p({ datastore, addresses: { listen: [ @@ -125,8 +124,7 @@ class IpfsAdapter { '/ip4/137.184.13.92/tcp/4001/p2p/12D3KooWMbpo92kSGwWiN6QH7fvstMWiLZKcxmReq3Hhbpya2bq4', '/ip4/78.46.129.7/tcp/4001/p2p/12D3KooWJyc54njjeZGbLew4D8u1ghrmZTTPyh3QpBF7dxtd3zGY', '/ip4/5.161.72.148/tcp/4001/p2p/12D3KooWAVG5kn46P9mjKCLUSPesmmLeKf2a79qRt6u22hJaEARJ', - '/ip4/161.35.99.207/tcp/4001/p2p/12D3KooWDtj9cfj1SKuLbDNKvKRKSsGN8qivq9M8CYpLPDpcD5pu', - '/ip4/192.168.2.173/tcp/4001/p2p/12D3KooWAz2hbriyU9o1wHNU2nxqG8mMgAdWnXCSfWiv5kxSfW49' + '/ip4/161.35.99.207/tcp/4001/p2p/12D3KooWDtj9cfj1SKuLbDNKvKRKSsGN8qivq9M8CYpLPDpcD5pu' ] }) ], @@ -146,6 +144,8 @@ class IpfsAdapter { return helia } catch (err) { console.error('Error creating Helia node: ', err) + + throw err } } @@ -155,25 +155,23 @@ class IpfsAdapter { return true } - // Remove the '/blocks' directory that is used to store IPFS data. - // Dev Note: It's assumed this node is not pinning any data and that - // everything in this directory is transient. This folder will regularly - // fill up and prevent IPFS from starting. - // rmBlocksDir () { - // try { - // const dir = `${IPFS_DIR}/blocks` - // console.log(`Deleting ${dir} directory...`) - // - // this.fs.rmdirSync(dir, { recursive: true }) - // - // console.log(`${dir} directory is deleted!`) - // - // return true // Signal successful execution. - // } catch (err) { - // console.log('Error in rmBlocksDir()') - // throw err - // } - // } + // Ensure that the directories exist to store blocks from the IPFS network. + ensureBlocksDir () { + try { + !this.fs.existsSync(`${ROOT_DIR}.ipfsdata`) && this.fs.mkdirSync(`${ROOT_DIR}.ipfsdata`) + + !this.fs.existsSync(`${IPFS_DIR}`) && this.fs.mkdirSync(`${IPFS_DIR}`) + + !this.fs.existsSync(`${IPFS_DIR}/blockstore`) && this.fs.mkdirSync(`${IPFS_DIR}/blockstore`) + + !this.fs.existsSync(`${IPFS_DIR}/datastore`) && this.fs.mkdirSync(`${IPFS_DIR}/datastore`) + + return true + } catch (err) { + console.error('Error in adapters/ipfs.js/ensureBlocksDir(): ', err) + throw err + } + } } export default IpfsAdapter diff --git a/test/unit/adapters/ipfs.adapter.unit.js b/test/unit/adapters/ipfs.adapter.unit.js index a0d0aee..70d6b78 100644 --- a/test/unit/adapters/ipfs.adapter.unit.js +++ b/test/unit/adapters/ipfs.adapter.unit.js @@ -94,24 +94,55 @@ describe('#IPFS-adapter', () => { }) }) -// describe('#rmBlocksDir', () => { -// it('should delete the /blocks directory', () => { -// const result = uut.rmBlocksDir() -// -// assert.equal(result, true) -// }) -// -// it('should catch and throw an error', () => { -// try { -// // Force an error -// sandbox.stub(uut.fs, 'rmdirSync').throws(new Error('test error')) -// -// uut.rmBlocksDir() -// -// assert.fail('Unexpected code path') -// } catch (err) { -// assert.equal(err.message, 'test error') -// } -// }) -// }) + describe('#ensureBlocksDir', () => { + it('should create directory if it does not exist', () => { + // Force desired code path + sandbox.stub(uut.fs, 'existsSync').returns(false) + sandbox.stub(uut.fs, 'mkdirSync').returns(true) + + const result = uut.ensureBlocksDir() + + assert.equal(result, true) + }) + + it('should report and throw errors', () => { + // Force an error + sandbox.stub(uut.fs, 'existsSync').throws(new Error('test error')) + + try { + uut.ensureBlocksDir() + + assert.fail('Unexpected code path') + } catch (err) { + assert.include(err.message, 'test error') + } + }) + }) + + describe('#createNode', () => { + it('should report and throw errors', async () => { + // Force an error + sandbox.stub(uut, 'createLibp2p').rejects(new Error('test error')) + + try { + await uut.createNode() + + assert.fail('Unexpected code path') + } catch (err) { + assert.include(err.message, 'test error') + } + }) + + it('should create an IPFS node from Helia', async () => { + const result = await uut.createNode() + // console.log('result: ', result) + + // Assert the returned IPFS node has expected properties + assert.property(result, 'libp2p') + assert.property(result, 'blockstore') + + // Stop the IPFS node + await result.stop() + }) + }) }) From 56ba0aad0263ac1a0ce650558c21079d48630546 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Mon, 23 Oct 2023 20:28:17 -0700 Subject: [PATCH 04/12] Adding IPFS REST API endpoints --- .gitignore | 1 + src/adapters/ipfs/index.js | 128 ++++++++++++++++++ src/controllers/rest-api/index.js | 5 + src/controllers/rest-api/ipfs/controller.js | 99 ++++++++++++++ src/controllers/rest-api/ipfs/index.js | 69 ++++++++++ test/unit/adapters/ipfs-index.adapter.unit.js | 75 ++++++++++ 6 files changed, 377 insertions(+) create mode 100644 src/controllers/rest-api/ipfs/controller.js create mode 100644 src/controllers/rest-api/ipfs/index.js diff --git a/.gitignore b/.gitignore index d0dd9cc..2c1bf6c 100644 --- a/.gitignore +++ b/.gitignore @@ -66,5 +66,6 @@ orbitdb ipfsdata .ipfsdata data/ +run-dev.sh !README.md diff --git a/src/adapters/ipfs/index.js b/src/adapters/ipfs/index.js index be27bb7..fb5eba1 100644 --- a/src/adapters/ipfs/index.js +++ b/src/adapters/ipfs/index.js @@ -58,6 +58,134 @@ class IPFS { throw err } } + + // Get the status of this IPFS node. + // Create an object with different metrics about this IPFS node, then return + // the object. + getStatus () { + try { + const statusObj = { + ipfsId: this.ipfsCoordAdapter.ipfsCoord.thisNode.ipfsId, + multiAddrs: this.ipfsCoordAdapter.ipfsCoord.thisNode.ipfsMultiaddrs, + bchAddr: this.ipfsCoordAdapter.ipfsCoord.thisNode.bchAddr, + slpAddr: this.ipfsCoordAdapter.ipfsCoord.thisNode.slpAddr, + pubKey: this.ipfsCoordAdapter.ipfsCoord.thisNode.pubKey, + peers: this.ipfsCoordAdapter.ipfsCoord.thisNode.peerList.length, + relays: this.ipfsCoordAdapter.ipfsCoord.thisNode.relayData.length + } + + return statusObj + } catch (err) { + console.error('Error in ipfs-coord.js/getStatus()') + throw err + } + } + + // Get details on the other peers this node is connected to. + async getPeers (showAll) { + try { + const peerData = this.ipfsCoordAdapter.ipfsCoord.thisNode.peerData + console.log(`peerData: ${JSON.stringify(peerData, null, 2)}`) + + let ipfsPeers = + await this.ipfsCoordAdapter.ipfsCoord.adapters.ipfs.getPeers() + console.log('ipfsPeers: ', ipfsPeers) + + ipfsPeers = this._removeDuplicatePeers(ipfsPeers) + console.log('filtered ipfsPeers: ', ipfsPeers) + + const peerDataOut = [] + + // Loop through each IPFS peer and hydrate it with data from the peerData. + for (let i = 0; i < ipfsPeers.length; i++) { + const thisPeer = { + peer: ipfsPeers[i] + } + + // if (!showAll) { + // // Delete properties that don't contain good info. + // delete thisPeer.muxer + // delete thisPeer.latency + // delete thisPeer.streams + // } + + // Get the ipfs-coord peer data for this peer. + let thisPeerData = peerData.filter((x) => + x.from.includes(thisPeer.peer) + ) + thisPeerData = thisPeerData[0] + + // Skip if peerData for this IPFS peer could not be found. + // if (!thisPeerData) continue + + try { + // console.log('thisPeerData: ', thisPeerData) + + // Add data to the IPFS peer data. + thisPeer.name = thisPeerData.data.jsonLd.name + thisPeer.protocol = thisPeerData.data.jsonLd.protocol + thisPeer.version = thisPeerData.data.jsonLd.version + + if (showAll) { + // Add all the peer data. + thisPeer.peerData = thisPeerData + } + } catch (err) { + console.log( + `Error trying to hydrate peer ${thisPeer.peer}: ${err.message}` + ) + } + + peerDataOut.push(thisPeer) + } + + return peerDataOut + } catch (err) { + console.error('Error in getPeers(): ', err) + throw err + } + } + + // Expects an array of peers and returns an array of peers with duplicates + // removed. + // This function is used by getPeers() + _removeDuplicatePeers (arr) { + // https://stackoverflow.com/questions/2218999/how-to-remove-all-duplicates-from-an-array-of-objects + return arr.filter((v, i, a) => a.findIndex((t) => t === v) === i) + } + + // Get data about the known Circuit Relays. Hydrate with data from peers list. + getRelays () { + try { + const relayData = this.ipfsCoordAdapter.ipfsCoord.thisNode.relayData + const peerData = this.ipfsCoordAdapter.ipfsCoord.thisNode.peerData + // console.log(`relayData: ${JSON.stringify(relayData, null, 2)}`) + // console.log(`peerData: ${JSON.stringify(peerData, null, 2)}`) + + for (let i = 0; i < relayData.length; i++) { + const thisRelay = relayData[i] + + // Find the peer that corresponds to this relay. + const thisPeer = peerData.filter((x) => + x.from.includes(thisRelay.ipfsId) + ) + // console.log('thisPeer: ', thisPeer) + + // If the peer couldn't be found, skip. + if (!thisPeer.length) { + thisRelay.name = '' + continue + } + + thisRelay.name = thisPeer[0].data.jsonLd.name + } + + return relayData + } catch (err) { + console.error('Error in getRelays(): ', err) + throw err + } + } } export default IPFS diff --git a/src/controllers/rest-api/index.js b/src/controllers/rest-api/index.js index 5b5f916..63e18a6 100644 --- a/src/controllers/rest-api/index.js +++ b/src/controllers/rest-api/index.js @@ -11,6 +11,7 @@ import AuthRESTController from './auth/index.js' import UserRouter from './users/index.js' import ContactRESTController from './contact/index.js' import LogsRESTController from './logs/index.js' +import IpfsRESTController from './ipfs/index.js' class RESTControllers { constructor (localConfig = {}) { @@ -52,6 +53,10 @@ class RESTControllers { // Attach the REST API Controllers associated with the /logs route const logsRESTController = new LogsRESTController(dependencies) logsRESTController.attach(app) + + // Attach the REST API Controllers associated with the /ipfs route + const ipfsRESTController = new IpfsRESTController(dependencies) + ipfsRESTController.attach(app) } } diff --git a/src/controllers/rest-api/ipfs/controller.js b/src/controllers/rest-api/ipfs/controller.js new file mode 100644 index 0000000..5300f4a --- /dev/null +++ b/src/controllers/rest-api/ipfs/controller.js @@ -0,0 +1,99 @@ +/* + REST API Controller library for the /ipfs route +*/ + +import wlogger from '../../../adapters/wlogger.js' + +let _this + +class IpfsRESTControllerLib { + constructor (localConfig = {}) { + // Dependency Injection. + this.adapters = localConfig.adapters + if (!this.adapters) { + throw new Error( + 'Instance of Adapters library required when instantiating /ipfs REST Controller.' + ) + } + this.useCases = localConfig.useCases + if (!this.useCases) { + throw new Error( + 'Instance of Use Cases library required when instantiating /ipfs REST Controller.' + ) + } + + // Encapsulate dependencies + // this.UserModel = this.adapters.localdb.Users + // this.userUseCases = this.useCases.user + + _this = this + } + + /** + * @api {get} /ipfs Get status on IPFS infrastructure + * @apiPermission public + * @apiName GetIpfsStatus + * @apiGroup REST BCH + * + * @apiExample Example usage: + * curl -H "Content-Type: application/json" -X GET localhost:5001/ipfs + * + */ + async getStatus (ctx) { + try { + const status = await _this.adapters.ipfs.getStatus() + + ctx.body = { status } + } catch (err) { + wlogger.error('Error in ipfs/controller.js/getStatus(): ') + // ctx.throw(422, err.message) + _this.handleError(ctx, err) + } + } + + // Return information on IPFS peers this node is connected to. + async getPeers (ctx) { + try { + const showAll = ctx.request.body.showAll + + const peers = await _this.adapters.ipfs.getPeers(showAll) + + ctx.body = { peers } + } catch (err) { + wlogger.error('Error in ipfs/controller.js/getPeers(): ') + // ctx.throw(422, err.message) + _this.handleError(ctx, err) + } + } + + // Get data about the known Circuit Relays. Hydrate with data from peers list. + async getRelays (ctx) { + try { + const relays = await _this.adapters.ipfs.getRelays() + + ctx.body = { relays } + } catch (err) { + wlogger.error('Error in ipfs/controller.js/getRelays(): ') + // ctx.throw(422, err.message) + _this.handleError(ctx, err) + } + } + + // DRY error handler + handleError (ctx, err) { + // If an HTTP status is specified by the buisiness logic, use that. + if (err.status) { + if (err.message) { + ctx.throw(err.status, err.message) + } else { + ctx.throw(err.status) + } + } else { + // By default use a 422 error if the HTTP status is not specified. + ctx.throw(422, err.message) + } + } +} + +// module.exports = IpfsRESTControllerLib +export default IpfsRESTControllerLib diff --git a/src/controllers/rest-api/ipfs/index.js b/src/controllers/rest-api/ipfs/index.js new file mode 100644 index 0000000..c3b65e4 --- /dev/null +++ b/src/controllers/rest-api/ipfs/index.js @@ -0,0 +1,69 @@ +/* + REST API library for the /ipfs route. +*/ + +// Public npm libraries. +import Router from 'koa-router' + +// Local libraries. +import IPFSRESTControllerLib from './controller.js' +import Validators from '../middleware/validators.js' + +// let _this + +class BchRouter { + constructor (localConfig = {}) { + // Dependency Injection. + this.adapters = localConfig.adapters + if (!this.adapters) { + throw new Error( + 'Instance of Adapters library required when instantiating IPFS REST Controller.' + ) + } + this.useCases = localConfig.useCases + if (!this.useCases) { + throw new Error( + 'Instance of Use Cases library required when instantiating IPFS REST Controller.' + ) + } + + const dependencies = { + adapters: this.adapters, + useCases: this.useCases + } + + // Encapsulate dependencies. + this.ipfsRESTController = new IPFSRESTControllerLib(dependencies) + this.validators = new Validators() + + // Instantiate the router and set the base route. + const baseUrl = '/ipfs' + this.router = new Router({ prefix: baseUrl }) + + // _this = this + } + + attach (app) { + if (!app) { + throw new Error( + 'Must pass app object when attaching REST API controllers.' + ) + } + + // Define the routes and attach the controller. + this.router.get('/', this.ipfsRESTController.getStatus) + this.router.post('/peers', this.ipfsRESTController.getPeers) + this.router.post('/relays', this.ipfsRESTController.getRelays) + + // Attach the Controller routes to the Koa app. + app.use(this.router.routes()) + app.use(this.router.allowedMethods()) + } + + // async getStatus (ctx, next) { + // await _this.ipfsRESTController.getStatus(ctx, next) + // } +} + +// module.exports = BchRouter +export default BchRouter diff --git a/test/unit/adapters/ipfs-index.adapter.unit.js b/test/unit/adapters/ipfs-index.adapter.unit.js index f3cb8ed..2d2f8b0 100644 --- a/test/unit/adapters/ipfs-index.adapter.unit.js +++ b/test/unit/adapters/ipfs-index.adapter.unit.js @@ -66,4 +66,79 @@ describe('#IPFS-adapter-index', () => { } }) }) + + describe('#getStatus', () => { + it('should return an object with node metrics', () => { + // Force uut to have the needed properties + uut.ipfsCoordAdapter = { + ipfsCoord: { + thisNode: { + ipfsId: 'fake-id', + ipfsMultiaddrs: [], + bchAddr: 'fake-bch-addr', + slpAddr: 'fake-slp-addr', + pubKey: 'fake-pubkey', + peerList: [], + relayData: [] + } + } + } + + const result = uut.getStatus() + // console.log('result: ', result) + + assert.property(result, 'ipfsId') + assert.property(result, 'multiAddrs') + assert.property(result, 'bchAddr') + assert.property(result, 'slpAddr') + assert.property(result, 'pubKey') + assert.property(result, 'peers') + assert.property(result, 'relays') + }) + + it('should catch, report, and throw errors', () => { + try { + uut.getStatus() + + assert.fail('Unexpected code path') + } catch (err) { + // console.log('err.message: ', err.message) + assert.include(err.message, 'Cannot read properties') + } + }) + }) + + describe('#_removeDuplicatePeers', () => { + it('should return the same array when there are no duplicates', () => { + const inArray = [ + '12D3KooWPpBXhhAeoCZCGuQ3KR4xwHzzvtP57f6zLmo8P7ZFBJFE', + '12D3KooWRBhwfeP2Y9CDkFRBAZ1pmxUadH36TKuk3KtKm5XXP8mA', + '12D3KooWGsgHWyDLKuV4ZSfRJfsxQJj77rxx3i8Px3qXKHsLN7a2', + '12D3KooWJyc54njjeZGbLew4D8u1ghrmZTTPyh3QpBF7dxtd3zGY', + '12D3KooWDtj9cfj1SKuLbDNKvKRKSsGN8qivq9M8CYpLPDpcD5pu' + ] + + const result = uut._removeDuplicatePeers(inArray) + // console.log('result: ', result) + + assert.equal(result.length, inArray.length) + }) + + it('should remove duplicates from an array', () => { + const inArray = [ + '12D3KooWPpBXhhAeoCZCGuQ3KR4xwHzzvtP57f6zLmo8P7ZFBJFE', + '12D3KooWRBhwfeP2Y9CDkFRBAZ1pmxUadH36TKuk3KtKm5XXP8mA', + '12D3KooWGsgHWyDLKuV4ZSfRJfsxQJj77rxx3i8Px3qXKHsLN7a2', + '12D3KooWJyc54njjeZGbLew4D8u1ghrmZTTPyh3QpBF7dxtd3zGY', + '12D3KooWDtj9cfj1SKuLbDNKvKRKSsGN8qivq9M8CYpLPDpcD5pu', + '12D3KooWPpBXhhAeoCZCGuQ3KR4xwHzzvtP57f6zLmo8P7ZFBJFE', + '12D3KooWRBhwfeP2Y9CDkFRBAZ1pmxUadH36TKuk3KtKm5XXP8mA' + ] + + const result = uut._removeDuplicatePeers(inArray) + // console.log('result: ', result) + + assert.equal(result.length, inArray.length - 2) + }) + }) }) From d47b8797d4669e09dbce503db95255c6625bc335 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 25 Oct 2023 22:13:35 -0700 Subject: [PATCH 05/12] fix(libp2p): Updated to v0.46.16 --- package-lock.json | 566 +++++++++++++++++++------------------ package.json | 2 +- src/adapters/ipfs/index.js | 3 +- src/adapters/ipfs/ipfs.js | 1 + 4 files changed, 288 insertions(+), 284 deletions(-) diff --git a/package-lock.json b/package-lock.json index 13afa3c..288add2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,7 @@ "koa-router": "10.0.0", "koa-static": "5.0.0", "koa2-ratelimit": "0.9.1", - "libp2p": "0.46.14", + "libp2p": "0.46.16", "line-reader": "0.4.0", "minimal-slp-wallet": "5.11.1", "mongoose": "5.13.14", @@ -54,7 +54,7 @@ "chai": "4.3.0", "coveralls": "3.1.0", "husky": "4.3.8", - "lodash.clonedeep": "^4.5.0", + "lodash.clonedeep": "4.5.0", "mocha": "10.0.0", "semantic-release": "19.0.3", "sinon": "9.2.4", @@ -66,7 +66,8 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "bch-encrypt-lib": "2.0.0", + "@chris.troutner/retry-queue": "1.0.8", + "bch-encrypt-lib": "2.1.1", "uuid": "9.0.0" }, "devDependencies": { @@ -1079,11 +1080,11 @@ } }, "node_modules/@libp2p/crypto": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.5.tgz", - "integrity": "sha512-m6Rn7i9q3SHCzMUBkEwZgAKS4evpGQ4SEx/YD96pM0ZoPtU5PFO0psfrerraanxFBh8wUX4vkCtKfyTPH7F+bQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.6.tgz", + "integrity": "sha512-SK2nOsXsM/9Urtipw1C+KJ2e2PU+Z0AxBWiQti9oC+2mFXOy7erry2n2wH3aCTpajQX6D+Erm39yaS55w4AVLw==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@noble/curves": "^1.1.0", "@noble/hashes": "^1.3.1", "multiformats": "^12.0.1", @@ -1111,9 +1112,9 @@ } }, "node_modules/@libp2p/interface": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.3.tgz", - "integrity": "sha512-C1O7Xqd2TGVWrIOEDx6kGJSk4YOysWGmYG5Oh3chnsCY0wjUSsLDpl9+wKrdiM/lJbAlHlV65ZOvSkIQ9cWPBQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.4.tgz", + "integrity": "sha512-Pk8mzit/w7PbTh28n77RDLTU1CQBBzLygiNC07MvcEjaIwqXdNPN3Vuzr/5qiF6aDsbM9fA1W5dWoCif9xBdxg==", "dependencies": { "@multiformats/multiaddr": "^12.1.5", "abortable-iterator": "^5.0.1", @@ -1142,12 +1143,12 @@ } }, "node_modules/@libp2p/interface-internal": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-0.1.6.tgz", - "integrity": "sha512-n4Sv9tSr+2QRN7tHShmUJILQRoIPRPPkl0Zr8mVOW91XcdN2CfLYrzqeM1Yvl/iZx98bNMZXJveZV9OVuBynuQ==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-0.1.7.tgz", + "integrity": "sha512-YAZmGcegFucATM6SYRlk2L8uYYsPf6Hf0r1NFz3I+Xv4M5+2L271U1WulpFFegzMzS04FZ7swvWTZODQmMl3lA==", "dependencies": { - "@libp2p/interface": "^0.1.3", - "@libp2p/peer-collections": "^4.0.5", + "@libp2p/interface": "^0.1.4", + "@libp2p/peer-collections": "^4.0.6", "@multiformats/multiaddr": "^12.1.5", "uint8arraylist": "^2.4.3" } @@ -1681,14 +1682,14 @@ } }, "node_modules/@libp2p/keychain": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.5.tgz", - "integrity": "sha512-D8Tisc5yi2+ykM4Yw4Qsan/hGITF+jfHMC6Nti1upOOLAhGFpm92if/hkb2rZH3Q1iXs7l3fIhgOs9VayNplhA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.6.tgz", + "integrity": "sha512-OuuBqU/vn+UNQQufGcjoZsafiJTSPxtCxotgz7educKSyRoGoHQNIlLNylPkspv4JT7CnP/iopQjWnIPYCX7RA==", "dependencies": { - "@libp2p/crypto": "^2.0.5", - "@libp2p/interface": "^0.1.3", - "@libp2p/logger": "^3.0.3", - "@libp2p/peer-id": "^3.0.3", + "@libp2p/crypto": "^2.0.6", + "@libp2p/interface": "^0.1.4", + "@libp2p/logger": "^3.0.4", + "@libp2p/peer-id": "^3.0.4", "interface-datastore": "^8.2.0", "merge-options": "^3.0.4", "sanitize-filename": "^1.6.3", @@ -1696,11 +1697,11 @@ } }, "node_modules/@libp2p/keychain/node_modules/@libp2p/logger": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", - "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.4.tgz", + "integrity": "sha512-MF42c7SOJIx5YmHhIsFaSYfaC266YYmMbAJHjjH8Zl5unFsqW82M+Xr7sGVj9/WXrWAd37ts8xJaQrkIXc3OZQ==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", @@ -1708,11 +1709,11 @@ } }, "node_modules/@libp2p/keychain/node_modules/@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } @@ -1751,9 +1752,9 @@ "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" }, "node_modules/@libp2p/keychain/node_modules/multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2010,12 +2011,12 @@ } }, "node_modules/@libp2p/multistream-select": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.3.tgz", - "integrity": "sha512-6iBYf/TAqi0oqusZ3LJ3DC0odABRukuLN+4Xh7tDmHCJX0tCjSSRibRYsiFcBNQMpcI0btRkQ0dZ0KqKhQ2kUw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.4.tgz", + "integrity": "sha512-U/tAnCOZw2CGTtob3/16WoPaRrK3fimDhrqlu87fObEuu0OhyCkBUxRAciSEQC/dnAKk/9CuPjXaCsLCMVFSOg==", "dependencies": { - "@libp2p/interface": "^0.1.3", - "@libp2p/logger": "^3.0.3", + "@libp2p/interface": "^0.1.4", + "@libp2p/logger": "^3.0.4", "abortable-iterator": "^5.0.1", "it-first": "^3.0.1", "it-handshake": "^4.1.3", @@ -2031,11 +2032,11 @@ } }, "node_modules/@libp2p/multistream-select/node_modules/@libp2p/logger": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", - "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.4.tgz", + "integrity": "sha512-MF42c7SOJIx5YmHhIsFaSYfaC266YYmMbAJHjjH8Zl5unFsqW82M+Xr7sGVj9/WXrWAd37ts8xJaQrkIXc3OZQ==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", @@ -2090,9 +2091,9 @@ } }, "node_modules/@libp2p/multistream-select/node_modules/multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2124,28 +2125,28 @@ } }, "node_modules/@libp2p/peer-collections": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.5.tgz", - "integrity": "sha512-GdbVufdDLhYyHbDBO2juK54Nm+Cdu01ws0N0hNB0yVLM7GIP075RLgSO/0vTpLoPS1cEufKPsYfl4Bb5nKHaRg==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.6.tgz", + "integrity": "sha512-hbB3c6yiXfwiQIeMlfuKedrGWWgFplFmShbjlIqr9eCLJPUunImTjV6MAOkNcn+B0vX08jM060dmmMyk9F5V9g==", "dependencies": { - "@libp2p/interface": "^0.1.3", - "@libp2p/peer-id": "^3.0.3" + "@libp2p/interface": "^0.1.4", + "@libp2p/peer-id": "^3.0.4" } }, "node_modules/@libp2p/peer-collections/node_modules/@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } }, "node_modules/@libp2p/peer-collections/node_modules/multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2175,13 +2176,13 @@ } }, "node_modules/@libp2p/peer-id-factory": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.5.tgz", - "integrity": "sha512-i7h/u3zDvcj8+GR+kpazmjikr3A6Rr5flVZmrTZfarkq5qAmD1bWd0vbgPrtKEgbhT+1S8NL3jR05/n7cbF7Tw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.6.tgz", + "integrity": "sha512-MeudUDL7EZ5LQfe5sJk1dF37nIjycZc/k+IFFtZmSEbNf2fbArmgG/MmRl3WaTWLECYitD+O+Wgzk/XzPMLRzg==", "dependencies": { - "@libp2p/crypto": "^2.0.5", - "@libp2p/interface": "^0.1.3", - "@libp2p/peer-id": "^3.0.3", + "@libp2p/crypto": "^2.0.6", + "@libp2p/interface": "^0.1.4", + "@libp2p/peer-id": "^3.0.4", "multiformats": "^12.0.1", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", @@ -2189,19 +2190,19 @@ } }, "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } }, "node_modules/@libp2p/peer-id-factory/node_modules/multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2216,14 +2217,14 @@ } }, "node_modules/@libp2p/peer-record": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.6.tgz", - "integrity": "sha512-SNFafmUrnEOB2zplYJVjheN5UVFbi2UBdrYfIwi4SEaPA4ZFprnWBeQcVaLUSq7t2JkBGZUmWwtj4teVIxr60g==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.7.tgz", + "integrity": "sha512-iqBct2euQ2IJNGTY3SiXk1TLDvWObKfsxV3tS1wyAuMr6QeN5w3hg8aY/lyYA8BTiK7R8ClBO/tkpWbCIDEciw==", "dependencies": { - "@libp2p/crypto": "^2.0.5", - "@libp2p/interface": "^0.1.3", - "@libp2p/peer-id": "^3.0.3", - "@libp2p/utils": "^4.0.4", + "@libp2p/crypto": "^2.0.6", + "@libp2p/interface": "^0.1.4", + "@libp2p/peer-id": "^3.0.4", + "@libp2p/utils": "^4.0.5", "@multiformats/multiaddr": "^12.1.5", "protons-runtime": "^5.0.0", "uint8-varint": "^2.0.0", @@ -2232,11 +2233,11 @@ } }, "node_modules/@libp2p/peer-record/node_modules/@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } @@ -2260,9 +2261,9 @@ } }, "node_modules/@libp2p/peer-record/node_modules/multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2277,16 +2278,16 @@ } }, "node_modules/@libp2p/peer-store": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.6.tgz", - "integrity": "sha512-aBAvRKKg2Hsf0/bGrHEcxr6cGL8RDJhBx2xBhNuu7sROMd0isPrKNxfnrQKadYMxlQUnGzIEY3qFVQJJPFHZvA==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.7.tgz", + "integrity": "sha512-IC+78SIjYozQWnYtTCh1Q1BHyYSTHTmV2zG0po72K0qXrEI2K5FflSoM1u8Pn0UnrcQNekMUUcTrtxg5xU09eA==", "dependencies": { - "@libp2p/interface": "^0.1.3", - "@libp2p/logger": "^3.0.3", - "@libp2p/peer-collections": "^4.0.5", - "@libp2p/peer-id": "^3.0.3", - "@libp2p/peer-id-factory": "^3.0.5", - "@libp2p/peer-record": "^6.0.6", + "@libp2p/interface": "^0.1.4", + "@libp2p/logger": "^3.0.4", + "@libp2p/peer-collections": "^4.0.6", + "@libp2p/peer-id": "^3.0.4", + "@libp2p/peer-id-factory": "^3.0.6", + "@libp2p/peer-record": "^6.0.7", "@multiformats/multiaddr": "^12.1.5", "interface-datastore": "^8.2.0", "it-all": "^3.0.2", @@ -2298,11 +2299,11 @@ } }, "node_modules/@libp2p/peer-store/node_modules/@libp2p/logger": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", - "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.4.tgz", + "integrity": "sha512-MF42c7SOJIx5YmHhIsFaSYfaC266YYmMbAJHjjH8Zl5unFsqW82M+Xr7sGVj9/WXrWAd37ts8xJaQrkIXc3OZQ==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", @@ -2310,11 +2311,11 @@ } }, "node_modules/@libp2p/peer-store/node_modules/@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } @@ -2358,9 +2359,9 @@ "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" }, "node_modules/@libp2p/peer-store/node_modules/multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2626,13 +2627,13 @@ } }, "node_modules/@libp2p/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-V++nWaCEO5QBk800SJ3kzzVn62cyBLt7fzVPDvVnxPyfLBn9prfShYb7XmvuZrnGSRCaUvD3b+q7CHGUEcdP2g==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-4.0.5.tgz", + "integrity": "sha512-ZlgOGZ1+FX/yhjmtvw0thAz9oFWx4w/ykHKRTt3C8iv0/OWifOOZlOzUnziHBkfcx198lKZms/mN9cNdMKrPVw==", "dependencies": { "@chainsafe/is-ip": "^2.0.2", - "@libp2p/interface": "^0.1.3", - "@libp2p/logger": "^3.0.3", + "@libp2p/interface": "^0.1.4", + "@libp2p/logger": "^3.0.4", "@multiformats/multiaddr": "^12.1.5", "@multiformats/multiaddr-matcher": "^1.0.1", "is-loopback-addr": "^2.0.1", @@ -2642,11 +2643,11 @@ } }, "node_modules/@libp2p/utils/node_modules/@libp2p/logger": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", - "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.4.tgz", + "integrity": "sha512-MF42c7SOJIx5YmHhIsFaSYfaC266YYmMbAJHjjH8Zl5unFsqW82M+Xr7sGVj9/WXrWAd37ts8xJaQrkIXc3OZQ==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", @@ -2696,9 +2697,9 @@ } }, "node_modules/@libp2p/utils/node_modules/multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -11910,23 +11911,23 @@ } }, "node_modules/libp2p": { - "version": "0.46.14", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.14.tgz", - "integrity": "sha512-7HC1VdVqeSVRZ8PdtGHwpCyGGz2Xrd5TeLcOspqdBXL6EOXeFY0n0P6qaC83IVzVP4SWULCbnzjstACw+SGluw==", + "version": "0.46.16", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.16.tgz", + "integrity": "sha512-auhVn4R7VAp3M7eAyJJ59eLjhiKvGzxdIiAYgZYU5yv0q6NqpLH9U0yzRTuTWZOwIVmJRbcuAJb7oByCgR2deg==", "dependencies": { "@achingbrain/nat-port-mapper": "^1.0.9", - "@libp2p/crypto": "^2.0.5", - "@libp2p/interface": "^0.1.3", - "@libp2p/interface-internal": "^0.1.6", - "@libp2p/keychain": "^3.0.5", - "@libp2p/logger": "^3.0.3", - "@libp2p/multistream-select": "^4.0.3", - "@libp2p/peer-collections": "^4.0.5", - "@libp2p/peer-id": "^3.0.3", - "@libp2p/peer-id-factory": "^3.0.5", - "@libp2p/peer-record": "^6.0.6", - "@libp2p/peer-store": "^9.0.6", - "@libp2p/utils": "^4.0.4", + "@libp2p/crypto": "^2.0.6", + "@libp2p/interface": "^0.1.4", + "@libp2p/interface-internal": "^0.1.7", + "@libp2p/keychain": "^3.0.6", + "@libp2p/logger": "^3.0.4", + "@libp2p/multistream-select": "^4.0.4", + "@libp2p/peer-collections": "^4.0.6", + "@libp2p/peer-id": "^3.0.4", + "@libp2p/peer-id-factory": "^3.0.6", + "@libp2p/peer-record": "^6.0.7", + "@libp2p/peer-store": "^9.0.7", + "@libp2p/utils": "^4.0.5", "@multiformats/mafmt": "^12.1.2", "@multiformats/multiaddr": "^12.1.5", "@multiformats/multiaddr-matcher": "^1.0.0", @@ -11963,11 +11964,11 @@ } }, "node_modules/libp2p/node_modules/@libp2p/logger": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", - "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.4.tgz", + "integrity": "sha512-MF42c7SOJIx5YmHhIsFaSYfaC266YYmMbAJHjjH8Zl5unFsqW82M+Xr7sGVj9/WXrWAd37ts8xJaQrkIXc3OZQ==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", @@ -11975,11 +11976,11 @@ } }, "node_modules/libp2p/node_modules/@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "dependencies": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } @@ -12069,9 +12070,9 @@ } }, "node_modules/libp2p/node_modules/multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==", + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -21071,11 +21072,11 @@ } }, "@libp2p/crypto": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.5.tgz", - "integrity": "sha512-m6Rn7i9q3SHCzMUBkEwZgAKS4evpGQ4SEx/YD96pM0ZoPtU5PFO0psfrerraanxFBh8wUX4vkCtKfyTPH7F+bQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-2.0.6.tgz", + "integrity": "sha512-SK2nOsXsM/9Urtipw1C+KJ2e2PU+Z0AxBWiQti9oC+2mFXOy7erry2n2wH3aCTpajQX6D+Erm39yaS55w4AVLw==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@noble/curves": "^1.1.0", "@noble/hashes": "^1.3.1", "multiformats": "^12.0.1", @@ -21101,9 +21102,9 @@ } }, "@libp2p/interface": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.3.tgz", - "integrity": "sha512-C1O7Xqd2TGVWrIOEDx6kGJSk4YOysWGmYG5Oh3chnsCY0wjUSsLDpl9+wKrdiM/lJbAlHlV65ZOvSkIQ9cWPBQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-0.1.4.tgz", + "integrity": "sha512-Pk8mzit/w7PbTh28n77RDLTU1CQBBzLygiNC07MvcEjaIwqXdNPN3Vuzr/5qiF6aDsbM9fA1W5dWoCif9xBdxg==", "requires": { "@multiformats/multiaddr": "^12.1.5", "abortable-iterator": "^5.0.1", @@ -21167,12 +21168,12 @@ } }, "@libp2p/interface-internal": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-0.1.6.tgz", - "integrity": "sha512-n4Sv9tSr+2QRN7tHShmUJILQRoIPRPPkl0Zr8mVOW91XcdN2CfLYrzqeM1Yvl/iZx98bNMZXJveZV9OVuBynuQ==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-0.1.7.tgz", + "integrity": "sha512-YAZmGcegFucATM6SYRlk2L8uYYsPf6Hf0r1NFz3I+Xv4M5+2L271U1WulpFFegzMzS04FZ7swvWTZODQmMl3lA==", "requires": { - "@libp2p/interface": "^0.1.3", - "@libp2p/peer-collections": "^4.0.5", + "@libp2p/interface": "^0.1.4", + "@libp2p/peer-collections": "^4.0.6", "@multiformats/multiaddr": "^12.1.5", "uint8arraylist": "^2.4.3" }, @@ -21541,14 +21542,14 @@ } }, "@libp2p/keychain": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.5.tgz", - "integrity": "sha512-D8Tisc5yi2+ykM4Yw4Qsan/hGITF+jfHMC6Nti1upOOLAhGFpm92if/hkb2rZH3Q1iXs7l3fIhgOs9VayNplhA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-3.0.6.tgz", + "integrity": "sha512-OuuBqU/vn+UNQQufGcjoZsafiJTSPxtCxotgz7educKSyRoGoHQNIlLNylPkspv4JT7CnP/iopQjWnIPYCX7RA==", "requires": { - "@libp2p/crypto": "^2.0.5", - "@libp2p/interface": "^0.1.3", - "@libp2p/logger": "^3.0.3", - "@libp2p/peer-id": "^3.0.3", + "@libp2p/crypto": "^2.0.6", + "@libp2p/interface": "^0.1.4", + "@libp2p/logger": "^3.0.4", + "@libp2p/peer-id": "^3.0.4", "interface-datastore": "^8.2.0", "merge-options": "^3.0.4", "sanitize-filename": "^1.6.3", @@ -21556,11 +21557,11 @@ }, "dependencies": { "@libp2p/logger": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", - "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.4.tgz", + "integrity": "sha512-MF42c7SOJIx5YmHhIsFaSYfaC266YYmMbAJHjjH8Zl5unFsqW82M+Xr7sGVj9/WXrWAd37ts8xJaQrkIXc3OZQ==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", @@ -21568,11 +21569,11 @@ } }, "@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } @@ -21607,9 +21608,9 @@ "integrity": "sha512-SI2co5IAxAybBc9egRM2bXvHOa1RPh5SQQkO6di6t/aX92RbtzP4t8raB0l3GTzQmJADaBbzz8Tfa1QLgfMdGQ==" }, "multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" }, "nanoid": { "version": "4.0.2", @@ -21808,12 +21809,12 @@ } }, "@libp2p/multistream-select": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.3.tgz", - "integrity": "sha512-6iBYf/TAqi0oqusZ3LJ3DC0odABRukuLN+4Xh7tDmHCJX0tCjSSRibRYsiFcBNQMpcI0btRkQ0dZ0KqKhQ2kUw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-4.0.4.tgz", + "integrity": "sha512-U/tAnCOZw2CGTtob3/16WoPaRrK3fimDhrqlu87fObEuu0OhyCkBUxRAciSEQC/dnAKk/9CuPjXaCsLCMVFSOg==", "requires": { - "@libp2p/interface": "^0.1.3", - "@libp2p/logger": "^3.0.3", + "@libp2p/interface": "^0.1.4", + "@libp2p/logger": "^3.0.4", "abortable-iterator": "^5.0.1", "it-first": "^3.0.1", "it-handshake": "^4.1.3", @@ -21829,11 +21830,11 @@ }, "dependencies": { "@libp2p/logger": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", - "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.4.tgz", + "integrity": "sha512-MF42c7SOJIx5YmHhIsFaSYfaC266YYmMbAJHjjH8Zl5unFsqW82M+Xr7sGVj9/WXrWAd37ts8xJaQrkIXc3OZQ==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", @@ -21880,9 +21881,9 @@ "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" }, "multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" }, "nanoid": { "version": "4.0.2", @@ -21900,28 +21901,28 @@ } }, "@libp2p/peer-collections": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.5.tgz", - "integrity": "sha512-GdbVufdDLhYyHbDBO2juK54Nm+Cdu01ws0N0hNB0yVLM7GIP075RLgSO/0vTpLoPS1cEufKPsYfl4Bb5nKHaRg==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-4.0.6.tgz", + "integrity": "sha512-hbB3c6yiXfwiQIeMlfuKedrGWWgFplFmShbjlIqr9eCLJPUunImTjV6MAOkNcn+B0vX08jM060dmmMyk9F5V9g==", "requires": { - "@libp2p/interface": "^0.1.3", - "@libp2p/peer-id": "^3.0.3" + "@libp2p/interface": "^0.1.4", + "@libp2p/peer-id": "^3.0.4" }, "dependencies": { "@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } }, "multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" }, "uint8arrays": { "version": "4.0.6", @@ -21945,13 +21946,13 @@ } }, "@libp2p/peer-id-factory": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.5.tgz", - "integrity": "sha512-i7h/u3zDvcj8+GR+kpazmjikr3A6Rr5flVZmrTZfarkq5qAmD1bWd0vbgPrtKEgbhT+1S8NL3jR05/n7cbF7Tw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-3.0.6.tgz", + "integrity": "sha512-MeudUDL7EZ5LQfe5sJk1dF37nIjycZc/k+IFFtZmSEbNf2fbArmgG/MmRl3WaTWLECYitD+O+Wgzk/XzPMLRzg==", "requires": { - "@libp2p/crypto": "^2.0.5", - "@libp2p/interface": "^0.1.3", - "@libp2p/peer-id": "^3.0.3", + "@libp2p/crypto": "^2.0.6", + "@libp2p/interface": "^0.1.4", + "@libp2p/peer-id": "^3.0.4", "multiformats": "^12.0.1", "protons-runtime": "^5.0.0", "uint8arraylist": "^2.4.3", @@ -21959,19 +21960,19 @@ }, "dependencies": { "@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } }, "multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" }, "uint8arrays": { "version": "4.0.6", @@ -21984,14 +21985,14 @@ } }, "@libp2p/peer-record": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.6.tgz", - "integrity": "sha512-SNFafmUrnEOB2zplYJVjheN5UVFbi2UBdrYfIwi4SEaPA4ZFprnWBeQcVaLUSq7t2JkBGZUmWwtj4teVIxr60g==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-6.0.7.tgz", + "integrity": "sha512-iqBct2euQ2IJNGTY3SiXk1TLDvWObKfsxV3tS1wyAuMr6QeN5w3hg8aY/lyYA8BTiK7R8ClBO/tkpWbCIDEciw==", "requires": { - "@libp2p/crypto": "^2.0.5", - "@libp2p/interface": "^0.1.3", - "@libp2p/peer-id": "^3.0.3", - "@libp2p/utils": "^4.0.4", + "@libp2p/crypto": "^2.0.6", + "@libp2p/interface": "^0.1.4", + "@libp2p/peer-id": "^3.0.4", + "@libp2p/utils": "^4.0.5", "@multiformats/multiaddr": "^12.1.5", "protons-runtime": "^5.0.0", "uint8-varint": "^2.0.0", @@ -22000,11 +22001,11 @@ }, "dependencies": { "@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } @@ -22024,9 +22025,9 @@ } }, "multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" }, "uint8arrays": { "version": "4.0.6", @@ -22039,16 +22040,16 @@ } }, "@libp2p/peer-store": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.6.tgz", - "integrity": "sha512-aBAvRKKg2Hsf0/bGrHEcxr6cGL8RDJhBx2xBhNuu7sROMd0isPrKNxfnrQKadYMxlQUnGzIEY3qFVQJJPFHZvA==", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-9.0.7.tgz", + "integrity": "sha512-IC+78SIjYozQWnYtTCh1Q1BHyYSTHTmV2zG0po72K0qXrEI2K5FflSoM1u8Pn0UnrcQNekMUUcTrtxg5xU09eA==", "requires": { - "@libp2p/interface": "^0.1.3", - "@libp2p/logger": "^3.0.3", - "@libp2p/peer-collections": "^4.0.5", - "@libp2p/peer-id": "^3.0.3", - "@libp2p/peer-id-factory": "^3.0.5", - "@libp2p/peer-record": "^6.0.6", + "@libp2p/interface": "^0.1.4", + "@libp2p/logger": "^3.0.4", + "@libp2p/peer-collections": "^4.0.6", + "@libp2p/peer-id": "^3.0.4", + "@libp2p/peer-id-factory": "^3.0.6", + "@libp2p/peer-record": "^6.0.7", "@multiformats/multiaddr": "^12.1.5", "interface-datastore": "^8.2.0", "it-all": "^3.0.2", @@ -22060,11 +22061,11 @@ }, "dependencies": { "@libp2p/logger": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", - "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.4.tgz", + "integrity": "sha512-MF42c7SOJIx5YmHhIsFaSYfaC266YYmMbAJHjjH8Zl5unFsqW82M+Xr7sGVj9/WXrWAd37ts8xJaQrkIXc3OZQ==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", @@ -22072,11 +22073,11 @@ } }, "@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } @@ -22116,9 +22117,9 @@ "integrity": "sha512-LwEVD1d0b1O5mDwumnZk+80jSBn5sXDxQ41xiD6j6l2lRiWH6lBLdxXx1C6mlKrXQwRHzUQagOZUmqttDUwb0A==" }, "multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" }, "nanoid": { "version": "4.0.2", @@ -22322,13 +22323,13 @@ } }, "@libp2p/utils": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-4.0.4.tgz", - "integrity": "sha512-V++nWaCEO5QBk800SJ3kzzVn62cyBLt7fzVPDvVnxPyfLBn9prfShYb7XmvuZrnGSRCaUvD3b+q7CHGUEcdP2g==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-4.0.5.tgz", + "integrity": "sha512-ZlgOGZ1+FX/yhjmtvw0thAz9oFWx4w/ykHKRTt3C8iv0/OWifOOZlOzUnziHBkfcx198lKZms/mN9cNdMKrPVw==", "requires": { "@chainsafe/is-ip": "^2.0.2", - "@libp2p/interface": "^0.1.3", - "@libp2p/logger": "^3.0.3", + "@libp2p/interface": "^0.1.4", + "@libp2p/logger": "^3.0.4", "@multiformats/multiaddr": "^12.1.5", "@multiformats/multiaddr-matcher": "^1.0.1", "is-loopback-addr": "^2.0.1", @@ -22338,11 +22339,11 @@ }, "dependencies": { "@libp2p/logger": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", - "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.4.tgz", + "integrity": "sha512-MF42c7SOJIx5YmHhIsFaSYfaC266YYmMbAJHjjH8Zl5unFsqW82M+Xr7sGVj9/WXrWAd37ts8xJaQrkIXc3OZQ==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", @@ -22384,9 +22385,9 @@ "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" }, "multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" }, "nanoid": { "version": "4.0.2", @@ -27486,8 +27487,9 @@ "helia-coord": { "version": "file:../helia-coord", "requires": { + "@chris.troutner/retry-queue": "1.0.8", "@istanbuljs/esm-loader-hook": "0.2.0", - "bch-encrypt-lib": "2.0.0", + "bch-encrypt-lib": "2.1.1", "chai": "4.3.6", "cross-env": "7.0.3", "lodash.clonedeep": "4.5.0", @@ -29475,23 +29477,23 @@ } }, "libp2p": { - "version": "0.46.14", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.14.tgz", - "integrity": "sha512-7HC1VdVqeSVRZ8PdtGHwpCyGGz2Xrd5TeLcOspqdBXL6EOXeFY0n0P6qaC83IVzVP4SWULCbnzjstACw+SGluw==", + "version": "0.46.16", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.46.16.tgz", + "integrity": "sha512-auhVn4R7VAp3M7eAyJJ59eLjhiKvGzxdIiAYgZYU5yv0q6NqpLH9U0yzRTuTWZOwIVmJRbcuAJb7oByCgR2deg==", "requires": { "@achingbrain/nat-port-mapper": "^1.0.9", - "@libp2p/crypto": "^2.0.5", - "@libp2p/interface": "^0.1.3", - "@libp2p/interface-internal": "^0.1.6", - "@libp2p/keychain": "^3.0.5", - "@libp2p/logger": "^3.0.3", - "@libp2p/multistream-select": "^4.0.3", - "@libp2p/peer-collections": "^4.0.5", - "@libp2p/peer-id": "^3.0.3", - "@libp2p/peer-id-factory": "^3.0.5", - "@libp2p/peer-record": "^6.0.6", - "@libp2p/peer-store": "^9.0.6", - "@libp2p/utils": "^4.0.4", + "@libp2p/crypto": "^2.0.6", + "@libp2p/interface": "^0.1.4", + "@libp2p/interface-internal": "^0.1.7", + "@libp2p/keychain": "^3.0.6", + "@libp2p/logger": "^3.0.4", + "@libp2p/multistream-select": "^4.0.4", + "@libp2p/peer-collections": "^4.0.6", + "@libp2p/peer-id": "^3.0.4", + "@libp2p/peer-id-factory": "^3.0.6", + "@libp2p/peer-record": "^6.0.7", + "@libp2p/peer-store": "^9.0.7", + "@libp2p/utils": "^4.0.5", "@multiformats/mafmt": "^12.1.2", "@multiformats/multiaddr": "^12.1.5", "@multiformats/multiaddr-matcher": "^1.0.0", @@ -29528,11 +29530,11 @@ }, "dependencies": { "@libp2p/logger": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.3.tgz", - "integrity": "sha512-85ioPX10QN4ZOZeurAZe5sQeRUCkIBT2DikKRbE/AIWKauIKHvvIrN4CSdCdzLw29XNA+xxNO2FVkf51HGgCeQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-3.0.4.tgz", + "integrity": "sha512-MF42c7SOJIx5YmHhIsFaSYfaC266YYmMbAJHjjH8Zl5unFsqW82M+Xr7sGVj9/WXrWAd37ts8xJaQrkIXc3OZQ==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "@multiformats/multiaddr": "^12.1.5", "debug": "^4.3.4", "interface-datastore": "^8.2.0", @@ -29540,11 +29542,11 @@ } }, "@libp2p/peer-id": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.3.tgz", - "integrity": "sha512-IPVeywoC40bDd3ohtAIzpN8AOkMmD3U0BjdrFz/5ZbNP1+4n2gDIAwVzkAbF/t1iYYS4CX1TWfHuMqaMvd8l1A==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-3.0.4.tgz", + "integrity": "sha512-qqg/zlFFVrIV80KhRTeajRwbtolOC2UCQ33w0XcXNxVVseFLxcw1pQ05Yn3x5zjzKIl3M04XxFCNkagWqGXD1A==", "requires": { - "@libp2p/interface": "^0.1.3", + "@libp2p/interface": "^0.1.4", "multiformats": "^12.0.1", "uint8arrays": "^4.0.6" } @@ -29622,9 +29624,9 @@ "integrity": "sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==" }, "multiformats": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.2.tgz", - "integrity": "sha512-6mRIsrZXyw5xNPO31IGBMmxgDXBSgCGDsBAtazkZ02ip4hMwZNrQvfxXZtytRoBSWuzSq5f9VmMnXj76fIz5FQ==" + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" }, "nanoid": { "version": "4.0.2", diff --git a/package.json b/package.json index 71031f7..312564e 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "koa-router": "10.0.0", "koa-static": "5.0.0", "koa2-ratelimit": "0.9.1", - "libp2p": "0.46.14", + "libp2p": "0.46.16", "line-reader": "0.4.0", "minimal-slp-wallet": "5.11.1", "mongoose": "5.13.14", diff --git a/src/adapters/ipfs/index.js b/src/adapters/ipfs/index.js index fb5eba1..67d06d0 100644 --- a/src/adapters/ipfs/index.js +++ b/src/adapters/ipfs/index.js @@ -132,7 +132,7 @@ class IPFS { } } catch (err) { console.log( - `Error trying to hydrate peer ${thisPeer.peer}: ${err.message}` + ` ${thisPeer.peer}: ${err.message}` ) } @@ -178,6 +178,7 @@ class IPFS { } thisRelay.name = thisPeer[0].data.jsonLd.name + thisRelay.description = thisPeer[0].data.jsonLd.description } return relayData diff --git a/src/adapters/ipfs/ipfs.js b/src/adapters/ipfs/ipfs.js index cd2459e..6ac3d77 100644 --- a/src/adapters/ipfs/ipfs.js +++ b/src/adapters/ipfs/ipfs.js @@ -156,6 +156,7 @@ class IpfsAdapter { } // Ensure that the directories exist to store blocks from the IPFS network. + // This function is called at startup, before the IPFS node is started. ensureBlocksDir () { try { !this.fs.existsSync(`${ROOT_DIR}.ipfsdata`) && this.fs.mkdirSync(`${ROOT_DIR}.ipfsdata`) From e03a70c9a3e53f99fb2a39ca5b0d968c3fe3cde1 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 27 Oct 2023 17:39:24 -0700 Subject: [PATCH 06/12] fix(get-peers): finalizing REST endpoint behavior --- package-lock.json | 2 +- src/adapters/ipfs/index.js | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 288add2..26455ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -82,7 +82,7 @@ "standard": "17.0.0" }, "peerDependencies": { - "ipfs-http-client": ">= 58.0.0" + "libp2p": ">= 0.46.0" } }, "node_modules/@achingbrain/nat-port-mapper": { diff --git a/src/adapters/ipfs/index.js b/src/adapters/ipfs/index.js index 67d06d0..3998303 100644 --- a/src/adapters/ipfs/index.js +++ b/src/adapters/ipfs/index.js @@ -85,14 +85,14 @@ class IPFS { async getPeers (showAll) { try { const peerData = this.ipfsCoordAdapter.ipfsCoord.thisNode.peerData - console.log(`peerData: ${JSON.stringify(peerData, null, 2)}`) + // console.log(`peerData: ${JSON.stringify(peerData, null, 2)}`) let ipfsPeers = await this.ipfsCoordAdapter.ipfsCoord.adapters.ipfs.getPeers() - console.log('ipfsPeers: ', ipfsPeers) + // console.log('ipfsPeers: ', ipfsPeers) ipfsPeers = this._removeDuplicatePeers(ipfsPeers) - console.log('filtered ipfsPeers: ', ipfsPeers) + // console.log('filtered ipfsPeers: ', ipfsPeers) const peerDataOut = [] @@ -131,8 +131,8 @@ class IPFS { thisPeer.peerData = thisPeerData } } catch (err) { - console.log( - ` ${thisPeer.peer}: ${err.message}` + console.warn( + `warning: ${thisPeer.peer}: ${err.message}` ) } @@ -177,6 +177,7 @@ class IPFS { continue } + thisRelay.name = thisPeer[0].data.jsonLd.name thisRelay.description = thisPeer[0].data.jsonLd.description } From f4f142dc484fa229c4c4b0160973404e71a48025 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sat, 28 Oct 2023 09:17:48 -0700 Subject: [PATCH 07/12] fix(tests): Increased test coverage to 100% --- src/adapters/ipfs/index.js | 2 +- src/controllers/rest-api/ipfs/controller.js | 20 +- src/controllers/rest-api/ipfs/index.js | 4 +- test/unit/adapters/ipfs-index.adapter.unit.js | 76 ++++++++ .../ipfs/ipfs.rest.controller.unit.js | 179 ++++++++++++++++++ .../rest-api/ipfs/ipfs.rest.router.unit.js | 78 ++++++++ test/unit/mocks/adapters/index.js | 5 +- 7 files changed, 351 insertions(+), 13 deletions(-) create mode 100644 test/unit/controllers/rest-api/ipfs/ipfs.rest.controller.unit.js create mode 100644 test/unit/controllers/rest-api/ipfs/ipfs.rest.router.unit.js diff --git a/src/adapters/ipfs/index.js b/src/adapters/ipfs/index.js index 3998303..62cdeb1 100644 --- a/src/adapters/ipfs/index.js +++ b/src/adapters/ipfs/index.js @@ -174,10 +174,10 @@ class IPFS { // If the peer couldn't be found, skip. if (!thisPeer.length) { thisRelay.name = '' + thisRelay.description = '' continue } - thisRelay.name = thisPeer[0].data.jsonLd.name thisRelay.description = thisPeer[0].data.jsonLd.description } diff --git a/src/controllers/rest-api/ipfs/controller.js b/src/controllers/rest-api/ipfs/controller.js index 5300f4a..e919331 100644 --- a/src/controllers/rest-api/ipfs/controller.js +++ b/src/controllers/rest-api/ipfs/controller.js @@ -4,8 +4,6 @@ import wlogger from '../../../adapters/wlogger.js' -let _this - class IpfsRESTControllerLib { constructor (localConfig = {}) { // Dependency Injection. @@ -26,7 +24,11 @@ class IpfsRESTControllerLib { // this.UserModel = this.adapters.localdb.Users // this.userUseCases = this.useCases.user - _this = this + // Bind 'this' object to all subfunctions + this.getStatus = this.getStatus.bind(this) + this.getPeers = this.getPeers.bind(this) + this.getRelays = this.getRelays.bind(this) + this.handleError = this.handleError.bind(this) } /** @@ -41,13 +43,13 @@ class IpfsRESTControllerLib { */ async getStatus (ctx) { try { - const status = await _this.adapters.ipfs.getStatus() + const status = await this.adapters.ipfs.getStatus() ctx.body = { status } } catch (err) { wlogger.error('Error in ipfs/controller.js/getStatus(): ') // ctx.throw(422, err.message) - _this.handleError(ctx, err) + this.handleError(ctx, err) } } @@ -56,26 +58,26 @@ class IpfsRESTControllerLib { try { const showAll = ctx.request.body.showAll - const peers = await _this.adapters.ipfs.getPeers(showAll) + const peers = await this.adapters.ipfs.getPeers(showAll) ctx.body = { peers } } catch (err) { wlogger.error('Error in ipfs/controller.js/getPeers(): ') // ctx.throw(422, err.message) - _this.handleError(ctx, err) + this.handleError(ctx, err) } } // Get data about the known Circuit Relays. Hydrate with data from peers list. async getRelays (ctx) { try { - const relays = await _this.adapters.ipfs.getRelays() + const relays = await this.adapters.ipfs.getRelays() ctx.body = { relays } } catch (err) { wlogger.error('Error in ipfs/controller.js/getRelays(): ') // ctx.throw(422, err.message) - _this.handleError(ctx, err) + this.handleError(ctx, err) } } diff --git a/src/controllers/rest-api/ipfs/index.js b/src/controllers/rest-api/ipfs/index.js index c3b65e4..3e3b14f 100644 --- a/src/controllers/rest-api/ipfs/index.js +++ b/src/controllers/rest-api/ipfs/index.js @@ -11,7 +11,7 @@ import Validators from '../middleware/validators.js' // let _this -class BchRouter { +class IpfsRouter { constructor (localConfig = {}) { // Dependency Injection. this.adapters = localConfig.adapters @@ -66,4 +66,4 @@ class BchRouter { } // module.exports = BchRouter -export default BchRouter +export default IpfsRouter diff --git a/test/unit/adapters/ipfs-index.adapter.unit.js b/test/unit/adapters/ipfs-index.adapter.unit.js index 2d2f8b0..8557fef 100644 --- a/test/unit/adapters/ipfs-index.adapter.unit.js +++ b/test/unit/adapters/ipfs-index.adapter.unit.js @@ -141,4 +141,80 @@ describe('#IPFS-adapter-index', () => { assert.equal(result.length, inArray.length - 2) }) }) + + describe('#getPeers', () => { + it('should return an array of current JSON data about each peer when showAll is true', async () => { + // Mock dependencies + uut.ipfsCoordAdapter.ipfsCoord = { + thisNode: { + peerData: [{ from: 'a', data: { jsonLd: { name: 'a', protocol: 'test', version: '1' } } }, { from: 'b' }] + }, + adapters: { + ipfs: { + getPeers: async () => ['a', 'b'] + } + } + } + + const result = await uut.getPeers(true) + + assert.isArray(result) + }) + + it('should catch, report, and throw errors', async () => { + try { + // Force an error + uut.ipfsCoordAdapter.ipfsCoord = { + thisNode: {}, + adapters: { + ipfs: { + getPeers: async () => { throw new Error('test error') } + } + } + } + + await uut.getPeers() + + assert.fail('Unexpected code path') + } catch (err) { + // console.log('err.message: ', err.message) + assert.include(err.message, 'test error') + } + }) + }) + + describe('#getRelays', () => { + it('should return known relays', () => { + uut.ipfsCoordAdapter.ipfsCoord = { + thisNode: { + peerData: [{ from: 'a', data: { jsonLd: { name: 'a', description: 'test' } } }, { from: 'b' }], + relayData: [{ ipfsId: 'c' }, { ipfsId: 'a' }] + } + } + + const result = uut.getRelays() + // console.log('result: ', result) + + assert.isArray(result) + assert.equal(result.length, 2) + assert.property(result[0], 'name') + assert.property(result[0], 'description') + assert.property(result[1], 'name') + assert.property(result[1], 'description') + }) + + it('should catch, report, and throw errors', () => { + try { + // Force an error + uut.ipfsCoordAdapter.ipfsCoord = { thisNode: {} } + + uut.getRelays() + + assert.fail('Unexpected code path') + } catch (err) { + // console.log('err.message: ', err.message) + assert.include(err.message, 'Cannot read') + } + }) + }) }) diff --git a/test/unit/controllers/rest-api/ipfs/ipfs.rest.controller.unit.js b/test/unit/controllers/rest-api/ipfs/ipfs.rest.controller.unit.js new file mode 100644 index 0000000..132f950 --- /dev/null +++ b/test/unit/controllers/rest-api/ipfs/ipfs.rest.controller.unit.js @@ -0,0 +1,179 @@ +/* + Unit tests for the REST API handler for the /ipfs endpoints. +*/ + +// Public npm libraries +import { assert } from 'chai' +import sinon from 'sinon' + +// Local libraries +import IpfsApiController from '../../../../../src/controllers/rest-api/ipfs/controller.js' +import adapters from '../../../mocks/adapters/index.js' +import UseCasesMock from '../../../mocks/use-cases/index.js' + +import { context as mockContext } from '../../../mocks/ctx-mock.js' +let uut +let sandbox +let ctx + +describe('#IPFS REST API', () => { + before(async () => { + }) + + beforeEach(() => { + const useCases = new UseCasesMock() + + uut = new IpfsApiController({ adapters, useCases }) + + sandbox = sinon.createSandbox() + + // Mock the context object. + ctx = mockContext() + }) + + afterEach(() => sandbox.restore()) + + describe('#constructor', () => { + it('should throw an error if adapters are not passed in', () => { + try { + uut = new IpfsApiController() + + assert.fail('Unexpected code path') + } catch (err) { + assert.include( + err.message, + 'Instance of Adapters library required when instantiating /ipfs REST Controller.' + ) + } + }) + + it('should throw an error if useCases are not passed in', () => { + try { + uut = new IpfsApiController({ adapters }) + + assert.fail('Unexpected code path') + } catch (err) { + assert.include( + err.message, + 'Instance of Use Cases library required when instantiating /ipfs REST Controller.' + ) + } + }) + }) + + describe('#GET /status', () => { + it('should return 422 status on biz logic error', async () => { + try { + // Force an error + sandbox.stub(uut.adapters.ipfs, 'getStatus').rejects(new Error('test error')) + + await uut.getStatus(ctx) + + assert.fail('Unexpected result') + } catch (err) { + assert.equal(err.status, 422) + assert.include(err.message, 'test error') + } + }) + + it('should return 200 status on success', async () => { + // Mock dependencies + sandbox.stub(uut.adapters.ipfs, 'getStatus').resolves({ a: 'b' }) + + await uut.getStatus(ctx) + // console.log('ctx.body: ', ctx.body) + + assert.property(ctx.body, 'status') + assert.equal(ctx.body.status.a, 'b') + }) + }) + + describe('#POST /peers', () => { + it('should return 422 status on biz logic error', async () => { + try { + // Force an error + sandbox.stub(uut.adapters.ipfs, 'getPeers').rejects(new Error('test error')) + + ctx.request.body = { + showAll: true + } + + await uut.getPeers(ctx) + + assert.fail('Unexpected result') + } catch (err) { + assert.equal(err.status, 422) + assert.include(err.message, 'test error') + } + }) + + it('should return 200 status on success', async () => { + // Mock dependencies + sandbox.stub(uut.adapters.ipfs, 'getPeers').resolves({ a: 'b' }) + + ctx.request.body = { + showAll: true + } + + await uut.getPeers(ctx) + // console.log('ctx.body: ', ctx.body) + + assert.property(ctx.body, 'peers') + assert.equal(ctx.body.peers.a, 'b') + }) + }) + + describe('#POST /relays', () => { + it('should return 422 status on biz logic error', async () => { + try { + // Force an error + sandbox.stub(uut.adapters.ipfs, 'getRelays').rejects(new Error('test error')) + + await uut.getRelays(ctx) + + assert.fail('Unexpected result') + } catch (err) { + assert.equal(err.status, 422) + assert.include(err.message, 'test error') + } + }) + + it('should return 200 status on success', async () => { + // Mock dependencies + sandbox.stub(uut.adapters.ipfs, 'getRelays').resolves({ a: 'b' }) + + await uut.getRelays(ctx) + // console.log('ctx.body: ', ctx.body) + + assert.property(ctx.body, 'relays') + assert.equal(ctx.body.relays.a, 'b') + }) + }) + + describe('#handleError', () => { + it('should still throw error if there is no message', () => { + try { + const err = { + status: 404 + } + + uut.handleError(ctx, err) + } catch (err) { + assert.include(err.message, 'Not Found') + } + }) + + it('should throw error with message', () => { + try { + const err = { + status: 422, + message: 'test error' + } + + uut.handleError(ctx, err) + } catch (err) { + assert.include(err.message, 'test error') + } + }) + }) +}) diff --git a/test/unit/controllers/rest-api/ipfs/ipfs.rest.router.unit.js b/test/unit/controllers/rest-api/ipfs/ipfs.rest.router.unit.js new file mode 100644 index 0000000..b2b4f13 --- /dev/null +++ b/test/unit/controllers/rest-api/ipfs/ipfs.rest.router.unit.js @@ -0,0 +1,78 @@ +/* + Unit tests for the REST API handler for the /users endpoints. +*/ + +// Public npm libraries +import { assert } from 'chai' +import sinon from 'sinon' + +// Local support libraries +import adapters from '../../../mocks/adapters/index.js' +import UseCasesMock from '../../../mocks/use-cases/index.js' +import IpfsRouter from '../../../../../src/controllers/rest-api/ipfs/index.js' +// const app = require('../../../mocks/app-mock') + +let uut +let sandbox +// let ctx + +// const mockContext = require('../../../../unit/mocks/ctx-mock').context + +describe('#IPFS-REST-Router', () => { + // const testUser = {} + + beforeEach(() => { + const useCases = new UseCasesMock() + uut = new IpfsRouter({ adapters, useCases }) + + sandbox = sinon.createSandbox() + + // Mock the context object. + // ctx = mockContext() + }) + + afterEach(() => sandbox.restore()) + + describe('#constructor', () => { + it('should throw an error if adapters are not passed in', () => { + try { + uut = new IpfsRouter() + + assert.fail('Unexpected code path') + } catch (err) { + assert.include( + err.message, + 'Instance of Adapters library required when instantiating IPFS REST Controller.' + ) + } + }) + + it('should throw an error if useCases are not passed in', () => { + try { + uut = new IpfsRouter({ adapters }) + + assert.fail('Unexpected code path') + } catch (err) { + assert.include( + err.message, + 'Instance of Use Cases library required when instantiating IPFS REST Controller.' + ) + } + }) + }) + + describe('#attach', () => { + it('should throw an error if app is not passed in.', () => { + try { + uut.attach() + + assert.fail('Unexpected code path') + } catch (err) { + assert.include( + err.message, + 'Must pass app object when attaching REST API controllers.' + ) + } + }) + }) +}) diff --git a/test/unit/mocks/adapters/index.js b/test/unit/mocks/adapters/index.js index ffa3ad6..f17772c 100644 --- a/test/unit/mocks/adapters/index.js +++ b/test/unit/mocks/adapters/index.js @@ -26,7 +26,10 @@ class IpfsCoordAdapter { const ipfs = { ipfsAdapter: new IpfsAdapter(), - ipfsCoordAdapter: new IpfsCoordAdapter() + ipfsCoordAdapter: new IpfsCoordAdapter(), + getStatus: async () => {}, + getPeers: async () => {}, + getRelays: async () => {} } ipfs.ipfs = ipfs.ipfsAdapter.ipfs From a3102a0278cab9dd1ea614e73d2d0c8b7d4ff20f Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sat, 28 Oct 2023 09:50:12 -0700 Subject: [PATCH 08/12] Cleaned up comments --- config/index.js | 4 ---- config/passport.js | 3 --- src/controllers/rest-api/ipfs/index.js | 4 ---- src/use-cases/index.js | 6 ------ .../unit/controllers/rest-api/ipfs/ipfs.rest.router.unit.js | 2 +- 5 files changed, 1 insertion(+), 18 deletions(-) diff --git a/config/index.js b/config/index.js index 25a7e5c..05ccfd8 100644 --- a/config/index.js +++ b/config/index.js @@ -14,8 +14,4 @@ if (env === 'test') { config = production } -// const importStr = `./env/${env}.js` -// console.log('importStr: ', importStr) -// import config from importStr - export default Object.assign({}, common, config) diff --git a/config/passport.js b/config/passport.js index f28c540..abf4c27 100644 --- a/config/passport.js +++ b/config/passport.js @@ -53,7 +53,4 @@ function applyPassportMods (passport) { return true } -// For testing -// export default { passport, passportCallback }; -// export default applyPassportMods export { applyPassportMods, passportCallback } diff --git a/src/controllers/rest-api/ipfs/index.js b/src/controllers/rest-api/ipfs/index.js index 3e3b14f..56d4e2c 100644 --- a/src/controllers/rest-api/ipfs/index.js +++ b/src/controllers/rest-api/ipfs/index.js @@ -59,10 +59,6 @@ class IpfsRouter { app.use(this.router.routes()) app.use(this.router.allowedMethods()) } - - // async getStatus (ctx, next) { - // await _this.ipfsRESTController.getStatus(ctx, next) - // } } // module.exports = BchRouter diff --git a/src/use-cases/index.js b/src/use-cases/index.js index 9dee416..a2ffac6 100644 --- a/src/use-cases/index.js +++ b/src/use-cases/index.js @@ -21,15 +21,9 @@ class UseCases { // Run any startup Use Cases at the start of the app. async start () { - // try { console.log('Async Use Cases have been started.') return true - // } catch (err) { - // console.error('Error in use-cases/index.js/start()') - // // console.log(err) - // throw err - // } } } diff --git a/test/unit/controllers/rest-api/ipfs/ipfs.rest.router.unit.js b/test/unit/controllers/rest-api/ipfs/ipfs.rest.router.unit.js index b2b4f13..c7fb8bd 100644 --- a/test/unit/controllers/rest-api/ipfs/ipfs.rest.router.unit.js +++ b/test/unit/controllers/rest-api/ipfs/ipfs.rest.router.unit.js @@ -1,5 +1,5 @@ /* - Unit tests for the REST API handler for the /users endpoints. + Unit tests for the REST API handler for the /ipfs endpoints. */ // Public npm libraries From a42c15c969536cc97ba4baafa3c1696e4729a597 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sat, 28 Oct 2023 09:55:41 -0700 Subject: [PATCH 09/12] Updating package.json --- package-lock.json | 363 +++++++++++++++++++++++++++++++--------------- package.json | 3 +- 2 files changed, 244 insertions(+), 122 deletions(-) diff --git a/package-lock.json b/package-lock.json index 26455ff..c5023cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,8 +20,7 @@ "datastore-fs": "9.1.5", "glob": "7.1.6", "helia": "2.0.3", - "helia-coord": "../helia-coord", - "ipfs-coord-esm": "9.1.13", + "helia-coord": "1.1.4", "ipfs-http-client": "58.0.0", "jsonrpc-lite": "2.2.0", "jsonwebtoken": "8.5.1", @@ -62,29 +61,6 @@ "uuid": "8.3.2" } }, - "../helia-coord": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "@chris.troutner/retry-queue": "1.0.8", - "bch-encrypt-lib": "2.1.1", - "uuid": "9.0.0" - }, - "devDependencies": { - "@istanbuljs/esm-loader-hook": "0.2.0", - "chai": "4.3.6", - "cross-env": "7.0.3", - "lodash.clonedeep": "4.5.0", - "minimal-slp-wallet": "5.8.9", - "mocha": "10.0.0", - "nyc": "15.1.0", - "sinon": "14.0.0", - "standard": "17.0.0" - }, - "peerDependencies": { - "libp2p": ">= 0.46.0" - } - }, "node_modules/@achingbrain/nat-port-mapper": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.12.tgz", @@ -689,6 +665,15 @@ "node": ">=10.15.1" } }, + "node_modules/@chris.troutner/retry-queue": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@chris.troutner/retry-queue/-/retry-queue-1.0.8.tgz", + "integrity": "sha512-ucyUGWTeXhOcXLglwb8alR3dNATPy+3vGea2uQJ0J8jnJufWrUr/NEq4b53op1tOTF029qrun6OmIN6Ls58pqw==", + "dependencies": { + "p-queue": "7.3.0", + "p-retry": "5.1.1" + } + }, "node_modules/@chris.troutner/retry-queue-commonjs": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@chris.troutner/retry-queue-commonjs/-/retry-queue-commonjs-1.0.8.tgz", @@ -698,6 +683,57 @@ "p-retry": "4.6.2" } }, + "node_modules/@chris.troutner/retry-queue/node_modules/@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + }, + "node_modules/@chris.troutner/retry-queue/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/@chris.troutner/retry-queue/node_modules/p-queue": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.0.tgz", + "integrity": "sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ==", + "dependencies": { + "eventemitter3": "^4.0.7", + "p-timeout": "^5.0.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@chris.troutner/retry-queue/node_modules/p-retry": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.1.tgz", + "integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==", + "dependencies": { + "@types/retry": "0.12.1", + "retry": "^0.13.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@chris.troutner/retry-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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -4929,15 +4965,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/bch-encrypt-lib": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bch-encrypt-lib/-/bch-encrypt-lib-2.0.0.tgz", - "integrity": "sha512-EAfcw2vzcKMkdO004tfLmQEEpGZA9QeIgzG9sbxDweFiGr2BP6/06G5SIJdvsJhcAd9OS9Rw5bLlPAy25kX8HQ==", - "dependencies": { - "eccrypto-js": "^5.3.0", - "wif": "^2.0.6" - } - }, "node_modules/bchaddrjs-slp": { "version": "0.2.5", "resolved": "http://94.130.170.209:4873/bchaddrjs-slp/-/bchaddrjs-slp-0.2.5.tgz", @@ -7026,20 +7053,6 @@ "safer-buffer": "^2.1.0" } }, - "node_modules/eccrypto-js": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/eccrypto-js/-/eccrypto-js-5.4.0.tgz", - "integrity": "sha512-W4xBr0UANgpkSIu2FBHG5wjhvOR4L19HwAUm9xiA4c3bzB9gGbH8+E9hSMTNF+QbmEi+TDvt373JHKA6NnW38A==", - "dependencies": { - "aes-js": "3.1.2", - "enc-utils": "2.1.0", - "hash.js": "1.1.7", - "js-sha3": "0.8.0", - "pbkdf2": "^3.0.17", - "randombytes": "2.1.0", - "secp256k1": "3.8.0" - } - }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -9191,8 +9204,83 @@ } }, "node_modules/helia-coord": { - "resolved": "../helia-coord", - "link": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/helia-coord/-/helia-coord-1.1.4.tgz", + "integrity": "sha512-0bNT3uDmnfB3NG31SB1K1khtiFSdLRHV42r4/pjIGaqj1aXBrQdl/y6ylvaJVQAFoq+LHR+vnzgzo1o71+PwvQ==", + "dependencies": { + "@chris.troutner/retry-queue": "1.0.8", + "@multiformats/multiaddr": "12.1.8", + "bch-encrypt-lib": "2.1.1", + "uuid": "9.0.0" + }, + "peerDependencies": { + "libp2p": ">= 0.46.0" + } + }, + "node_modules/helia-coord/node_modules/@multiformats/multiaddr": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.8.tgz", + "integrity": "sha512-9WCmSiQV3X8T3YR7cb7TieEumnJhRd9aGjeYFIN0VVvjAj7WciryDOE9Ot3W9RDwpjNeEwHDubM+tHBkPrdpzg==", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "node_modules/helia-coord/node_modules/bch-encrypt-lib": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bch-encrypt-lib/-/bch-encrypt-lib-2.1.1.tgz", + "integrity": "sha512-709FHSVhUofFnZg9i5BbLWc9kwrw9d5ZZzFetNFcNOS1Be/kPhvON4Q1yD3uurIrcOdVIw+Sj7tddxEEabwrBA==", + "dependencies": { + "eccrypto-js": "5.3.0", + "wif": "2.0.6" + }, + "peerDependencies": { + "minimal-slp-wallet": ">= 5" + } + }, + "node_modules/helia-coord/node_modules/eccrypto-js": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/eccrypto-js/-/eccrypto-js-5.3.0.tgz", + "integrity": "sha512-fCPIHNr/RDSCNY9NKkrSsjkurb6Rw/d5TYVdzjJeA3E+HcF+DdaWAvhDdsAcBOGUJ6Ygs8o6b4imuvhx9t7o+Q==", + "dependencies": { + "aes-js": "3.1.2", + "enc-utils": "2.1.0", + "hash.js": "1.1.7", + "js-sha3": "0.8.0", + "pbkdf2": "^3.0.17", + "randombytes": "2.1.0", + "secp256k1": "3.8.0" + } + }, + "node_modules/helia-coord/node_modules/multiformats": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/helia-coord/node_modules/uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "dependencies": { + "multiformats": "^12.0.1" + } + }, + "node_modules/helia-coord/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } }, "node_modules/helia/node_modules/@ipld/dag-cbor": { "version": "9.0.6", @@ -9965,27 +10053,6 @@ "multiformats": "^12.0.1" } }, - "node_modules/ipfs-coord-esm": { - "version": "9.1.13", - "resolved": "http://94.130.170.209:4873/ipfs-coord-esm/-/ipfs-coord-esm-9.1.13.tgz", - "integrity": "sha512-3jDYGeSoxfLuIOsUYXtfXBSOvZlysLbNRHnYhUdYD5QucWp2dgjgYxOXh4/sdlBRwTOQ3uZpN28j8AKLwXVVrQ==", - "license": "MIT", - "dependencies": { - "bch-encrypt-lib": "2.0.0", - "uuid": "9.0.0" - }, - "peerDependencies": { - "ipfs-http-client": ">= 58.0.0" - } - }, - "node_modules/ipfs-coord-esm/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/ipfs-core-types": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.12.0.tgz", @@ -20761,6 +20828,50 @@ "tape": "*" } }, + "@chris.troutner/retry-queue": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@chris.troutner/retry-queue/-/retry-queue-1.0.8.tgz", + "integrity": "sha512-ucyUGWTeXhOcXLglwb8alR3dNATPy+3vGea2uQJ0J8jnJufWrUr/NEq4b53op1tOTF029qrun6OmIN6Ls58pqw==", + "requires": { + "p-queue": "7.3.0", + "p-retry": "5.1.1" + }, + "dependencies": { + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "p-queue": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.0.tgz", + "integrity": "sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ==", + "requires": { + "eventemitter3": "^4.0.7", + "p-timeout": "^5.0.2" + } + }, + "p-retry": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.1.tgz", + "integrity": "sha512-i69WkEU5ZAL8mrmdmVviWwU+DN+IUF8f4sSJThoJ3z5A7Nn5iuO5ROX3Boye0u+uYQLOSfgFl7SuFZCjlAVbQA==", + "requires": { + "@types/retry": "0.12.1", + "retry": "^0.13.1" + } + }, + "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==" + } + } + }, "@chris.troutner/retry-queue-commonjs": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@chris.troutner/retry-queue-commonjs/-/retry-queue-commonjs-1.0.8.tgz", @@ -24185,15 +24296,6 @@ } } }, - "bch-encrypt-lib": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bch-encrypt-lib/-/bch-encrypt-lib-2.0.0.tgz", - "integrity": "sha512-EAfcw2vzcKMkdO004tfLmQEEpGZA9QeIgzG9sbxDweFiGr2BP6/06G5SIJdvsJhcAd9OS9Rw5bLlPAy25kX8HQ==", - "requires": { - "eccrypto-js": "^5.3.0", - "wif": "^2.0.6" - } - }, "bchaddrjs-slp": { "version": "0.2.5", "resolved": "http://94.130.170.209:4873/bchaddrjs-slp/-/bchaddrjs-slp-0.2.5.tgz", @@ -25833,20 +25935,6 @@ "safer-buffer": "^2.1.0" } }, - "eccrypto-js": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/eccrypto-js/-/eccrypto-js-5.4.0.tgz", - "integrity": "sha512-W4xBr0UANgpkSIu2FBHG5wjhvOR4L19HwAUm9xiA4c3bzB9gGbH8+E9hSMTNF+QbmEi+TDvt373JHKA6NnW38A==", - "requires": { - "aes-js": "3.1.2", - "enc-utils": "2.1.0", - "hash.js": "1.1.7", - "js-sha3": "0.8.0", - "pbkdf2": "^3.0.17", - "randombytes": "2.1.0", - "secp256k1": "3.8.0" - } - }, "ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -27485,20 +27573,71 @@ } }, "helia-coord": { - "version": "file:../helia-coord", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/helia-coord/-/helia-coord-1.1.4.tgz", + "integrity": "sha512-0bNT3uDmnfB3NG31SB1K1khtiFSdLRHV42r4/pjIGaqj1aXBrQdl/y6ylvaJVQAFoq+LHR+vnzgzo1o71+PwvQ==", "requires": { "@chris.troutner/retry-queue": "1.0.8", - "@istanbuljs/esm-loader-hook": "0.2.0", + "@multiformats/multiaddr": "12.1.8", "bch-encrypt-lib": "2.1.1", - "chai": "4.3.6", - "cross-env": "7.0.3", - "lodash.clonedeep": "4.5.0", - "minimal-slp-wallet": "5.8.9", - "mocha": "10.0.0", - "nyc": "15.1.0", - "sinon": "14.0.0", - "standard": "17.0.0", "uuid": "9.0.0" + }, + "dependencies": { + "@multiformats/multiaddr": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.1.8.tgz", + "integrity": "sha512-9WCmSiQV3X8T3YR7cb7TieEumnJhRd9aGjeYFIN0VVvjAj7WciryDOE9Ot3W9RDwpjNeEwHDubM+tHBkPrdpzg==", + "requires": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/interface": "^0.1.1", + "dns-over-http-resolver": "^2.1.0", + "multiformats": "^12.0.1", + "uint8-varint": "^2.0.1", + "uint8arrays": "^4.0.2" + } + }, + "bch-encrypt-lib": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bch-encrypt-lib/-/bch-encrypt-lib-2.1.1.tgz", + "integrity": "sha512-709FHSVhUofFnZg9i5BbLWc9kwrw9d5ZZzFetNFcNOS1Be/kPhvON4Q1yD3uurIrcOdVIw+Sj7tddxEEabwrBA==", + "requires": { + "eccrypto-js": "5.3.0", + "wif": "2.0.6" + } + }, + "eccrypto-js": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/eccrypto-js/-/eccrypto-js-5.3.0.tgz", + "integrity": "sha512-fCPIHNr/RDSCNY9NKkrSsjkurb6Rw/d5TYVdzjJeA3E+HcF+DdaWAvhDdsAcBOGUJ6Ygs8o6b4imuvhx9t7o+Q==", + "requires": { + "aes-js": "3.1.2", + "enc-utils": "2.1.0", + "hash.js": "1.1.7", + "js-sha3": "0.8.0", + "pbkdf2": "^3.0.17", + "randombytes": "2.1.0", + "secp256k1": "3.8.0" + } + }, + "multiformats": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==" + }, + "uint8arrays": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", + "integrity": "sha512-4ZesjQhqOU2Ip6GPReIwN60wRxIupavL8T0Iy36BBHr2qyMrNxsPJvr7vpS4eFt8F8kSguWUPad6ZM9izs/vyw==", + "requires": { + "multiformats": "^12.0.1" + } + }, + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + } } }, "hmac-drbg": { @@ -27939,22 +28078,6 @@ } } }, - "ipfs-coord-esm": { - "version": "9.1.13", - "resolved": "http://94.130.170.209:4873/ipfs-coord-esm/-/ipfs-coord-esm-9.1.13.tgz", - "integrity": "sha512-3jDYGeSoxfLuIOsUYXtfXBSOvZlysLbNRHnYhUdYD5QucWp2dgjgYxOXh4/sdlBRwTOQ3uZpN28j8AKLwXVVrQ==", - "requires": { - "bch-encrypt-lib": "2.0.0", - "uuid": "9.0.0" - }, - "dependencies": { - "uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" - } - } - }, "ipfs-core-types": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.12.0.tgz", diff --git a/package.json b/package.json index 312564e..5127c48 100644 --- a/package.json +++ b/package.json @@ -35,8 +35,7 @@ "datastore-fs": "9.1.5", "glob": "7.1.6", "helia": "2.0.3", - "helia-coord": "../helia-coord", - "ipfs-coord-esm": "9.1.13", + "helia-coord": "1.1.4", "ipfs-http-client": "58.0.0", "jsonrpc-lite": "2.2.0", "jsonwebtoken": "8.5.1", From bc410678b478458db505666214f7e03ad9816fef Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sat, 28 Oct 2023 10:11:04 -0700 Subject: [PATCH 10/12] Updating README and package.json --- CONTRIBUTING.md | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ LICENSE.md | 2 +- PEDIGREE.md | 3 ++ README.md | 67 ++++++++--------------------------- package.json | 2 +- 5 files changed, 112 insertions(+), 55 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 PEDIGREE.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..cc6bd34 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,93 @@ +# Permissionless Software Foundation Community Contributing Guide 1.0 + +This document describes a very simple process suitable for most projects under +the PSF umbrella. It is based on [this Medium article](https://medium.com/the-node-js-collection/healthy-open-source-967fa8be7951) and the [Node.js Community Contribution Guide](https://github.com/nodejs/TSC/blob/master/BasePolicies/CONTRIBUTING.md). +Projects are encouraged to adopt this whether they +are hosted under the PSF or not. + +The goal of this document is to create a contribution process that: + +* Encourages new contributions. +* Encourages contributors to remain involved. +* Avoids unnecessary processes and bureaucracy whenever possible. +* Creates a transparent decision making process which makes it clear how +contributors can be involved in decision making. + +This document is based on much prior art in the Node.js community, io.js, +and the Node.js project. + +Additional guidance can be found at the [Permissionless Software Foundation Telegram Channel](https://t.me/permissionless_software). + +## Vocabulary + +* A **Contributor** is any individual creating or commenting on an issue or pull request. +* A **Committer** is a subset of contributors who have been given write access to the repository. +* A **TC (Technical Committee)** is a group of committers representing the required technical +expertise to resolve rare disputes. + +# Logging Issues + +Log an issue for any question or problem you might have. When in doubt, log an issue, +any additional policies about what to include will be provided in the responses. The only +exception is security disclosures which should be sent privately. + +Committers may direct you to another repository, ask for additional clarifications, and +add appropriate metadata before the issue is addressed. + +Please be courteous, respectful, and every participant is expected to follow the +project's Code of Conduct. + +# Contributions + +Any change to resources in this repository must be through pull requests. This applies to all changes +to documentation, code, binary files, etc. Even long term committers and TC members must use +pull requests. + +No pull request can be merged without being reviewed. + +For non-trivial contributions, pull requests should sit for at least 36 hours to ensure that +contributors in other timezones have time to review. Consideration should also be given to +weekends and other holiday periods to ensure active committers all have reasonable time to +become involved in the discussion and review process if they wish. + +The default for each contribution is that it is accepted once no committer has an objection. +During review committers may also request that a specific contributor who is most versed in a +particular area gives a "LGTM" before the PR can be merged. There is no additional "sign off" +process for contributions to land. Once all issues brought by committers are addressed it can +be landed by any committer. + +In the case of an objection being raised in a pull request by another committer, all involved +committers should seek to arrive at a consensus by way of addressing concerns being expressed +by discussion, compromise on the proposed change, or withdrawal of the proposed change. + +If a contribution is controversial and committers cannot agree about how to get it to land +or if it should land then it should be escalated to the TC. TC members should regularly +discuss pending contributions in order to find a resolution. It is expected that only a +small minority of issues be brought to the TC for resolution and that discussion and +compromise among committers be the default resolution mechanism. + +# Becoming a Committer + +All contributors who land a non-trivial contribution should be on-boarded in a timely manner, +and added as a committer, and be given write access to the repository. + +Committers are expected to follow this policy and continue to send pull requests, go through +proper review, and have other committers merge their pull requests. + +# TC Process + +The TC uses a "consensus seeking" process for issues that are escalated to the TC. +The group tries to find a resolution that has no open objections among TC members. +If a consensus cannot be reached that has no objections then a majority wins vote +is called. It is also expected that the majority of decisions made by the TC are via +a consensus seeking process and that voting is only used as a last-resort. + +Resolution may involve returning the issue to committers with suggestions on how to +move forward towards a consensus. It is not expected that a meeting of the TC +will resolve all issues on its agenda during that meeting and may prefer to continue +the discussion happening among the committers. + +Members can be added to the TC at any time. Any committer can nominate another committer +to the TC and the TC uses its standard consensus seeking process to evaluate whether or +not to add this new member. Members who do not participate consistently at the level of +a majority of the other members are expected to resign. diff --git a/LICENSE.md b/LICENSE.md index 97b3de6..e3aeb99 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,5 +1,5 @@ The MIT License (MIT) -Copyright (c) 2021-2022 Permissionless Software Foundation +Copyright (c) 2021-2023 Permissionless Software Foundation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/PEDIGREE.md b/PEDIGREE.md new file mode 100644 index 0000000..5c9d338 --- /dev/null +++ b/PEDIGREE.md @@ -0,0 +1,3 @@ +# Pedigree + +This repository was forked from [koa-api-boilerplate](https://github.com/christroutner/koa-api-boilerplate). Code changes from that upstream repository is frequently pulled in and merged to this repository. diff --git a/README.md b/README.md index 892ed0f..4e744a2 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,9 @@ This repository has been forked from the [koa-api-boilerplate](https://github.co - [Koa](https://koajs.com/) framework for REST APIs - User management -- Access and rate-limit control using [JWT tokens](https://jwt.io/) +- Access and rate-limit control (authentication and authorization) using [JWT tokens](https://jwt.io/) +- Logging system with API access +- Email contact integration This boilerplate extends that code to provide the basic features required to be a 'service provider' on the [IPFS](https://ipfs.io) network. This is a core concept in the [web3 Cash Stack](https://cashstack.info). These basic features include: @@ -27,31 +29,15 @@ This boilerplate extends that code to provide the basic features required to be If you are interested in creating your own service provider on the IPFS network, fork this repository and start building. -## Branches -This code repository was refactored from CommonJS format to ECMA Script Modules (ESM) format because js-ipfs made the same change, and this repository depends heavily on that one. A CommonJS format version of this code repository is maintained in the [`cjs` branch](https://github.com/Permissionless-Software-Foundation/ipfs-service-provider/tree/cjs). This is useful for projects that can not make use of ESM yet, like [Electron.js](https://www.electronjs.org/) and [P2WDB](https://p2wdb.com). +## IPFS node +This web server spins up an embedded IPFS ([Helia](https://github.com/ipfs/helia)) node. This node can be controlled and interrogated via the REST API. [psf-bch-wallet](https://github.com/Permissionless-Software-Foundation/psf-bch-wallet) is a command-line app (CLI) that can easily tap into this REST API in order to interact with the embedded IPFS node. -## Circuit Relay - -This 'production' environment for this boilerplate sets up a series of Docker containers, orchestrated with Docker Compose. This boilerplate code can be run without modification, in order to set up a [Circuit Relay](https://docs.libp2p.io/concepts/circuit-relay/) and support the PSF network. You can get paid a [bounty](https://github.com/Permissionless-Software-Foundation/bounties) for doing so, in PSF tokens. See the section below on setting up a Production Docker Container. - -## Features - -This project covers basic necessities of most APIs. - -- [Koa](https://koajs.com/) framework for REST APIs -- Authentication (passport & jwt) -- Database (mongoose) -- Testing (mocha) -- Doc generation with apidoc -- Linting using [Standard](https://github.com/standard/standard) -- Packaged for production environment as a Docker container -- [ipfs-coord](https://www.npmjs.com/package/ipfs-coord) for coordinating peers over IPFS -- JSON RPC for mirroring the REST API over IPFS +- *Video link will be added here* ## Requirements -- node **^14.18.2** -- npm **^8.3.0** +- node **^16.20.2** +- npm **^8.19.4** - Docker **^20.10.8** - Docker Compose **^1.27.4** @@ -59,44 +45,18 @@ This project covers basic necessities of most APIs. ### Development Environment -**Note:** This software now uses an external go-ipfs IPFS node. The instructions below have not been updated to reflect this. - -A development environment will allow you modify the code on-the-fly and contribute to the code base of this repository. [PM2](https://www.npmjs.com/package/pm2) is recommended for running this code base as an IPFS Circuit Relay. - -- [Video: Installing ipfs-service-provider](https://youtu.be/Z0NsboIVN44) -- [Step-by-step installation instructions](https://gist.github.com/christroutner/3304a71d4c12a3a3e1664a438f64d9d0) +A development environment will allow you modify the code on-the-fly and contribute to the code base of this repository. Ubuntu v20 is the recommended OS for creating a dev environment. Other operating systems may cause issues. ```bash git clone https://github.com/Permissionless-Software-Foundation/ipfs-service-provider cd ipfs-service-provider ./install-mongo-sh -sudo npm install -g node-pre-gyp npm install -./ipfs-service-provider.sh +npm start ``` -### Production Environment -The [docker](./production/docker) directory contains a Dockerfile for building a production deployment. - -``` -docker-compose pull -docker-compose up -d -``` - -You can bring the containers back up with `docker-compose up -d`. - -### Operation Notes - -- There is a memory leak in the version of js-ipfs. The app is currently configured to shut down every 8 hours to flush memory. It relies on a process manager like pm2, Docker, or systemd to restart the app after it shuts down, in order to ensure continuous operation. - -- The PSF network operates as a private network. It does not connect or interact with the wider PSF network, relying instead on gateways to bridge the two networks, when they need to share content. This improves the performance and experience for everyone in the PSF network. To join the network, you'll need to add the [swarm.key](./swarm.key) file to the IPFS data folder. - -- [Instructions on setting up IPFS private networks.](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#private-networks) -- For external installations, the swarm.key file will typically go in `~/.ipfs/swarm.key` -- For production Docker containers, the key would go in `ipfs-service-provider/production/data/go-ipfs/data/swarm.key` - -## Structure +## File Structure The file layout of this repository differs from the koa-api-boilerplate. Instead, it follows the file layout of [Clean Architecture](https://christroutner.github.io/trouts-blog/blog/clean-architecture). @@ -110,9 +70,10 @@ The file layout of this repository differs from the koa-api-boilerplate. Instead ## Documentation -API documentation is written inline and generated by [apidoc](http://apidocjs.com/). +API documentation is written inline and generated by [apidoc](http://apidocjs.com/). Docs can be generated with this command: +- `npm run docs` -Visit `http://localhost:5000/docs/` to view docs +Visit `http://localhost:5020/docs/` to view docs There is additional developer documentation in the [dev-docs directory](./dev-docs). diff --git a/package.json b/package.json index 5127c48..7eb33f6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ipfs-service-provider", - "version": "3.0.0", + "version": "4.0.0", "description": "A Koa-based combination of a REST API and IPFS JSON RPC. Boilerplate for starting new projects.", "main": "index.js", "type": "module", From ea51aa420c124ff73e8c88b2e8d2d4fefd5c2440 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sat, 28 Oct 2023 10:14:42 -0700 Subject: [PATCH 11/12] Updating README --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4e744a2..7b582de 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,10 @@ This boilerplate extends that code to provide the basic features required to be - [helia-coord](https://github.com/Permissionless-Software-Foundation/helia-coord) for coordinating service providers and consumers across the IPFS network. - JSON RPC for creating an API between providers and consumers. -If you are interested in creating your own service provider on the IPFS network, fork this repository and start building. +If you are interested in creating your own service provider on the IPFS network, fork this repository and start building. This repository is used in serveral PSF projects: + +- [P2WDB](https://github.com/Permissionless-Software-Foundation/ipfs-p2wdb-service) - the [pay-to-write database](https://p2wdb.com) is a censorship-resistent, p2p database for storing data and pinning files to the IPFS network. +- [ipfs-bch-wallet-consumer](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer) and [ipfs-bch-wallet-service](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-service) creates a web3, censorship-resistent API for app to communicate with a blockchain. This software is documented in [the Cash Stack](https://cashstack.info). ## IPFS node This web server spins up an embedded IPFS ([Helia](https://github.com/ipfs/helia)) node. This node can be controlled and interrogated via the REST API. [psf-bch-wallet](https://github.com/Permissionless-Software-Foundation/psf-bch-wallet) is a command-line app (CLI) that can easily tap into this REST API in order to interact with the embedded IPFS node. @@ -55,7 +58,6 @@ npm install npm start ``` - ## File Structure The file layout of this repository differs from the koa-api-boilerplate. Instead, it follows the file layout of [Clean Architecture](https://christroutner.github.io/trouts-blog/blog/clean-architecture). From 8e338818cae9988bea867583b195fab640f85b25 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Sat, 28 Oct 2023 10:19:59 -0700 Subject: [PATCH 12/12] Updating READMe --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7b582de..09b215f 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ This boilerplate extends that code to provide the basic features required to be If you are interested in creating your own service provider on the IPFS network, fork this repository and start building. This repository is used in serveral PSF projects: - [P2WDB](https://github.com/Permissionless-Software-Foundation/ipfs-p2wdb-service) - the [pay-to-write database](https://p2wdb.com) is a censorship-resistent, p2p database for storing data and pinning files to the IPFS network. -- [ipfs-bch-wallet-consumer](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer) and [ipfs-bch-wallet-service](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-service) creates a web3, censorship-resistent API for app to communicate with a blockchain. This software is documented in [the Cash Stack](https://cashstack.info). +- [ipfs-bch-wallet-consumer](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer) and [ipfs-bch-wallet-service](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-service) creates a web3, censorship-resistent API for apps to communicate with a blockchain. This software is documented in [the Cash Stack](https://cashstack.info). ## IPFS node This web server spins up an embedded IPFS ([Helia](https://github.com/ipfs/helia)) node. This node can be controlled and interrogated via the REST API. [psf-bch-wallet](https://github.com/Permissionless-Software-Foundation/psf-bch-wallet) is a command-line app (CLI) that can easily tap into this REST API in order to interact with the embedded IPFS node. @@ -60,22 +60,20 @@ npm start ## File Structure -The file layout of this repository differs from the koa-api-boilerplate. Instead, it follows the file layout of [Clean Architecture](https://christroutner.github.io/trouts-blog/blog/clean-architecture). +The file layout of this repository follows the file layout of [Clean Architecture](https://christroutner.github.io/trouts-blog/blog/clean-architecture). Understaning the principles laid out this article will help developers navigate the code base. ## Usage - `npm start` Start server on live mode - `npm run docs` Generate API documentation - `npm test` Run mocha tests -- `docker-compose build` Build a 'production' Docker container -- `docker-compose up` Run the docker container ## Documentation API documentation is written inline and generated by [apidoc](http://apidocjs.com/). Docs can be generated with this command: - `npm run docs` -Visit `http://localhost:5020/docs/` to view docs +Visit `http://localhost:5020/` to view docs There is additional developer documentation in the [dev-docs directory](./dev-docs).