From b99c6c60e8b6df8c20881f8ccf00e60c1d967065 Mon Sep 17 00:00:00 2001 From: Rinse Date: Sat, 13 Jun 2026 01:10:29 +0000 Subject: [PATCH 1/3] build(deps): upgrade helia and libp2p dependencies (#139) - @helia/delegated-routing-v1-http-api-client 6.0.1 -> 8.0.1 - @libp2p/gossipsub 15.0.21 -> 16.0.2 - libp2p 3.2.3 -> 3.3.3, @libp2p/interface 3.2.2 -> 3.2.3 - @libp2p/crypto, fetch, identify, peer-id, @multiformats/multiaddr, blockstore-core patch bumps Adaptations for breaking changes: - delegated-routing client 8.x no longer exposes the libp2p routing symbols on the raw client, so getDelegatedRoutingFields now uses the delegatedRoutingV1HttpApiClientContentRouting() factory, with get/put overridden to fail fast since pkc HTTP routers do not serve IPNS records. - @libp2p/interface 3.2.3+ and @libp2p/peer-id 6.0.10+ type against multiformats 14 while helia 6 is still on 13. We stay on 13 at runtime (ipfs-unixfs-exporter strict-checks CID class identity, so a 14 CID breaks helia cat()) and bridge the three libp2p-facing call sites with typed casts; the 13 vs 14 difference is type-level only. --- package-lock.json | 658 ++++++++++++++++++++++++++----------- package.json | 20 +- src/helia/helia-for-pkc.ts | 26 +- src/helia/util.ts | 13 +- src/signer/util.ts | 10 +- 5 files changed, 507 insertions(+), 220 deletions(-) diff --git a/package-lock.json b/package-lock.json index f6f5ebb79..ce4e0f049 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,22 +11,22 @@ "dependencies": { "@enhances/with-resolvers": "0.0.5", "@helia/block-brokers": "5.2.4", - "@helia/delegated-routing-v1-http-api-client": "6.0.1", + "@helia/delegated-routing-v1-http-api-client": "8.0.1", "@helia/ipns": "9.2.1", "@helia/unixfs": "7.2.1", - "@libp2p/crypto": "5.1.17", - "@libp2p/fetch": "4.1.3", - "@libp2p/gossipsub": "15.0.21", - "@libp2p/identify": "4.1.3", - "@libp2p/interface": "3.2.2", - "@libp2p/peer-id": "6.0.8", - "@multiformats/multiaddr": "13.0.1", + "@libp2p/crypto": "5.1.19", + "@libp2p/fetch": "4.1.6", + "@libp2p/gossipsub": "16.0.2", + "@libp2p/identify": "4.1.7", + "@libp2p/interface": "3.2.3", + "@libp2p/peer-id": "6.0.10", + "@multiformats/multiaddr": "13.0.3", "@noble/curves": "2.2.0", "@pkcprotocol/pkc-logger": "0.1.0", "@pkcprotocol/proper-lock-file": "4.2.1", "assert": "2.1.0", "better-sqlite3": "12.9.0", - "blockstore-core": "6.1.2", + "blockstore-core": "6.1.3", "buffer": "6.0.3", "cbor": "10.0.11", "cborg": "4.5.8", @@ -41,7 +41,7 @@ "js-sha256": "0.11.1", "js-sha512": "0.9.0", "kubo-rpc-client": "6.1.0", - "libp2p": "3.2.3", + "libp2p": "3.3.3", "limiter-es6-compat": "2.1.2", "localforage": "1.10.0", "lodash.merge": "4.6.2", @@ -956,24 +956,37 @@ } }, "node_modules/@helia/delegated-routing-v1-http-api-client": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@helia/delegated-routing-v1-http-api-client/-/delegated-routing-v1-http-api-client-6.0.1.tgz", - "integrity": "sha512-Y1nGpUQrdN80XSDDAfe7azJFKKD0MxM0mQqfbefNEcrYMM344rHNQJ7xgiSqsH20vMIaKv+NnQqT/MEg2aWv6g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@helia/delegated-routing-v1-http-api-client/-/delegated-routing-v1-http-api-client-8.0.1.tgz", + "integrity": "sha512-O9SjMwd4Xb1Umr8yyyxeCdL+0dNb/BF+ceN/CCTWE/Mfiy+B0aEafpcoSm/3Wn3e0WwXHnGfNWQqBN6cLu30qQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^3.0.2", - "@libp2p/peer-id": "^6.0.3", - "@multiformats/multiaddr": "^13.0.1", - "any-signal": "^4.1.1", - "browser-readablestream-to-it": "^2.0.9", - "ipns": "^10.0.2", - "it-first": "^3.0.8", - "it-map": "^3.1.3", - "it-ndjson": "^1.1.3", - "multiformats": "^13.3.6", - "p-defer": "^4.0.1", - "p-queue": "^9.0.0", - "uint8arrays": "^5.1.0" + "@libp2p/interface": "^3.2.2", + "@libp2p/peer-id": "^6.0.9", + "@libp2p/utils": "^7.2.2", + "@multiformats/multiaddr": "^13.0.3", + "any-signal": "^4.2.0", + "browser-readablestream-to-it": "^2.0.12", + "it-first": "^3.0.11", + "it-map": "^3.1.6", + "it-ndjson": "^2.0.0", + "multiformats": "^14.0.0", + "uint8arrays": "^6.1.1" + } + }, + "node_modules/@helia/delegated-routing-v1-http-api-client/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@helia/delegated-routing-v1-http-api-client/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" } }, "node_modules/@helia/interface": { @@ -1037,6 +1050,36 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@helia/routers/node_modules/@helia/delegated-routing-v1-http-api-client": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@helia/delegated-routing-v1-http-api-client/-/delegated-routing-v1-http-api-client-6.0.1.tgz", + "integrity": "sha512-Y1nGpUQrdN80XSDDAfe7azJFKKD0MxM0mQqfbefNEcrYMM344rHNQJ7xgiSqsH20vMIaKv+NnQqT/MEg2aWv6g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^3.0.2", + "@libp2p/peer-id": "^6.0.3", + "@multiformats/multiaddr": "^13.0.1", + "any-signal": "^4.1.1", + "browser-readablestream-to-it": "^2.0.9", + "ipns": "^10.0.2", + "it-first": "^3.0.8", + "it-map": "^3.1.3", + "it-ndjson": "^1.1.3", + "multiformats": "^13.3.6", + "p-defer": "^4.0.1", + "p-queue": "^9.0.0", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@helia/routers/node_modules/it-ndjson": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/it-ndjson/-/it-ndjson-1.1.6.tgz", + "integrity": "sha512-qseYKspd95qnYUnJ2DE8R25N2+Q+cPCEXTTpyLe7FHaxjbOc/wtyOgKbuzJrQS9bnFJ6yM9wVooC3C0pX44IWQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arraylist": "^2.4.8" + } + }, "node_modules/@helia/unixfs": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/@helia/unixfs/-/unixfs-7.2.1.tgz", @@ -1106,21 +1149,6 @@ "uint8arrays": "^5.1.0" } }, - "node_modules/@helia/utils/node_modules/blockstore-core": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-6.1.3.tgz", - "integrity": "sha512-GLb6XpvbWOlrz1Liz8lTH8iZoXfJ7otY02i26Ok1q6lDkr9uN3jcZq8GzhNq76jJ7CkFG/EGP8J75F3MFo7v6A==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@libp2p/logger": "^6.2.4", - "interface-blockstore": "^6.0.0", - "interface-store": "^7.0.0", - "it-all": "^3.0.9", - "it-filter": "^3.1.4", - "it-merge": "^3.0.12", - "multiformats": "^13.4.2" - } - }, "node_modules/@helia/utils/node_modules/cborg": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.1.tgz", @@ -1130,12 +1158,6 @@ "cborg": "lib/bin.js" } }, - "node_modules/@helia/utils/node_modules/it-all": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.11.tgz", - "integrity": "sha512-Gvqj6MO4GMLnFdtE68HZRpGBskNC+9+GQ+JevTGNYLyhjUuPhjDLU3jN1LpBemXJDW1bRSkczqA/qGyKlPKrcQ==", - "license": "Apache-2.0 OR MIT" - }, "node_modules/@inquirer/ansi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", @@ -1820,18 +1842,33 @@ } }, "node_modules/@libp2p/crypto": { - "version": "5.1.17", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.1.17.tgz", - "integrity": "sha512-gzn9b3tX9D5xCiXb36PF0rH16kGkLW5ESbT+nmXKUp1HCDD30RXQT/oHSylz5I3GN39BC1C3hBOBNaIQYuO+qw==", + "version": "5.1.19", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.1.19.tgz", + "integrity": "sha512-hYNeHQpUSwLPopWCgDf6OklOvVwJPS/vYZOiBG3VXPIzx5AkONBOfdkgVwB4YsIBH2V6z+TMgMH0yXUZsMurPA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^3.2.2", + "@libp2p/interface": "^3.2.3", "@noble/curves": "^2.0.1", "@noble/hashes": "^2.0.1", - "multiformats": "^13.4.0", + "multiformats": "^14.0.0", "protons-runtime": "^6.0.1", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" + "uint8arrays": "^6.1.1" + } + }, + "node_modules/@libp2p/crypto/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/crypto/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" } }, "node_modules/@libp2p/dcutr": { @@ -1851,45 +1888,75 @@ } }, "node_modules/@libp2p/fetch": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/fetch/-/fetch-4.1.3.tgz", - "integrity": "sha512-PzB/32QEUGWHWWG2pyi8m+IFnnmVzXt7VWsq2JolXtlyIEBTaiIpq7w0zY1V61L7n/GtLn2hlUUGTdt+tr814A==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/fetch/-/fetch-4.1.6.tgz", + "integrity": "sha512-7EnvR1mboM44SZvqakNijzVNy5zPdVXBoFvv2YHszTw/Juz+6z0wI02oqQgbiyzyDQoKOsAwuGk1fc25vRef0g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^3.2.2", - "@libp2p/interface-internal": "^3.1.3", - "@libp2p/utils": "^7.1.0", + "@libp2p/interface": "^3.2.3", + "@libp2p/interface-internal": "^3.1.6", + "@libp2p/utils": "^7.2.2", "main-event": "^1.0.1", "protons-runtime": "^6.0.1", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" + "uint8arrays": "^6.1.1" + } + }, + "node_modules/@libp2p/fetch/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/fetch/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" } }, "node_modules/@libp2p/gossipsub": { - "version": "15.0.21", - "resolved": "https://registry.npmjs.org/@libp2p/gossipsub/-/gossipsub-15.0.21.tgz", - "integrity": "sha512-BMW1o/JVmCfmOTYmtyRbA/8CzzGwaalxdK6jW4eeMZPSySvcui6vz0iRlW4JJN4O81QpLvCoAA3oVr9YVXxa6w==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/@libp2p/gossipsub/-/gossipsub-16.0.2.tgz", + "integrity": "sha512-rLibKWbMPruxqT8s1KGTb9dtU9k5ilh9EzFz39fe7AmM5jq6VuXOmcEUc6n9pmzo+lZHQjGsMpf3D5d0kCekVQ==", "license": "Apache-2.0", "dependencies": { - "@libp2p/crypto": "^5.1.17", - "@libp2p/interface": "^3.2.2", - "@libp2p/interface-internal": "^3.1.3", - "@libp2p/peer-id": "^6.0.8", - "@libp2p/utils": "^7.1.0", - "@multiformats/multiaddr": "^13.0.1", + "@libp2p/crypto": "^5.1.19", + "@libp2p/interface": "^3.2.3", + "@libp2p/interface-internal": "^3.1.6", + "@libp2p/peer-id": "^6.0.10", + "@libp2p/utils": "^7.2.2", + "@multiformats/multiaddr": "^13.0.3", "denque": "^2.1.0", "it-length-prefixed": "^10.0.1", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", - "multiformats": "^13.0.1", + "multiformats": "^14.0.0", "protons-runtime": "^6.0.1", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.0.1" + "uint8arrays": "^6.1.1" }, "engines": { "npm": ">=8.7.0" } }, + "node_modules/@libp2p/gossipsub/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/gossipsub/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" + } + }, "node_modules/@libp2p/http": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@libp2p/http/-/http-2.0.1.tgz", @@ -1988,53 +2055,74 @@ } }, "node_modules/@libp2p/identify": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-4.1.3.tgz", - "integrity": "sha512-EhUr3o611Ax9xKJPLvCgHBpEO3lWW+ss2NjLpL9GXQRbyp7pcN2C5ZgHzDfMfHdXPoIqKrrALaVc0z2c+cn0zA==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-4.1.7.tgz", + "integrity": "sha512-QrCcq2P+VdIkAI2YfQ7ahqEKMgqNX86inHYqrfzaFwha2doB21eZSk/DfEwsaeSatcAFtTLtMHzjBM0lvt5UZg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.1.17", - "@libp2p/interface": "^3.2.2", - "@libp2p/interface-internal": "^3.1.3", - "@libp2p/peer-id": "^6.0.8", - "@libp2p/peer-record": "^9.0.9", - "@libp2p/utils": "^7.1.0", - "@multiformats/multiaddr": "^13.0.1", - "@multiformats/multiaddr-matcher": "^3.0.1", + "@libp2p/crypto": "^5.1.19", + "@libp2p/interface": "^3.2.3", + "@libp2p/interface-internal": "^3.1.6", + "@libp2p/peer-id": "^6.0.10", + "@libp2p/peer-record": "^9.0.11", + "@libp2p/utils": "^7.2.2", + "@multiformats/multiaddr": "^13.0.3", + "@multiformats/multiaddr-matcher": "^3.0.2", "it-drain": "^3.0.10", "it-parallel": "^3.0.13", "main-event": "^1.0.1", "protons-runtime": "^6.0.1", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" + "uint8arrays": "^6.1.1" + } + }, + "node_modules/@libp2p/identify/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/identify/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" } }, "node_modules/@libp2p/interface": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.2.2.tgz", - "integrity": "sha512-IU78g6uF8Ls0//4v9VE1rL5Jvy+i6I8LI/DssojFICbaDJSkL59Sn5XRfHrY5OCxTnUnUxnWK7pHz/3+UZcRNQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.2.3.tgz", + "integrity": "sha512-OKZFrY+x8IYl4Fr/YWjh4s6+uks5zQBIAdg2cl+zaRUpPORfk1ELI4r+eB+fUlXR9mHDsQylSSzmAqi0drDfiA==", "license": "Apache-2.0 OR MIT", "dependencies": { "@multiformats/dns": "^1.0.6", - "@multiformats/multiaddr": "^13.0.1", + "@multiformats/multiaddr": "^13.0.3", "main-event": "^1.0.1", - "multiformats": "^13.4.0", + "multiformats": "^14.0.0", "progress-events": "^1.1.0", "uint8arraylist": "^2.4.8" } }, "node_modules/@libp2p/interface-internal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-3.1.3.tgz", - "integrity": "sha512-rDmIL7YUplnaD33/5K40Aue7dHIg4FvIm+swE4tXey2p2wpcn1KE7fzbAX0dFJkHufuI8H/W3zn/iw3ZQgbFjg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-3.1.6.tgz", + "integrity": "sha512-604qCe56YVdNlKktwXatMnkHp8lKjXGuuYc/kVrvACm5+euD8AoObir+Xg5Z+Q57D+im4Mg+tvnn/lrM2Cxyxg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^3.2.2", - "@libp2p/peer-collections": "^7.0.18", - "@multiformats/multiaddr": "^13.0.1", + "@libp2p/interface": "^3.2.3", + "@libp2p/peer-collections": "^7.0.21", + "@multiformats/multiaddr": "^13.0.3", "progress-events": "^1.0.1" } }, + "node_modules/@libp2p/interface/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/@libp2p/kad-dht": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-16.2.0.tgz", @@ -2097,18 +2185,24 @@ } }, "node_modules/@libp2p/logger": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-6.2.6.tgz", - "integrity": "sha512-ep2fNBFZHVomQEvXk0NET2Y85csVeQbFpCvT94uQrtP4MrRE6zVjxiuh67KZuE32odnoKwE29i2fWPHc1p1Xng==", + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-6.2.8.tgz", + "integrity": "sha512-oPTkWJhYvhk8fjInH1ySyUDC/LLuqHsVqpNprtImd/64lnRHInV0EbwpRYwjdPNXAxYXDU/eQJzyqMWUNnN4+A==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^3.2.2", - "@multiformats/multiaddr": "^13.0.1", + "@libp2p/interface": "^3.2.3", + "@multiformats/multiaddr": "^13.0.3", "interface-datastore": "^9.0.1", - "multiformats": "^13.4.0", + "multiformats": "^14.0.0", "weald": "^1.1.0" } }, + "node_modules/@libp2p/logger/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/@libp2p/mdns": { "version": "12.0.16", "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-12.0.16.tgz", @@ -2141,79 +2235,130 @@ } }, "node_modules/@libp2p/multistream-select": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-7.0.18.tgz", - "integrity": "sha512-Twctbqr2rnPnTf2iPIwKq4LzpI29gKwogtmqr0qJh2+IMKH+MtwhT+s+c0Mb2A+n+Td0AceRRddWS5DOaFskVg==", + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-7.0.21.tgz", + "integrity": "sha512-XjpSCO1LwGYGFX5gGuBNKlR9wxmMts5riwWWesKUsI6K4xyqpV4tGnBP98qfN74PqB1EKOyprCoElo2BJUuNLA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^3.2.2", - "@libp2p/utils": "^7.1.0", + "@libp2p/interface": "^3.2.3", + "@libp2p/utils": "^7.2.2", "it-length-prefixed": "^10.0.1", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" + "uint8arrays": "^6.1.1" + } + }, + "node_modules/@libp2p/multistream-select/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/multistream-select/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" } }, "node_modules/@libp2p/peer-collections": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-7.0.18.tgz", - "integrity": "sha512-xcUmToljkDFEKwQrbgrGGaVbX6Z8/ir4MTBlGpyo8H8JRxnfQ0ybvVbHiEeX5OpFMT3e/bQrcdfydFDJKy3hWA==", + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-7.0.21.tgz", + "integrity": "sha512-kZFxzT+JE7TPo6Ygbu4/REds9QrSNpWP2eXHXSF2aImSw/AGvegXRD+p5/nALoz7D8Um2GIms/uTATqd+aD5Uw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^3.2.2", - "@libp2p/peer-id": "^6.0.8", - "@libp2p/utils": "^7.1.0", - "multiformats": "^13.4.0" + "@libp2p/interface": "^3.2.3", + "@libp2p/peer-id": "^6.0.10", + "@libp2p/utils": "^7.2.2", + "multiformats": "^14.0.0" } }, + "node_modules/@libp2p/peer-collections/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/@libp2p/peer-id": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-6.0.8.tgz", - "integrity": "sha512-D9fkXL5g+RfSvDVnj/DxVeuGPq5SQrWPWf4VPf+pPkIZVcTOuuR6OUN9XtYfOUxeN3CbsoAlRk0EDXqRA8Zyxg==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-6.0.10.tgz", + "integrity": "sha512-FgXeraxl932zim/K+vipCkscjLNMsyNVBh1NpGcJ+y8DQi/jgFXV4YZ0M2JuWM20GTcVCqDT5P10A0DJHRjecg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.1.17", - "@libp2p/interface": "^3.2.2", - "multiformats": "^13.4.0", - "uint8arrays": "^5.1.0" + "@libp2p/crypto": "^5.1.19", + "@libp2p/interface": "^3.2.3", + "multiformats": "^14.0.0", + "uint8arrays": "^6.1.1" + } + }, + "node_modules/@libp2p/peer-id/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/peer-id/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" } }, "node_modules/@libp2p/peer-record": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-9.0.9.tgz", - "integrity": "sha512-MSTa01yTEvlaxW2Z/jiLYviPFWB7UJjupxHOSFTqalvJQYFuR4C713o6ABFEQWJJ2mTB0dS79hs65lEbOuWQTw==", + "version": "9.0.11", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-9.0.11.tgz", + "integrity": "sha512-8bRt7mOXdFmiGpNNziytrX0rhj9uUBjv8SRZt/tuPvLKn3LUl9M6Z9e2atX0Cai2UENw7T8IR3AE/cVaunjgxA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.1.17", - "@libp2p/interface": "^3.2.2", - "@libp2p/peer-id": "^6.0.8", - "@multiformats/multiaddr": "^13.0.1", - "multiformats": "^13.4.0", + "@libp2p/crypto": "^5.1.19", + "@libp2p/interface": "^3.2.3", + "@libp2p/peer-id": "^6.0.10", + "@multiformats/multiaddr": "^13.0.3", + "multiformats": "^14.0.0", "protons-runtime": "^6.0.1", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" + "uint8arrays": "^6.1.1" + } + }, + "node_modules/@libp2p/peer-record/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/peer-record/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" } }, "node_modules/@libp2p/peer-store": { - "version": "12.0.18", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-12.0.18.tgz", - "integrity": "sha512-RLTW+5vQJY/em+xFqaZe6vN7M2dEVYjr+4XCevU5XWGGWfsZy+HC7DkoH+o3wqptnniCewqtpF1Vf8LhaivGXw==", + "version": "12.0.21", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-12.0.21.tgz", + "integrity": "sha512-y13xQ7vTFLX04v/34p1h60/1iaS4yziJFov3VLJOmScQ+QibpLvKAtlrczpFRRFSzqIzW/4EeR7pdAk1QCMo9A==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.1.17", - "@libp2p/interface": "^3.2.2", - "@libp2p/peer-collections": "^7.0.18", - "@libp2p/peer-id": "^6.0.8", - "@libp2p/peer-record": "^9.0.9", - "@multiformats/multiaddr": "^13.0.1", + "@libp2p/crypto": "^5.1.19", + "@libp2p/interface": "^3.2.3", + "@libp2p/peer-collections": "^7.0.21", + "@libp2p/peer-id": "^6.0.10", + "@libp2p/peer-record": "^9.0.11", + "@multiformats/multiaddr": "^13.0.3", "interface-datastore": "^9.0.1", "it-all": "^3.0.9", "main-event": "^1.0.1", "mortice": "^3.3.1", - "multiformats": "^13.4.0", + "multiformats": "^14.0.0", "protons-runtime": "^6.0.1", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" + "uint8arrays": "^6.1.1" } }, "node_modules/@libp2p/peer-store/node_modules/it-all": { @@ -2222,6 +2367,21 @@ "integrity": "sha512-Gvqj6MO4GMLnFdtE68HZRpGBskNC+9+GQ+JevTGNYLyhjUuPhjDLU3jN1LpBemXJDW1bRSkczqA/qGyKlPKrcQ==", "license": "Apache-2.0 OR MIT" }, + "node_modules/@libp2p/peer-store/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/peer-store/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" + } + }, "node_modules/@libp2p/ping": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@libp2p/ping/-/ping-3.1.0.tgz", @@ -2314,17 +2474,18 @@ } }, "node_modules/@libp2p/utils": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-7.1.0.tgz", - "integrity": "sha512-gfOpPIMpv+B4XXIsmXVN41p6kFrBw8yC2OwNaX6sjTwf7s1GmpQ/O0R4nI0P2t0RzBELy1EG8DgUmlxZOvdwjA==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-7.2.2.tgz", + "integrity": "sha512-EEF/S3nYnR6+Ii0o2XL8RATEb8d+IhPCUNVVZ46u9L0wB+8cxL856pPi5tlzz+vK+Aix0ARGK4tbpROyXQst5Q==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.1.0", "@chainsafe/netmask": "^2.0.0", - "@libp2p/crypto": "^5.1.17", - "@libp2p/interface": "^3.2.2", - "@libp2p/logger": "^6.2.6", - "@multiformats/multiaddr": "^13.0.1", + "@libp2p/crypto": "^5.1.19", + "@libp2p/interface": "^3.2.3", + "@libp2p/logger": "^6.2.8", + "@multiformats/multiaddr": "^13.0.3", + "@multiformats/multiaddr-matcher": "^3.0.2", "@sindresorhus/fnv1a": "^3.1.0", "any-signal": "^4.1.1", "cborg": "^5.1.0", @@ -2342,7 +2503,7 @@ "race-signal": "^2.0.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" + "uint8arrays": "^6.1.1" } }, "node_modules/@libp2p/utils/node_modules/cborg": { @@ -2354,6 +2515,21 @@ "cborg": "lib/bin.js" } }, + "node_modules/@libp2p/utils/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/utils/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" + } + }, "node_modules/@libp2p/webrtc": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-6.0.16.tgz", @@ -2435,15 +2611,15 @@ } }, "node_modules/@multiformats/multiaddr": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", - "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.3.tgz", + "integrity": "sha512-mEqqJ4r3a/uuFMTpRkU316wGNIDQNhuVWpm+ebKTQeYsfv9jXbPONWM6VVnj3KGUrwfsX7GZOyp4TFqEA2SPCw==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.1", - "multiformats": "^13.0.0", - "uint8-varint": "^2.0.1", - "uint8arrays": "^5.0.0" + "multiformats": "^14.0.0", + "uint8-varint": "^3.0.0", + "uint8arrays": "^6.1.1" } }, "node_modules/@multiformats/multiaddr-matcher": { @@ -2464,6 +2640,40 @@ "@multiformats/multiaddr": "^13.0.0" } }, + "node_modules/@multiformats/multiaddr/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@multiformats/multiaddr/node_modules/uint8-varint": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-3.0.0.tgz", + "integrity": "sha512-S4DdpXBaLwKcFo7f0bWzWfHjbZ/i3QhM842qn+ZvHjxqFCfUcEB9SQNcmI69S+zMlcmIcKxsk9Iyw77S2Kxv6Q==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arraylist": "^3.0.1", + "uint8arrays": "^6.1.0" + } + }, + "node_modules/@multiformats/multiaddr/node_modules/uint8arraylist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz", + "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arrays": "^6.0.0" + } + }, + "node_modules/@multiformats/multiaddr/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" + } + }, "node_modules/@multiformats/murmur3": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-2.2.2.tgz", @@ -5628,18 +5838,18 @@ } }, "node_modules/blockstore-core": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-6.1.2.tgz", - "integrity": "sha512-yWU38RM8DJ6C7Y2shIeTNVgGiJX/ko2RXqDyNlxMakOc+aVS7k1SCiakMlh6ix0juRNPtj0ySMTXU8UBDXXRCQ==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-6.1.3.tgz", + "integrity": "sha512-GLb6XpvbWOlrz1Liz8lTH8iZoXfJ7otY02i26Ok1q6lDkr9uN3jcZq8GzhNq76jJ7CkFG/EGP8J75F3MFo7v6A==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/logger": "^6.0.0", + "@libp2p/logger": "^6.2.4", "interface-blockstore": "^6.0.0", "interface-store": "^7.0.0", "it-all": "^3.0.9", - "it-filter": "^3.1.3", - "it-merge": "^3.0.11", - "multiformats": "^13.3.6" + "it-filter": "^3.1.4", + "it-merge": "^3.0.12", + "multiformats": "^13.4.2" } }, "node_modules/blockstore-core/node_modules/it-all": { @@ -5678,9 +5888,9 @@ } }, "node_modules/browser-readablestream-to-it": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.10.tgz", - "integrity": "sha512-I/9hEcRtjct8CzD9sVo9Mm4ntn0D+7tOVrjbPl69XAoOfgJ8NBdOQU+WX+5SHhcELJDb14mWt7zuvyqha+MEAQ==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.12.tgz", + "integrity": "sha512-VDAcuM39JVtxZ7auqE2p0zHYk1fq+pac0cWLOQJ48MIChTZ1RjCR2PYCdL3kIisst7oGZCxYrJhfHlbNYIa0Tg==", "license": "Apache-2.0 OR MIT" }, "node_modules/browserify-zlib": { @@ -9398,26 +9608,35 @@ "multiformats": "^13.4.2" } }, - "node_modules/helia/node_modules/blockstore-core": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-6.1.3.tgz", - "integrity": "sha512-GLb6XpvbWOlrz1Liz8lTH8iZoXfJ7otY02i26Ok1q6lDkr9uN3jcZq8GzhNq76jJ7CkFG/EGP8J75F3MFo7v6A==", + "node_modules/helia/node_modules/@helia/delegated-routing-v1-http-api-client": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@helia/delegated-routing-v1-http-api-client/-/delegated-routing-v1-http-api-client-6.0.1.tgz", + "integrity": "sha512-Y1nGpUQrdN80XSDDAfe7azJFKKD0MxM0mQqfbefNEcrYMM344rHNQJ7xgiSqsH20vMIaKv+NnQqT/MEg2aWv6g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/logger": "^6.2.4", - "interface-blockstore": "^6.0.0", - "interface-store": "^7.0.0", - "it-all": "^3.0.9", - "it-filter": "^3.1.4", - "it-merge": "^3.0.12", - "multiformats": "^13.4.2" + "@libp2p/interface": "^3.0.2", + "@libp2p/peer-id": "^6.0.3", + "@multiformats/multiaddr": "^13.0.1", + "any-signal": "^4.1.1", + "browser-readablestream-to-it": "^2.0.9", + "ipns": "^10.0.2", + "it-first": "^3.0.8", + "it-map": "^3.1.3", + "it-ndjson": "^1.1.3", + "multiformats": "^13.3.6", + "p-defer": "^4.0.1", + "p-queue": "^9.0.0", + "uint8arrays": "^5.1.0" } }, - "node_modules/helia/node_modules/it-all": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.11.tgz", - "integrity": "sha512-Gvqj6MO4GMLnFdtE68HZRpGBskNC+9+GQ+JevTGNYLyhjUuPhjDLU3jN1LpBemXJDW1bRSkczqA/qGyKlPKrcQ==", - "license": "Apache-2.0 OR MIT" + "node_modules/helia/node_modules/it-ndjson": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/it-ndjson/-/it-ndjson-1.1.6.tgz", + "integrity": "sha512-qseYKspd95qnYUnJ2DE8R25N2+Q+cPCEXTTpyLe7FHaxjbOc/wtyOgKbuzJrQS9bnFJ6yM9wVooC3C0pX44IWQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arraylist": "^2.4.8" + } }, "node_modules/hermes-compiler": { "version": "250829098.0.10", @@ -11093,12 +11312,36 @@ } }, "node_modules/it-ndjson": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/it-ndjson/-/it-ndjson-1.1.4.tgz", - "integrity": "sha512-ZMgTUrNo/UQCeRUT3KqnC0UaClzU6D+ItSmzVt7Ks7pcJ7DboYeYBSPeFLAaEthf5zlvaApDuACLmOWepgkrRg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-ndjson/-/it-ndjson-2.0.0.tgz", + "integrity": "sha512-6QOU+X9zBSolfcYGXY5CSJchHb57MgkoDgVJA5Tdh1CwzUHKKJYS0lTzdVR9hefVpiQNhTB/glEU8i37LpP7qw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "uint8arraylist": "^2.4.8" + "uint8arraylist": "^3.0.1" + } + }, + "node_modules/it-ndjson/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/it-ndjson/node_modules/uint8arraylist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz", + "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arrays": "^6.0.0" + } + }, + "node_modules/it-ndjson/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" } }, "node_modules/it-parallel": { @@ -11684,38 +11927,53 @@ } }, "node_modules/libp2p": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-3.2.3.tgz", - "integrity": "sha512-sri0KjdVrzKlahFqrMC/v0wsmvbpIasM0yA1jCAM4d5+Xjj1IN4yFzksSIVqKu6pqhhggR+Pr2ZgTBkH3BlpMw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-3.3.3.tgz", + "integrity": "sha512-0KyWvvvFTxdQFAtPl5IYFrFXRhod6FAjZsM48D102nze3pxFE0+I7U9BRa78d+tv82Q+t0GNsYJacdAKDwD1Sw==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.1.0", "@chainsafe/netmask": "^2.0.0", - "@libp2p/crypto": "^5.1.17", - "@libp2p/interface": "^3.2.2", - "@libp2p/interface-internal": "^3.1.3", - "@libp2p/logger": "^6.2.6", - "@libp2p/multistream-select": "^7.0.18", - "@libp2p/peer-collections": "^7.0.18", - "@libp2p/peer-id": "^6.0.8", - "@libp2p/peer-store": "^12.0.18", - "@libp2p/utils": "^7.1.0", + "@libp2p/crypto": "^5.1.19", + "@libp2p/interface": "^3.2.3", + "@libp2p/interface-internal": "^3.1.6", + "@libp2p/logger": "^6.2.8", + "@libp2p/multistream-select": "^7.0.21", + "@libp2p/peer-collections": "^7.0.21", + "@libp2p/peer-id": "^6.0.10", + "@libp2p/peer-store": "^12.0.21", + "@libp2p/utils": "^7.2.2", "@multiformats/dns": "^1.0.6", - "@multiformats/multiaddr": "^13.0.1", - "@multiformats/multiaddr-matcher": "^3.0.1", + "@multiformats/multiaddr": "^13.0.3", + "@multiformats/multiaddr-matcher": "^3.0.2", "any-signal": "^4.1.1", "datastore-core": "^11.0.1", "interface-datastore": "^9.0.1", "it-merge": "^3.0.12", "it-parallel": "^3.0.13", "main-event": "^1.0.1", - "multiformats": "^13.4.0", + "multiformats": "^14.0.0", "p-defer": "^4.0.1", "p-event": "^7.0.0", "p-retry": "^8.0.0", "progress-events": "^1.1.0", "race-signal": "^2.0.0", - "uint8arrays": "^5.1.0" + "uint8arrays": "^6.1.1" + } + }, + "node_modules/libp2p/node_modules/multiformats": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/libp2p/node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" } }, "node_modules/lie": { diff --git a/package.json b/package.json index 2a44f2722..3cf184844 100644 --- a/package.json +++ b/package.json @@ -69,22 +69,22 @@ "dependencies": { "@enhances/with-resolvers": "0.0.5", "@helia/block-brokers": "5.2.4", - "@helia/delegated-routing-v1-http-api-client": "6.0.1", + "@helia/delegated-routing-v1-http-api-client": "8.0.1", "@helia/ipns": "9.2.1", "@helia/unixfs": "7.2.1", - "@libp2p/crypto": "5.1.17", - "@libp2p/fetch": "4.1.3", - "@libp2p/gossipsub": "15.0.21", - "@libp2p/identify": "4.1.3", - "@libp2p/interface": "3.2.2", - "@libp2p/peer-id": "6.0.8", - "@multiformats/multiaddr": "13.0.1", + "@libp2p/crypto": "5.1.19", + "@libp2p/fetch": "4.1.6", + "@libp2p/gossipsub": "16.0.2", + "@libp2p/identify": "4.1.7", + "@libp2p/interface": "3.2.3", + "@libp2p/peer-id": "6.0.10", + "@multiformats/multiaddr": "13.0.3", "@noble/curves": "2.2.0", "@pkcprotocol/pkc-logger": "0.1.0", "@pkcprotocol/proper-lock-file": "4.2.1", "assert": "2.1.0", "better-sqlite3": "12.9.0", - "blockstore-core": "6.1.2", + "blockstore-core": "6.1.3", "buffer": "6.0.3", "cbor": "10.0.11", "cborg": "4.5.8", @@ -99,7 +99,7 @@ "js-sha256": "0.11.1", "js-sha512": "0.9.0", "kubo-rpc-client": "6.1.0", - "libp2p": "3.2.3", + "libp2p": "3.3.3", "limiter-es6-compat": "2.1.2", "localforage": "1.10.0", "lodash.merge": "4.6.2", diff --git a/src/helia/helia-for-pkc.ts b/src/helia/helia-for-pkc.ts index 46e5445bc..98118cb7f 100644 --- a/src/helia/helia-for-pkc.ts +++ b/src/helia/helia-for-pkc.ts @@ -9,7 +9,8 @@ import { CID } from "multiformats/cid"; import { peerIdFromString } from "@libp2p/peer-id"; import { bitswap } from "@helia/block-brokers"; import { MemoryBlockstore } from "blockstore-core"; -import { delegatedRoutingV1HttpApiClient } from "@helia/delegated-routing-v1-http-api-client"; +import { delegatedRoutingV1HttpApiClientContentRouting } from "@helia/delegated-routing-v1-http-api-client"; +import { NotFoundError } from "@libp2p/interface"; import { unixfs } from "@helia/unixfs"; import { fetch as libp2pFetch } from "@libp2p/fetch"; import { pubsub as createIpnsPubusubRouter } from "@helia/ipns/routing"; @@ -34,14 +35,25 @@ const creatingLibp2pJsClients: Partial>> // TODO can you verify if we're already content who has a specific and we fetch the CID even though http router says it has no providers, it should be able to load the CID function getDelegatedRoutingFields(routers: string[]) { - const routersObj: Record> = {}; + // @helia/delegated-routing-v1-http-api-client 8.x: the raw client returned by + // delegatedRoutingV1HttpApiClient() no longer exposes the libp2p contentRouting/peerRouting + // symbols, so putting it in `services` would silently register zero content routers + // (libp2p then throws NoContentRoutersError on findProviders). Use the dedicated + // delegatedRoutingV1HttpApiClientContentRouting() factory instead — content routing only, + // so the peer-routing path (client.getPeers) is never registered. + const routersObj: Record> = {}; for (let i = 0; i < routers.length; i++) { - const factory = delegatedRoutingV1HttpApiClient({ url: routers[i] }); + const factory = delegatedRoutingV1HttpApiClientContentRouting({ url: routers[i] }); routersObj["delegatedRouting" + i] = (components) => { - const client = factory(components); - //@ts-expect-error - our routers don't support any of these - client.getIPNS = client.getPeers = client.putIPNS = undefined; - return client; + const routing = factory(components); + // Our HTTP routers only serve provider records — they don't support IPNS get/put. + // The default implementations would issue doomed HTTP requests (the pre-8.x code + // prevented this by undefining client.getIPNS/putIPNS), so fail fast instead. + routing.get = async () => { + throw new NotFoundError("pkc HTTP routers do not serve IPNS records"); + }; + routing.put = async () => {}; + return routing; }; } return routersObj; diff --git a/src/helia/util.ts b/src/helia/util.ts index b1b8b99de..b503ec6cc 100644 --- a/src/helia/util.ts +++ b/src/helia/util.ts @@ -8,6 +8,14 @@ import { pubsubTopicToDhtKeyCid } from "../util.js"; const TOPIC_SUBSCRIBER_WAIT_TIMEOUT_MS = 10_000; const MESH_PEER_WAIT_TIMEOUT_MS = 3_000; +// @libp2p/interface 3.2.3+ types against multiformats 14 while helia 6 (and therefore our +// top-level multiformats) is still on 13. We deliberately stay on 13 at runtime because +// ipfs-unixfs-exporter (inside @helia/unixfs) does a strict same-class CID identity check +// (`CID.asCID(path) === path`) that a multiformats-14 CID instance fails. The 13 vs 14 +// difference is type-level only (Uint8Array vs ArrayBufferLike), so bridging +// the libp2p-facing call sites with a cast is sound. Revisit when helia moves to multiformats 14. +type Libp2pCid = Parameters[0]; + export interface HeliaDebugContext { heliaPeerId: string; heliaStatus: HeliaWithLibp2pPubsub["libp2p"]["status"]; @@ -207,7 +215,10 @@ export async function connectToPubsubPeers({ const inflightDialPromises: Promise[] = []; const dialOptions = { ...options }; try { - for await (const peer of helia.libp2p.contentRouting.findProviders(contentCid, { ...options, signal: findProvidersSignal })) { + for await (const peer of helia.libp2p.contentRouting.findProviders(contentCid as Libp2pCid, { + ...options, + signal: findProvidersSignal + })) { peersWithContent.push(peer as PeerInfo); const dialPromise = (async () => { try { diff --git a/src/signer/util.ts b/src/signer/util.ts index 6477c1d9f..764560c1e 100644 --- a/src/signer/util.ts +++ b/src/signer/util.ts @@ -15,6 +15,12 @@ import { CID } from "multiformats/cid"; import { bases } from "multiformats/basics"; import Logger from "../logger.js"; +// @libp2p/peer-id 6.0.10+ types against multiformats 14 while helia 6 (and therefore our +// top-level multiformats) is still on 13 — see the longer note in src/helia/util.ts. The +// difference is type-level only, so bridging with a cast is sound. Revisit when helia moves +// to multiformats 14. +type Libp2pMultihashDigest = Parameters[0]; + export const generatePrivateKey = async (): Promise => { const privateKeyBuffer = ed25519.utils.randomSecretKey(); const privateKeyBase64 = uint8ArrayToString(privateKeyBuffer, "base64"); @@ -145,7 +151,7 @@ export const convertBase58IpnsNameToBase36Cid = (ipnsName: string): string => { export function convertBase32ToBase58btc(base32String: string) { // Decode base32 to bytes const cid = CID.parse(base32String); - const peerId = peerIdFromMultihash(cid.multihash); + const peerId = peerIdFromMultihash(cid.multihash as Libp2pMultihashDigest); return peerId.toString().trim(); } @@ -176,6 +182,6 @@ export const getPKCAddressFromPublicKeySync = (publicKeyBase64: string): string multihash.set(publicKeyBytes, 2); // the public key bytes themselves // Create PeerId from the multihash bytes and return as base58 string - const peerId = peerIdFromMultihash(Digest.decode(multihash)); + const peerId = peerIdFromMultihash(Digest.decode(multihash) as Libp2pMultihashDigest); return peerId.toString().trim(); }; From 30508903613fe53324e71d82713f0d74b8036ac4 Mon Sep 17 00:00:00 2001 From: Rinse Date: Sat, 13 Jun 2026 01:28:37 +0000 Subject: [PATCH 2/3] build(deps): bump multiformats 14, ipns 11, uint8arrays 6, kubo-rpc-client 7, importers (#139) - multiformats 13.4.2 -> 14.0.0 - ipns 10.1.3 -> 11.0.0 - uint8arrays 5.1.0 -> 6.1.1 - kubo-rpc-client 6.1.0 -> 7.1.0 - ipfs-unixfs-importer 16.1.4 -> 17.0.1 - blockstore-core 6.1.3 -> 7.0.1 Every one of these majors is the same breaking change: CIDs/byte arrays now come from multiformats 14 (Uint8Array). With the whole top-level tree on multiformats 14 the typed casts added in the previous commit are no longer needed and have been removed. The one remaining multiformats-13 island is helia 6's internals. ipfs-unixfs-exporter (inside @helia/unixfs) strict-checks CID class identity (CID.asCID(path) === path), so a multiformats-14 CID instance is rejected at runtime with "Path must be string or CID". heliaFs.cat is therefore handed the CID *string* (asHeliaCatCid): @helia/unixfs's resolve() only template-interpolates the cid, and the exporter's string branch parses it with its own multiformats copy, keeping the DAG walk self-consistent. CID.parse stays as input validation. Remove once helia ships on multiformats 14. --- package-lock.json | 1255 +++++++++++++++++++++++++++--------- package.json | 12 +- src/helia/helia-for-pkc.ts | 19 +- src/helia/util.ts | 13 +- src/signer/util.ts | 10 +- 5 files changed, 976 insertions(+), 333 deletions(-) diff --git a/package-lock.json b/package-lock.json index ce4e0f049..ae340f2d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "@pkcprotocol/proper-lock-file": "4.2.1", "assert": "2.1.0", "better-sqlite3": "12.9.0", - "blockstore-core": "6.1.3", + "blockstore-core": "7.0.1", "buffer": "6.0.3", "cbor": "10.0.11", "cborg": "4.5.8", @@ -34,19 +34,19 @@ "ext-name": "5.0.0", "helia": "6.1.4", "hpagent": "1.2.0", - "ipfs-unixfs-importer": "16.1.4", - "ipns": "10.1.3", + "ipfs-unixfs-importer": "17.0.1", + "ipns": "11.0.0", "it-all": "3.0.6", "it-last": "3.0.11", "js-sha256": "0.11.1", "js-sha512": "0.9.0", - "kubo-rpc-client": "6.1.0", + "kubo-rpc-client": "7.1.0", "libp2p": "3.3.3", "limiter-es6-compat": "2.1.2", "localforage": "1.10.0", "lodash.merge": "4.6.2", "lru-cache": "10.1.0", - "multiformats": "13.4.2", + "multiformats": "14.0.0", "node-forge": "1.4.0", "open-graph-scraper": "6.11.0", "p-limit": "7.3.0", @@ -62,7 +62,7 @@ "tinycache": "1.1.2", "ts-custom-error": "3.3.1", "typestub-ipfs-only-hash": "4.0.0", - "uint8arrays": "5.1.0", + "uint8arrays": "6.1.1", "undici": "7.24.7", "uuid": "13.0.0", "ws": "8.20.0", @@ -121,6 +121,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@achingbrain/http-parser-js/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@achingbrain/http-parser-js/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@achingbrain/nat-port-mapper": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-4.0.5.tgz", @@ -453,6 +468,12 @@ "wherearewe": "^2.0.1" } }, + "node_modules/@chainsafe/libp2p-noise/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/@chainsafe/libp2p-noise/node_modules/protons-runtime": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-5.6.0.tgz", @@ -464,6 +485,15 @@ "uint8arrays": "^5.0.1" } }, + "node_modules/@chainsafe/libp2p-noise/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@chainsafe/libp2p-yamux": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-yamux/-/libp2p-yamux-8.0.1.tgz", @@ -932,6 +962,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@helia/bitswap/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@helia/bitswap/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@helia/block-brokers": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/@helia/block-brokers/-/block-brokers-5.2.4.tgz", @@ -955,6 +1000,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@helia/block-brokers/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@helia/block-brokers/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@helia/delegated-routing-v1-http-api-client": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@helia/delegated-routing-v1-http-api-client/-/delegated-routing-v1-http-api-client-8.0.1.tgz", @@ -974,21 +1034,6 @@ "uint8arrays": "^6.1.1" } }, - "node_modules/@helia/delegated-routing-v1-http-api-client/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@helia/delegated-routing-v1-http-api-client/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/@helia/interface": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/@helia/interface/-/interface-6.2.1.tgz", @@ -1005,6 +1050,12 @@ "progress-events": "^1.1.0" } }, + "node_modules/@helia/interface/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/@helia/ipns": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/@helia/ipns/-/ipns-9.2.1.tgz", @@ -1032,6 +1083,48 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@helia/ipns/node_modules/cborg": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.1.tgz", + "integrity": "sha512-BDbSRIp6XrQXkTc7g+DN0RB9RrDPTUfals2ecWUlt3juPLjbAvy/V72mJcXY0Ehu0Dq/3WpNCOCT68HUTbW+lw==", + "license": "Apache-2.0", + "bin": { + "cborg": "lib/bin.js" + } + }, + "node_modules/@helia/ipns/node_modules/ipns": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/ipns/-/ipns-10.1.6.tgz", + "integrity": "sha512-mTACIdTBBXY5kbCo3t/M3ycNWbjajLrSXhTvjD0MEGyOUaI3uMv94JbJSHGaJ2xxRlpOrRk1ifToOsyPZiglnA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.0", + "@libp2p/interface": "^3.0.2", + "@libp2p/logger": "^6.0.4", + "cborg": "^5.1.0", + "interface-datastore": "^9.0.2", + "multiformats": "^13.2.2", + "protons-runtime": "^6.0.1", + "timestamp-nano": "^1.0.1", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@helia/ipns/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@helia/ipns/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@helia/routers": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@helia/routers/-/routers-5.1.1.tgz", @@ -1071,6 +1164,33 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@helia/routers/node_modules/cborg": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.1.tgz", + "integrity": "sha512-BDbSRIp6XrQXkTc7g+DN0RB9RrDPTUfals2ecWUlt3juPLjbAvy/V72mJcXY0Ehu0Dq/3WpNCOCT68HUTbW+lw==", + "license": "Apache-2.0", + "bin": { + "cborg": "lib/bin.js" + } + }, + "node_modules/@helia/routers/node_modules/ipns": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/ipns/-/ipns-10.1.6.tgz", + "integrity": "sha512-mTACIdTBBXY5kbCo3t/M3ycNWbjajLrSXhTvjD0MEGyOUaI3uMv94JbJSHGaJ2xxRlpOrRk1ifToOsyPZiglnA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.0", + "@libp2p/interface": "^3.0.2", + "@libp2p/logger": "^6.0.4", + "cborg": "^5.1.0", + "interface-datastore": "^9.0.2", + "multiformats": "^13.2.2", + "protons-runtime": "^6.0.1", + "timestamp-nano": "^1.0.1", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, "node_modules/@helia/routers/node_modules/it-ndjson": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/it-ndjson/-/it-ndjson-1.1.6.tgz", @@ -1080,6 +1200,21 @@ "uint8arraylist": "^2.4.8" } }, + "node_modules/@helia/routers/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@helia/routers/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@helia/unixfs": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/@helia/unixfs/-/unixfs-7.2.1.tgz", @@ -1108,12 +1243,66 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@helia/unixfs/node_modules/blockstore-core": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-6.1.3.tgz", + "integrity": "sha512-GLb6XpvbWOlrz1Liz8lTH8iZoXfJ7otY02i26Ok1q6lDkr9uN3jcZq8GzhNq76jJ7CkFG/EGP8J75F3MFo7v6A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/logger": "^6.2.4", + "interface-blockstore": "^6.0.0", + "interface-store": "^7.0.0", + "it-all": "^3.0.9", + "it-filter": "^3.1.4", + "it-merge": "^3.0.12", + "multiformats": "^13.4.2" + } + }, + "node_modules/@helia/unixfs/node_modules/ipfs-unixfs-importer": { + "version": "16.1.5", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-16.1.5.tgz", + "integrity": "sha512-w/voTDW5gt5RlZlJ/EljU4q4s+4any2LZ+10UJR7i24+xWWv1+ReyaC9dz46U6HB5YqztAKCzBB123OOsDsNFg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@ipld/dag-pb": "^4.1.5", + "@multiformats/murmur3": "^2.1.8", + "blockstore-core": "^6.1.2", + "hamt-sharding": "^3.0.6", + "interface-blockstore": "^6.0.1", + "interface-store": "^7.0.0", + "ipfs-unixfs": "^12.0.0", + "it-all": "^3.0.9", + "it-batch": "^3.0.9", + "it-first": "^3.0.9", + "it-parallel-batch": "^3.0.9", + "multiformats": "^13.3.7", + "progress-events": "^1.0.1", + "rabin-wasm": "^0.1.5", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, "node_modules/@helia/unixfs/node_modules/it-all": { "version": "3.0.11", "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.11.tgz", "integrity": "sha512-Gvqj6MO4GMLnFdtE68HZRpGBskNC+9+GQ+JevTGNYLyhjUuPhjDLU3jN1LpBemXJDW1bRSkczqA/qGyKlPKrcQ==", "license": "Apache-2.0 OR MIT" }, + "node_modules/@helia/unixfs/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@helia/unixfs/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@helia/utils": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/@helia/utils/-/utils-2.5.2.tgz", @@ -1149,6 +1338,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@helia/utils/node_modules/blockstore-core": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-6.1.3.tgz", + "integrity": "sha512-GLb6XpvbWOlrz1Liz8lTH8iZoXfJ7otY02i26Ok1q6lDkr9uN3jcZq8GzhNq76jJ7CkFG/EGP8J75F3MFo7v6A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/logger": "^6.2.4", + "interface-blockstore": "^6.0.0", + "interface-store": "^7.0.0", + "it-all": "^3.0.9", + "it-filter": "^3.1.4", + "it-merge": "^3.0.12", + "multiformats": "^13.4.2" + } + }, "node_modules/@helia/utils/node_modules/cborg": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.1.tgz", @@ -1158,6 +1362,27 @@ "cborg": "lib/bin.js" } }, + "node_modules/@helia/utils/node_modules/it-all": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.11.tgz", + "integrity": "sha512-Gvqj6MO4GMLnFdtE68HZRpGBskNC+9+GQ+JevTGNYLyhjUuPhjDLU3jN1LpBemXJDW1bRSkczqA/qGyKlPKrcQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@helia/utils/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@helia/utils/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@inquirer/ansi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", @@ -1590,6 +1815,12 @@ "cborg": "lib/bin.js" } }, + "node_modules/@ipld/dag-cbor/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/@ipld/dag-json": { "version": "10.2.7", "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.2.7.tgz", @@ -1613,13 +1844,19 @@ "cborg": "lib/bin.js" } }, + "node_modules/@ipld/dag-json/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/@ipld/dag-pb": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-4.1.5.tgz", - "integrity": "sha512-w4PZ2yPqvNmlAir7/2hsCRMqny1EY5jj26iZcSgxREJexmbAc2FI21jp26MqiNdfgAxvkCnf2N/TJI18GaDNwA==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-4.1.7.tgz", + "integrity": "sha512-/i/13trFihjWfDyXlylRwhuYjtzYjvOFw0vlRjYGnZuv7d7MOgA2lV/vRuL5RfeUajM03aZfFLdq4S7cTbbTRg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "multiformats": "^13.1.0" + "multiformats": "^14.0.0" }, "engines": { "node": ">=16.0.0", @@ -1662,6 +1899,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@ipshipyard/libp2p-auto-tls/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@ipshipyard/libp2p-auto-tls/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@isaacs/ttlcache": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", @@ -1788,6 +2040,12 @@ "uint8arraylist": "^2.4.8" } }, + "node_modules/@libp2p/autonat/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/@libp2p/bootstrap": { "version": "12.0.16", "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-12.0.16.tgz", @@ -1828,6 +2086,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/circuit-relay-v2/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/circuit-relay-v2/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/config": { "version": "1.1.27", "resolved": "https://registry.npmjs.org/@libp2p/config/-/config-1.1.27.tgz", @@ -1856,21 +2129,6 @@ "uint8arrays": "^6.1.1" } }, - "node_modules/@libp2p/crypto/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/crypto/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/@libp2p/dcutr": { "version": "3.0.15", "resolved": "https://registry.npmjs.org/@libp2p/dcutr/-/dcutr-3.0.15.tgz", @@ -1902,21 +2160,6 @@ "uint8arrays": "^6.1.1" } }, - "node_modules/@libp2p/fetch/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/fetch/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/@libp2p/gossipsub": { "version": "16.0.2", "resolved": "https://registry.npmjs.org/@libp2p/gossipsub/-/gossipsub-16.0.2.tgz", @@ -1942,21 +2185,6 @@ "npm": ">=8.7.0" } }, - "node_modules/@libp2p/gossipsub/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/gossipsub/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/@libp2p/http": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@libp2p/http/-/http-2.0.1.tgz", @@ -1986,6 +2214,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/http-fetch/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/http-fetch/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/http-peer-id-auth": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@libp2p/http-peer-id-auth/-/http-peer-id-auth-2.0.0.tgz", @@ -1999,6 +2242,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/http-peer-id-auth/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/http-peer-id-auth/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/http-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@libp2p/http-utils/-/http-utils-2.0.1.tgz", @@ -2020,6 +2278,12 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/http-utils/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/@libp2p/http-utils/node_modules/readable-stream": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", @@ -2036,6 +2300,15 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@libp2p/http-utils/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/http-websocket": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@libp2p/http-websocket/-/http-websocket-2.0.1.tgz", @@ -2054,6 +2327,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/http-websocket/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/http-websocket/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/identify": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-4.1.7.tgz", @@ -2076,21 +2364,6 @@ "uint8arrays": "^6.1.1" } }, - "node_modules/@libp2p/identify/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/identify/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/@libp2p/interface": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.2.3.tgz", @@ -2117,12 +2390,6 @@ "progress-events": "^1.0.1" } }, - "node_modules/@libp2p/interface/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, "node_modules/@libp2p/kad-dht": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-16.2.0.tgz", @@ -2168,6 +2435,21 @@ "integrity": "sha512-fz1oJJ36ciGnu2LntAlE6SA97bFZpW7Rnt0uEc1yazzR2nKokZLr8lIRtgnpex4NsmaBcvHF+Z9krljWFy/mmg==", "license": "Apache-2.0 OR MIT" }, + "node_modules/@libp2p/kad-dht/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/kad-dht/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/keychain": { "version": "6.0.12", "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-6.0.12.tgz", @@ -2184,6 +2466,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/keychain/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/keychain/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/logger": { "version": "6.2.8", "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-6.2.8.tgz", @@ -2197,12 +2494,6 @@ "weald": "^1.1.0" } }, - "node_modules/@libp2p/logger/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, "node_modules/@libp2p/mdns": { "version": "12.0.16", "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-12.0.16.tgz", @@ -2234,6 +2525,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/mplex/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/mplex/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/multistream-select": { "version": "7.0.21", "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-7.0.21.tgz", @@ -2247,21 +2553,6 @@ "uint8arrays": "^6.1.1" } }, - "node_modules/@libp2p/multistream-select/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/multistream-select/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/@libp2p/peer-collections": { "version": "7.0.21", "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-7.0.21.tgz", @@ -2274,37 +2565,16 @@ "multiformats": "^14.0.0" } }, - "node_modules/@libp2p/peer-collections/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, "node_modules/@libp2p/peer-id": { "version": "6.0.10", "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-6.0.10.tgz", "integrity": "sha512-FgXeraxl932zim/K+vipCkscjLNMsyNVBh1NpGcJ+y8DQi/jgFXV4YZ0M2JuWM20GTcVCqDT5P10A0DJHRjecg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.1.19", - "@libp2p/interface": "^3.2.3", - "multiformats": "^14.0.0", - "uint8arrays": "^6.1.1" - } - }, - "node_modules/@libp2p/peer-id/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/peer-id/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" + "@libp2p/crypto": "^5.1.19", + "@libp2p/interface": "^3.2.3", + "multiformats": "^14.0.0", + "uint8arrays": "^6.1.1" } }, "node_modules/@libp2p/peer-record": { @@ -2324,21 +2594,6 @@ "uint8arrays": "^6.1.1" } }, - "node_modules/@libp2p/peer-record/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/peer-record/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/@libp2p/peer-store": { "version": "12.0.21", "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-12.0.21.tgz", @@ -2367,21 +2622,6 @@ "integrity": "sha512-Gvqj6MO4GMLnFdtE68HZRpGBskNC+9+GQ+JevTGNYLyhjUuPhjDLU3jN1LpBemXJDW1bRSkczqA/qGyKlPKrcQ==", "license": "Apache-2.0 OR MIT" }, - "node_modules/@libp2p/peer-store/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/peer-store/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/@libp2p/ping": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@libp2p/ping/-/ping-3.1.0.tgz", @@ -2397,6 +2637,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/ping/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/ping/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/record": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/@libp2p/record/-/record-4.0.10.tgz", @@ -2408,6 +2663,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/record/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/record/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/tcp": { "version": "11.0.15", "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-11.0.15.tgz", @@ -2455,6 +2725,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/tls/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/tls/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/upnp-nat": { "version": "4.0.15", "resolved": "https://registry.npmjs.org/@libp2p/upnp-nat/-/upnp-nat-4.0.15.tgz", @@ -2515,21 +2800,6 @@ "cborg": "lib/bin.js" } }, - "node_modules/@libp2p/utils/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/@libp2p/utils/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/@libp2p/webrtc": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-6.0.16.tgz", @@ -2571,6 +2841,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/webrtc/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/webrtc/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@libp2p/websockets": { "version": "10.1.11", "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-10.1.11.tgz", @@ -2590,6 +2875,21 @@ "ws": "^8.18.3" } }, + "node_modules/@libp2p/websockets/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/websockets/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@multiformats/base-x": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", @@ -2610,6 +2910,21 @@ "uint8arrays": "^5.0.2" } }, + "node_modules/@multiformats/dns/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@multiformats/dns/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@multiformats/multiaddr": { "version": "13.0.3", "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.3.tgz", @@ -2640,12 +2955,6 @@ "@multiformats/multiaddr": "^13.0.0" } }, - "node_modules/@multiformats/multiaddr/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, "node_modules/@multiformats/multiaddr/node_modules/uint8-varint": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-3.0.0.tgz", @@ -2665,22 +2974,13 @@ "uint8arrays": "^6.0.0" } }, - "node_modules/@multiformats/multiaddr/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/@multiformats/murmur3": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-2.2.2.tgz", - "integrity": "sha512-B37HsL4uqZpKzOPRNmpr9hR1lbywZfJR053sYgkQGnnbfNzM1Nw4SlL9I8hMAZRk1TOqr8q+PeaFeuNmKgi2YA==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-2.2.5.tgz", + "integrity": "sha512-M+VwV8hEx5qB8i7b8fljMwZETJsqyLo8RAXA+JAn+QF9NnH46ZWvGErNukJVlxXSR2KQpuOtHIYIzZlbhhdFvw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "multiformats": "^13.0.0" + "multiformats": "^14.0.0" }, "engines": { "node": ">=16.0.0", @@ -5829,27 +6129,47 @@ "license": "MIT" }, "node_modules/blob-to-it": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-2.0.10.tgz", - "integrity": "sha512-I39vO57y+LBEIcAV7fif0sn96fYOYVqrPiOD+53MxQGv4DBgt1/HHZh0BHheWx2hVe24q5LTSXxqeV1Y3Nzkgg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-3.0.0.tgz", + "integrity": "sha512-KhVc/vccFEeqZIf7xFLkMnaNGL+7umpvqSqyL2XfOobfHQ3RQB9aLau/F6WhoE5S3TbtYYtrX3+HkISpkY+jXw==", "license": "Apache-2.0 OR MIT", "dependencies": { "browser-readablestream-to-it": "^2.0.0" } }, "node_modules/blockstore-core": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-6.1.3.tgz", - "integrity": "sha512-GLb6XpvbWOlrz1Liz8lTH8iZoXfJ7otY02i26Ok1q6lDkr9uN3jcZq8GzhNq76jJ7CkFG/EGP8J75F3MFo7v6A==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-7.0.1.tgz", + "integrity": "sha512-HgLzdH8oL6DrMC6J7snxmV0TXzJ/BMPSbskH4v7BBuUO9foDBOMEKUfoMX9yoBpxbH+r3Z9afXHDgXlTifMxHQ==", "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/logger": "^6.2.4", - "interface-blockstore": "^6.0.0", - "interface-store": "^7.0.0", + "abort-error": "^1.0.2", + "interface-blockstore": "^7.0.0", + "interface-store": "^8.0.0", "it-all": "^3.0.9", "it-filter": "^3.1.4", "it-merge": "^3.0.12", - "multiformats": "^13.4.2" + "multiformats": "^14.0.0" + } + }, + "node_modules/blockstore-core/node_modules/interface-blockstore": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-7.0.1.tgz", + "integrity": "sha512-a3NsgRXpRppVWtQnJjmZ9jxvjcttY1+WNWqHFWwgKhRcNMMGwWGtFNYpQmcZ+mEnIt5NTJVYzNwLCcALMWPNsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "interface-store": "^8.0.0", + "multiformats": "^14.0.0" + } + }, + "node_modules/blockstore-core/node_modules/interface-store": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-8.0.0.tgz", + "integrity": "sha512-e2+s3EEROzM+Wlas4hU3zveTUscvVMf1BOvdsJfpzFm19SoEXLVadpACjWOnM491HqGpvtfFnevyiaN8W+I6Eg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "abort-error": "^1.0.2" } }, "node_modules/blockstore-core/node_modules/it-all": { @@ -9405,13 +9725,13 @@ } }, "node_modules/hamt-sharding": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-3.0.6.tgz", - "integrity": "sha512-nZeamxfymIWLpVcAN0CRrb7uVq3hCOGj9IcL6NMA6VVCVWqj+h9Jo/SmaWuS92AEDf1thmHsM5D5c70hM3j2Tg==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-3.0.8.tgz", + "integrity": "sha512-pEh4hYa4ZyDJ2jWBTz7MVqTTGC3va3iEIMDJfbCKskR9rzHRd8HVwUyH5nLiLxK6VCFWIJ4vnlAEn4Hwx49Rbg==", "license": "Apache-2.0 OR MIT", "dependencies": { "sparse-array": "^1.3.1", - "uint8arrays": "^5.0.1" + "uint8arrays": "^6.1.1" } }, "node_modules/handlebars": { @@ -9629,6 +9949,54 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/helia/node_modules/blockstore-core": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-6.1.3.tgz", + "integrity": "sha512-GLb6XpvbWOlrz1Liz8lTH8iZoXfJ7otY02i26Ok1q6lDkr9uN3jcZq8GzhNq76jJ7CkFG/EGP8J75F3MFo7v6A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/logger": "^6.2.4", + "interface-blockstore": "^6.0.0", + "interface-store": "^7.0.0", + "it-all": "^3.0.9", + "it-filter": "^3.1.4", + "it-merge": "^3.0.12", + "multiformats": "^13.4.2" + } + }, + "node_modules/helia/node_modules/cborg": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.1.tgz", + "integrity": "sha512-BDbSRIp6XrQXkTc7g+DN0RB9RrDPTUfals2ecWUlt3juPLjbAvy/V72mJcXY0Ehu0Dq/3WpNCOCT68HUTbW+lw==", + "license": "Apache-2.0", + "bin": { + "cborg": "lib/bin.js" + } + }, + "node_modules/helia/node_modules/ipns": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/ipns/-/ipns-10.1.6.tgz", + "integrity": "sha512-mTACIdTBBXY5kbCo3t/M3ycNWbjajLrSXhTvjD0MEGyOUaI3uMv94JbJSHGaJ2xxRlpOrRk1ifToOsyPZiglnA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.0", + "@libp2p/interface": "^3.0.2", + "@libp2p/logger": "^6.0.4", + "cborg": "^5.1.0", + "interface-datastore": "^9.0.2", + "multiformats": "^13.2.2", + "protons-runtime": "^6.0.1", + "timestamp-nano": "^1.0.1", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/helia/node_modules/it-all": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.11.tgz", + "integrity": "sha512-Gvqj6MO4GMLnFdtE68HZRpGBskNC+9+GQ+JevTGNYLyhjUuPhjDLU3jN1LpBemXJDW1bRSkczqA/qGyKlPKrcQ==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/helia/node_modules/it-ndjson": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/it-ndjson/-/it-ndjson-1.1.6.tgz", @@ -9638,6 +10006,21 @@ "uint8arraylist": "^2.4.8" } }, + "node_modules/helia/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/helia/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/hermes-compiler": { "version": "250829098.0.10", "resolved": "https://registry.npmjs.org/hermes-compiler/-/hermes-compiler-250829098.0.10.tgz", @@ -9999,6 +10382,12 @@ "multiformats": "^13.4.2" } }, + "node_modules/interface-blockstore/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, "node_modules/interface-datastore": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-9.0.3.tgz", @@ -10009,6 +10398,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/interface-datastore/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/interface-datastore/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/interface-ipld-format": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/interface-ipld-format/-/interface-ipld-format-1.0.1.tgz", @@ -10341,34 +10745,104 @@ "progress-events": "^1.0.1" } }, - "node_modules/ipfs-unixfs-importer": { - "version": "16.1.4", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-16.1.4.tgz", - "integrity": "sha512-apnhvrTRFZMt7YUjyHJcvaPN1SSgBQ7OQIjTb2LppRDbY20kzVO8PcROLOzpinFmeZlVfx0QONy8aNfAcT3b2w==", + "node_modules/ipfs-unixfs-exporter/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/ipfs-unixfs-importer": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-17.0.1.tgz", + "integrity": "sha512-4MC1itlM3OOAQDgyr/htPJ13p9FulXEc+pe0yw4Gx3hCYxyQibTd6EZfefglkzcCURsYoqm5neMFdVrTMQL4tQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@ipld/dag-pb": "^4.1.7", + "@multiformats/murmur3": "^2.2.5", + "blockstore-core": "^7.0.1", + "hamt-sharding": "^3.0.8", + "interface-blockstore": "^7.0.1", + "ipfs-unixfs": "^13.0.0", + "it-all": "^3.0.11", + "it-batch": "^3.0.11", + "it-first": "^3.0.11", + "it-parallel-batch": "^3.0.11", + "multiformats": "^14.0.0", + "progress-events": "^1.1.0", + "rabin-wasm": "^0.1.5", + "uint8arraylist": "^3.0.2", + "uint8arrays": "^6.1.1" + } + }, + "node_modules/ipfs-unixfs-importer/node_modules/interface-blockstore": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-7.0.1.tgz", + "integrity": "sha512-a3NsgRXpRppVWtQnJjmZ9jxvjcttY1+WNWqHFWwgKhRcNMMGwWGtFNYpQmcZ+mEnIt5NTJVYzNwLCcALMWPNsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "interface-store": "^8.0.0", + "multiformats": "^14.0.0" + } + }, + "node_modules/ipfs-unixfs-importer/node_modules/interface-store": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-8.0.0.tgz", + "integrity": "sha512-e2+s3EEROzM+Wlas4hU3zveTUscvVMf1BOvdsJfpzFm19SoEXLVadpACjWOnM491HqGpvtfFnevyiaN8W+I6Eg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "abort-error": "^1.0.2" + } + }, + "node_modules/ipfs-unixfs-importer/node_modules/ipfs-unixfs": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-13.0.0.tgz", + "integrity": "sha512-5Q9fw95zKA0h/LxRVkQDfp+5lRaDD6i4fzXt70f38b0CRkrbhuj2eUXDjEohfBwBeWcB7UJPW5DzAmgoSNEb8A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "protons-runtime": "^7.0.0", + "uint8arraylist": "^3.0.2" + } + }, + "node_modules/ipfs-unixfs-importer/node_modules/it-all": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.11.tgz", + "integrity": "sha512-Gvqj6MO4GMLnFdtE68HZRpGBskNC+9+GQ+JevTGNYLyhjUuPhjDLU3jN1LpBemXJDW1bRSkczqA/qGyKlPKrcQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/ipfs-unixfs-importer/node_modules/protons-runtime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-7.0.0.tgz", + "integrity": "sha512-r/e72006xoVND4Uvf1aIs4OQOkJaASBU3ip4DzOWAktoKAkTiOYqKoS3TYMBm8HnnYU8+h0uEzr5gIRwk/pmTg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8-varint": "^3.0.0", + "uint8arraylist": "^3.0.0", + "uint8arrays": "^6.0.0" + } + }, + "node_modules/ipfs-unixfs-importer/node_modules/uint8-varint": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-3.0.0.tgz", + "integrity": "sha512-S4DdpXBaLwKcFo7f0bWzWfHjbZ/i3QhM842qn+ZvHjxqFCfUcEB9SQNcmI69S+zMlcmIcKxsk9Iyw77S2Kxv6Q==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@ipld/dag-pb": "^4.1.5", - "@multiformats/murmur3": "^2.1.8", - "blockstore-core": "^6.1.2", - "hamt-sharding": "^3.0.6", - "interface-blockstore": "^6.0.1", - "interface-store": "^7.0.0", - "ipfs-unixfs": "^12.0.0", - "it-all": "^3.0.9", - "it-batch": "^3.0.9", - "it-first": "^3.0.9", - "it-parallel-batch": "^3.0.9", - "multiformats": "^13.3.7", - "progress-events": "^1.0.1", - "rabin-wasm": "^0.1.5", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" + "uint8arraylist": "^3.0.1", + "uint8arrays": "^6.1.0" } }, - "node_modules/ipfs-unixfs-importer/node_modules/it-all": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.9.tgz", - "integrity": "sha512-fz1oJJ36ciGnu2LntAlE6SA97bFZpW7Rnt0uEc1yazzR2nKokZLr8lIRtgnpex4NsmaBcvHF+Z9krljWFy/mmg==", + "node_modules/ipfs-unixfs-importer/node_modules/uint8arraylist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz", + "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arrays": "^6.0.0" + } + }, + "node_modules/ipfs-unixfs/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", "license": "Apache-2.0 OR MIT" }, "node_modules/ipfs-unixfs/node_modules/protons-runtime": { @@ -10382,6 +10856,15 @@ "uint8arrays": "^5.0.1" } }, + "node_modules/ipfs-unixfs/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/ipld-dag-pb": { "version": "0.22.3", "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.22.3.tgz", @@ -10418,32 +10901,80 @@ } }, "node_modules/ipns": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/ipns/-/ipns-10.1.3.tgz", - "integrity": "sha512-b2Zeh8+7qOV11NjnTsYLpG8K6T13uBMndpzk9N9E2Qjz/u80qsxvKpspSP32sErOLr/GWjdFVVc02E9PMojQNA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/ipns/-/ipns-11.0.0.tgz", + "integrity": "sha512-ZcvvgPE8DcaEcSK3vYBUIdo5HPytVKkpV3qVyXTDfBJ4Hg/NTCDyJIpiN2Ak1uCsfFnWbne0MeqtlkmbA5b5kQ==", "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^5.0.0", "@libp2p/interface": "^3.0.2", "@libp2p/logger": "^6.0.4", - "cborg": "^4.2.3", - "interface-datastore": "^9.0.2", - "multiformats": "^13.2.2", - "protons-runtime": "^5.5.0", + "cborg": "^5.1.0", + "interface-datastore": "^10.0.0", + "multiformats": "^14.0.0", + "protons-runtime": "^7.0.0", "timestamp-nano": "^1.0.1", - "uint8arraylist": "^2.4.8", - "uint8arrays": "^5.1.0" + "uint8arraylist": "^3.0.2", + "uint8arrays": "^6.1.1" + } + }, + "node_modules/ipns/node_modules/cborg": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.1.tgz", + "integrity": "sha512-BDbSRIp6XrQXkTc7g+DN0RB9RrDPTUfals2ecWUlt3juPLjbAvy/V72mJcXY0Ehu0Dq/3WpNCOCT68HUTbW+lw==", + "license": "Apache-2.0", + "bin": { + "cborg": "lib/bin.js" + } + }, + "node_modules/ipns/node_modules/interface-datastore": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-10.0.1.tgz", + "integrity": "sha512-DYMj/Og5Cz1Qwkx6/x5KRvR8SYEX7rVAv3KKCm2NzTwWSfpNAC4PahjcYbHyoZBP6zPWrhQv5n5wE+vaDdgSAg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "abort-error": "^1.0.2", + "interface-store": "^8.0.0", + "uint8arrays": "^6.1.1" + } + }, + "node_modules/ipns/node_modules/interface-store": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-8.0.0.tgz", + "integrity": "sha512-e2+s3EEROzM+Wlas4hU3zveTUscvVMf1BOvdsJfpzFm19SoEXLVadpACjWOnM491HqGpvtfFnevyiaN8W+I6Eg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "abort-error": "^1.0.2" } }, "node_modules/ipns/node_modules/protons-runtime": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-5.6.0.tgz", - "integrity": "sha512-/Kde+sB9DsMFrddJT/UZWe6XqvL7SL5dbag/DBCElFKhkwDj7XKt53S+mzLyaDP5OqS0wXjV5SA572uWDaT0Hg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-7.0.0.tgz", + "integrity": "sha512-r/e72006xoVND4Uvf1aIs4OQOkJaASBU3ip4DzOWAktoKAkTiOYqKoS3TYMBm8HnnYU8+h0uEzr5gIRwk/pmTg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "uint8-varint": "^2.0.2", - "uint8arraylist": "^2.4.3", - "uint8arrays": "^5.0.1" + "uint8-varint": "^3.0.0", + "uint8arraylist": "^3.0.0", + "uint8arrays": "^6.0.0" + } + }, + "node_modules/ipns/node_modules/uint8-varint": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-3.0.0.tgz", + "integrity": "sha512-S4DdpXBaLwKcFo7f0bWzWfHjbZ/i3QhM842qn+ZvHjxqFCfUcEB9SQNcmI69S+zMlcmIcKxsk9Iyw77S2Kxv6Q==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arraylist": "^3.0.1", + "uint8arrays": "^6.1.0" + } + }, + "node_modules/ipns/node_modules/uint8arraylist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz", + "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arrays": "^6.0.0" } }, "node_modules/is-arguments": { @@ -11194,9 +11725,9 @@ "license": "Apache-2.0 OR MIT" }, "node_modules/it-batch": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-3.0.9.tgz", - "integrity": "sha512-z6p89Q8gm2urBtF3JcpnbJogacijWk3m1uc3xZYI3x0eJUoYLUbgF8IxJ2fnuVObV7yRv3SixfwGCufaZY1NCg==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-3.0.11.tgz", + "integrity": "sha512-2bvKErkXhtwKYDLKAGdEgveOs8wB0i3RItbaroP/6cC/QlrM7j+HAq/yJq6ci4J7KnzdRi76GyipKlafdOTBgw==", "license": "Apache-2.0 OR MIT" }, "node_modules/it-byte-stream": { @@ -11293,6 +11824,21 @@ "uint8arraylist": "^2.4.8" } }, + "node_modules/it-length-prefixed/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/it-length-prefixed/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/it-map": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.1.6.tgz", @@ -11320,12 +11866,6 @@ "uint8arraylist": "^3.0.1" } }, - "node_modules/it-ndjson/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, "node_modules/it-ndjson/node_modules/uint8arraylist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz", @@ -11335,15 +11875,6 @@ "uint8arrays": "^6.0.0" } }, - "node_modules/it-ndjson/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/it-parallel": { "version": "3.0.13", "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-3.0.13.tgz", @@ -11354,9 +11885,9 @@ } }, "node_modules/it-parallel-batch": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-3.0.9.tgz", - "integrity": "sha512-TszXWqqLG8IG5DUEnC4cgH9aZI6CsGS7sdkXTiiacMIj913bFy7+ohU3IqsFURCcZkpnXtNLNzrYnXISsKBhbQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-3.0.11.tgz", + "integrity": "sha512-n2gvHRVx14COn25jkio+fOHuKWaA5EVf9f0GbdWgVe8gXRIMYCai+CbmQACIv7o2Jn3ZAUOXD9Ob1Ftod0qtJQ==", "license": "Apache-2.0 OR MIT", "dependencies": { "it-batch": "^3.0.0" @@ -11481,6 +12012,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/it-to-buffer/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/it-to-buffer/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/it-to-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", @@ -11878,13 +12424,13 @@ } }, "node_modules/kubo-rpc-client": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/kubo-rpc-client/-/kubo-rpc-client-6.1.0.tgz", - "integrity": "sha512-CH3vcqSGlEhr/HCZYQgYpXxmwIOYhNed4BQmAYmHpX7sehTC3iKK/36x7anEdRTgmV6KB66MyOk1yuhU2HqKFw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/kubo-rpc-client/-/kubo-rpc-client-7.1.0.tgz", + "integrity": "sha512-sEFzNx+KxHPLa0iHgdszfHnNlQOwxd3t2v9LVSJq57htpfJftdps1eWRMvMASCqe6AtwW3bE7fzyd4z2hXLTlA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@ipld/dag-cbor": "^9.0.0", - "@ipld/dag-json": "^10.0.0", + "@ipld/dag-cbor": "^10.0.1", + "@ipld/dag-json": "^11.0.0", "@ipld/dag-pb": "^4.0.0", "@libp2p/crypto": "^5.0.0", "@libp2p/interface": "^3.0.2", @@ -11893,12 +12439,12 @@ "@multiformats/multiaddr": "^13.0.1", "@multiformats/multiaddr-to-uri": "^12.0.0", "any-signal": "^4.1.1", - "blob-to-it": "^2.0.5", + "blob-to-it": "^3.0.0", "browser-readablestream-to-it": "^2.0.5", "dag-jose": "^5.0.0", "electron-fetch": "^1.9.1", "err-code": "^3.0.1", - "ipfs-unixfs": "^12.0.0", + "ipfs-unixfs": "^13.0.0", "iso-url": "^1.2.1", "it-all": "^3.0.4", "it-first": "^3.0.4", @@ -11908,14 +12454,83 @@ "it-peekable": "^3.0.3", "it-to-stream": "^1.0.0", "merge-options": "^3.0.4", - "multiformats": "^13.1.0", + "multiformats": "^14.0.0", "nanoid": "^5.0.7", "parse-duration": "^2.1.2", "stream-to-it": "^1.0.1", - "uint8arrays": "^5.0.3", + "uint8arrays": "^6.1.1", "wherearewe": "^2.0.1" } }, + "node_modules/kubo-rpc-client/node_modules/@ipld/dag-cbor": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-10.0.1.tgz", + "integrity": "sha512-nF07iiZPqduSXyMxc0jGANArRHFa9hjMQpQlgLOV2O/3xI1CNb5sXhvbmigbMiz5owSGi0Oq10VtauupMojuiw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "cborg": "^5.0.1", + "multiformats": "^14.0.0" + } + }, + "node_modules/kubo-rpc-client/node_modules/@ipld/dag-json": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-11.0.0.tgz", + "integrity": "sha512-MeBu61ZwXV1C1s/weqaDz1jyYcnzFd7sFizx1ZoWtPqIzwd8vi4ZeCZpBRSIQ9FdClQMt5FNJPz4ECukKM/SwA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "cborg": "^5.0.0", + "multiformats": "^14.0.0" + } + }, + "node_modules/kubo-rpc-client/node_modules/cborg": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-5.1.1.tgz", + "integrity": "sha512-BDbSRIp6XrQXkTc7g+DN0RB9RrDPTUfals2ecWUlt3juPLjbAvy/V72mJcXY0Ehu0Dq/3WpNCOCT68HUTbW+lw==", + "license": "Apache-2.0", + "bin": { + "cborg": "lib/bin.js" + } + }, + "node_modules/kubo-rpc-client/node_modules/ipfs-unixfs": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-13.0.0.tgz", + "integrity": "sha512-5Q9fw95zKA0h/LxRVkQDfp+5lRaDD6i4fzXt70f38b0CRkrbhuj2eUXDjEohfBwBeWcB7UJPW5DzAmgoSNEb8A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "protons-runtime": "^7.0.0", + "uint8arraylist": "^3.0.2" + } + }, + "node_modules/kubo-rpc-client/node_modules/protons-runtime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-7.0.0.tgz", + "integrity": "sha512-r/e72006xoVND4Uvf1aIs4OQOkJaASBU3ip4DzOWAktoKAkTiOYqKoS3TYMBm8HnnYU8+h0uEzr5gIRwk/pmTg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8-varint": "^3.0.0", + "uint8arraylist": "^3.0.0", + "uint8arrays": "^6.0.0" + } + }, + "node_modules/kubo-rpc-client/node_modules/uint8-varint": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-3.0.0.tgz", + "integrity": "sha512-S4DdpXBaLwKcFo7f0bWzWfHjbZ/i3QhM842qn+ZvHjxqFCfUcEB9SQNcmI69S+zMlcmIcKxsk9Iyw77S2Kxv6Q==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arraylist": "^3.0.1", + "uint8arrays": "^6.1.0" + } + }, + "node_modules/kubo-rpc-client/node_modules/uint8arraylist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz", + "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arrays": "^6.0.0" + } + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -11961,21 +12576,6 @@ "uint8arrays": "^6.1.1" } }, - "node_modules/libp2p/node_modules/multiformats": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", - "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", - "license": "Apache-2.0 OR MIT" - }, - "node_modules/libp2p/node_modules/uint8arrays": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", - "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "multiformats": "^14.0.0" - } - }, "node_modules/lie": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", @@ -13364,9 +13964,9 @@ } }, "node_modules/multiformats": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", - "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz", + "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==", "license": "Apache-2.0 OR MIT" }, "node_modules/multihashes": { @@ -15135,6 +15735,21 @@ "uint8arrays": "^5.1.0" } }, + "node_modules/protons-runtime/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/protons-runtime/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/proxy-agent": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", @@ -18505,6 +19120,21 @@ "uint8arrays": "^5.0.0" } }, + "node_modules/uint8-varint/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/uint8-varint/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/uint8arraylist": { "version": "2.4.8", "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.8.tgz", @@ -18514,15 +19144,30 @@ "uint8arrays": "^5.0.1" } }, - "node_modules/uint8arrays": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", - "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "node_modules/uint8arraylist/node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/uint8arraylist/node_modules/uint8arrays": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.1.tgz", + "integrity": "sha512-9muQwa4wZG4dKi9gMAIBtnk2Pw87SRpvWTH6lOGm19V2Uqxr4uomUf2PGqPnWc+qs06sN8owUU4jfcoWOcfwVQ==", "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^13.0.0" } }, + "node_modules/uint8arrays": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz", + "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^14.0.0" + } + }, "node_modules/unbash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unbash/-/unbash-3.0.0.tgz", diff --git a/package.json b/package.json index 3cf184844..7328420c1 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "@pkcprotocol/proper-lock-file": "4.2.1", "assert": "2.1.0", "better-sqlite3": "12.9.0", - "blockstore-core": "6.1.3", + "blockstore-core": "7.0.1", "buffer": "6.0.3", "cbor": "10.0.11", "cborg": "4.5.8", @@ -92,19 +92,19 @@ "ext-name": "5.0.0", "helia": "6.1.4", "hpagent": "1.2.0", - "ipfs-unixfs-importer": "16.1.4", - "ipns": "10.1.3", + "ipfs-unixfs-importer": "17.0.1", + "ipns": "11.0.0", "it-all": "3.0.6", "it-last": "3.0.11", "js-sha256": "0.11.1", "js-sha512": "0.9.0", - "kubo-rpc-client": "6.1.0", + "kubo-rpc-client": "7.1.0", "libp2p": "3.3.3", "limiter-es6-compat": "2.1.2", "localforage": "1.10.0", "lodash.merge": "4.6.2", "lru-cache": "10.1.0", - "multiformats": "13.4.2", + "multiformats": "14.0.0", "node-forge": "1.4.0", "open-graph-scraper": "6.11.0", "p-limit": "7.3.0", @@ -120,7 +120,7 @@ "tinycache": "1.1.2", "ts-custom-error": "3.3.1", "typestub-ipfs-only-hash": "4.0.0", - "uint8arrays": "5.1.0", + "uint8arrays": "6.1.1", "undici": "7.24.7", "uuid": "13.0.0", "ws": "8.20.0", diff --git a/src/helia/helia-for-pkc.ts b/src/helia/helia-for-pkc.ts index 98118cb7f..83411dbea 100644 --- a/src/helia/helia-for-pkc.ts +++ b/src/helia/helia-for-pkc.ts @@ -143,6 +143,21 @@ export async function createLibp2pJsClientOrUseExistingOne( const heliaFs = unixfs(helia); + // @helia/unixfs 7.x (and its ipfs-unixfs-exporter) still run multiformats 13 while our + // top-level multiformats is 14. The exporter strict-checks CID class identity + // (`CID.asCID(path) === path || path instanceof CID`), so a multiformats-14 CID instance + // from our CID.parse is rejected at runtime with "Path must be string or CID". We + // therefore hand heliaFs.cat the CID *string*: @helia/unixfs's resolve() only template- + // interpolates the cid when a sub-path is given, and the exporter's string branch parses + // it with its own multiformats copy, keeping the whole DAG walk self-consistent. The + // CID.parse calls below stay as input validation only. Remove this once helia ships on + // multiformats 14. + type HeliaCatCid = Parameters<(typeof heliaFs)["cat"]>[0]; + const asHeliaCatCid = (cidString: string): HeliaCatCid => { + CID.parse(cidString); // throws on malformed input, mirroring the previous behavior + return cidString as unknown as HeliaCatCid; + }; + const ipnsNameResolver = ipns(helia, { routers: [createIpnsPubusubRouter(helia)] }); @@ -310,10 +325,10 @@ export async function createLibp2pJsClientOrUseExistingOne( const rootCid = ipfsPath.split("/")[0]; const path = ipfsPath.split("/").slice(1).join("/"); - return heliaFs.cat(CID.parse(rootCid), { ...options, path }); + return heliaFs.cat(asHeliaCatCid(rootCid), { ...options, path }); } else { // a cid string - return heliaFs.cat(CID.parse(ipfsPath), options); + return heliaFs.cat(asHeliaCatCid(ipfsPath), options); } }, pubsub: { diff --git a/src/helia/util.ts b/src/helia/util.ts index b503ec6cc..b1b8b99de 100644 --- a/src/helia/util.ts +++ b/src/helia/util.ts @@ -8,14 +8,6 @@ import { pubsubTopicToDhtKeyCid } from "../util.js"; const TOPIC_SUBSCRIBER_WAIT_TIMEOUT_MS = 10_000; const MESH_PEER_WAIT_TIMEOUT_MS = 3_000; -// @libp2p/interface 3.2.3+ types against multiformats 14 while helia 6 (and therefore our -// top-level multiformats) is still on 13. We deliberately stay on 13 at runtime because -// ipfs-unixfs-exporter (inside @helia/unixfs) does a strict same-class CID identity check -// (`CID.asCID(path) === path`) that a multiformats-14 CID instance fails. The 13 vs 14 -// difference is type-level only (Uint8Array vs ArrayBufferLike), so bridging -// the libp2p-facing call sites with a cast is sound. Revisit when helia moves to multiformats 14. -type Libp2pCid = Parameters[0]; - export interface HeliaDebugContext { heliaPeerId: string; heliaStatus: HeliaWithLibp2pPubsub["libp2p"]["status"]; @@ -215,10 +207,7 @@ export async function connectToPubsubPeers({ const inflightDialPromises: Promise[] = []; const dialOptions = { ...options }; try { - for await (const peer of helia.libp2p.contentRouting.findProviders(contentCid as Libp2pCid, { - ...options, - signal: findProvidersSignal - })) { + for await (const peer of helia.libp2p.contentRouting.findProviders(contentCid, { ...options, signal: findProvidersSignal })) { peersWithContent.push(peer as PeerInfo); const dialPromise = (async () => { try { diff --git a/src/signer/util.ts b/src/signer/util.ts index 764560c1e..6477c1d9f 100644 --- a/src/signer/util.ts +++ b/src/signer/util.ts @@ -15,12 +15,6 @@ import { CID } from "multiformats/cid"; import { bases } from "multiformats/basics"; import Logger from "../logger.js"; -// @libp2p/peer-id 6.0.10+ types against multiformats 14 while helia 6 (and therefore our -// top-level multiformats) is still on 13 — see the longer note in src/helia/util.ts. The -// difference is type-level only, so bridging with a cast is sound. Revisit when helia moves -// to multiformats 14. -type Libp2pMultihashDigest = Parameters[0]; - export const generatePrivateKey = async (): Promise => { const privateKeyBuffer = ed25519.utils.randomSecretKey(); const privateKeyBase64 = uint8ArrayToString(privateKeyBuffer, "base64"); @@ -151,7 +145,7 @@ export const convertBase58IpnsNameToBase36Cid = (ipnsName: string): string => { export function convertBase32ToBase58btc(base32String: string) { // Decode base32 to bytes const cid = CID.parse(base32String); - const peerId = peerIdFromMultihash(cid.multihash as Libp2pMultihashDigest); + const peerId = peerIdFromMultihash(cid.multihash); return peerId.toString().trim(); } @@ -182,6 +176,6 @@ export const getPKCAddressFromPublicKeySync = (publicKeyBase64: string): string multihash.set(publicKeyBytes, 2); // the public key bytes themselves // Create PeerId from the multihash bytes and return as base58 string - const peerId = peerIdFromMultihash(Digest.decode(multihash) as Libp2pMultihashDigest); + const peerId = peerIdFromMultihash(Digest.decode(multihash)); return peerId.toString().trim(); }; From 33ba5830a6c6004781fa7f66a1cf30da3f502cd4 Mon Sep 17 00:00:00 2001 From: Rinse Date: Sat, 13 Jun 2026 02:52:22 +0000 Subject: [PATCH 3/3] fix(helia): pass full sub-path string to heliaFs.cat (mf 13/14 exporter CID identity) The cat wrapper split //update into a root CID + path option, which made @helia/unixfs resolve() mint an intermediate CID object that the mf-13 exporter rejected ("Path must be string or CID"), breaking every libp2pjs CommentUpdate fetch (timeouts + wrong-state-order across the libp2pjs CI configs; bare-CID configs were unaffected). Hand the whole path as one string instead, keeping it on the exporter's string branch. Adds a deterministic regression test under test/node-and-browser/helia. --- src/helia/helia-for-pkc.ts | 40 ++++++++-------- test/node-and-browser/helia/helia.test.ts | 57 +++++++++++++++++++++++ 2 files changed, 77 insertions(+), 20 deletions(-) diff --git a/src/helia/helia-for-pkc.ts b/src/helia/helia-for-pkc.ts index 83411dbea..a3df68c30 100644 --- a/src/helia/helia-for-pkc.ts +++ b/src/helia/helia-for-pkc.ts @@ -145,17 +145,24 @@ export async function createLibp2pJsClientOrUseExistingOne( // @helia/unixfs 7.x (and its ipfs-unixfs-exporter) still run multiformats 13 while our // top-level multiformats is 14. The exporter strict-checks CID class identity - // (`CID.asCID(path) === path || path instanceof CID`), so a multiformats-14 CID instance - // from our CID.parse is rejected at runtime with "Path must be string or CID". We - // therefore hand heliaFs.cat the CID *string*: @helia/unixfs's resolve() only template- - // interpolates the cid when a sub-path is given, and the exporter's string branch parses - // it with its own multiformats copy, keeping the whole DAG walk self-consistent. The - // CID.parse calls below stay as input validation only. Remove this once helia ships on + // (`CID.asCID(path) === path || path instanceof CID`), so a CID instance from a different + // multiformats copy is rejected at runtime with "Path must be string or CID". We therefore + // never hand heliaFs.cat a CID *object* — only the *string* form. The exporter's string + // branch (walkPath) parses and walks the whole `/sub/path` with its own + // multiformats copy in a single pass, so no foreign-copy CID ever crosses the identity + // check. + // + // Crucially we must NOT also pass a sub-path via the `path` option (see cat() below): + // @helia/unixfs's cat() would then resolve() the sub-path to an intermediate CID *object* + // and re-enter the exporter with it, tripping the same identity check — which broke every + // CommentUpdate fetch from a community's postUpdates (`//update`). Passing the + // full path as one string keeps it on the exporter's string branch. CID.parse of the root + // segment stays as input validation only. Remove this whole shim once helia ships on // multiformats 14. type HeliaCatCid = Parameters<(typeof heliaFs)["cat"]>[0]; - const asHeliaCatCid = (cidString: string): HeliaCatCid => { - CID.parse(cidString); // throws on malformed input, mirroring the previous behavior - return cidString as unknown as HeliaCatCid; + const asHeliaCatCid = (ipfsPathOrCid: string): HeliaCatCid => { + CID.parse(ipfsPathOrCid.split("/")[0]); // validate the root CID; throws on malformed input + return ipfsPathOrCid as unknown as HeliaCatCid; }; const ipnsNameResolver = ipns(helia, { @@ -319,17 +326,10 @@ export async function createLibp2pJsClientOrUseExistingOne( }, cat(ipfsPath: string, options) { throwIfHeliaIsStoppingOrStopped(); - // ipfsPath could be a string of cid or ipfs path - if (ipfsPath.includes("/")) { - // it's a path // - const rootCid = ipfsPath.split("/")[0]; - const path = ipfsPath.split("/").slice(1).join("/"); - - return heliaFs.cat(asHeliaCatCid(rootCid), { ...options, path }); - } else { - // a cid string - return heliaFs.cat(asHeliaCatCid(ipfsPath), options); - } + // ipfsPath is either a bare cid or a `/sub/path`. Hand the whole thing to + // heliaFs.cat as one string and never split out a `path` option — see asHeliaCatCid + // above for why the `path` option would re-trip the exporter's CID identity check. + return heliaFs.cat(asHeliaCatCid(ipfsPath), options); }, pubsub: { ls: async () => helia.libp2p.services.pubsub.getTopics(), diff --git a/test/node-and-browser/helia/helia.test.ts b/test/node-and-browser/helia/helia.test.ts index 490c4ef9b..03447e003 100644 --- a/test/node-and-browser/helia/helia.test.ts +++ b/test/node-and-browser/helia/helia.test.ts @@ -13,6 +13,7 @@ import type { PKC } from "../../../dist/node/pkc/pkc.js"; import type { Comment } from "../../../dist/node/publications/comment/comment.js"; import type { IpfsHttpClientPubsubMessage } from "../../../dist/node/types.js"; import { ipnsNameToIpnsOverPubsubTopic } from "../../../dist/node/util.js"; +import { importer } from "ipfs-unixfs-importer"; async function firstFromAsyncIterable(iterable: AsyncIterable): Promise { for await (const value of iterable) return value; @@ -461,6 +462,62 @@ getAvailablePKCConfigsToTestAgainst({ includeOnlyTheseTests: ["remote-libp2pjs"] }, 15000); }); + // Regression test for the helia cat() wrapper (helia-for-pkc.ts). A CommentUpdate is fetched + // from a community's postUpdates via a multi-segment IPFS path (`//update`), not a + // bare CID. With multiformats 14 at our top level but @helia/unixfs + ipfs-unixfs-exporter still + // on 13, @helia/unixfs's cat() resolves a sub-path to an intermediate CID *object* and re-enters + // the exporter with it; the exporter's strict `CID.asCID(path) === path` identity check rejects + // that foreign-multiformats-copy CID with "Path must be string or CID". Bare-CID fetches dodge + // this (the string flows straight to the exporter's string branch), which is why only sub-path + // fetches broke. See PR #140. + describe(`Helia cat() resolves a directory sub-path - ${config.name}`, () => { + it("fetches / via _fetchCidP2P (postUpdates-style path)", async () => { + const pkc = await config.pkcInstancePromise({ forceMockPubsub: true }); + try { + const heliaClient = Object.values(pkc.clients.libp2pJsClients)[0]; + const blockstore = heliaClient._helia.blockstore; + + // Build a unixfs directory { update: } directly in the client's own + // blockstore — exactly what @helia/unixfs does internally — so the fetch is a local + // blockstore read with no network dependency. + const payload = JSON.stringify({ updated: true, nonce: Math.random() }); + let dirCid: string | undefined; + let fileCid: string | undefined; + for await (const entry of importer( + [{ path: "update", content: new TextEncoder().encode(payload) }], + // helia's blockstore and the top-level importer reference different multiformats + // copies (14 vs the nested 13 helia 6 still uses), so their CID types differ at + // the type level only — the same mf-copy split this test exists to cover. The + // runtime contract (put/get by multihash) is identical, mirroring the + // `as unknown as` bridge in helia-for-pkc.ts. + blockstore as unknown as Parameters[1], + { wrapWithDirectory: true } + )) { + if (entry.path === "") dirCid = entry.cid.toString(); + else if (entry.path === "update") fileCid = entry.cid.toString(); + } + expect(dirCid, "importer should yield a wrapping directory CID").to.be.a("string"); + expect(fileCid, "importer should yield the file CID").to.be.a("string"); + + // Sub-path fetch (the regression): this is how a CommentUpdate is loaded from postUpdates. + const fetchedViaSubPath = await pkc._clientsManager._fetchCidP2P(`${dirCid}/update`, { + maxFileSizeBytes: 1024 * 1024, + timeoutMs: 15000 + }); + expect(fetchedViaSubPath).to.equal(payload); + + // Bare-CID fetch must keep working too (guards the unified code path). + const fetchedViaBareCid = await pkc._clientsManager._fetchCidP2P(fileCid!, { + maxFileSizeBytes: 1024 * 1024, + timeoutMs: 15000 + }); + expect(fetchedViaBareCid).to.equal(payload); + } finally { + await pkc.destroy(); + } + }, 30000); + }); + // Regression test for helia-for-pkc.ts:277-291: pubsub.subscribe() must honor the caller's // AbortSignal. warmupForTopic dedupes in-flight warmups by topic, and the monkey-patched // native pubsub.subscribe also kicks off a warmup with no options — if our explicit