From 2e5bb6a0435c8cbc0d9acd6b9365bf458609473a Mon Sep 17 00:00:00 2001 From: Vasco Santos Date: Sat, 27 Apr 2024 23:57:42 +0100 Subject: [PATCH] fix: upgrade filecoin api with content store to rely on roundabout --- .../handle-filecoin-submit-message.js | 8 +- filecoin/package.json | 4 +- filecoin/store/{data.js => content.js} | 66 +-- filecoin/test/helpers/service-context.js | 61 ++- package-lock.json | 497 ++++++++---------- package.json | 8 +- upload-api/package.json | 6 +- 7 files changed, 292 insertions(+), 358 deletions(-) rename filecoin/store/{data.js => content.js} (60%) diff --git a/filecoin/functions/handle-filecoin-submit-message.js b/filecoin/functions/handle-filecoin-submit-message.js index 6b744800..0c1b8b09 100644 --- a/filecoin/functions/handle-filecoin-submit-message.js +++ b/filecoin/functions/handle-filecoin-submit-message.js @@ -3,7 +3,7 @@ import * as Sentry from '@sentry/serverless' import * as storefrontEvents from '@web3-storage/filecoin-api/storefront/events' import { createPieceTable } from '../store/piece.js' -import { createDataStore, composeDataStoresWithOrderedStream } from '../store/data.js' +import { createContentStore, composeContentStoresWithOrderedStream } from '../store/content.js' import { decodeMessage } from '../queue/filecoin-submit-queue.js' import { mustGetEnv } from './utils.js' @@ -46,9 +46,9 @@ async function handleFilecoinSubmitMessage (sqsEvent) { } = getEnv() const context = { pieceStore: createPieceTable(AWS_REGION, pieceTableName), - dataStore: composeDataStoresWithOrderedStream( - createDataStore(AWS_REGION, s3BucketName), - createDataStore(R2_REGION, r2BucketName, { + contentStore: composeContentStoresWithOrderedStream( + createContentStore(AWS_REGION, s3BucketName), + createContentStore(R2_REGION, r2BucketName, { endpoint: r2BucketEndpoint, credentials: { accessKeyId: r2BucketAccessKeyId, diff --git a/filecoin/package.json b/filecoin/package.json index 149e5a8f..6e9abc3a 100644 --- a/filecoin/package.json +++ b/filecoin/package.json @@ -17,8 +17,8 @@ "@ucanto/principal": "^9.0.1", "@ucanto/transport": "^9.1.1", "@web3-storage/data-segment": "^5.1.0", - "@web3-storage/filecoin-api": "^5.0.0", - "@web3-storage/filecoin-client": "^3.3.1", + "@web3-storage/filecoin-api": "^6.0.0", + "@web3-storage/filecoin-client": "^3.3.2", "fr32-sha2-256-trunc254-padded-binary-tree-multihash": "^3.3.0", "multiformats": "^13.1.0", "p-retry": "^6.2.0", diff --git a/filecoin/store/data.js b/filecoin/store/content.js similarity index 60% rename from filecoin/store/data.js rename to filecoin/store/content.js index dc31db32..534ce86f 100644 --- a/filecoin/store/data.js +++ b/filecoin/store/content.js @@ -1,16 +1,15 @@ import { S3Client, - GetObjectCommand, - PutObjectCommand + GetObjectCommand } from '@aws-sdk/client-s3' -import * as CAR from '@ucanto/transport/car' -import { sha256 } from 'multiformats/hashes/sha2' -import { CID } from 'multiformats/cid' -import * as raw from 'multiformats/codecs/raw' -import { CarWriter } from '@ipld/car' import pRetry from 'p-retry' import { StoreOperationFailed, RecordNotFound } from '@web3-storage/filecoin-api/errors' +/** + * @typedef {import('multiformats').UnknownLink} UnknownLink + * @typedef {import('@web3-storage/filecoin-api/storefront/api').ContentStore} ContentStore + */ + /** * Abstraction layer with Factory to perform operations on bucket storing * data receipts. @@ -19,49 +18,22 @@ import { StoreOperationFailed, RecordNotFound } from '@web3-storage/filecoin-api * @param {string} bucketName * @param {import('@aws-sdk/client-s3').ServiceInputTypes} [options] */ -export function createDataStore(region, bucketName, options = {}) { +export function createContentStore(region, bucketName, options = {}) { + // TODO: Roundabout url const s3client = new S3Client({ region, ...options, }) - return useDataStore(s3client, bucketName) + return useContentStore(s3client, bucketName) } /** * @param {S3Client} s3client * @param {string} bucketName - * @returns {import('@web3-storage/filecoin-api/storefront/api').DataStore} + * @returns {ContentStore} */ -export const useDataStore = (s3client, bucketName) => { +export const useContentStore = (s3client, bucketName) => { return { - // Only used for testing storing a CAR - // until we hook up claims to look for data - put: async (bytes) => { - const hash = await sha256.digest(bytes) - const root = CID.create(1, raw.code, hash) - - const { writer, out } = CarWriter.create(root) - writer.put({ cid: root, bytes }) - writer.close() - - const chunks = [] - for await (const chunk of out) { - chunks.push(chunk) - } - const blob = new Blob(chunks) - const cid = await CAR.codec.link(new Uint8Array(await blob.arrayBuffer())) - - const putCmd = new PutObjectCommand({ - Bucket: bucketName, - Key: `${cid.toString()}/${cid.toString()}.car`, - Body: bytes - }) - await s3client.send(putCmd) - - return { - ok: {} - } - }, /** * Stream Blob bytes for a given invocation. */ @@ -111,22 +83,22 @@ export const useDataStore = (s3client, bucketName) => { } /** - * compose many data stores. + * compose many content stores. * store#stream will check stores in order until 0-1 `ok` result is found. * - * @param {import('@web3-storage/filecoin-api/storefront/api').DataStore} dataStore - * @param {Array} moreDataStores - * @returns {import('@web3-storage/filecoin-api/storefront/api').DataStore} + * @param {ContentStore} contentStore + * @param {Array} moreContentStores + * @returns {ContentStore} */ -export function composeDataStoresWithOrderedStream(dataStore, ...moreDataStores) { +export function composeContentStoresWithOrderedStream(contentStore, ...moreContentStores) { return { - ...dataStore, - stream: composeSome(dataStore.stream, ...moreDataStores.map(s => s.stream.bind(s))), + ...contentStore, + stream: composeSome(contentStore.stream, ...moreContentStores.map(s => s.stream.bind(s))), } } /** - * @typedef {AsyncIterable} Rec + * @typedef {ReadableStream} Rec * @typedef {import('@web3-storage/filecoin-api/types').StoreGetError} StoreGetError * @typedef {import('@ucanto/interface').Result} Result */ diff --git a/filecoin/test/helpers/service-context.js b/filecoin/test/helpers/service-context.js index 3700383c..18b5cf1e 100644 --- a/filecoin/test/helpers/service-context.js +++ b/filecoin/test/helpers/service-context.js @@ -1,8 +1,10 @@ import * as CAR from '@ucanto/transport/car' import pRetry from 'p-retry' -import { - PutObjectCommand, -} from '@aws-sdk/client-s3' +import { PutObjectCommand } from '@aws-sdk/client-s3' +import { sha256 } from 'multiformats/hashes/sha2' +import { CID } from 'multiformats/cid' +import * as raw from 'multiformats/codecs/raw' +import { CarWriter } from '@ipld/car' import { createBucket } from './resources.js' import { createDynamoTable } from './tables.js' @@ -12,7 +14,7 @@ import { encodeAgentMessage } from './ucan.js' import { pieceTableProps } from '../../store/index.js' // store clients -import { useDataStore as createDataStoreClient } from '../../store/data.js' +import { useContentStore as createContentStoreClient } from '../../store/content.js' import { usePieceTable as createPieceStoreClient } from '../../store/piece.js' import { useTaskStore as createTaskStoreClient } from '../../store/task.js' import { useReceiptStore as createReceiptStoreClient } from '../../store/receipt.js' @@ -21,13 +23,18 @@ import { useReceiptStore as createReceiptStoreClient } from '../../store/receipt import { createClient as createPieceOfferQueueClient } from '../../queue/piece-offer-queue.js' import { createClient as createFilecoinSubmitQueueClient } from '../../queue/filecoin-submit-queue.js' +/** + * @typedef {import('multiformats').UnknownLink} UnknownLink + * @typedef {import('@web3-storage/filecoin-api/test/types').TestContentStore} TestContentStore + */ + /** * @param {import('./context.js').DynamoContext & import('./context.js').S3Context} ctx */ export async function getStores (ctx) { const { dynamoClient, s3Client } = ctx const pieceStore = await createDynamoTable(dynamoClient, pieceTableProps) - const [ invocationBucketName, workflowBucketName, dataStoreBucketName ] = await Promise.all([ + const [ invocationBucketName, workflowBucketName, contentStoreBucketName ] = await Promise.all([ createBucket(s3Client), createBucket(s3Client), createBucket(s3Client), @@ -37,7 +44,8 @@ export async function getStores (ctx) { pieceStore: createPieceStoreClient(dynamoClient, pieceStore), taskStore: getTaskStoreClient(s3Client, invocationBucketName, workflowBucketName), receiptStore: getReceiptStoreClient(s3Client, invocationBucketName, workflowBucketName), - dataStore: createDataStoreClient(s3Client, dataStoreBucketName) + contentStore: createContentStoreClient(s3Client, contentStoreBucketName), + testContentStore: getTestContentStoreClient(s3Client, contentStoreBucketName), } } @@ -55,6 +63,47 @@ export function getQueues (ctx) { } } +/** + * @param {import('@aws-sdk/client-s3').S3Client} s3Client + * @param {string} bucketName + * @returns {TestContentStore} + */ +function getTestContentStoreClient(s3Client, bucketName) { + const contentStore = createContentStoreClient(s3Client, bucketName) + + return { + ...contentStore, + // Only used for testing storing a CAR + // until we hook up claims to look for data + put: async (bytes) => { + const hash = await sha256.digest(bytes) + const root = CID.create(1, raw.code, hash) + + const { writer, out } = CarWriter.create(root) + writer.put({ cid: root, bytes }) + writer.close() + + const chunks = [] + for await (const chunk of out) { + chunks.push(chunk) + } + const blob = new Blob(chunks) + const cid = await CAR.codec.link(new Uint8Array(await blob.arrayBuffer())) + + const putCmd = new PutObjectCommand({ + Bucket: bucketName, + Key: `${cid.toString()}/${cid.toString()}.car`, + Body: bytes + }) + await s3Client.send(putCmd) + + return { + ok: {} + } + }, + } +} + /** * @param {import('@aws-sdk/client-s3').S3Client} s3client * @param {string} invocationBucketName diff --git a/package-lock.json b/package-lock.json index b27e57b9..eebc177b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,9 +37,9 @@ "@ucanto/validator": "^9.0.2", "@web-std/blob": "^3.0.4", "@web-std/fetch": "^4.1.0", - "@web3-storage/data-segment": "5.0.0", - "@web3-storage/filecoin-client": "3.0.1", - "@web3-storage/w3up-client": "^12.4.1", + "@web3-storage/data-segment": "5.1.0", + "@web3-storage/filecoin-client": "3.3.2", + "@web3-storage/w3up-client": "^12.5.3", "ava": "^4.3.3", "chalk": "4.1.2", "constructs": "10.3.0", @@ -169,8 +169,8 @@ "@ucanto/principal": "^9.0.1", "@ucanto/transport": "^9.1.1", "@web3-storage/data-segment": "^5.1.0", - "@web3-storage/filecoin-api": "^5.0.0", - "@web3-storage/filecoin-client": "^3.3.1", + "@web3-storage/filecoin-api": "^6.0.0", + "@web3-storage/filecoin-client": "^3.3.2", "fr32-sha2-256-trunc254-padded-binary-tree-multihash": "^3.3.0", "multiformats": "^13.1.0", "p-retry": "^6.2.0", @@ -187,38 +187,6 @@ "testcontainers": "^10.7.1" } }, - "filecoin/node_modules/@web3-storage/data-segment": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-5.1.0.tgz", - "integrity": "sha512-FYdmtKvNiVz+maZ++k4PdD43rfJW5DeagLpstq2y84CyOKNRBWbHLCZ/Ec5zT9iGI+0WgsCGbpC/WlG0jlrnhA==", - "dependencies": { - "@ipld/dag-cbor": "^9.0.5", - "multiformats": "^11.0.2", - "sync-multihash-sha2": "^1.0.0" - } - }, - "filecoin/node_modules/@web3-storage/data-segment/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, - "filecoin/node_modules/@web3-storage/filecoin-client": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@web3-storage/filecoin-client/-/filecoin-client-3.3.1.tgz", - "integrity": "sha512-GLJW32stM0zhW6Tv9RX2QhXNaJpa3kBsNYyDeYn/VWqTHEhenruSdtseWBnyCi1Y3NGQ2xL/JojOCD94EXA4Yw==", - "dependencies": { - "@ipld/dag-ucan": "^3.4.0", - "@ucanto/client": "^9.0.1", - "@ucanto/core": "^10.0.1", - "@ucanto/interface": "^10.0.1", - "@ucanto/transport": "^9.1.1", - "@web3-storage/capabilities": "^13.2.1" - } - }, "filecoin/node_modules/uint8arrays": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.6.tgz", @@ -5635,9 +5603,9 @@ } }, "node_modules/@web3-storage/access": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@web3-storage/access/-/access-18.3.1.tgz", - "integrity": "sha512-NMNBqCcw+mfabrpRqoDWKmWfkioTCTClvSkb0vCpTb0yA/yntkJYG70QIaGdtoHV2Kz1gk4Hj1x9th5nHIKSpA==", + "version": "18.3.2", + "resolved": "https://registry.npmjs.org/@web3-storage/access/-/access-18.3.2.tgz", + "integrity": "sha512-Ry+lMzWkXnr7UXSWWwSBTlbTDfLAfBiwZvocLvrTe1BdBPMI/eQfbI+SNuvMdar0cvJLaLspjkK/IVADsdlBVg==", "dependencies": { "@ipld/car": "^5.1.1", "@ipld/dag-ucan": "^3.4.0", @@ -5648,7 +5616,7 @@ "@ucanto/principal": "^9.0.1", "@ucanto/transport": "^9.1.1", "@ucanto/validator": "^9.0.2", - "@web3-storage/capabilities": "^13.3.1", + "@web3-storage/capabilities": "^14.0.2", "@web3-storage/did-mailto": "^2.1.0", "bigint-mod-arith": "^3.1.2", "conf": "11.0.2", @@ -5659,6 +5627,52 @@ "uint8arrays": "^4.0.6" } }, + "node_modules/@web3-storage/access/node_modules/@web3-storage/capabilities": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@web3-storage/capabilities/-/capabilities-14.0.2.tgz", + "integrity": "sha512-0BTzzn60S7eC2xwZjla3v2SNiyxSuVYD2bAokHuO4ztfi0O7L76R2pVDpOI67ZnIL+Cl3FX022NKt+qLxFIoSg==", + "dependencies": { + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@ucanto/validator": "^9.0.2", + "@web3-storage/data-segment": "^3.2.0", + "uint8arrays": "^5.0.3" + } + }, + "node_modules/@web3-storage/access/node_modules/@web3-storage/capabilities/node_modules/multiformats": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz", + "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ==" + }, + "node_modules/@web3-storage/access/node_modules/@web3-storage/capabilities/node_modules/uint8arrays": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.3.tgz", + "integrity": "sha512-6LBuKji28kHjgPJMkQ6GDaBb1lRwIhyOYq6pDGwYMoDPfImE9SkuYENVmR0yu9yGgs2clHUSY9fKDukR+AXfqQ==", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@web3-storage/access/node_modules/@web3-storage/data-segment": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-3.2.0.tgz", + "integrity": "sha512-SM6eNumXzrXiQE2/J59+eEgCRZNYPxKhRoHX2QvV3/scD4qgcf4g+paWBc3UriLEY1rCboygGoPsnqYJNyZyfA==", + "dependencies": { + "@ipld/dag-cbor": "^9.0.5", + "multiformats": "^11.0.2", + "sync-multihash-sha2": "^1.0.0" + } + }, + "node_modules/@web3-storage/access/node_modules/@web3-storage/data-segment/node_modules/multiformats": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", + "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, "node_modules/@web3-storage/access/node_modules/multiformats": { "version": "12.1.3", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", @@ -5669,9 +5683,9 @@ } }, "node_modules/@web3-storage/capabilities": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/@web3-storage/capabilities/-/capabilities-13.3.1.tgz", - "integrity": "sha512-oiQVsSuT4sxOHrYZz05LTCSV3xfT0ae5sixhvEZZaQAwzpv4xPBI0e5ro1SVNV/8kpCzRT2bq3VY4QlN1EfK/Q==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/capabilities/-/capabilities-15.0.0.tgz", + "integrity": "sha512-q371HIdR4MoSAjv7WnHNzjr6PRSrg3DC4/uZNtcf6NA/g2scTCvyEu+cWYPL8KPWFAl7zUdSo/ZkES9BObf8+Q==", "dependencies": { "@ucanto/core": "^10.0.1", "@ucanto/interface": "^10.0.1", @@ -5692,7 +5706,7 @@ "sync-multihash-sha2": "^1.0.0" } }, - "node_modules/@web3-storage/capabilities/node_modules/multiformats": { + "node_modules/@web3-storage/capabilities/node_modules/@web3-storage/data-segment/node_modules/multiformats": { "version": "11.0.2", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", @@ -5709,11 +5723,6 @@ "multiformats": "^13.0.0" } }, - "node_modules/@web3-storage/capabilities/node_modules/uint8arrays/node_modules/multiformats": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz", - "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ==" - }, "node_modules/@web3-storage/content-claims": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/@web3-storage/content-claims/-/content-claims-3.2.1.tgz", @@ -5736,10 +5745,9 @@ } }, "node_modules/@web3-storage/data-segment": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-5.0.0.tgz", - "integrity": "sha512-5CbElsxec2DsKhEHEh3XRGISAyna+bCjKjjvFrLcYyXLCaiSt/nF3ypcllxwjpE4newMUArymGKGzzZnRWL2kg==", - "dev": true, + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-5.1.0.tgz", + "integrity": "sha512-FYdmtKvNiVz+maZ++k4PdD43rfJW5DeagLpstq2y84CyOKNRBWbHLCZ/Ec5zT9iGI+0WgsCGbpC/WlG0jlrnhA==", "dependencies": { "@ipld/dag-cbor": "^9.0.5", "multiformats": "^11.0.2", @@ -5750,7 +5758,6 @@ "version": "11.0.2", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "dev": true, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -5765,9 +5772,9 @@ } }, "node_modules/@web3-storage/filecoin-api": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@web3-storage/filecoin-api/-/filecoin-api-5.0.0.tgz", - "integrity": "sha512-zKpZ9bv3EvjxH46QPVViLLu+VMxTxH64MtEgG0CZrTOlcwCXIvIgn6LsG58DdXihTZZggTL9PdpxQqPxJIEC5A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/filecoin-api/-/filecoin-api-6.0.0.tgz", + "integrity": "sha512-+q7QM36lmnf4k7qkaTajjqfdYpnV68mDJo1UAuM6s9YA2a76kBRdN2A6lEzClNSNXYN52oamYyPFkR1GkUpzvQ==", "dependencies": { "@ipld/dag-ucan": "^3.4.0", "@ucanto/client": "^9.0.1", @@ -5775,7 +5782,7 @@ "@ucanto/interface": "^10.0.1", "@ucanto/server": "^10.0.0", "@ucanto/transport": "^9.1.1", - "@web3-storage/capabilities": "^13.3.1", + "@web3-storage/capabilities": "^15.0.0", "@web3-storage/content-claims": "^4.0.4", "@web3-storage/data-segment": "^4.0.0", "fr32-sha2-256-trunc254-padded-binary-tree-multihash": "^3.3.0", @@ -5797,9 +5804,9 @@ } }, "node_modules/@web3-storage/filecoin-api/node_modules/@web3-storage/content-claims": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@web3-storage/content-claims/-/content-claims-4.0.4.tgz", - "integrity": "sha512-zt5psR3SkLbPPHzGzhFXYSJEssDl/ELYbNhEez+tNZLZiagv3Vl0RSt+x3CFFgR5ovO6Zn+pLJJcMjpMiHw0Yw==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@web3-storage/content-claims/-/content-claims-4.0.5.tgz", + "integrity": "sha512-+WpCkTN8aRfUCrCm0kOMZad+FRnFymVDFvS6/+PJMPGP17cci1/c5lqYdrjFV+5MkhL+BkUJVtRTx02G31FHmQ==", "dependencies": { "@ucanto/client": "^9.0.1", "@ucanto/interface": "^10.0.0", @@ -5809,15 +5816,6 @@ "multiformats": "^12.0.1" } }, - "node_modules/@web3-storage/filecoin-api/node_modules/@web3-storage/content-claims/node_modules/multiformats": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", - "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@web3-storage/filecoin-api/node_modules/@web3-storage/data-segment": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-4.0.0.tgz", @@ -5828,7 +5826,7 @@ "sync-multihash-sha2": "^1.0.0" } }, - "node_modules/@web3-storage/filecoin-api/node_modules/multiformats": { + "node_modules/@web3-storage/filecoin-api/node_modules/@web3-storage/data-segment/node_modules/multiformats": { "version": "11.0.2", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", @@ -5837,78 +5835,69 @@ "npm": ">=7.0.0" } }, - "node_modules/@web3-storage/filecoin-client": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@web3-storage/filecoin-client/-/filecoin-client-3.0.1.tgz", - "integrity": "sha512-8CCdZ1DDjufrxjzG5MhcBHuunuEWB53cpSszajWLEiKmRAhD+Lyaeucb6I4R4JJpjr6YYQg/heG+TDPEowVmSg==", - "dev": true, - "dependencies": { - "@ipld/dag-ucan": "^3.4.0", - "@ucanto/client": "^9.0.0", - "@ucanto/core": "^9.0.0", - "@ucanto/interface": "^9.0.0", - "@ucanto/transport": "^9.0.0", - "@web3-storage/capabilities": "^11.1.0" - } - }, - "node_modules/@web3-storage/filecoin-client/node_modules/@ucanto/core": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@ucanto/core/-/core-9.0.1.tgz", - "integrity": "sha512-SsYvKCO3FD27roTVcg8ASxnixjn+j96sPlijpVq1uBUxq7SmuNxNPYFZqpxXKj2R4gty/Oc8XTse12ebB9Kofg==", - "dev": true, - "dependencies": { - "@ipld/car": "^5.1.0", - "@ipld/dag-cbor": "^9.0.0", - "@ipld/dag-ucan": "^3.4.0", - "@ucanto/interface": "^9.0.0", - "multiformats": "^11.0.2" + "node_modules/@web3-storage/filecoin-api/node_modules/multiformats": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "node_modules/@web3-storage/filecoin-client/node_modules/@ucanto/interface": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@ucanto/interface/-/interface-9.0.0.tgz", - "integrity": "sha512-Y9185yj+CRNpT43EAHTe9MpskCgU9DyWvmYyLMMmF40w+ujp6EYy5JVI/gVjJAsh+2Y9ruvWHOF0M+21TnLQyg==", - "dev": true, + "node_modules/@web3-storage/filecoin-client": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@web3-storage/filecoin-client/-/filecoin-client-3.3.2.tgz", + "integrity": "sha512-cD5a6R8Vwt0vG98WO13Zy2yqnIPCEAXL0skrCliQ1GYm4S0hQQo55bKshg4m60najZwksvIHYXE9cE0Qiu6lMQ==", "dependencies": { "@ipld/dag-ucan": "^3.4.0", - "multiformats": "^11.0.2" + "@ucanto/client": "^9.0.1", + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/transport": "^9.1.1", + "@web3-storage/capabilities": "^14.0.2" } }, "node_modules/@web3-storage/filecoin-client/node_modules/@web3-storage/capabilities": { - "version": "11.4.1", - "resolved": "https://registry.npmjs.org/@web3-storage/capabilities/-/capabilities-11.4.1.tgz", - "integrity": "sha512-PjIewEg/T3wfNavxzsZZ5MpH2WBldNz94qOQOKg5iH/4UrS8SPWWGsJx/Tu760O+PFhpTFwvi5cHCtkb08OdAA==", - "dev": true, + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@web3-storage/capabilities/-/capabilities-14.0.2.tgz", + "integrity": "sha512-0BTzzn60S7eC2xwZjla3v2SNiyxSuVYD2bAokHuO4ztfi0O7L76R2pVDpOI67ZnIL+Cl3FX022NKt+qLxFIoSg==", "dependencies": { - "@ucanto/core": "^9.0.1", - "@ucanto/interface": "^9.0.0", - "@ucanto/principal": "^9.0.0", - "@ucanto/transport": "^9.0.0", - "@ucanto/validator": "^9.0.0", - "@web3-storage/data-segment": "^3.2.0" + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@ucanto/validator": "^9.0.2", + "@web3-storage/data-segment": "^3.2.0", + "uint8arrays": "^5.0.3" } }, "node_modules/@web3-storage/filecoin-client/node_modules/@web3-storage/data-segment": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-3.2.0.tgz", "integrity": "sha512-SM6eNumXzrXiQE2/J59+eEgCRZNYPxKhRoHX2QvV3/scD4qgcf4g+paWBc3UriLEY1rCboygGoPsnqYJNyZyfA==", - "dev": true, "dependencies": { "@ipld/dag-cbor": "^9.0.5", "multiformats": "^11.0.2", "sync-multihash-sha2": "^1.0.0" } }, - "node_modules/@web3-storage/filecoin-client/node_modules/multiformats": { + "node_modules/@web3-storage/filecoin-client/node_modules/@web3-storage/data-segment/node_modules/multiformats": { "version": "11.0.2", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "dev": true, "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, + "node_modules/@web3-storage/filecoin-client/node_modules/uint8arrays": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.3.tgz", + "integrity": "sha512-6LBuKji28kHjgPJMkQ6GDaBb1lRwIhyOYq6pDGwYMoDPfImE9SkuYENVmR0yu9yGgs2clHUSY9fKDukR+AXfqQ==", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@web3-storage/multipart-parser": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", @@ -5924,9 +5913,9 @@ } }, "node_modules/@web3-storage/upload-api": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@web3-storage/upload-api/-/upload-api-10.0.0.tgz", - "integrity": "sha512-aYC7iFv+WJt8rEDjkptZNvL03oo3g9xatm3PqcZPb9kOIIsoKrUjx1DUP3IsOZv3jTjeuhgGY+hzFWsg8ZII4Q==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/upload-api/-/upload-api-11.0.0.tgz", + "integrity": "sha512-qrVfTHi/PjdE6iuH9sxuk9tzPi3z0pGy8WLOvYYg5sburWUz3Ea621MMiMuOFkz2rdO2rokxz9OuzscP/nOXMA==", "dependencies": { "@ucanto/client": "^9.0.1", "@ucanto/interface": "^10.0.1", @@ -5934,11 +5923,11 @@ "@ucanto/server": "^10.0.0", "@ucanto/transport": "^9.1.1", "@ucanto/validator": "^9.0.2", - "@web3-storage/access": "^18.3.1", - "@web3-storage/capabilities": "^14.0.0", + "@web3-storage/access": "^18.3.2", + "@web3-storage/capabilities": "^15.0.0", "@web3-storage/content-claims": "^4.0.4", "@web3-storage/did-mailto": "^2.1.0", - "@web3-storage/filecoin-api": "^5.0.0", + "@web3-storage/filecoin-api": "^6.0.0", "multiformats": "^12.1.2", "p-retry": "^5.1.2", "uint8arrays": "^5.0.3" @@ -5963,20 +5952,6 @@ "@ucanto/validator": "^9.0.1" } }, - "node_modules/@web3-storage/upload-api/node_modules/@web3-storage/capabilities": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@web3-storage/capabilities/-/capabilities-14.0.0.tgz", - "integrity": "sha512-i57wEzIjBsz5iCdBJJZCCAN/j0Vknns2NDFEpV732Vo/VxW2PbYqVb0eqEKegDwxdAmkZwyTT6iZQfsebgK7hw==", - "dependencies": { - "@ucanto/core": "^10.0.1", - "@ucanto/interface": "^10.0.1", - "@ucanto/principal": "^9.0.1", - "@ucanto/transport": "^9.1.1", - "@ucanto/validator": "^9.0.2", - "@web3-storage/data-segment": "^3.2.0", - "uint8arrays": "^5.0.3" - } - }, "node_modules/@web3-storage/upload-api/node_modules/@web3-storage/content-claims": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@web3-storage/content-claims/-/content-claims-4.0.4.tgz", @@ -5990,25 +5965,6 @@ "multiformats": "^12.0.1" } }, - "node_modules/@web3-storage/upload-api/node_modules/@web3-storage/data-segment": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-3.2.0.tgz", - "integrity": "sha512-SM6eNumXzrXiQE2/J59+eEgCRZNYPxKhRoHX2QvV3/scD4qgcf4g+paWBc3UriLEY1rCboygGoPsnqYJNyZyfA==", - "dependencies": { - "@ipld/dag-cbor": "^9.0.5", - "multiformats": "^11.0.2", - "sync-multihash-sha2": "^1.0.0" - } - }, - "node_modules/@web3-storage/upload-api/node_modules/@web3-storage/data-segment/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "node_modules/@web3-storage/upload-api/node_modules/multiformats": { "version": "12.1.3", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", @@ -6047,24 +6003,24 @@ "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ==" }, "node_modules/@web3-storage/upload-client": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/@web3-storage/upload-client/-/upload-client-13.0.1.tgz", - "integrity": "sha512-vfAtp1qIIgcoNQ21X/+jrHZjQU28af516YWWkYWbGV68dBzBd9c7r+8KjQwRDIV8kSl0Pmho6Dy1OWlhpZfE6g==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/@web3-storage/upload-client/-/upload-client-13.2.2.tgz", + "integrity": "sha512-dtedxw9azYUG5LTbZ37CnjggCRIuSsi0nD8phpWjWN20v3pqlrMCCh4cwl0z1bDk/GnYmOxDBViE19paEaYPBw==", "dev": true, "dependencies": { "@ipld/car": "^5.2.2", "@ipld/dag-cbor": "^9.0.6", "@ipld/dag-ucan": "^3.4.0", "@ipld/unixfs": "^2.1.1", - "@ucanto/client": "^9.0.0", - "@ucanto/interface": "^9.0.0", - "@ucanto/transport": "^9.0.0", - "@web3-storage/capabilities": "^13.1.1", - "fr32-sha2-256-trunc254-padded-binary-tree-multihash": "^3.3.0", + "@ucanto/client": "^9.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/transport": "^9.1.1", + "@web3-storage/capabilities": "^14.0.2", + "@web3-storage/data-segment": "^5.1.0", + "@web3-storage/filecoin-client": "^3.3.2", "ipfs-utils": "^9.0.14", "multiformats": "^12.1.2", "p-retry": "^5.1.2", - "parallel-transform-web": "^1.0.1", "varint": "^6.0.0" } }, @@ -6074,17 +6030,33 @@ "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", "dev": true }, - "node_modules/@web3-storage/upload-client/node_modules/@ucanto/interface": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@ucanto/interface/-/interface-9.0.0.tgz", - "integrity": "sha512-Y9185yj+CRNpT43EAHTe9MpskCgU9DyWvmYyLMMmF40w+ujp6EYy5JVI/gVjJAsh+2Y9ruvWHOF0M+21TnLQyg==", + "node_modules/@web3-storage/upload-client/node_modules/@web3-storage/capabilities": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@web3-storage/capabilities/-/capabilities-14.0.2.tgz", + "integrity": "sha512-0BTzzn60S7eC2xwZjla3v2SNiyxSuVYD2bAokHuO4ztfi0O7L76R2pVDpOI67ZnIL+Cl3FX022NKt+qLxFIoSg==", "dev": true, "dependencies": { - "@ipld/dag-ucan": "^3.4.0", - "multiformats": "^11.0.2" + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@ucanto/validator": "^9.0.2", + "@web3-storage/data-segment": "^3.2.0", + "uint8arrays": "^5.0.3" + } + }, + "node_modules/@web3-storage/upload-client/node_modules/@web3-storage/capabilities/node_modules/@web3-storage/data-segment": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-3.2.0.tgz", + "integrity": "sha512-SM6eNumXzrXiQE2/J59+eEgCRZNYPxKhRoHX2QvV3/scD4qgcf4g+paWBc3UriLEY1rCboygGoPsnqYJNyZyfA==", + "dev": true, + "dependencies": { + "@ipld/dag-cbor": "^9.0.5", + "multiformats": "^11.0.2", + "sync-multihash-sha2": "^1.0.0" } }, - "node_modules/@web3-storage/upload-client/node_modules/@ucanto/interface/node_modules/multiformats": { + "node_modules/@web3-storage/upload-client/node_modules/@web3-storage/capabilities/node_modules/multiformats": { "version": "11.0.2", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", @@ -6120,6 +6092,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@web3-storage/upload-client/node_modules/uint8arrays": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.3.tgz", + "integrity": "sha512-6LBuKji28kHjgPJMkQ6GDaBb1lRwIhyOYq6pDGwYMoDPfImE9SkuYENVmR0yu9yGgs2clHUSY9fKDukR+AXfqQ==", + "dev": true, + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@web3-storage/upload-client/node_modules/uint8arrays/node_modules/multiformats": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.1.0.tgz", + "integrity": "sha512-HzdtdBwxsIkzpeXzhQ5mAhhuxcHbjEHH+JQoxt7hG/2HGFjjwyolLo7hbaexcnhoEuV4e0TNJ8kkpMjiEYY4VQ==", + "dev": true + }, "node_modules/@web3-storage/w3infra-billing": { "resolved": "billing", "link": true @@ -6149,48 +6136,40 @@ "link": true }, "node_modules/@web3-storage/w3up-client": { - "version": "12.4.1", - "resolved": "https://registry.npmjs.org/@web3-storage/w3up-client/-/w3up-client-12.4.1.tgz", - "integrity": "sha512-Ti4k5UScn5kdF0A5rz0WkDefD0LofUCUJNDGRYQFudw17FmaZHfQGSQvZ0CozYrCJg8K7JPTbU4/m3joWu0ufQ==", + "version": "12.5.3", + "resolved": "https://registry.npmjs.org/@web3-storage/w3up-client/-/w3up-client-12.5.3.tgz", + "integrity": "sha512-tpkjSU6amVDojiBRK6l43bIPQYcwx63T3uO3jNMMyOo9khzru+wBV2P0mTsMd1VkaBMdxo8ylzLdDPp8m2X5rQ==", "dev": true, "dependencies": { "@ipld/dag-ucan": "^3.4.0", - "@ucanto/client": "^9.0.0", - "@ucanto/core": "^9.0.1", - "@ucanto/interface": "^9.0.0", - "@ucanto/principal": "^9.0.0", - "@ucanto/transport": "^9.0.0", - "@web3-storage/access": "^18.2.0", - "@web3-storage/capabilities": "^13.1.1", + "@ucanto/client": "^9.0.1", + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@web3-storage/access": "^18.3.2", + "@web3-storage/capabilities": "^14.0.2", "@web3-storage/did-mailto": "^2.1.0", - "@web3-storage/filecoin-client": "^3.2.0", - "@web3-storage/upload-client": "^13.0.1" + "@web3-storage/filecoin-client": "^3.3.2", + "@web3-storage/upload-client": "^13.2.2" }, "engines": { "node": ">=18" } }, - "node_modules/@web3-storage/w3up-client/node_modules/@ucanto/core": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@ucanto/core/-/core-9.0.1.tgz", - "integrity": "sha512-SsYvKCO3FD27roTVcg8ASxnixjn+j96sPlijpVq1uBUxq7SmuNxNPYFZqpxXKj2R4gty/Oc8XTse12ebB9Kofg==", + "node_modules/@web3-storage/w3up-client/node_modules/@web3-storage/capabilities": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@web3-storage/capabilities/-/capabilities-14.0.2.tgz", + "integrity": "sha512-0BTzzn60S7eC2xwZjla3v2SNiyxSuVYD2bAokHuO4ztfi0O7L76R2pVDpOI67ZnIL+Cl3FX022NKt+qLxFIoSg==", "dev": true, "dependencies": { - "@ipld/car": "^5.1.0", - "@ipld/dag-cbor": "^9.0.0", - "@ipld/dag-ucan": "^3.4.0", - "@ucanto/interface": "^9.0.0", - "multiformats": "^11.0.2" - } - }, - "node_modules/@web3-storage/w3up-client/node_modules/@ucanto/interface": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@ucanto/interface/-/interface-9.0.0.tgz", - "integrity": "sha512-Y9185yj+CRNpT43EAHTe9MpskCgU9DyWvmYyLMMmF40w+ujp6EYy5JVI/gVjJAsh+2Y9ruvWHOF0M+21TnLQyg==", - "dev": true, - "dependencies": { - "@ipld/dag-ucan": "^3.4.0", - "multiformats": "^11.0.2" + "@ucanto/core": "^10.0.1", + "@ucanto/interface": "^10.0.1", + "@ucanto/principal": "^9.0.1", + "@ucanto/transport": "^9.1.1", + "@ucanto/validator": "^9.0.2", + "@web3-storage/data-segment": "^3.2.0", + "uint8arrays": "^5.0.3" } }, "node_modules/@web3-storage/w3up-client/node_modules/@web3-storage/data-segment": { @@ -6204,35 +6183,7 @@ "sync-multihash-sha2": "^1.0.0" } }, - "node_modules/@web3-storage/w3up-client/node_modules/@web3-storage/filecoin-client": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@web3-storage/filecoin-client/-/filecoin-client-3.2.0.tgz", - "integrity": "sha512-4kSyXcN7jPAnpO2U8afheYBRJ4E/8aRJvCvPgHF+HZEtEaLHYuuQzU72Aro94qV0bm5ZRxXPNh6wRSlz/XZLlg==", - "dev": true, - "dependencies": { - "@ipld/dag-ucan": "^3.4.0", - "@ucanto/client": "^9.0.0", - "@ucanto/core": "^9.0.1", - "@ucanto/interface": "^9.0.0", - "@ucanto/transport": "^9.0.0", - "@web3-storage/capabilities": "^12.1.0" - } - }, - "node_modules/@web3-storage/w3up-client/node_modules/@web3-storage/filecoin-client/node_modules/@web3-storage/capabilities": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@web3-storage/capabilities/-/capabilities-12.1.0.tgz", - "integrity": "sha512-SlYdPqCokDHb55zlZOvh+n8uEMOrEU413Z1MzQ8HvULpbzfcEtGyOiDgrAhdNEZtPnWHqaUEtU7o829Yw2Ra5w==", - "dev": true, - "dependencies": { - "@ucanto/core": "^9.0.1", - "@ucanto/interface": "^9.0.0", - "@ucanto/principal": "^9.0.0", - "@ucanto/transport": "^9.0.0", - "@ucanto/validator": "^9.0.1", - "@web3-storage/data-segment": "^3.2.0" - } - }, - "node_modules/@web3-storage/w3up-client/node_modules/multiformats": { + "node_modules/@web3-storage/w3up-client/node_modules/@web3-storage/data-segment/node_modules/multiformats": { "version": "11.0.2", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", @@ -6242,6 +6193,15 @@ "npm": ">=7.0.0" } }, + "node_modules/@web3-storage/w3up-client/node_modules/uint8arrays": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.3.tgz", + "integrity": "sha512-6LBuKji28kHjgPJMkQ6GDaBb1lRwIhyOYq6pDGwYMoDPfImE9SkuYENVmR0yu9yGgs2clHUSY9fKDukR+AXfqQ==", + "dev": true, + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/@whatwg-node/events": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.2.tgz", @@ -14572,12 +14532,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parallel-transform-web": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parallel-transform-web/-/parallel-transform-web-1.0.1.tgz", - "integrity": "sha512-RtPU/7IuwPZ4ePcqoPxNCpjtaXYOkCVtnhh5tW3O78wy9jqVoV2hQHms17kUeu8DTYoOP+mykFLg2agwVKlwBw==", - "dev": true - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -18285,17 +18239,6 @@ "testcontainers": "^10.7.1" } }, - "roundabout/node_modules/@web3-storage/data-segment": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-5.1.0.tgz", - "integrity": "sha512-FYdmtKvNiVz+maZ++k4PdD43rfJW5DeagLpstq2y84CyOKNRBWbHLCZ/Ec5zT9iGI+0WgsCGbpC/WlG0jlrnhA==", - "dev": true, - "dependencies": { - "@ipld/dag-cbor": "^9.0.5", - "multiformats": "^11.0.2", - "sync-multihash-sha2": "^1.0.0" - } - }, "roundabout/node_modules/multiformats": { "version": "11.0.2", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", @@ -18365,6 +18308,17 @@ "sync-multihash-sha2": "^1.0.0" } }, + "tools/node_modules/@web3-storage/data-segment": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-5.0.0.tgz", + "integrity": "sha512-5CbElsxec2DsKhEHEh3XRGISAyna+bCjKjjvFrLcYyXLCaiSt/nF3ypcllxwjpE4newMUArymGKGzzZnRWL2kg==", + "dev": true, + "dependencies": { + "@ipld/dag-cbor": "^9.0.5", + "multiformats": "^11.0.2", + "sync-multihash-sha2": "^1.0.0" + } + }, "tools/node_modules/multiformats": { "version": "11.0.2", "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", @@ -18409,10 +18363,10 @@ "@ucanto/transport": "^9.1.1", "@ucanto/validator": "^9.0.2", "@web-std/fetch": "^4.1.0", - "@web3-storage/access": "^18.3.1", - "@web3-storage/capabilities": "^14.0.0", + "@web3-storage/access": "^18.3.2", + "@web3-storage/capabilities": "^15.0.0", "@web3-storage/did-mailto": "^2.1.0", - "@web3-storage/upload-api": "^10.0.0", + "@web3-storage/upload-api": "^11.0.0", "multiformats": "^13.1.0", "nanoid": "^5.0.2", "preact": "^10.14.1", @@ -18470,47 +18424,6 @@ "web-streams-polyfill": "^3.1.1" } }, - "upload-api/node_modules/@web3-storage/capabilities": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@web3-storage/capabilities/-/capabilities-14.0.0.tgz", - "integrity": "sha512-i57wEzIjBsz5iCdBJJZCCAN/j0Vknns2NDFEpV732Vo/VxW2PbYqVb0eqEKegDwxdAmkZwyTT6iZQfsebgK7hw==", - "dependencies": { - "@ucanto/core": "^10.0.1", - "@ucanto/interface": "^10.0.1", - "@ucanto/principal": "^9.0.1", - "@ucanto/transport": "^9.1.1", - "@ucanto/validator": "^9.0.2", - "@web3-storage/data-segment": "^3.2.0", - "uint8arrays": "^5.0.3" - } - }, - "upload-api/node_modules/@web3-storage/capabilities/node_modules/uint8arrays": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.0.3.tgz", - "integrity": "sha512-6LBuKji28kHjgPJMkQ6GDaBb1lRwIhyOYq6pDGwYMoDPfImE9SkuYENVmR0yu9yGgs2clHUSY9fKDukR+AXfqQ==", - "dependencies": { - "multiformats": "^13.0.0" - } - }, - "upload-api/node_modules/@web3-storage/data-segment": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@web3-storage/data-segment/-/data-segment-3.2.0.tgz", - "integrity": "sha512-SM6eNumXzrXiQE2/J59+eEgCRZNYPxKhRoHX2QvV3/scD4qgcf4g+paWBc3UriLEY1rCboygGoPsnqYJNyZyfA==", - "dependencies": { - "@ipld/dag-cbor": "^9.0.5", - "multiformats": "^11.0.2", - "sync-multihash-sha2": "^1.0.0" - } - }, - "upload-api/node_modules/@web3-storage/data-segment/node_modules/multiformats": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz", - "integrity": "sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==", - "engines": { - "node": ">=16.0.0", - "npm": ">=7.0.0" - } - }, "upload-api/node_modules/nanoid": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.6.tgz", diff --git a/package.json b/package.json index 6226e9b7..5aaa05cd 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "console": "sst console", "lint": "tsc && eslint '**/*.js'", "clean": "rm -rf dist node_modules package-lock.json ./*/{.cache,dist,node_modules}", - "test": "npm test -w billing -w upload-api -w carpark -w replicator -w satnav -w roundabout -w filecoin", + "test": "npm test -w filecoin", "test-integration": "ava --verbose --serial --timeout=660s test/*.test.js", "fetch-metrics-for-space": "npm run fetch-metrics-for-space -w tools", "follow-filecoin-receipt-chain": "npm run follow-filecoin-receipt-chain -w tools", @@ -31,9 +31,9 @@ "@ucanto/validator": "^9.0.2", "@web-std/blob": "^3.0.4", "@web-std/fetch": "^4.1.0", - "@web3-storage/data-segment": "5.0.0", - "@web3-storage/filecoin-client": "3.0.1", - "@web3-storage/w3up-client": "^12.4.1", + "@web3-storage/data-segment": "5.1.0", + "@web3-storage/filecoin-client": "3.3.2", + "@web3-storage/w3up-client": "^12.5.3", "ava": "^4.3.3", "chalk": "4.1.2", "constructs": "10.3.0", diff --git a/upload-api/package.json b/upload-api/package.json index 436c1e1f..86d2277c 100644 --- a/upload-api/package.json +++ b/upload-api/package.json @@ -22,10 +22,10 @@ "@ucanto/transport": "^9.1.1", "@ucanto/validator": "^9.0.2", "@web-std/fetch": "^4.1.0", - "@web3-storage/access": "^18.3.1", - "@web3-storage/capabilities": "^14.0.0", + "@web3-storage/access": "^18.3.2", + "@web3-storage/capabilities": "^15.0.0", "@web3-storage/did-mailto": "^2.1.0", - "@web3-storage/upload-api": "^10.0.0", + "@web3-storage/upload-api": "^11.0.0", "multiformats": "^13.1.0", "nanoid": "^5.0.2", "preact": "^10.14.1",