From 73443226a960102d4b19c2ee119e6a9ded4ddf6a Mon Sep 17 00:00:00 2001 From: Vasco Santos Date: Thu, 29 Jun 2023 12:40:19 +0200 Subject: [PATCH] fix!: update aggregate spec in client and api BREAKING CHANGE: aggregate capabilities now have different nb properties and aggregate client api was simplified --- packages/aggregate-api/package.json | 3 +- packages/aggregate-api/src/aggregate/get.js | 6 +- packages/aggregate-api/src/aggregate/offer.js | 37 +- packages/aggregate-api/src/offer/arrange.js | 6 +- packages/aggregate-api/src/types.ts | 12 +- packages/aggregate-api/test/aggregate.js | 156 ++-- .../test/context/aggregate-store.js | 16 +- .../aggregate-api/test/context/offer-store.js | 13 +- packages/aggregate-api/test/utils.js | 32 +- packages/aggregate-client/README.md | 17 +- packages/aggregate-client/package.json | 1 + packages/aggregate-client/src/aggregate.js | 26 +- packages/aggregate-client/src/types.ts | 23 +- .../aggregate-client/test/aggregate.test.js | 26 +- packages/aggregate-client/test/helpers/car.js | 2 +- .../aggregate-client/test/helpers/random.js | 31 +- packages/capabilities/package.json | 1 + packages/capabilities/src/aggregate.js | 49 +- packages/capabilities/src/offer.js | 10 +- pnpm-lock.yaml | 825 +++++++++--------- 20 files changed, 661 insertions(+), 631 deletions(-) diff --git a/packages/aggregate-api/package.json b/packages/aggregate-api/package.json index 0a32999ea..47a42166e 100644 --- a/packages/aggregate-api/package.json +++ b/packages/aggregate-api/package.json @@ -63,7 +63,8 @@ "@ucanto/interface": "^8.0.0", "@ucanto/server": "^8.0.0", "@ucanto/transport": "^8.0.0", - "@web3-storage/capabilities": "workspace:^" + "@web3-storage/capabilities": "workspace:^", + "@web3-storage/data-segment": "^1.0.1" }, "devDependencies": { "@ipld/car": "^5.1.1", diff --git a/packages/aggregate-api/src/aggregate/get.js b/packages/aggregate-api/src/aggregate/get.js index c5690584f..1804dd71b 100644 --- a/packages/aggregate-api/src/aggregate/get.js +++ b/packages/aggregate-api/src/aggregate/get.js @@ -14,13 +14,13 @@ export const provide = (context) => * @returns {Promise>} */ export const claim = async ({ capability }, { aggregateStore }) => { - const commitmentProof = capability.nb.commitmentProof + const subject = capability.nb.subject - const aggregateArrangedResult = await aggregateStore.get(commitmentProof) + const aggregateArrangedResult = await aggregateStore.get(subject) if (!aggregateArrangedResult) { return { error: new AggregateNotFound( - `aggregate not found for commitment proof: ${commitmentProof}` + `aggregate not found for subject: ${subject}` ), } } diff --git a/packages/aggregate-api/src/aggregate/offer.js b/packages/aggregate-api/src/aggregate/offer.js index b1b7d13be..0afb78382 100644 --- a/packages/aggregate-api/src/aggregate/offer.js +++ b/packages/aggregate-api/src/aggregate/offer.js @@ -27,7 +27,7 @@ export const claim = async ( ) => { // Get offer block const offerCid = capability.nb.offer - const commitmentProof = capability.nb.commitmentProof + const piece = capability.nb.piece const offers = getOfferBlock(offerCid, invocation) if (!offers) { @@ -52,30 +52,15 @@ export const claim = async ( `offer over size, offered: ${size}, maximum: ${MAX_SIZE}` ), } - } else if (size !== capability.nb.size) { + } else if (size !== piece.size) { return { error: new AggregateOfferInvalidSizeError( - `offer size mismatch, specified: ${capability.nb.size}, actual: ${size}` + `offer size mismatch, specified: ${piece.size}, actual: ${size}` ), } } - // Validate URLs in offers src - for (const offer of offers.values()) { - for (const u of offer.src) { - try { - new URL(u) - } catch { - return { - error: new AggregateOfferInvalidUrlError( - `offer has invalid URL: ${u}` - ), - } - } - } - } - - // TODO: Validate commP + // TODO: Validate commP of commPs // Create effect for receipt const fx = await Offer.arrange @@ -84,13 +69,13 @@ export const claim = async ( audience: context.id, with: context.id.did(), nb: { - commitmentProof, + pieceLink: piece.link, }, }) .delegate() // Write offer to store - await offerStore.queue({ commitmentProof, offers }) + await offerStore.queue({ piece, offers }) return Server.ok({ status: 'queued', @@ -99,13 +84,13 @@ export const claim = async ( /** * @param {Server.API.Link} offerCid - * @param {Server.API.Invocation & `${string}:${string}` & Server.API.Phantom<{ protocol: `${string}:`; }>, Pick<{ offer: Server.API.Link; commitmentProof: Server.API.Link; size: number & Server.API.Phantom<{ typeof: "integer"; }>; }, "offer" | "commitmentProof" | "size"> & Partial; commitmentProof: Server.API.Link; size: number & Server.API.Phantom<{ typeof: "integer"; }>; }, never>>>>} invocation + * @param {Server.API.Invocation & `${string}:${string}` & Server.API.Phantom<{ protocol: `${string}:`; }>, Pick<{ offer: Server.API.Link; piece: Server.Schema.InferStruct<{ link: Server.Schema.Schema, any>; size: Server.Schema.NumberSchema, unknown>; }>; }, "offer" | "piece"> & Partial; piece: Server.Schema.InferStruct<{ link: Server.Schema.Schema, any>; size: Server.Schema.NumberSchema, unknown>; }>; }, never>>>>} invocation */ function getOfferBlock(offerCid, invocation) { for (const block of invocation.iterateIPLDBlocks()) { if (block.cid.equals(offerCid)) { const decoded = - /** @type {import('@web3-storage/aggregate-client/types').Offer[]} */ ( + /** @type {import('@web3-storage/aggregate-client/types').Piece[]} */ ( CBOR.decode(block.bytes) ) return decoded @@ -114,12 +99,6 @@ function getOfferBlock(offerCid, invocation) { } } -class AggregateOfferInvalidUrlError extends Server.Failure { - get name() { - return /** @type {const} */ ('AggregateOfferInvalidUrl') - } -} - class AggregateOfferInvalidSizeError extends Server.Failure { get name() { return /** @type {const} */ ('AggregateOfferInvalidSize') diff --git a/packages/aggregate-api/src/offer/arrange.js b/packages/aggregate-api/src/offer/arrange.js index 1676153b8..dd552cf21 100644 --- a/packages/aggregate-api/src/offer/arrange.js +++ b/packages/aggregate-api/src/offer/arrange.js @@ -14,14 +14,14 @@ export const provide = (context) => * @returns {Promise>} */ export const claim = async ({ capability }, { arrangedOfferStore }) => { - const commitmentProof = capability.nb.commitmentProof + const pieceLink = capability.nb.pieceLink - const status = await arrangedOfferStore.get(commitmentProof) + const status = await arrangedOfferStore.get(pieceLink) if (!status) { return { error: new OfferArrangeNotFound( - `arranged offer not found for commitment proof: ${commitmentProof}` + `arranged offer not found for piece: ${pieceLink}` ), } } diff --git a/packages/aggregate-api/src/types.ts b/packages/aggregate-api/src/types.ts index 8a4adada2..bb25e652c 100644 --- a/packages/aggregate-api/src/types.ts +++ b/packages/aggregate-api/src/types.ts @@ -10,7 +10,7 @@ import type { } from '@ucanto/interface' import type { ProviderInput } from '@ucanto/server' -import type { Offer } from '@web3-storage/aggregate-client/types' +import type { Piece } from '@web3-storage/aggregate-client/types' export * from '@web3-storage/aggregate-client/types' export * from '@web3-storage/capabilities/types' @@ -31,7 +31,7 @@ export interface ServiceContext export interface ArrangedOfferStore { get: ( - commitmentProof: Link + pieceLink: Link ) => Promise } @@ -40,13 +40,13 @@ export interface OfferStore { } export interface OfferToQueue { - commitmentProof: Link - offers: Offer[] + piece: Piece + offers: Piece[] } export interface AggregateStore { get: ( - commitmentProof: Link + pieceLink: Link ) => Promise } @@ -76,7 +76,7 @@ export interface Assert { export interface AggregateStoreBackend { put: ( - commitmentProof: Link, + pieceLink: Link, aggregateInfo: unknown ) => Promise } diff --git a/packages/aggregate-api/test/aggregate.js b/packages/aggregate-api/test/aggregate.js index 459d992bf..321fd31f1 100644 --- a/packages/aggregate-api/test/aggregate.js +++ b/packages/aggregate-api/test/aggregate.js @@ -5,7 +5,7 @@ import * as Signer from '@ucanto/principal/ed25519' import { MIN_SIZE, MAX_SIZE } from '../src/aggregate/offer.js' import * as API from '../src/types.js' -import { randomCARs } from './utils.js' +import { randomCargo } from './utils.js' import { createServer, connect } from '../src/lib.js' /** @@ -24,16 +24,20 @@ export const test = { }) // Generate CAR Files for offer - const offers = (await randomCARs(100, 100)) + const offers = (await randomCargo(100, 128)) // Inflate size for testing within range .map((car) => ({ ...car, size: car.size * 10e5, })) const size = offers.reduce((accum, offer) => accum + offer.size, 0) - const commitmentProof = parseLink( - 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' - ) + // TODO: This should be generated with commP of commPs builder + const piece = { + link: parseLink( + 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' + ), + size, + } const block = await CBOR.write(offers) const aggregateOfferInvocation = Aggregate.offer.invoke({ @@ -42,7 +46,8 @@ export const test = { with: storeFront.did(), nb: { offer: block.cid, - commitmentProof, + // @ts-expect-error link not explicitly with commP codec + piece, size, }, }) @@ -62,7 +67,7 @@ export const test = { audience: context.id, with: context.id.did(), nb: { - commitmentProof, + pieceLink: piece.link, }, }) .delegate() @@ -81,11 +86,15 @@ export const test = { }) // Generate CAR Files for offer - const offers = await randomCARs(100, 100) + const offers = await randomCargo(100, 128) const size = offers.reduce((accum, offer) => accum + offer.size, 0) - const commitmentProof = parseLink( - 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' - ) + // TODO: This should be generated with commP of commPs builder + const piece = { + link: parseLink( + 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' + ), + size, + } const block = await CBOR.write(offers) const aggregateOfferInvocation = Aggregate.offer.invoke({ @@ -94,7 +103,8 @@ export const test = { with: storeFront.did(), nb: { offer: block.cid, - commitmentProof, + // @ts-expect-error link not explicitly with commP codec + piece, size, }, }) @@ -109,53 +119,6 @@ export const test = { // Validate effect in receipt does not exist assert.ok(!aggregateOffer.fx.join) }, - 'aggregate/offer fails when one or more URLs are not valid': async ( - assert, - context - ) => { - const { storeFront } = await getServiceContext() - const connection = connect({ - id: context.id, - channel: createServer(context), - }) - - // Generate CAR Files for offer - const offers = (await randomCARs(100, 100)) - // Get broken URLs - .map((car) => ({ - ...car, - size: car.size * 10e5, - src: [`${car.link}`], - })) - - const size = offers.reduce((accum, offer) => accum + offer.size, 0) - const commitmentProof = parseLink( - 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' - ) - - const block = await CBOR.write(offers) - const aggregateOfferInvocation = Aggregate.offer.invoke({ - issuer: storeFront, - audience: connection.id, - with: storeFront.did(), - nb: { - offer: block.cid, - commitmentProof, - size, - }, - }) - aggregateOfferInvocation.attach(block) - - const aggregateOffer = await aggregateOfferInvocation.execute(connection) - assert.ok(aggregateOffer.out.error) - assert.deepEqual( - aggregateOffer.out.error?.message, - `offer has invalid URL: ${offers[0].link.toString()}` - ) - - // Validate effect in receipt does not exist - assert.ok(!aggregateOffer.fx.join) - }, 'aggregate/offer fails when size is not enough for offer': async ( assert, context @@ -167,11 +130,15 @@ export const test = { }) // Generate CAR Files for offer - const offers = await randomCARs(100, 100) + const offers = await randomCargo(100, 128) const size = offers.reduce((accum, offer) => accum + offer.size, 0) - const commitmentProof = parseLink( - 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' - ) + // TODO: This should be generated with commP of commPs builder + const piece = { + link: parseLink( + 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' + ), + size, + } const block = await CBOR.write(offers) const aggregateOfferInvocation = Aggregate.offer.invoke({ @@ -180,7 +147,8 @@ export const test = { with: storeFront.did(), nb: { offer: block.cid, - commitmentProof, + // @ts-expect-error link not explicitly with commP codec + piece, size, }, }) @@ -207,16 +175,19 @@ export const test = { }) // Generate CAR Files for offer - const offers = (await randomCARs(100, 100)) + const offers = (await randomCargo(100, 128)) // Inflate size for testing above range .map((car) => ({ ...car, size: car.size * 10e6, })) const size = offers.reduce((accum, offer) => accum + offer.size, 0) - const commitmentProof = parseLink( - 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' - ) + const piece = { + link: parseLink( + 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' + ), + size, + } const block = await CBOR.write(offers) const aggregateOfferInvocation = Aggregate.offer.invoke({ @@ -225,7 +196,8 @@ export const test = { with: storeFront.did(), nb: { offer: block.cid, - commitmentProof, + // @ts-expect-error link not explicitly with commP codec + piece, size, }, }) @@ -250,7 +222,7 @@ export const test = { }) // Generate CAR Files for offer - const offers = (await randomCARs(100, 100)) + const offers = (await randomCargo(100, 128)) // Inflate size for testing above range .map((car) => ({ ...car, @@ -258,9 +230,13 @@ export const test = { })) const size = offers.reduce((accum, offer) => accum + offer.size, 0) const badSize = size - 1000 - const commitmentProof = parseLink( - 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' - ) + // TODO: This should be generated with commP of commPs builder + const piece = { + link: parseLink( + 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' + ), + size: badSize, + } const block = await CBOR.write(offers) const aggregateOfferInvocation = Aggregate.offer.invoke({ @@ -269,8 +245,8 @@ export const test = { with: storeFront.did(), nb: { offer: block.cid, - commitmentProof, - size: badSize, + // @ts-expect-error link not explicitly with commP codec + piece, }, }) aggregateOfferInvocation.attach(block) @@ -297,16 +273,20 @@ export const test = { }) // Generate CAR Files for offer - const offers = (await randomCARs(100, 100)) + const offers = (await randomCargo(100, 128)) // Inflate size for testing within range .map((car) => ({ ...car, size: car.size * 10e5, })) const size = offers.reduce((accum, offer) => accum + offer.size, 0) - const commitmentProof = parseLink( - 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' - ) + // TODO: This should be generated with commP of commPs builder + const piece = { + link: parseLink( + 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' + ), + size, + } const block = await CBOR.write(offers) const aggregateOfferInvocation = Aggregate.offer.invoke({ @@ -315,8 +295,8 @@ export const test = { with: storeFront.did(), nb: { offer: block.cid, - commitmentProof, - size, + // @ts-expect-error link not explicitly with commP codec + piece, }, }) aggregateOfferInvocation.attach(block) @@ -334,7 +314,7 @@ export const test = { audience: context.id, with: context.id.did(), nb: { - commitmentProof, + pieceLink: piece.link, }, }) .delegate() @@ -344,7 +324,7 @@ export const test = { audience: context.id, with: context.id.did(), nb: { - commitmentProof, + pieceLink: piece.link, }, }) @@ -366,7 +346,7 @@ export const test = { channel: createServer(context), }) - const commitmentProof = parseLink( + const subject = parseLink( 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' ) const aggregateGetInvocation = Aggregate.get.invoke({ @@ -374,7 +354,7 @@ export const test = { audience: connection.id, with: storeFront.did(), nb: { - commitmentProof, + subject, }, }) @@ -392,20 +372,20 @@ export const test = { channel: createServer(context), }) - const commitmentProof = parseLink( + const subject = parseLink( 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' ) const deal = { status: 'done', } - await context.aggregateStoreBackend.put(commitmentProof, deal) + await context.aggregateStoreBackend.put(subject, deal) const aggregateGetInvocation = Aggregate.get.invoke({ issuer: storeFront, audience: connection.id, with: storeFront.did(), nb: { - commitmentProof, + subject, }, }) diff --git a/packages/aggregate-api/test/context/aggregate-store.js b/packages/aggregate-api/test/context/aggregate-store.js index d64ca8ef6..939270612 100644 --- a/packages/aggregate-api/test/context/aggregate-store.js +++ b/packages/aggregate-api/test/context/aggregate-store.js @@ -10,27 +10,27 @@ export class AggregateStore { } /** - * @param {import('@ucanto/interface').Link} commitmentProof + * @param {import('@ucanto/interface').Link} pieceLink * @param {unknown} deal */ - put(commitmentProof, deal) { - const dealEntries = this.items.get(commitmentProof.toString()) + put(pieceLink, deal) { + const dealEntries = this.items.get(pieceLink.toString()) let newEntries if (dealEntries) { newEntries = [...dealEntries, deal] - this.items.set(commitmentProof.toString(), newEntries) + this.items.set(pieceLink.toString(), newEntries) } else { newEntries = [deal] - this.items.set(commitmentProof.toString(), newEntries) + this.items.set(pieceLink.toString(), newEntries) } return Promise.resolve() } /** - * @param {import('@ucanto/interface').Link} commitmentProof + * @param {import('@ucanto/interface').Link} pieceLink */ - get(commitmentProof) { - return Promise.resolve(this.items.get(commitmentProof.toString())) + get(pieceLink) { + return Promise.resolve(this.items.get(pieceLink.toString())) } } diff --git a/packages/aggregate-api/test/context/offer-store.js b/packages/aggregate-api/test/context/offer-store.js index b1fe2ac35..87d29357c 100644 --- a/packages/aggregate-api/test/context/offer-store.js +++ b/packages/aggregate-api/test/context/offer-store.js @@ -1,5 +1,5 @@ /** - * @typedef {import('@web3-storage/aggregate-client/types').Offer[]} Offers + * @typedef {import('@web3-storage/aggregate-client/types').Piece[]} Offers */ export class OfferStore { @@ -11,17 +11,14 @@ export class OfferStore { * @param {import('../../src/types').OfferToQueue} offerToQueue */ async queue(offerToQueue) { - this.offers.set( - offerToQueue.commitmentProof.toString(), - offerToQueue.offers - ) + this.offers.set(offerToQueue.piece.link.toString(), offerToQueue.offers) } /** - * @param {import('@ucanto/interface').Link} commitmentProof + * @param {import('@ucanto/interface').Link} pieceLink * @returns {Promise} */ - async get(commitmentProof) { - return Promise.resolve(`todo:${commitmentProof.toString()}`) + async get(pieceLink) { + return Promise.resolve(`todo:${pieceLink.toString()}`) } } diff --git a/packages/aggregate-api/test/utils.js b/packages/aggregate-api/test/utils.js index fe0b475c6..73a729da5 100644 --- a/packages/aggregate-api/test/utils.js +++ b/packages/aggregate-api/test/utils.js @@ -1,3 +1,4 @@ +import { CommP } from '@web3-storage/data-segment' import { CID } from 'multiformats' import { webcrypto } from 'crypto' import { sha256 } from 'multiformats/hashes/sha2' @@ -36,24 +37,39 @@ export async function randomCAR(size) { const blob = new Blob(chunks) const cid = await CAR.codec.link(new Uint8Array(await blob.arrayBuffer())) - return Object.assign(blob, { cid, roots: [root] }) + return Object.assign(blob, { cid, roots: [root], bytes }) } /** * @param {number} length * @param {number} size - * @param {object} [options] - * @param {string} [options.origin] */ -export async function randomCARs(length, size, options = {}) { - const origin = options.origin || 'https://carpark.web3.storage' - +export async function randomCARs(length, size) { return ( await Promise.all(Array.from({ length }).map(() => randomCAR(size))) ).map((car) => ({ link: car.cid, size: car.size, - commitmentProof: 'todo-commP', - src: [`${origin}/${car.cid.toString()}`], })) } + +/** + * @param {number} length + * @param {number} size + */ +export async function randomCargo(length, size) { + const cars = await Promise.all( + Array.from({ length }).map(() => randomCAR(size)) + ) + + return Promise.all( + cars.map(async (car) => { + const commP = await CommP.build(car.bytes) + + return { + link: commP.link(), + size: commP.pieceSize, + } + }) + ) +} diff --git a/packages/aggregate-client/README.md b/packages/aggregate-client/README.md index 49fe1bf50..3f637f391 100644 --- a/packages/aggregate-client/README.md +++ b/packages/aggregate-client/README.md @@ -20,7 +20,8 @@ npm install @web3-storage/aggregate-client ```ts function aggregateOffer( conf: InvocationConfig, - offers: Offer[], + piece: Piece, + offer: Piece[], ): Promise<{ status: string }> ``` @@ -33,8 +34,8 @@ More information: [`InvocationConfig`](#invocationconfig) ```ts function aggregateGet( conf: InvocationConfig, - commitmentProof: string, // TODO: ProofLink -): Promise // TODO: type + subject: PieceCID, +): Promise ``` Ask the service to get deal details of an aggregate. @@ -43,17 +44,17 @@ More information: [`InvocationConfig`](#invocationconfig) ## Types -### `Offer` +### `Piece` An offered CAR to be part of an Aggregate. ```ts -export interface Offer { - link: CARLink +export interface Piece { + link: PieceCID size: number - commitmentProof: string // TODO: ProofLink - src: OfferSrc[] } + +export type PieceCID = ReturnType ``` ### `InvocationConfig` diff --git a/packages/aggregate-client/package.json b/packages/aggregate-client/package.json index 305cd8736..0777081a5 100644 --- a/packages/aggregate-client/package.json +++ b/packages/aggregate-client/package.json @@ -57,6 +57,7 @@ "@types/mocha": "^10.0.1", "@ucanto/principal": "^8.0.0", "@ucanto/server": "^8.0.1", + "@web3-storage/data-segment": "^1.0.1", "assert": "^2.0.0", "c8": "^7.13.0", "hd-scripts": "^4.0.0", diff --git a/packages/aggregate-client/src/aggregate.js b/packages/aggregate-client/src/aggregate.js index 98ec2d8b2..c90a355f4 100644 --- a/packages/aggregate-client/src/aggregate.js +++ b/packages/aggregate-client/src/aggregate.js @@ -1,5 +1,5 @@ import * as AggregateCapabilities from '@web3-storage/capabilities/aggregate' -import { CBOR, parseLink } from '@ucanto/core' +import { CBOR } from '@ucanto/core' import { servicePrincipal, connection } from './service.js' @@ -10,25 +10,20 @@ export const MAX_SIZE = 127 * (1 << 28) * Offer an aggregate to be assembled and stored. * * @param {import('./types').InvocationConfig} conf - Configuration - * @param {import('./types').Offer[]} offers + * @param {import('./types').Piece} piece + * @param {import('./types').Piece[]} offer * @param {import('./types').RequestOptions} [options] */ export async function aggregateOffer( { issuer, with: resource, proofs, audience }, - offers, + piece, + offer, options = {} ) { /* c8 ignore next */ const conn = options.connection ?? connection - // TODO: Get commitmentProof - const commitmentProof = parseLink( - 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' - ) - - // Validate size for offer is valid - const size = offers.reduce((accum, offer) => accum + offer.size, 0) - const block = await CBOR.write(offers) + const block = await CBOR.write(offer) const invocation = AggregateCapabilities.offer.invoke({ issuer, /* c8 ignore next */ @@ -36,8 +31,7 @@ export async function aggregateOffer( with: resource, nb: { offer: block.cid, - commitmentProof, - size, + piece, }, proofs, }) @@ -50,12 +44,12 @@ export async function aggregateOffer( * Get details of an aggregate. * * @param {import('./types').InvocationConfig} conf - Configuration - * @param {import('@ucanto/interface').Link} commitmentProof + * @param {import('@ucanto/interface').Link} subject * @param {import('./types').RequestOptions} [options] */ export async function aggregateGet( { issuer, with: resource, proofs, audience }, - commitmentProof, + subject, options = {} ) { /* c8 ignore next */ @@ -68,7 +62,7 @@ export async function aggregateGet( audience: audience ?? servicePrincipal, with: resource, nb: { - commitmentProof: commitmentProof, + subject, }, proofs, }) diff --git a/packages/aggregate-client/src/types.ts b/packages/aggregate-client/src/types.ts index e5ed01888..5ae284655 100644 --- a/packages/aggregate-client/src/types.ts +++ b/packages/aggregate-client/src/types.ts @@ -1,4 +1,5 @@ import { Link } from 'multiformats/link' +import type { CommP } from '@web3-storage/data-segment' import { CAR } from '@ucanto/transport' import { ConnectionView, @@ -58,13 +59,6 @@ export interface Service { } } -export interface Offer { - link: CARLink - size: number - commitmentProof: string // TODO: ProofLink - src: OfferSrc[] -} - export interface RequestOptions extends Connectable {} export interface Connectable { @@ -77,3 +71,18 @@ export interface Connectable { export type CARLink = Link export type OfferSrc = ToString + +/** + * [Piece CID](https://spec.filecoin.io/systems/filecoin_files/piece/) of some + * content. + */ +export type PieceCID = ReturnType + +/** + * [Piece](https://spec.filecoin.io/systems/filecoin_files/piece/) information + * for this CAR file. + */ +export interface Piece { + link: PieceCID + size: number +} diff --git a/packages/aggregate-client/test/aggregate.test.js b/packages/aggregate-client/test/aggregate.test.js index cf9ae8828..dc4595587 100644 --- a/packages/aggregate-client/test/aggregate.test.js +++ b/packages/aggregate-client/test/aggregate.test.js @@ -11,14 +11,14 @@ import * as Aggregate from '../src/aggregate.js' import { serviceProvider } from './fixtures.js' import { mockService } from './helpers/mocks.js' -import { randomCARs } from './helpers/random.js' +import { randomCargo } from './helpers/random.js' describe('aggregate.offer', () => { it('places a valid offer with the service', async () => { const { storeFront } = await getContext() // Generate CAR Files for offer - const offers = (await randomCARs(100, 100)) + const offers = (await randomCargo(100, 100)) // Inflate size for testing within range .map((car) => ({ ...car, @@ -30,6 +30,13 @@ describe('aggregate.offer', () => { const aggregateOfferResponse = { status: 'queued', } + // TODO: This should be generated with commP of commPs builder + const piece = { + link: parseLink( + 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' + ), + size, + } // Create Ucanto service const service = mockService({ @@ -44,8 +51,8 @@ describe('aggregate.offer', () => { assert.strictEqual(invCap.can, AggregateCapabilities.offer.can) assert.equal(invCap.with, invocation.issuer.did()) // size - assert.strictEqual(invCap.nb?.size, size) - assert.ok(invCap.nb?.commitmentProof) + assert.strictEqual(invCap.nb?.piece.size, size) + assert.ok(invCap.nb?.piece.link) // TODO: Validate commitmemnt proof assert.ok(invCap.nb?.offer) // Validate block inline exists @@ -61,7 +68,7 @@ describe('aggregate.offer', () => { audience: context.id, with: context.id.did(), nb: { - commitmentProof: invCap.nb?.commitmentProof, + pieceLink: invCap.nb?.piece.link, }, }) .delegate() @@ -77,8 +84,9 @@ describe('aggregate.offer', () => { with: storeFront.did(), audience: serviceProvider, }, + // @ts-expect-error link not explicitly with commP codec + piece, offers, - // @ts-expect-error no full service implemented { connection: getConnection(service).connection } ) assert.ok(res.out.ok) @@ -91,7 +99,7 @@ describe('aggregate.offer', () => { describe('aggregate.get', () => { it('places a valid offer with the service', async () => { const { storeFront } = await getContext() - const commitmentProof = parseLink( + const subject = parseLink( 'baga6ea4seaqm2u43527zehkqqcpyyopgsw2c4mapyy2vbqzqouqtzhxtacueeki' ) /** @type {unknown[]} */ @@ -106,7 +114,7 @@ describe('aggregate.get', () => { const invCap = invocation.capabilities[0] assert.strictEqual(invCap.can, AggregateCapabilities.get.can) assert.equal(invCap.with, invocation.issuer.did()) - assert.ok(invCap.nb?.commitmentProof) + assert.ok(invCap.nb?.subject) return { ok: { deals } } }), }, @@ -118,7 +126,7 @@ describe('aggregate.get', () => { with: storeFront.did(), audience: serviceProvider, }, - commitmentProof, + subject, // @ts-expect-error no full service implemented { connection: getConnection(service).connection } ) diff --git a/packages/aggregate-client/test/helpers/car.js b/packages/aggregate-client/test/helpers/car.js index 3032621d6..da2a2b9c3 100644 --- a/packages/aggregate-client/test/helpers/car.js +++ b/packages/aggregate-client/test/helpers/car.js @@ -18,5 +18,5 @@ export async function toCAR(bytes) { const blob = new Blob(chunks) const cid = await CAR.codec.link(new Uint8Array(await blob.arrayBuffer())) - return Object.assign(blob, { cid, roots: [block.cid] }) + return Object.assign(blob, { cid, roots: [block.cid], bytes }) } diff --git a/packages/aggregate-client/test/helpers/random.js b/packages/aggregate-client/test/helpers/random.js index 1502eb8b3..c4fac9fdb 100644 --- a/packages/aggregate-client/test/helpers/random.js +++ b/packages/aggregate-client/test/helpers/random.js @@ -1,3 +1,5 @@ +import { CommP } from '@web3-storage/data-segment' + import { toCAR } from './car.js' /** @param {number} size */ @@ -34,18 +36,33 @@ export async function randomCAR(size) { /** * @param {number} length * @param {number} size - * @param {object} [options] - * @param {string} [options.origin] */ -export async function randomCARs(length, size, options = {}) { - const origin = options.origin || 'https://carpark.web3.storage' - +export async function randomCARs(length, size) { return ( await Promise.all(Array.from({ length }).map(() => randomCAR(size))) ).map((car) => ({ link: car.cid, size: car.size, - commitmentProof: 'todo-commP', - src: [`${origin}/${car.cid.toString()}`], })) } + +/** + * @param {number} length + * @param {number} size + */ +export async function randomCargo(length, size) { + const cars = await Promise.all( + Array.from({ length }).map(() => randomCAR(size)) + ) + + return Promise.all( + cars.map(async (car) => { + const commP = await CommP.build(car.bytes) + + return { + link: commP.link(), + size: commP.pieceSize, + } + }) + ) +} diff --git a/packages/capabilities/package.json b/packages/capabilities/package.json index 577673e8a..0ae965550 100644 --- a/packages/capabilities/package.json +++ b/packages/capabilities/package.json @@ -82,6 +82,7 @@ }, "rules": { "unicorn/expiring-todo-comments": "off", + "unicorn/numeric-separators-style": "off", "unicorn/prefer-number-properties": "off", "unicorn/prefer-export-from": "off", "unicorn/no-array-reduce": "off", diff --git a/packages/capabilities/src/aggregate.js b/packages/capabilities/src/aggregate.js index 8189062f6..9bbff00dd 100644 --- a/packages/capabilities/src/aggregate.js +++ b/packages/capabilities/src/aggregate.js @@ -11,6 +11,15 @@ import { capability, Schema, ok } from '@ucanto/validator' import { checkLink, equalWith, equal, and } from './utils.js' +/** + * @see https://github.com/multiformats/go-multihash/blob/dc3bd6897fcd17f6acd8d4d6ffd2cea3d4d3ebeb/multihash.go#L73 + */ +const SHA2_256_TRUNC254_PADDED = 0x1012 +/** + * @see https://github.com/ipfs/go-cid/blob/829c826f6be23320846f4b7318aee4d17bf8e094/cid.go#L104 + */ +const FilCommitmentUnsealed = 0xf101 + /** * `aggregate/offer` capability allows agent to create an offer to get an aggregate * of CARs files in the market to be fetched and stored by a Storage provider. @@ -29,25 +38,33 @@ export const offer = capability({ offer: Schema.link(), /** * Commitment proof for the aggregate being offered. + * https://github.com/filecoin-project/go-state-types/blob/1e6cf0d47cdda75383ef036fc2725d1cf51dbde8/abi/piece.go#L47-L50 */ - commitmentProof: Schema.link(), - /** - * Size of the combined CAR files to be offered as aggregate. - */ - size: Schema.integer(), + piece: Schema.struct({ + /** + * CID of the aggregate piece. + */ + link: Schema.link({ + code: FilCommitmentUnsealed, + version: 1, + multihash: { + code: SHA2_256_TRUNC254_PADDED, + }, + }), + /** + * Size in nodes. For BLS12-381 (capacity 254 bits), must be >= 16. (16 * 8 = 128) + */ + size: Schema.integer(), + }), }), derives: (claim, from) => { return ( and(equalWith(claim, from)) || and(checkLink(claim.nb.offer, from.nb.offer, 'nb.offer')) || and( - checkLink( - claim.nb.commitmentProof, - from.nb.commitmentProof, - 'nb.commitmentProof' - ) + checkLink(claim.nb.piece.link, from.nb.piece.link, 'nb.piece.link') ) || - and(equal(claim.nb.size, from.nb.size, 'nb.size')) || + and(equal(claim.nb.piece.size, from.nb.piece.size, 'nb.piece.size')) || ok({}) ) }, @@ -64,18 +81,12 @@ export const get = capability({ /** * Commitment proof for the aggregate being requested. */ - commitmentProof: Schema.link(), + subject: Schema.link(), }), derives: (claim, from) => { return ( and(equalWith(claim, from)) || - and( - checkLink( - claim.nb.commitmentProof, - from.nb.commitmentProof, - 'nb.commitmentProof' - ) - ) || + and(checkLink(claim.nb.subject, from.nb.subject, 'nb.subject')) || ok({}) ) }, diff --git a/packages/capabilities/src/offer.js b/packages/capabilities/src/offer.js index 9182fac92..d33256260 100644 --- a/packages/capabilities/src/offer.js +++ b/packages/capabilities/src/offer.js @@ -21,18 +21,12 @@ export const arrange = capability({ /** * Commitment proof for the aggregate being requested. */ - commitmentProof: Schema.link(), + pieceLink: Schema.link(), }), derives: (claim, from) => { return ( and(equalWith(claim, from)) || - and( - checkLink( - claim.nb.commitmentProof, - from.nb.commitmentProof, - 'nb.commitmentProof' - ) - ) || + and(checkLink(claim.nb.pieceLink, from.nb.pieceLink, 'nb.pieceLink')) || ok({}) ) }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aaf09b2d9..6da255701 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,7 +20,7 @@ importers: devDependencies: '@docusaurus/core': specifier: ^2.3.1 - version: 2.3.1(eslint@8.42.0)(typescript@4.9.5) + version: 2.3.1(eslint@8.43.0)(typescript@4.9.5) docusaurus-plugin-typedoc: specifier: ^0.18.0 version: 0.18.0(typedoc-plugin-markdown@3.14.0)(typedoc@0.23.28) @@ -181,6 +181,9 @@ importers: '@web3-storage/capabilities': specifier: workspace:^ version: link:../capabilities + '@web3-storage/data-segment': + specifier: ^1.0.1 + version: 1.0.1 devDependencies: '@ipld/car': specifier: ^5.1.1 @@ -246,6 +249,9 @@ importers: '@ucanto/server': specifier: ^8.0.1 version: 8.0.1 + '@web3-storage/data-segment': + specifier: ^1.0.1 + version: 1.0.1 assert: specifier: ^2.0.0 version: 2.0.0 @@ -513,7 +519,7 @@ importers: devDependencies: '@docusaurus/core': specifier: ^2.2.0 - version: 2.3.1(eslint@8.42.0)(typescript@4.9.5) + version: 2.3.1(eslint@8.43.0)(typescript@4.9.5) '@ipld/car': specifier: ^5.1.1 version: 5.1.1 @@ -552,7 +558,7 @@ importers: version: 8.1.2 standard: specifier: ^17.0.0 - version: 17.0.0(@typescript-eslint/parser@5.59.9) + version: 17.0.0(@typescript-eslint/parser@5.60.1) typedoc: specifier: ^0.23.24 version: 0.23.28(typescript@4.9.5) @@ -568,6 +574,11 @@ importers: packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -671,7 +682,7 @@ packages: '@babel/compat-data': 7.22.5 '@babel/core': 7.22.5 '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.7 + browserslist: 4.21.9 lru-cache: 5.1.1 semver: 6.3.0 dev: true @@ -1893,7 +1904,7 @@ packages: babel-plugin-polyfill-corejs2: 0.4.3(@babel/core@7.22.5) babel-plugin-polyfill-corejs3: 0.8.1(@babel/core@7.22.5) babel-plugin-polyfill-regenerator: 0.5.0(@babel/core@7.22.5) - core-js-compat: 3.30.2 + core-js-compat: 3.31.0 semver: 6.3.0 transitivePeerDependencies: - supports-color @@ -1951,7 +1962,7 @@ packages: resolution: {integrity: sha512-TNPDN6aBFaUox2Lu+H/Y1dKKQgr4ucz/FGyCz67RVYLsBpVpUFf1dDngzg+Od8aqbrqwyztkaZjtWCZEUOT8zA==} engines: {node: '>=6.9.0'} dependencies: - core-js-pure: 3.30.2 + core-js-pure: 3.31.0 regenerator-runtime: 0.13.11 dev: true @@ -2011,7 +2022,7 @@ packages: engines: {node: '>=10.0.0'} dev: true - /@docusaurus/core@2.3.1(eslint@8.42.0)(typescript@4.9.5): + /@docusaurus/core@2.3.1(eslint@8.43.0)(typescript@4.9.5): resolution: {integrity: sha512-0Jd4jtizqnRAr7svWaBbbrCCN8mzBNd2xFLoT/IM7bGfFie5y58oz97KzXliwiLY3zWjqMXjQcuP1a5VgCv2JA==} engines: {node: '>=16.14'} hasBin: true @@ -2044,7 +2055,7 @@ packages: '@slorber/static-site-generator-webpack-plugin': 4.0.7 '@svgr/webpack': 6.5.1 autoprefixer: 10.4.14(postcss@8.4.24) - babel-loader: 8.3.0(@babel/core@7.22.5)(webpack@5.86.0) + babel-loader: 8.3.0(@babel/core@7.22.5)(webpack@5.88.1) babel-plugin-dynamic-import-node: 2.3.3 boxen: 6.2.1 chalk: 4.1.2 @@ -2053,48 +2064,48 @@ packages: cli-table3: 0.6.3 combine-promises: 1.1.0 commander: 5.1.0 - copy-webpack-plugin: 11.0.0(webpack@5.86.0) - core-js: 3.30.2 - css-loader: 6.8.1(webpack@5.86.0) - css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.2)(webpack@5.86.0) + copy-webpack-plugin: 11.0.0(webpack@5.88.1) + core-js: 3.31.0 + css-loader: 6.8.1(webpack@5.88.1) + css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.2)(webpack@5.88.1) cssnano: 5.1.15(postcss@8.4.24) del: 6.1.1 detect-port: 1.5.1 escape-html: 1.0.3 eta: 2.2.0 - file-loader: 6.2.0(webpack@5.86.0) + file-loader: 6.2.0(webpack@5.88.1) fs-extra: 10.1.0 html-minifier-terser: 6.1.0 html-tags: 3.3.1 - html-webpack-plugin: 5.5.2(webpack@5.86.0) + html-webpack-plugin: 5.5.3(webpack@5.88.1) import-fresh: 3.3.0 leven: 3.1.0 lodash: 4.17.21 - mini-css-extract-plugin: 2.7.6(webpack@5.86.0) + mini-css-extract-plugin: 2.7.6(webpack@5.88.1) postcss: 8.4.24 - postcss-loader: 7.3.2(postcss@8.4.24)(webpack@5.86.0) + postcss-loader: 7.3.3(postcss@8.4.24)(webpack@5.88.1) prompts: 2.4.2 - react-dev-utils: 12.0.1(eslint@8.42.0)(typescript@4.9.5)(webpack@5.86.0) + react-dev-utils: 12.0.1(eslint@8.43.0)(typescript@4.9.5)(webpack@5.88.1) react-helmet-async: 1.3.0 react-loadable: /@docusaurus/react-loadable@5.5.2 - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.86.0) + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.88.1) react-router: 5.3.4 react-router-config: 5.1.1(react-router@5.3.4) react-router-dom: 5.3.4 rtl-detect: 1.0.4 - semver: 7.5.1 + semver: 7.5.3 serve-handler: 6.1.5 shelljs: 0.8.5 - terser-webpack-plugin: 5.3.9(webpack@5.86.0) - tslib: 2.5.3 + terser-webpack-plugin: 5.3.9(webpack@5.88.1) + tslib: 2.6.0 update-notifier: 5.1.0 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.86.0) + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.88.1) wait-on: 6.0.1 - webpack: 5.86.0 + webpack: 5.88.1 webpack-bundle-analyzer: 4.9.0 - webpack-dev-server: 4.15.1(webpack@5.86.0) + webpack-dev-server: 4.15.1(webpack@5.88.1) webpack-merge: 5.9.0 - webpackbar: 5.0.2(webpack@5.86.0) + webpackbar: 5.0.2(webpack@5.88.1) transitivePeerDependencies: - '@docusaurus/types' - '@parcel/css' @@ -2121,7 +2132,7 @@ packages: cssnano-preset-advanced: 5.3.10(postcss@8.4.24) postcss: 8.4.24 postcss-sort-media-queries: 4.4.1(postcss@8.4.24) - tslib: 2.5.3 + tslib: 2.6.0 dev: true /@docusaurus/logger@2.3.1: @@ -2129,7 +2140,7 @@ packages: engines: {node: '>=16.14'} dependencies: chalk: 4.1.2 - tslib: 2.5.3 + tslib: 2.6.0 dev: true /@docusaurus/mdx-loader@2.3.1: @@ -2150,17 +2161,17 @@ packages: '@docusaurus/utils': 2.3.1 '@mdx-js/mdx': 1.6.22 escape-html: 1.0.3 - file-loader: 6.2.0(webpack@5.86.0) + file-loader: 6.2.0(webpack@5.88.1) fs-extra: 10.1.0 image-size: 1.0.2 mdast-util-to-string: 2.0.0 remark-emoji: 2.2.0 stringify-object: 3.3.0 - tslib: 2.5.3 + tslib: 2.6.0 unified: 9.2.2 unist-util-visit: 2.0.3 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.86.0) - webpack: 5.86.0 + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.88.1) + webpack: 5.88.1 transitivePeerDependencies: - '@docusaurus/types' - '@swc/core' @@ -2178,7 +2189,7 @@ packages: react: optional: true dependencies: - '@types/react': 18.2.9 + '@types/react': 18.2.14 prop-types: 15.8.1 dev: true @@ -2191,7 +2202,7 @@ packages: '@docusaurus/types': optional: true dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: true /@docusaurus/utils-validation@2.3.1: @@ -2202,7 +2213,7 @@ packages: '@docusaurus/utils': 2.3.1 joi: 17.9.2 js-yaml: 4.1.0 - tslib: 2.5.3 + tslib: 2.6.0 transitivePeerDependencies: - '@docusaurus/types' - '@swc/core' @@ -2224,7 +2235,7 @@ packages: '@docusaurus/logger': 2.3.1 '@svgr/webpack': 6.5.1 escape-string-regexp: 4.0.0 - file-loader: 6.2.0(webpack@5.86.0) + file-loader: 6.2.0(webpack@5.88.1) fs-extra: 10.1.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -2234,9 +2245,9 @@ packages: micromatch: 4.0.5 resolve-pathname: 3.0.0 shelljs: 0.8.5 - tslib: 2.5.3 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.86.0) - webpack: 5.86.0 + tslib: 2.6.0 + url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.88.1) + webpack: 5.88.1 transitivePeerDependencies: - '@swc/core' - esbuild @@ -2263,13 +2274,13 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.42.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.43.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.42.0 + eslint: 8.43.0 eslint-visitor-keys: 3.4.1 dev: true @@ -2295,8 +2306,8 @@ packages: - supports-color dev: true - /@eslint/js@8.42.0: - resolution: {integrity: sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==} + /@eslint/js@8.43.0: + resolution: {integrity: sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -2346,36 +2357,36 @@ packages: cborg: 1.10.2 multiformats: 11.0.2 - /@ipld/dag-json@10.1.0: - resolution: {integrity: sha512-2rSvzDyGxx1NC24IsqKFTSXzAfUBlniZQRT15PEN+i177KEBsCXPfxuN/DweGIfmj3YceNyR8XOJT47pRZu7Cg==} + /@ipld/dag-json@10.1.2: + resolution: {integrity: sha512-z38JDQXzDW6mtU+ZfLO6/lXbJ4BEEDYY5cyW6+Nl7OpjWSV0mt57cE8LK6+krXlhxwuCnA+/sOtaXuJ3lImvfw==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: - cborg: 1.10.2 - multiformats: 11.0.2 + cborg: 2.0.2 + multiformats: 12.0.1 - /@ipld/dag-pb@4.0.3: - resolution: {integrity: sha512-bOe+Z2ZJs9pmP/aIUBYMTdXq0i5z1x71qXeOIIhZvnKFLuzTIbbW0u5b7OfTGzUEbSv1dkUZBIXa7G/+OA8dnA==} + /@ipld/dag-pb@4.0.4: + resolution: {integrity: sha512-lX0c6ZAwD8ZKtjbawxotP8XNyR6z7/NIk7wXuhDlFT4MrNo/AOefZEUWjAw8CGz3EG3mau4P66VpsZwToVLHDg==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: - multiformats: 11.0.2 + multiformats: 12.0.1 /@ipld/dag-ucan@3.3.2: resolution: {integrity: sha512-EhuOrAfnudsVYIbzEIgi3itHAEo3WZNOt1VNPsYhxKBhOzDMeoTXh6/IHc7ZKBW1T2vDQHdgj4m1r64z6MssGA==} dependencies: '@ipld/dag-cbor': 9.0.0 - '@ipld/dag-json': 10.1.0 + '@ipld/dag-json': 10.1.2 multiformats: 11.0.2 /@ipld/unixfs@2.1.1: resolution: {integrity: sha512-g3gr/3XvfQs4x2VFjlICae09ul5fbWCKRInN6Vgeot2+GH0h/krr3PqZCIo4dy4Ou2mQOsIddxUvG8UZ4p9SbQ==} dependencies: - '@ipld/dag-pb': 4.0.3 - '@multiformats/murmur3': 2.1.4 - '@perma/map': 1.0.2 + '@ipld/dag-pb': 4.0.4 + '@multiformats/murmur3': 2.1.5 + '@perma/map': 1.0.3 '@web-std/stream': 1.0.1 actor: 2.3.1 multiformats: 11.0.2 - protobufjs: 7.2.3 + protobufjs: 7.2.4 rabin-rs: 2.1.0 dev: false @@ -2472,11 +2483,11 @@ packages: resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} dev: true - /@multiformats/murmur3@2.1.4: - resolution: {integrity: sha512-qHHmZKD1Dy6PDi35pAowE1pQtnH7gwaJpUE/Ju+cOYVdWD4T8VVtKAumGCxwd31JKyNC0W1IzAaHQz1dnXXvBw==} + /@multiformats/murmur3@2.1.5: + resolution: {integrity: sha512-etjrdN/gJ1PhIg3vv+4QypYgXsqBQCfTFEMzSclz3t1YwLSnd9i8R1nL50CIznUraVlsKzbcH/xCB9dC0XbFow==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: - multiformats: 11.0.2 + multiformats: 12.0.1 murmurhash3js-revisited: 3.0.0 /@noble/ed25519@1.7.3: @@ -2508,9 +2519,10 @@ packages: fastq: 1.15.0 dev: true - /@perma/map@1.0.2: - resolution: {integrity: sha512-hujwGOY6yTYnpf5YAtpD5MJAI1kcsVPqyN0lxG8Sampf/InO3jmX/MlJCHCGFPpPqB5JyO5WNnL+tUs1Umqe0A==} + /@perma/map@1.0.3: + resolution: {integrity: sha512-Bf5njk0fnJGTFE2ETntq0N1oJ6YdCPIpTDn3R3KYZJQdeYSOCNL7mBrFlGnbqav8YQhJA/p81pvHINX9vAtHkQ==} dependencies: + '@multiformats/murmur3': 2.1.5 murmurhash3js-revisited: 3.0.0 dev: false @@ -2599,8 +2611,8 @@ packages: type-detect: 4.0.8 dev: true - /@sinonjs/fake-timers@10.2.0: - resolution: {integrity: sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg==} + /@sinonjs/fake-timers@10.3.0: + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} dependencies: '@sinonjs/commons': 3.0.0 dev: true @@ -2824,12 +2836,12 @@ packages: /@types/eslint-scope@3.7.4: resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} dependencies: - '@types/eslint': 8.40.1 + '@types/eslint': 8.40.2 '@types/estree': 1.0.1 dev: true - /@types/eslint@8.40.1: - resolution: {integrity: sha512-vRb792M4mF1FBT+eoLecmkpLXwxsBHvWWRGJjzbYANBM6DtiJc6yETyv4rqDA6QNjF1pkj1U7LMA6dGb3VYlHw==} + /@types/eslint@8.40.2: + resolution: {integrity: sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ==} dependencies: '@types/estree': 1.0.1 '@types/json-schema': 7.0.12 @@ -2854,7 +2866,7 @@ packages: '@types/body-parser': 1.19.2 '@types/express-serve-static-core': 4.17.35 '@types/qs': 6.9.7 - '@types/serve-static': 1.15.1 + '@types/serve-static': 1.15.2 dev: true /@types/hast@2.3.4: @@ -2867,6 +2879,10 @@ packages: resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} dev: true + /@types/http-errors@2.0.1: + resolution: {integrity: sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==} + dev: true + /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: @@ -2958,8 +2974,8 @@ packages: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: true - /@types/react@18.2.9: - resolution: {integrity: sha512-pL3JAesUkF7PEQGxh5XOwdXGV907te6m1/Qe1ERJLgomojS6Ne790QiA7GUl434JEkFA2aAaB6qJ5z4e1zJn/w==} + /@types/react@18.2.14: + resolution: {integrity: sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 @@ -3001,9 +3017,10 @@ packages: '@types/express': 4.17.17 dev: true - /@types/serve-static@1.15.1: - resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} + /@types/serve-static@1.15.2: + resolution: {integrity: sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==} dependencies: + '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 '@types/node': 18.11.18 dev: true @@ -3062,8 +3079,8 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.42.0)(typescript@4.9.5): - resolution: {integrity: sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA==} + /@typescript-eslint/eslint-plugin@5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@4.9.5): + resolution: {integrity: sha512-KSWsVvsJsLJv3c4e73y/Bzt7OpqMCADUO846bHcuWYSYM19bldbAeDv7dYyV0jwkbMfJ2XdlzwjhXtuD7OY6bw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -3074,37 +3091,37 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.9(eslint@8.42.0)(typescript@4.9.5) - '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/type-utils': 5.59.9(eslint@8.42.0)(typescript@4.9.5) - '@typescript-eslint/utils': 5.59.9(eslint@8.42.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.60.1 + '@typescript-eslint/type-utils': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + '@typescript-eslint/utils': 5.60.1(eslint@8.43.0)(typescript@4.9.5) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.42.0 + eslint: 8.43.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 - semver: 7.5.1 + semver: 7.5.3 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.59.9(eslint@8.42.0)(typescript@4.9.5): - resolution: {integrity: sha512-eZTK/Ci0QAqNc/q2MqMwI2+QI5ZI9HM12FcfGwbEvKif5ev/CIIYLmrlckvgPrC8XSbl39HtErR5NJiQkRkvWg==} + /@typescript-eslint/experimental-utils@5.60.1(eslint@8.43.0)(typescript@4.9.5): + resolution: {integrity: sha512-TXUdLxv2t8181nh5yLXl/Gr/zKj1ZofQ7m+ZdmG2+El0TYOHCvlZfc35D4nturemC3RUnf3KmLuFp3bVBjkG5w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.59.9(eslint@8.42.0)(typescript@4.9.5) - eslint: 8.42.0 + '@typescript-eslint/utils': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + eslint: 8.43.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.59.9(eslint@8.42.0)(typescript@4.9.5): - resolution: {integrity: sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==} + /@typescript-eslint/parser@5.60.1(eslint@8.43.0)(typescript@4.9.5): + resolution: {integrity: sha512-pHWlc3alg2oSMGwsU/Is8hbm3XFbcrb6P5wIxcQW9NsYBfnrubl/GhVVD/Jm/t8HXhA2WncoIRfBtnCgRGV96Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3113,26 +3130,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/typescript-estree': 5.59.9(typescript@4.9.5) + '@typescript-eslint/scope-manager': 5.60.1 + '@typescript-eslint/types': 5.60.1 + '@typescript-eslint/typescript-estree': 5.60.1(typescript@4.9.5) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.42.0 + eslint: 8.43.0 typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.59.9: - resolution: {integrity: sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==} + /@typescript-eslint/scope-manager@5.60.1: + resolution: {integrity: sha512-Dn/LnN7fEoRD+KspEOV0xDMynEmR3iSHdgNsarlXNLGGtcUok8L4N71dxUgt3YvlO8si7E+BJ5Fe3wb5yUw7DQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/visitor-keys': 5.59.9 + '@typescript-eslint/types': 5.60.1 + '@typescript-eslint/visitor-keys': 5.60.1 dev: true - /@typescript-eslint/type-utils@5.59.9(eslint@8.42.0)(typescript@4.9.5): - resolution: {integrity: sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q==} + /@typescript-eslint/type-utils@5.60.1(eslint@8.43.0)(typescript@4.9.5): + resolution: {integrity: sha512-vN6UztYqIu05nu7JqwQGzQKUJctzs3/Hg7E2Yx8rz9J+4LgtIDFWjjl1gm3pycH0P3mHAcEUBd23LVgfrsTR8A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -3141,23 +3158,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.9(typescript@4.9.5) - '@typescript-eslint/utils': 5.59.9(eslint@8.42.0)(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 5.60.1(typescript@4.9.5) + '@typescript-eslint/utils': 5.60.1(eslint@8.43.0)(typescript@4.9.5) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.42.0 + eslint: 8.43.0 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.59.9: - resolution: {integrity: sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==} + /@typescript-eslint/types@5.60.1: + resolution: {integrity: sha512-zDcDx5fccU8BA0IDZc71bAtYIcG9PowaOwaD8rjYbqwK7dpe/UMQl3inJ4UtUK42nOCT41jTSCwg76E62JpMcg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.9(typescript@4.9.5): - resolution: {integrity: sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==} + /@typescript-eslint/typescript-estree@5.60.1(typescript@4.9.5): + resolution: {integrity: sha512-hkX70J9+2M2ZT6fhti5Q2FoU9zb+GeZK2SLP1WZlvUDqdMbEKhexZODD1WodNRyO8eS+4nScvT0dts8IdaBzfw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -3165,43 +3182,43 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/visitor-keys': 5.59.9 + '@typescript-eslint/types': 5.60.1 + '@typescript-eslint/visitor-keys': 5.60.1 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.1 + semver: 7.5.3 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.59.9(eslint@8.42.0)(typescript@4.9.5): - resolution: {integrity: sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==} + /@typescript-eslint/utils@5.60.1(eslint@8.43.0)(typescript@4.9.5): + resolution: {integrity: sha512-tiJ7FFdFQOWssFa3gqb94Ilexyw0JVxj6vBzaSpfN/8IhoKkDuSAenUKvsSHw2A/TMpJb26izIszTXaqygkvpQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/typescript-estree': 5.59.9(typescript@4.9.5) - eslint: 8.42.0 + '@typescript-eslint/scope-manager': 5.60.1 + '@typescript-eslint/types': 5.60.1 + '@typescript-eslint/typescript-estree': 5.60.1(typescript@4.9.5) + eslint: 8.43.0 eslint-scope: 5.1.1 - semver: 7.5.1 + semver: 7.5.3 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.59.9: - resolution: {integrity: sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==} + /@typescript-eslint/visitor-keys@5.60.1: + resolution: {integrity: sha512-xEYIxKcultP6E/RMKqube11pGjXH1DCo60mQoWhVYyKfLkwbIVVjYxmOenNMxILx0TjCujPTjjnTIVzm09TXIw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.59.9 + '@typescript-eslint/types': 5.60.1 eslint-visitor-keys: 3.4.1 dev: true @@ -3330,6 +3347,11 @@ packages: web-streams-polyfill: 3.2.1 dev: false + /@web3-storage/data-segment@1.0.1: + resolution: {integrity: sha512-qgVSLN/VZhNgprFJvzLTK4wGTAQYpQ9O42FrskGxlDgGjBx7ZCw4VL8mgzDVhR4MHXL/yA/bXFQtm5JST+JAZQ==} + dependencies: + multiformats: 11.0.2 + /@web3-storage/sigv4@1.0.2: resolution: {integrity: sha512-ZUXKK10NmuQgPkqByhb1H3OQxkIM0CIn2BMPhGQw7vQw8WIzrBkk9IJiAVfJ/UVBFrf6uzPbx2lEBLt4diCMnQ==} dependencies: @@ -3464,20 +3486,20 @@ packages: negotiator: 0.6.3 dev: true - /acorn-import-assertions@1.9.0(acorn@8.8.2): + /acorn-import-assertions@1.9.0(acorn@8.9.0): resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.8.2 + acorn: 8.9.0 dev: true - /acorn-jsx@5.3.2(acorn@8.8.2): + /acorn-jsx@5.3.2(acorn@8.9.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.2 + acorn: 8.9.0 dev: true /acorn-walk@8.2.0: @@ -3485,8 +3507,8 @@ packages: engines: {node: '>=0.4.0'} dev: true - /acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + /acorn@8.9.0: + resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -3754,8 +3776,8 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.7 - caniuse-lite: 1.0.30001497 + browserslist: 4.21.9 + caniuse-lite: 1.0.30001509 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -3776,7 +3798,7 @@ packages: - debug dev: true - /babel-loader@8.3.0(@babel/core@7.22.5)(webpack@5.86.0): + /babel-loader@8.3.0(@babel/core@7.22.5)(webpack@5.88.1): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: @@ -3788,7 +3810,7 @@ packages: loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.86.0 + webpack: 5.88.1 dev: true /babel-plugin-apply-mdx-type-prop@1.6.22(@babel/core@7.12.9): @@ -3833,7 +3855,7 @@ packages: dependencies: '@babel/core': 7.22.5 '@babel/helper-define-polyfill-provider': 0.4.0(@babel/core@7.22.5) - core-js-compat: 3.30.2 + core-js-compat: 3.31.0 transitivePeerDependencies: - supports-color dev: true @@ -3983,15 +4005,15 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist@4.21.7: - resolution: {integrity: sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==} + /browserslist@4.21.9: + resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001497 - electron-to-chromium: 1.4.426 + caniuse-lite: 1.0.30001509 + electron-to-chromium: 1.4.445 node-releases: 2.0.12 - update-browserslist-db: 1.0.11(browserslist@4.21.7) + update-browserslist-db: 1.0.11(browserslist@4.21.9) dev: true /buffer-from@1.1.2: @@ -4012,7 +4034,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.1 + semver: 7.5.3 dev: true /bytes@3.0.0: @@ -4072,7 +4094,7 @@ packages: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 - tslib: 2.5.3 + tslib: 2.6.0 dev: true /camelcase-css@2.0.1: @@ -4087,20 +4109,24 @@ packages: /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.21.7 - caniuse-lite: 1.0.30001497 + browserslist: 4.21.9 + caniuse-lite: 1.0.30001509 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001497: - resolution: {integrity: sha512-I4/duVK4wL6rAK/aKZl3HXB4g+lIZvaT4VLAn2rCgJ38jVLb0lv2Xug6QuqmxXFVRJMF74SPPWPJ/1Sdm3vCzw==} + /caniuse-lite@1.0.30001509: + resolution: {integrity: sha512-2uDDk+TRiTX5hMcUYT/7CSyzMZxjfGu0vAUjS2g0LSD8UoXOv0LtpH4LxGMemsiPq6LCVIUjNwVM0erkOkGCDA==} dev: true /cborg@1.10.2: resolution: {integrity: sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==} hasBin: true + /cborg@2.0.2: + resolution: {integrity: sha512-2b+30FYdBmAukzlpzWcigJDUE9ym4Mo3ldCmShfgDkq7zOOk+NnLGl1SueAFPHXi55FlyLUuT0yEXgY/1CcymA==} + hasBin: true + /ccount@1.1.0: resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} dev: true @@ -4396,7 +4422,7 @@ packages: json-schema-typed: 7.0.3 onetime: 5.1.2 pkg-up: 3.1.0 - semver: 7.5.1 + semver: 7.5.3 dev: false /configstore@5.0.1: @@ -4450,7 +4476,7 @@ packages: engines: {node: '>= 0.6'} dev: true - /copy-webpack-plugin@11.0.0(webpack@5.86.0): + /copy-webpack-plugin@11.0.0(webpack@5.88.1): resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -4458,26 +4484,26 @@ packages: dependencies: fast-glob: 3.2.12 glob-parent: 6.0.2 - globby: 13.1.4 + globby: 13.2.0 normalize-path: 3.0.0 - schema-utils: 4.1.0 + schema-utils: 4.2.0 serialize-javascript: 6.0.1 - webpack: 5.86.0 + webpack: 5.88.1 dev: true - /core-js-compat@3.30.2: - resolution: {integrity: sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA==} + /core-js-compat@3.31.0: + resolution: {integrity: sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==} dependencies: - browserslist: 4.21.7 + browserslist: 4.21.9 dev: true - /core-js-pure@3.30.2: - resolution: {integrity: sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==} + /core-js-pure@3.31.0: + resolution: {integrity: sha512-/AnE9Y4OsJZicCzIe97JP5XoPKQJfTuEG43aEVLFJGOJpyqELod+pE6LEl63DfG1Mp8wX97LDaDpy1GmLEUxlg==} requiresBuild: true dev: true - /core-js@3.30.2: - resolution: {integrity: sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==} + /core-js@3.31.0: + resolution: {integrity: sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==} requiresBuild: true dev: true @@ -4532,7 +4558,7 @@ packages: dependencies: arrify: 3.0.0 cp-file: 9.1.0 - globby: 13.1.4 + globby: 13.2.0 junk: 4.0.1 micromatch: 4.0.5 nested-error-stacks: 2.1.1 @@ -4581,7 +4607,7 @@ packages: postcss: 8.4.24 dev: true - /css-loader@6.8.1(webpack@5.86.0): + /css-loader@6.8.1(webpack@5.88.1): resolution: {integrity: sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -4594,11 +4620,11 @@ packages: postcss-modules-scope: 3.0.0(postcss@8.4.24) postcss-modules-values: 4.0.0(postcss@8.4.24) postcss-value-parser: 4.2.0 - semver: 7.5.1 - webpack: 5.86.0 + semver: 7.5.3 + webpack: 5.88.1 dev: true - /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.2)(webpack@5.86.0): + /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.2)(webpack@5.88.1): resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -4627,10 +4653,10 @@ packages: cssnano: 5.1.15(postcss@8.4.24) jest-worker: 29.5.0 postcss: 8.4.24 - schema-utils: 4.1.0 + schema-utils: 4.2.0 serialize-javascript: 6.0.1 source-map: 0.6.1 - webpack: 5.86.0 + webpack: 5.88.1 dev: true /css-select@4.3.0: @@ -4908,9 +4934,9 @@ packages: readdirp: 3.6.0 require-package-name: 2.0.1 resolve: 1.22.2 - sass: 1.63.3 + sass: 1.63.6 scss-parser: 1.0.6 - semver: 7.5.1 + semver: 7.5.3 yargs: 16.2.0 transitivePeerDependencies: - supports-color @@ -5055,7 +5081,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 dev: true /dot-prop@5.3.0: @@ -5101,8 +5127,8 @@ packages: encoding: 0.1.13 dev: false - /electron-to-chromium@1.4.426: - resolution: {integrity: sha512-dWuNH+XUT9hdFHASfMpcZGW5kUyJvllumJkXaXiswuCkoaFIFI89aykBPuHEi1YUWQGRCqvIO0BUdmeFJ4W4Ww==} + /electron-to-chromium@1.4.445: + resolution: {integrity: sha512-++DB+9VK8SBJwC+X1zlMfJ1tMA3F0ipi39GdEp+x3cV2TyBihqAgad8cNMWtLDEkbH39nlDQP7PfGrDr3Dr7HA==} dev: true /emoji-regex@8.0.0: @@ -5137,8 +5163,8 @@ packages: once: 1.4.0 dev: true - /enhanced-resolve@5.14.1: - resolution: {integrity: sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==} + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -5221,8 +5247,8 @@ packages: stop-iteration-iterator: 1.0.0 dev: true - /es-module-lexer@1.2.1: - resolution: {integrity: sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg==} + /es-module-lexer@1.3.0: + resolution: {integrity: sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==} dev: true /es-set-tostringtag@2.0.1: @@ -5487,26 +5513,26 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - /eslint-config-prettier@8.8.0(eslint@8.42.0): + /eslint-config-prettier@8.8.0(eslint@8.43.0): resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.42.0 + eslint: 8.43.0 dev: true - /eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.32.2)(eslint@8.42.0): + /eslint-config-standard-jsx@11.0.0(eslint-plugin-react@7.32.2)(eslint@8.43.0): resolution: {integrity: sha512-+1EV/R0JxEK1L0NGolAr8Iktm3Rgotx3BKwgaX+eAuSX8D952LULKtjgZD3F+e6SvibONnhLwoTi9DPxN5LvvQ==} peerDependencies: eslint: ^8.8.0 eslint-plugin-react: ^7.28.0 dependencies: - eslint: 8.42.0 - eslint-plugin-react: 7.32.2(eslint@8.42.0) + eslint: 8.43.0 + eslint-plugin-react: 7.32.2(eslint@8.43.0) dev: true - /eslint-config-standard-with-typescript@30.0.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0)(typescript@4.9.5): + /eslint-config-standard-with-typescript@30.0.0(@typescript-eslint/eslint-plugin@5.60.1)(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0)(typescript@4.9.5): resolution: {integrity: sha512-/Ltst1BCZCWrGmqprLHBkTwuAbcoQrR8uMeSzZAv1vHKIVg+2nFje+DULA30SW01yCNhnx0a8yhZBkR0ZZPp+w==} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -5516,19 +5542,19 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.42.0)(typescript@4.9.5) - '@typescript-eslint/parser': 5.59.9(eslint@8.42.0)(typescript@4.9.5) - eslint: 8.42.0 - eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint@8.42.0) - eslint-plugin-n: 15.7.0(eslint@8.42.0) - eslint-plugin-promise: 6.1.1(eslint@8.42.0) + '@typescript-eslint/eslint-plugin': 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + eslint: 8.43.0 + eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.60.1)(eslint@8.43.0) + eslint-plugin-n: 15.7.0(eslint@8.43.0) + eslint-plugin-promise: 6.1.1(eslint@8.43.0) typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard-with-typescript@34.0.1(@typescript-eslint/eslint-plugin@5.59.9)(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0)(typescript@4.9.5): + /eslint-config-standard-with-typescript@34.0.1(@typescript-eslint/eslint-plugin@5.60.1)(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0)(typescript@4.9.5): resolution: {integrity: sha512-J7WvZeLtd0Vr9F+v4dZbqJCLD16cbIy4U+alJMq4MiXdpipdBM3U5NkXaGUjePc4sb1ZE01U9g6VuTBpHHz1fg==} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.43.0 @@ -5538,19 +5564,19 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.42.0)(typescript@4.9.5) - '@typescript-eslint/parser': 5.59.9(eslint@8.42.0)(typescript@4.9.5) - eslint: 8.42.0 - eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint@8.42.0) - eslint-plugin-n: 15.7.0(eslint@8.42.0) - eslint-plugin-promise: 6.1.1(eslint@8.42.0) + '@typescript-eslint/eslint-plugin': 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + eslint: 8.43.0 + eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.60.1)(eslint@8.43.0) + eslint-plugin-n: 15.7.0(eslint@8.43.0) + eslint-plugin-promise: 6.1.1(eslint@8.43.0) typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard@17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0): + /eslint-config-standard@17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0): resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -5558,13 +5584,13 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.42.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint@8.42.0) - eslint-plugin-n: 15.7.0(eslint@8.42.0) - eslint-plugin-promise: 6.1.1(eslint@8.42.0) + eslint: 8.43.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.60.1)(eslint@8.43.0) + eslint-plugin-n: 15.7.0(eslint@8.43.0) + eslint-plugin-promise: 6.1.1(eslint@8.43.0) dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -5573,20 +5599,20 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.42.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint@8.42.0) - eslint-plugin-n: 15.7.0(eslint@8.42.0) - eslint-plugin-promise: 6.1.1(eslint@8.42.0) + eslint: 8.43.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.60.1)(eslint@8.43.0) + eslint-plugin-n: 15.7.0(eslint@8.43.0) + eslint-plugin-promise: 6.1.1(eslint@8.43.0) dev: true - /eslint-etc@5.2.1(eslint@8.42.0)(typescript@4.9.5): + /eslint-etc@5.2.1(eslint@8.43.0)(typescript@4.9.5): resolution: {integrity: sha512-lFJBSiIURdqQKq9xJhvSJFyPA+VeTh5xvk24e8pxVL7bwLBtGF60C/KRkLTMrvCZ6DA3kbPuYhLWY0TZMlqTsg==} peerDependencies: eslint: ^8.0.0 typescript: '>=4.0.0' dependencies: - '@typescript-eslint/experimental-utils': 5.59.9(eslint@8.42.0)(typescript@4.9.5) - eslint: 8.42.0 + '@typescript-eslint/experimental-utils': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + eslint: 8.43.0 tsutils: 3.21.0(typescript@4.9.5) tsutils-etc: 1.4.2(tsutils@3.21.0)(typescript@4.9.5) typescript: 4.9.5 @@ -5604,7 +5630,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-node@0.3.7)(eslint@8.42.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.60.1)(eslint-import-resolver-node@0.3.7)(eslint@8.43.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5625,44 +5651,44 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.9(eslint@8.42.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@4.9.5) debug: 3.2.7 - eslint: 8.42.0 + eslint: 8.43.0 eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es@4.1.0(eslint@8.42.0): + /eslint-plugin-es@4.1.0(eslint@8.43.0): resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.42.0 + eslint: 8.43.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-etc@2.0.3(eslint@8.42.0)(typescript@4.9.5): + /eslint-plugin-etc@2.0.3(eslint@8.43.0)(typescript@4.9.5): resolution: {integrity: sha512-o5RS/0YwtjlGKWjhKojgmm82gV1b4NQUuwk9zqjy9/EjxNFKKYCaF+0M7DkYBn44mJ6JYFZw3Ft249dkKuR1ew==} peerDependencies: eslint: ^8.0.0 typescript: '>=4.0.0' dependencies: '@phenomnomnominal/tsquery': 5.0.1(typescript@4.9.5) - '@typescript-eslint/experimental-utils': 5.59.9(eslint@8.42.0)(typescript@4.9.5) - eslint: 8.42.0 - eslint-etc: 5.2.1(eslint@8.42.0)(typescript@4.9.5) + '@typescript-eslint/experimental-utils': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + eslint: 8.43.0 + eslint-etc: 5.2.1(eslint@8.43.0)(typescript@4.9.5) requireindex: 1.2.0 - tslib: 2.5.3 + tslib: 2.6.0 tsutils: 3.21.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.9)(eslint@8.42.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.60.1)(eslint@8.43.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -5672,15 +5698,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.9(eslint@8.42.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@4.9.5) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.42.0 + eslint: 8.43.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-node@0.3.7)(eslint@8.42.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.60.1)(eslint-import-resolver-node@0.3.7)(eslint@8.43.0) has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 @@ -5695,7 +5721,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@39.9.1(eslint@8.42.0): + /eslint-plugin-jsdoc@39.9.1(eslint@8.43.0): resolution: {integrity: sha512-Rq2QY6BZP2meNIs48aZ3GlIlJgBqFCmR55+UBvaDkA3ZNQ0SvQXOs2QKkubakEijV8UbIVbVZKsOVN8G3MuqZw==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: @@ -5705,15 +5731,15 @@ packages: comment-parser: 1.3.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.42.0 + eslint: 8.43.0 esquery: 1.5.0 - semver: 7.5.1 + semver: 7.5.3 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-jsdoc@40.3.0(eslint@8.42.0): + /eslint-plugin-jsdoc@40.3.0(eslint@8.43.0): resolution: {integrity: sha512-EhCqpzRkxoT2DUB4AnrU0ggBYvTh3bWrLZzQTupq6vSVE6XzNwJVKsOHa41GCoevnsWMBNmoDVjXWGqckjuG1g==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: @@ -5723,29 +5749,29 @@ packages: comment-parser: 1.3.1 debug: 4.3.4(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 8.42.0 + eslint: 8.43.0 esquery: 1.5.0 - semver: 7.5.1 + semver: 7.5.3 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-n@15.7.0(eslint@8.42.0): + /eslint-plugin-n@15.7.0(eslint@8.43.0): resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.42.0 - eslint-plugin-es: 4.1.0(eslint@8.42.0) - eslint-utils: 3.0.0(eslint@8.42.0) + eslint: 8.43.0 + eslint-plugin-es: 4.1.0(eslint@8.43.0) + eslint-utils: 3.0.0(eslint@8.43.0) ignore: 5.2.4 is-core-module: 2.12.1 minimatch: 3.1.2 resolve: 1.22.2 - semver: 7.5.1 + semver: 7.5.3 dev: true /eslint-plugin-no-only-tests@3.1.0: @@ -5753,25 +5779,25 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-promise@6.1.1(eslint@8.42.0): + /eslint-plugin-promise@6.1.1(eslint@8.43.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.42.0 + eslint: 8.43.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.42.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.43.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.42.0 + eslint: 8.43.0 dev: true - /eslint-plugin-react@7.32.2(eslint@8.42.0): + /eslint-plugin-react@7.32.2(eslint@8.43.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: @@ -5781,9 +5807,9 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.42.0 + eslint: 8.43.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 + jsx-ast-utils: 3.3.4 minimatch: 3.1.2 object.entries: 1.1.6 object.fromentries: 2.0.6 @@ -5795,17 +5821,17 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-unicorn@45.0.2(eslint@8.42.0): + /eslint-plugin-unicorn@45.0.2(eslint@8.43.0): resolution: {integrity: sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==} engines: {node: '>=14.18'} peerDependencies: eslint: '>=8.28.0' dependencies: '@babel/helper-validator-identifier': 7.22.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.42.0 + eslint: 8.43.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5816,21 +5842,21 @@ packages: regexp-tree: 0.1.27 regjsparser: 0.9.1 safe-regex: 2.1.1 - semver: 7.5.1 + semver: 7.5.3 strip-indent: 3.0.0 dev: true - /eslint-plugin-unicorn@46.0.1(eslint@8.42.0): + /eslint-plugin-unicorn@46.0.1(eslint@8.43.0): resolution: {integrity: sha512-setGhMTiLAddg1asdwjZ3hekIN5zLznNa5zll7pBPwFOka6greCKDQydfqy4fqyUhndi74wpDzClSQMEcmOaew==} engines: {node: '>=14.18'} peerDependencies: eslint: '>=8.28.0' dependencies: '@babel/helper-validator-identifier': 7.22.5 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.42.0 + eslint: 8.43.0 esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5841,7 +5867,7 @@ packages: regexp-tree: 0.1.27 regjsparser: 0.9.1 safe-regex: 2.1.1 - semver: 7.5.1 + semver: 7.5.3 strip-indent: 3.0.0 dev: true @@ -5868,13 +5894,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.42.0): + /eslint-utils@3.0.0(eslint@8.43.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.42.0 + eslint: 8.43.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5893,15 +5919,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.42.0: - resolution: {integrity: sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==} + /eslint@8.43.0: + resolution: {integrity: sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.42.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) '@eslint-community/regexpp': 4.5.1 '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.42.0 + '@eslint/js': 8.43.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -5933,7 +5959,7 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 + optionator: 0.9.3 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 @@ -5945,8 +5971,8 @@ packages: resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.2 - acorn-jsx: 5.3.2(acorn@8.8.2) + acorn: 8.9.0 + acorn-jsx: 5.3.2(acorn@8.9.0) eslint-visitor-keys: 3.4.1 dev: true @@ -6112,8 +6138,8 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-fifo@1.2.0: - resolution: {integrity: sha512-NcvQXt7Cky1cNau15FWy64IjuO8X0JijhTBBrJj1YlxlDfRkJXNaK9RFUjwpfDPzMdv7wB38jr53l9tkNLxnWg==} + /fast-fifo@1.3.0: + resolution: {integrity: sha512-IgfweLvEpwyA4WgiQe9Nx6VV2QkML2NkvZnk1oKnIzXgXdWxuhF7zw4DvLTPZJn6PIUneiAXPF24QmoEqHTjyw==} dev: false /fast-glob@3.2.12: @@ -6169,15 +6195,15 @@ packages: flat-cache: 3.0.4 dev: true - /file-loader@6.2.0(webpack@5.86.0): + /file-loader@6.2.0(webpack@5.88.1): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: webpack: ^4.0.0 || ^5.0.0 dependencies: loader-utils: 2.0.4 - schema-utils: 3.2.0 - webpack: 5.86.0 + schema-utils: 3.3.0 + webpack: 5.88.1 dev: true /filesize@8.0.7: @@ -6278,7 +6304,7 @@ packages: signal-exit: 3.0.7 dev: true - /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.42.0)(typescript@4.9.5)(webpack@5.86.0): + /fork-ts-checker-webpack-plugin@6.5.3(eslint@8.43.0)(typescript@4.9.5)(webpack@5.88.1): resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} engines: {node: '>=10', yarn: '>=1.0.0'} peerDependencies: @@ -6298,16 +6324,16 @@ packages: chokidar: 3.5.3 cosmiconfig: 6.0.0 deepmerge: 4.3.1 - eslint: 8.42.0 + eslint: 8.43.0 fs-extra: 9.1.0 glob: 7.2.3 memfs: 3.5.3 minimatch: 3.1.2 schema-utils: 2.7.0 - semver: 7.5.1 + semver: 7.5.3 tapable: 1.1.3 typescript: 4.9.5 - webpack: 5.86.0 + webpack: 5.88.1 dev: true /forwarded@0.2.0: @@ -6534,8 +6560,8 @@ packages: slash: 3.0.0 dev: true - /globby@13.1.4: - resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} + /globby@13.2.0: + resolution: {integrity: sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 @@ -6743,21 +6769,21 @@ packages: resolution: {integrity: sha512-nDWeib3SxaHZRz0YhRkOnBDT5LAyMx6BXITO5xsocUJh4bSaqn7ha/h9Zlhw0WLtfxSVEXv96kjp/LQts12B9A==} engines: {node: '>=14'} dependencies: - '@typescript-eslint/eslint-plugin': 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.42.0)(typescript@4.9.5) - '@typescript-eslint/parser': 5.59.9(eslint@8.42.0)(typescript@4.9.5) - eslint: 8.42.0 - eslint-config-prettier: 8.8.0(eslint@8.42.0) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0) - eslint-config-standard-with-typescript: 30.0.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0)(typescript@4.9.5) - eslint-plugin-etc: 2.0.3(eslint@8.42.0)(typescript@4.9.5) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint@8.42.0) - eslint-plugin-jsdoc: 39.9.1(eslint@8.42.0) - eslint-plugin-n: 15.7.0(eslint@8.42.0) + '@typescript-eslint/eslint-plugin': 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + eslint: 8.43.0 + eslint-config-prettier: 8.8.0(eslint@8.43.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0) + eslint-config-standard-with-typescript: 30.0.0(@typescript-eslint/eslint-plugin@5.60.1)(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0)(typescript@4.9.5) + eslint-plugin-etc: 2.0.3(eslint@8.43.0)(typescript@4.9.5) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.60.1)(eslint@8.43.0) + eslint-plugin-jsdoc: 39.9.1(eslint@8.43.0) + eslint-plugin-n: 15.7.0(eslint@8.43.0) eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-promise: 6.1.1(eslint@8.42.0) - eslint-plugin-react: 7.32.2(eslint@8.42.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.42.0) - eslint-plugin-unicorn: 45.0.2(eslint@8.42.0) + eslint-plugin-promise: 6.1.1(eslint@8.43.0) + eslint-plugin-react: 7.32.2(eslint@8.43.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.43.0) + eslint-plugin-unicorn: 45.0.2(eslint@8.43.0) lint-staged: 13.2.0 prettier: 2.8.3 simple-git-hooks: 2.8.1 @@ -6773,21 +6799,21 @@ packages: resolution: {integrity: sha512-wFecqDH+tW/Ajg993eFGLe1i7rVGrZkSZv1Zitsj3dGnvURLa/+Up+L46+MPFFCq7qhwBLoooL/Rs3cpjqbTVg==} engines: {node: '>=14'} dependencies: - '@typescript-eslint/eslint-plugin': 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.42.0)(typescript@4.9.5) - '@typescript-eslint/parser': 5.59.9(eslint@8.42.0)(typescript@4.9.5) - eslint: 8.42.0 - eslint-config-prettier: 8.8.0(eslint@8.42.0) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0) - eslint-config-standard-with-typescript: 34.0.1(@typescript-eslint/eslint-plugin@5.59.9)(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0)(typescript@4.9.5) - eslint-plugin-etc: 2.0.3(eslint@8.42.0)(typescript@4.9.5) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint@8.42.0) - eslint-plugin-jsdoc: 40.3.0(eslint@8.42.0) - eslint-plugin-n: 15.7.0(eslint@8.42.0) + '@typescript-eslint/eslint-plugin': 5.60.1(@typescript-eslint/parser@5.60.1)(eslint@8.43.0)(typescript@4.9.5) + '@typescript-eslint/parser': 5.60.1(eslint@8.43.0)(typescript@4.9.5) + eslint: 8.43.0 + eslint-config-prettier: 8.8.0(eslint@8.43.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0) + eslint-config-standard-with-typescript: 34.0.1(@typescript-eslint/eslint-plugin@5.60.1)(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0)(typescript@4.9.5) + eslint-plugin-etc: 2.0.3(eslint@8.43.0)(typescript@4.9.5) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.60.1)(eslint@8.43.0) + eslint-plugin-jsdoc: 40.3.0(eslint@8.43.0) + eslint-plugin-n: 15.7.0(eslint@8.43.0) eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-promise: 6.1.1(eslint@8.42.0) - eslint-plugin-react: 7.32.2(eslint@8.42.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.42.0) - eslint-plugin-unicorn: 46.0.1(eslint@8.42.0) + eslint-plugin-promise: 6.1.1(eslint@8.43.0) + eslint-plugin-react: 7.32.2(eslint@8.43.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.43.0) + eslint-plugin-unicorn: 46.0.1(eslint@8.43.0) lint-staged: 13.2.0 prettier: 2.8.8 simple-git-hooks: 2.8.1 @@ -6834,8 +6860,8 @@ packages: wbuf: 1.7.3 dev: true - /html-entities@2.3.5: - resolution: {integrity: sha512-72TJlcMkYsEJASa/3HnX7VT59htM7iSHbH59NSZbtc+22Ap0Txnlx91sfeB+/A7wNZg7UxtZdhAW4y+/jimrdg==} + /html-entities@2.4.0: + resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==} dev: true /html-escaper@2.0.2: @@ -6853,7 +6879,7 @@ packages: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.17.7 + terser: 5.18.2 dev: true /html-tags@3.3.1: @@ -6865,8 +6891,8 @@ packages: resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} dev: true - /html-webpack-plugin@5.5.2(webpack@5.86.0): - resolution: {integrity: sha512-2KsxTJQmtqsT1JGaZJmoMW25wpC0HM9gpW3jH/UMH62To0UKlzRUbJ/FtQNhZ0gd4gWMoetEYkyG8FMNqEO66Q==} + /html-webpack-plugin@5.5.3(webpack@5.88.1): + resolution: {integrity: sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==} engines: {node: '>=10.13.0'} peerDependencies: webpack: ^5.20.0 @@ -6876,7 +6902,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.86.0 + webpack: 5.88.1 dev: true /htmlparser2@6.1.0: @@ -7135,8 +7161,8 @@ packages: engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: '@ipld/dag-cbor': 9.0.0 - '@ipld/dag-pb': 4.0.3 - '@multiformats/murmur3': 2.1.4 + '@ipld/dag-pb': 4.0.4 + '@multiformats/murmur3': 2.1.5 err-code: 3.0.1 hamt-sharding: 3.0.2 interface-blockstore: 4.0.1 @@ -7156,7 +7182,7 @@ packages: engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: err-code: 3.0.1 - protobufjs: 7.2.3 + protobufjs: 7.2.4 dev: true /ipfs-utils@9.0.14: @@ -7648,7 +7674,7 @@ packages: resolution: {integrity: sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==} dependencies: buffer: 6.0.3 - fast-fifo: 1.2.0 + fast-fifo: 1.3.0 get-iterator: 1.0.2 p-defer: 3.0.0 p-fifo: 1.0.0 @@ -7793,12 +7819,14 @@ packages: graceful-fs: 4.2.11 dev: true - /jsx-ast-utils@3.3.3: - resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + /jsx-ast-utils@3.3.4: + resolution: {integrity: sha512-fX2TVdCViod6HwKEtSWGHs57oFhVfCMwieb9PuRDgjDPh5XeqJiHFFFJCHxU5cnTc3Bu/GRL+kPiFmw8XWOfKw==} engines: {node: '>=4.0'} dependencies: array-includes: 3.1.6 + array.prototype.flat: 1.3.1 object.assign: 4.1.4 + object.values: 1.1.6 dev: true /junk@4.0.1: @@ -7831,11 +7859,6 @@ packages: engines: {node: '>=6'} dev: true - /klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} - dev: true - /kysely@0.23.4: resolution: {integrity: sha512-3icLnj1fahUtZsP9zzOvF4DcdhekGsLX4ZaoBaIz0ZeHegyRDdbwpJD7zezAJ+KwQZNDeKchel6MikFNLsSZIA==} engines: {node: '>=14.0.0'} @@ -8039,7 +8062,7 @@ packages: /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 dev: true /lowercase-keys@1.0.1: @@ -8241,14 +8264,14 @@ packages: engines: {node: '>=4'} dev: true - /mini-css-extract-plugin@2.7.6(webpack@5.86.0): + /mini-css-extract-plugin@2.7.6(webpack@5.88.1): resolution: {integrity: sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - schema-utils: 4.1.0 - webpack: 5.86.0 + schema-utils: 4.2.0 + webpack: 5.88.1 dev: true /minimalistic-assert@1.0.1: @@ -8338,6 +8361,10 @@ packages: resolution: {integrity: sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} + /multiformats@12.0.1: + resolution: {integrity: sha512-s01wijBJoDUqESWSzePY0lvTw7J3PVO9x2Cc6ASI5AMZM2Gnhh7BC17+nlFhHKU7dDzaCaRfb+NiqNzOsgPUoQ==} + engines: {node: '>=16.0.0', npm: '>=7.0.0'} + /multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} @@ -8405,7 +8432,7 @@ packages: resolution: {integrity: sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==} dependencies: '@sinonjs/commons': 2.0.0 - '@sinonjs/fake-timers': 10.2.0 + '@sinonjs/fake-timers': 10.3.0 '@sinonjs/text-encoding': 0.7.2 just-extend: 4.2.1 path-to-regexp: 1.8.0 @@ -8415,7 +8442,7 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.5.3 + tslib: 2.6.0 dev: true /node-emoji@1.11.0: @@ -8627,16 +8654,16 @@ packages: hasBin: true dev: true - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: true /ora@6.1.2: @@ -8682,7 +8709,7 @@ packages: /p-fifo@1.0.0: resolution: {integrity: sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==} dependencies: - fast-fifo: 1.2.0 + fast-fifo: 1.3.0 p-defer: 3.0.0 dev: false @@ -8779,8 +8806,8 @@ packages: resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} engines: {node: '>=12'} - /p-timeout@6.1.1: - resolution: {integrity: sha512-yqz2Wi4fiFRpMmK0L2pGAU49naSUaP23fFIQL2Y6YT+qDGPoFwpvgQM/wzc6F8JoenUkIlAFa4Ql7NguXBxI7w==} + /p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} engines: {node: '>=14.16'} dev: false @@ -8799,7 +8826,7 @@ packages: resolution: {integrity: sha512-nkxeZInKET8e78NTtqBgxpnxDLbiCiQnGdoTnkLkluovfTyI5UTCrGwPNOr6ewJ90NpWyxEFt1ToZ96LmIXXHQ==} engines: {node: '>=12'} dependencies: - p-timeout: 6.1.1 + p-timeout: 6.1.2 dev: false /package-json@6.5.0: @@ -8816,7 +8843,7 @@ packages: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 dev: true /parent-module@1.0.1: @@ -8866,7 +8893,7 @@ packages: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 - tslib: 2.5.3 + tslib: 2.6.0 dev: true /path-browserify@1.0.1: @@ -9001,7 +9028,7 @@ packages: cpy: 9.0.1 esbuild: 0.14.39 events: 3.3.0 - globby: 13.1.4 + globby: 13.2.0 kleur: 4.1.5 lilconfig: 2.1.0 lodash: 4.17.21 @@ -9059,7 +9086,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 + browserslist: 4.21.9 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.24 @@ -9072,7 +9099,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 + browserslist: 4.21.9 postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: true @@ -9123,8 +9150,8 @@ packages: postcss-selector-parser: 6.0.13 dev: true - /postcss-loader@7.3.2(postcss@8.4.24)(webpack@5.86.0): - resolution: {integrity: sha512-c7qDlXErX6n0VT+LUsW+nwefVtTu3ORtVvK8EXuUIDcxo+b/euYqpuHlJAvePb0Af5e8uMjR/13e0lTuYifaig==} + /postcss-loader@7.3.3(postcss@8.4.24)(webpack@5.88.1): + resolution: {integrity: sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==} engines: {node: '>= 14.15.0'} peerDependencies: postcss: ^7.0.0 || ^8.0.1 @@ -9132,10 +9159,9 @@ packages: dependencies: cosmiconfig: 8.2.0 jiti: 1.18.2 - klona: 2.0.6 postcss: 8.4.24 - semver: 7.5.1 - webpack: 5.86.0 + semver: 7.5.3 + webpack: 5.88.1 dev: true /postcss-merge-idents@5.1.1(postcss@8.4.24): @@ -9166,7 +9192,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 + browserslist: 4.21.9 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.24) postcss: 8.4.24 @@ -9201,7 +9227,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 + browserslist: 4.21.9 cssnano-utils: 3.1.0(postcss@8.4.24) postcss: 8.4.24 postcss-value-parser: 4.2.0 @@ -9323,7 +9349,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 + browserslist: 4.21.9 postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: true @@ -9376,7 +9402,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 + browserslist: 4.21.9 caniuse-api: 3.0.0 postcss: 8.4.24 dev: true @@ -9522,8 +9548,8 @@ packages: xtend: 4.0.2 dev: true - /protobufjs@7.2.3: - resolution: {integrity: sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==} + /protobufjs@7.2.4: + resolution: {integrity: sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==} engines: {node: '>=12.0.0'} requiresBuild: true dependencies: @@ -9634,7 +9660,7 @@ packages: strip-json-comments: 2.0.1 dev: true - /react-dev-utils@12.0.1(eslint@8.42.0)(typescript@4.9.5)(webpack@5.86.0): + /react-dev-utils@12.0.1(eslint@8.43.0)(typescript@4.9.5)(webpack@5.88.1): resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} engines: {node: '>=14'} peerDependencies: @@ -9646,14 +9672,14 @@ packages: dependencies: '@babel/code-frame': 7.22.5 address: 1.2.2 - browserslist: 4.21.7 + browserslist: 4.21.9 chalk: 4.1.2 cross-spawn: 7.0.3 detect-port-alt: 1.1.6 escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.42.0)(typescript@4.9.5)(webpack@5.86.0) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.43.0)(typescript@4.9.5)(webpack@5.88.1) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -9669,7 +9695,7 @@ packages: strip-ansi: 6.0.1 text-table: 0.2.0 typescript: 4.9.5 - webpack: 5.86.0 + webpack: 5.88.1 transitivePeerDependencies: - eslint - supports-color @@ -9706,7 +9732,7 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true - /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.86.0): + /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.88.1): resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} engines: {node: '>=10.13.0'} peerDependencies: @@ -9718,7 +9744,7 @@ packages: dependencies: '@babel/runtime': 7.22.5 react-loadable: /@docusaurus/react-loadable@5.5.2 - webpack: 5.86.0 + webpack: 5.88.1 dev: true /react-native-fetch-api@3.0.0: @@ -10108,7 +10134,7 @@ packages: /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: - tslib: 2.5.3 + tslib: 2.6.0 /sade@1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} @@ -10141,8 +10167,8 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sass@1.63.3: - resolution: {integrity: sha512-ySdXN+DVpfwq49jG1+hmtDslYqpS7SkOR5GpF6o2bmb1RL/xS+wvPmegMvMywyfsmAV6p7TgwXYGrCZIFFbAHg==} + /sass@1.63.6: + resolution: {integrity: sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -10169,8 +10195,8 @@ packages: ajv-keywords: 3.5.2(ajv@6.12.6) dev: true - /schema-utils@3.2.0: - resolution: {integrity: sha512-0zTyLGyDJYd/MBxG1AhJkKa6fpEBds4OQO2ut0w7OYG+ZGhGea09lijvzsqegYSik88zc7cUtIlnnO+/BvD6gQ==} + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.12 @@ -10178,8 +10204,8 @@ packages: ajv-keywords: 3.5.2(ajv@6.12.6) dev: true - /schema-utils@4.1.0: - resolution: {integrity: sha512-Jw+GZVbP5IggB2WAn6UHI02LBwGmsIeYN/lNbSMZyDziQ7jmtAUrqKqDja+W89YHVs+KL/3IkIMltAklqB1vAw==} + /schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} engines: {node: '>= 12.13.0'} dependencies: '@types/json-schema': 7.0.12 @@ -10236,8 +10262,8 @@ packages: hasBin: true dev: true - /semver@7.5.1: - resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} + /semver@7.5.3: + resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} engines: {node: '>=10'} hasBin: true dependencies: @@ -10373,8 +10399,8 @@ packages: rechoir: 0.6.2 dev: true - /shiki@0.14.2: - resolution: {integrity: sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==} + /shiki@0.14.3: + resolution: {integrity: sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==} dependencies: ansi-sequence-parser: 1.1.0 jsonc-parser: 3.2.0 @@ -10402,7 +10428,7 @@ packages: resolution: {integrity: sha512-si3geiRkeovP7Iel2O+qGL4NrO9vbMf3KsrJEi0ghP1l5aBkB5UxARea5j0FUsSqH3HLBh0dQPAyQ8fObRUqHw==} dependencies: '@sinonjs/commons': 3.0.0 - '@sinonjs/fake-timers': 10.2.0 + '@sinonjs/fake-timers': 10.3.0 '@sinonjs/samsam': 8.0.0 diff: 5.1.0 nise: 5.1.4 @@ -10575,18 +10601,18 @@ packages: xdg-basedir: 4.0.0 dev: true - /standard@17.0.0(@typescript-eslint/parser@5.59.9): + /standard@17.0.0(@typescript-eslint/parser@5.60.1): resolution: {integrity: sha512-GlCM9nzbLUkr+TYR5I2WQoIah4wHA2lMauqbyPLV/oI5gJxqhHzhjl9EG2N0lr/nRqI3KCbCvm/W3smxvLaChA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - eslint: 8.42.0 - eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.42.0) - eslint-config-standard-jsx: 11.0.0(eslint-plugin-react@7.32.2)(eslint@8.42.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint@8.42.0) - eslint-plugin-n: 15.7.0(eslint@8.42.0) - eslint-plugin-promise: 6.1.1(eslint@8.42.0) - eslint-plugin-react: 7.32.2(eslint@8.42.0) + eslint: 8.43.0 + eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.43.0) + eslint-config-standard-jsx: 11.0.0(eslint-plugin-react@7.32.2)(eslint@8.43.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.60.1)(eslint@8.43.0) + eslint-plugin-n: 15.7.0(eslint@8.43.0) + eslint-plugin-promise: 6.1.1(eslint@8.43.0) + eslint-plugin-react: 7.32.2(eslint@8.43.0) standard-engine: 15.1.0 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -10782,7 +10808,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.7 + browserslist: 4.21.9 postcss: 8.4.24 postcss-selector-parser: 6.0.13 dev: true @@ -10880,7 +10906,7 @@ packages: unique-string: 3.0.0 dev: true - /terser-webpack-plugin@5.3.9(webpack@5.86.0): + /terser-webpack-plugin@5.3.9(webpack@5.88.1): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -10898,19 +10924,19 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.18 jest-worker: 27.5.1 - schema-utils: 3.2.0 + schema-utils: 3.3.0 serialize-javascript: 6.0.1 - terser: 5.17.7 - webpack: 5.86.0 + terser: 5.18.2 + webpack: 5.88.1 dev: true - /terser@5.17.7: - resolution: {integrity: sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ==} + /terser@5.18.2: + resolution: {integrity: sha512-Ah19JS86ypbJzTzvUCX7KOsEIhDaRONungA4aYBjEP3JZRf4ocuDzTg4QWZnPn9DEMiMYGJPiSOy7aykoCc70w==} engines: {node: '>=10'} hasBin: true dependencies: '@jridgewell/source-map': 0.3.3 - acorn: 8.8.2 + acorn: 8.9.0 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -11017,8 +11043,8 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.5.3: - resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + /tslib@2.6.0: + resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} /tsutils-etc@1.4.2(tsutils@3.21.0)(typescript@4.9.5): resolution: {integrity: sha512-2Dn5SxTDOu6YWDNKcx1xu2YUy6PUeKrWZB/x2cQ8vY2+iz3JRembKn/iZ0JLT1ZudGNwQQvtFX9AwvRHbXuPUg==} @@ -11142,7 +11168,7 @@ packages: lunr: 2.3.9 marked: 4.3.0 minimatch: 7.4.6 - shiki: 0.14.2 + shiki: 0.14.3 typescript: 4.9.5 /typescript@4.9.5: @@ -11300,13 +11326,13 @@ packages: engines: {node: '>= 0.8'} dev: true - /update-browserslist-db@1.0.11(browserslist@4.21.7): + /update-browserslist-db@1.0.11(browserslist@4.21.9): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.7 + browserslist: 4.21.9 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -11326,7 +11352,7 @@ packages: is-yarn-global: 0.3.0 latest-version: 5.1.0 pupa: 2.1.1 - semver: 7.5.1 + semver: 7.5.3 semver-diff: 3.1.1 xdg-basedir: 4.0.0 dev: true @@ -11336,7 +11362,7 @@ packages: dependencies: punycode: 2.3.0 - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.86.0): + /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.88.1): resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -11346,11 +11372,11 @@ packages: file-loader: optional: true dependencies: - file-loader: 6.2.0(webpack@5.86.0) + file-loader: 6.2.0(webpack@5.88.1) loader-utils: 2.0.4 mime-types: 2.1.35 - schema-utils: 3.2.0 - webpack: 5.86.0 + schema-utils: 3.3.0 + webpack: 5.88.1 dev: true /url-parse-lax@3.0.0: @@ -11509,7 +11535,7 @@ packages: hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.8.2 + acorn: 8.9.0 acorn-walk: 8.2.0 chalk: 4.1.2 commander: 7.2.0 @@ -11523,7 +11549,7 @@ packages: - utf-8-validate dev: true - /webpack-dev-middleware@5.3.3(webpack@5.86.0): + /webpack-dev-middleware@5.3.3(webpack@5.88.1): resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -11533,11 +11559,11 @@ packages: memfs: 3.5.3 mime-types: 2.1.35 range-parser: 1.2.1 - schema-utils: 4.1.0 - webpack: 5.86.0 + schema-utils: 4.2.0 + webpack: 5.88.1 dev: true - /webpack-dev-server@4.15.1(webpack@5.86.0): + /webpack-dev-server@4.15.1(webpack@5.88.1): resolution: {integrity: sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==} engines: {node: '>= 12.13.0'} hasBin: true @@ -11554,7 +11580,7 @@ packages: '@types/connect-history-api-fallback': 1.5.0 '@types/express': 4.17.17 '@types/serve-index': 1.9.1 - '@types/serve-static': 1.15.1 + '@types/serve-static': 1.15.2 '@types/sockjs': 0.3.33 '@types/ws': 8.5.5 ansi-html-community: 0.0.8 @@ -11566,20 +11592,20 @@ packages: default-gateway: 6.0.3 express: 4.18.2 graceful-fs: 4.2.11 - html-entities: 2.3.5 + html-entities: 2.4.0 http-proxy-middleware: 2.0.6(@types/express@4.17.17) ipaddr.js: 2.1.0 launch-editor: 2.6.0 open: 8.4.2 p-retry: 4.6.2 rimraf: 3.0.2 - schema-utils: 4.1.0 + schema-utils: 4.2.0 selfsigned: 2.1.1 serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.86.0 - webpack-dev-middleware: 5.3.3(webpack@5.86.0) + webpack: 5.88.1 + webpack-dev-middleware: 5.3.3(webpack@5.88.1) ws: 8.13.0 transitivePeerDependencies: - bufferutil @@ -11601,8 +11627,8 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack@5.86.0: - resolution: {integrity: sha512-3BOvworZ8SO/D4GVP+GoRC3fVeg5MO4vzmq8TJJEkdmopxyazGDxN8ClqN12uzrZW9Tv8EED8v5VSb6Sqyi0pg==} + /webpack@5.88.1: + resolution: {integrity: sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -11616,12 +11642,12 @@ packages: '@webassemblyjs/ast': 1.11.6 '@webassemblyjs/wasm-edit': 1.11.6 '@webassemblyjs/wasm-parser': 1.11.6 - acorn: 8.8.2 - acorn-import-assertions: 1.9.0(acorn@8.8.2) - browserslist: 4.21.7 + acorn: 8.9.0 + acorn-import-assertions: 1.9.0(acorn@8.9.0) + browserslist: 4.21.9 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.14.1 - es-module-lexer: 1.2.1 + enhanced-resolve: 5.15.0 + es-module-lexer: 1.3.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -11630,9 +11656,9 @@ packages: loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 3.2.0 + schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(webpack@5.86.0) + terser-webpack-plugin: 5.3.9(webpack@5.88.1) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -11641,7 +11667,7 @@ packages: - uglify-js dev: true - /webpackbar@5.0.2(webpack@5.86.0): + /webpackbar@5.0.2(webpack@5.88.1): resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} engines: {node: '>=12'} peerDependencies: @@ -11651,7 +11677,7 @@ packages: consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.3.3 - webpack: 5.86.0 + webpack: 5.88.1 dev: true /websocket-driver@0.7.4: @@ -11739,11 +11765,6 @@ packages: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} dev: true - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: true - /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true