From bf41071e0a9cdc60a1e9d2ee60f5291cf91b4049 Mon Sep 17 00:00:00 2001 From: Hugo Dias Date: Wed, 1 Feb 2023 14:50:39 +0000 Subject: [PATCH] feat: add support for access/authorize and update (#392) closes #386 --- .../migrations/0004_add_accounts_table.sql | 21 + packages/access-api/src/bindings.d.ts | 10 +- packages/access-api/src/models/accounts.js | 112 ++ packages/access-api/src/models/spaces.js | 20 +- packages/access-api/src/models/validations.js | 12 + .../access-api/src/routes/validate-email.js | 51 +- .../src/service/access-authorize.js | 45 + packages/access-api/src/service/index.js | 9 +- packages/access-api/src/utils/common.js | 40 + packages/access-api/src/utils/context.js | 2 + packages/access-api/src/utils/d1.js | 68 +- packages/access-api/src/utils/did-mailto.js | 12 + packages/access-api/src/utils/html.js | 15 +- .../access-api/test/access-authorize.test.js | 163 +++ packages/access-client/package.json | 2 +- packages/access-client/src/types.ts | 35 +- packages/capabilities/src/access.js | 2 +- packages/capabilities/src/index.js | 2 +- pnpm-lock.yaml | 1191 +++++++++-------- 19 files changed, 1178 insertions(+), 634 deletions(-) create mode 100644 packages/access-api/migrations/0004_add_accounts_table.sql create mode 100644 packages/access-api/src/models/accounts.js create mode 100644 packages/access-api/src/service/access-authorize.js create mode 100644 packages/access-api/src/utils/did-mailto.js create mode 100644 packages/access-api/test/access-authorize.test.js diff --git a/packages/access-api/migrations/0004_add_accounts_table.sql b/packages/access-api/migrations/0004_add_accounts_table.sql new file mode 100644 index 000000000..81118aed1 --- /dev/null +++ b/packages/access-api/migrations/0004_add_accounts_table.sql @@ -0,0 +1,21 @@ +-- Migration number: 0004 2023-01-24T15:09:12.316Z +CREATE TABLE + IF NOT EXISTS accounts ( + did TEXT NOT NULL PRIMARY KEY, + inserted_at TEXT NOT NULL DEFAULT (strftime ('%Y-%m-%dT%H:%M:%fZ', 'now')), + updated_at TEXT NOT NULL DEFAULT (strftime ('%Y-%m-%dT%H:%M:%fZ', 'now')), + UNIQUE (did) + ); + +CREATE TABLE + IF NOT EXISTS delegations ( + cid TEXT NOT NULL PRIMARY KEY, + bytes BLOB NOT NULL, + audience TEXT NOT NULL, + issuer TEXT NOT NULL, + expiration TEXT, + inserted_at TEXT NOT NULL DEFAULT (strftime ('%Y-%m-%dT%H:%M:%fZ', 'now')), + updated_at TEXT NOT NULL DEFAULT (strftime ('%Y-%m-%dT%H:%M:%fZ', 'now')), + UNIQUE (cid), + FOREIGN KEY (audience) REFERENCES accounts (did) ON UPDATE CASCADE ON DELETE CASCADE + ); \ No newline at end of file diff --git a/packages/access-api/src/bindings.d.ts b/packages/access-api/src/bindings.d.ts index fb912dc5a..0363c45ab 100644 --- a/packages/access-api/src/bindings.d.ts +++ b/packages/access-api/src/bindings.d.ts @@ -1,11 +1,16 @@ import type { Logging } from '@web3-storage/worker-utils/logging' -import type { SpaceTable } from '@web3-storage/access/types' +import type { + AccountTable, + DelegationTable, + SpaceTable, +} from '@web3-storage/access/types' import type { Handler as _Handler } from '@web3-storage/worker-utils/router' import { Email } from './utils/email.js' import { Spaces } from './models/spaces.js' import { Validations } from './models/validations.js' import { loadConfig } from './config.js' import { Signer as EdSigner } from '@ucanto/principal/ed25519' +import { Accounts } from './models/accounts.js' export {} @@ -53,6 +58,7 @@ export interface RouteContext { models: { spaces: Spaces validations: Validations + accounts: Accounts } uploadApi: { production?: URL @@ -98,4 +104,6 @@ export interface D1ErrorRaw extends Error { export interface D1Schema { spaces: SpaceTable + accounts: AccountTable + delegations: DelegationTable } diff --git a/packages/access-api/src/models/accounts.js b/packages/access-api/src/models/accounts.js new file mode 100644 index 000000000..8200417ef --- /dev/null +++ b/packages/access-api/src/models/accounts.js @@ -0,0 +1,112 @@ +// eslint-disable-next-line no-unused-vars +import * as Ucanto from '@ucanto/interface' +import { + delegationsToBytes, + expirationToDate, +} from '@web3-storage/access/encoding' +import { Kysely } from 'kysely' +import { D1Dialect } from 'kysely-d1' +import { GenericPlugin } from '../utils/d1.js' + +/** + * @typedef {import('@web3-storage/access/src/types.js').DelegationRecord} DelegationRecord + */ + +/** + * Accounts + */ +export class Accounts { + /** + * + * @param {D1Database} d1 + */ + constructor(d1) { + /** @type {GenericPlugin} */ + const objectPlugin = new GenericPlugin({ + // eslint-disable-next-line unicorn/no-null + expires_at: (v) => (typeof v === 'string' ? new Date(v) : null), + inserted_at: (v) => new Date(v), + updated_at: (v) => new Date(v), + }) + this.d1 = /** @type {Kysely} */ ( + new Kysely({ + dialect: new D1Dialect({ database: d1 }), + plugins: [objectPlugin], + }) + ) + } + + /** + * @param {Ucanto.URI<"did:">} did + */ + async create(did) { + const result = await this.d1 + .insertInto('accounts') + .values({ + did, + }) + .onConflict((oc) => oc.column('did').doNothing()) + .returning('accounts.did') + .execute() + return { data: result } + } + + /** + * + * @param {Ucanto.Delegation} del + */ + async addDelegation(del) { + const result = await this.d1 + .insertInto('delegations') + .values({ + cid: del.cid.toV1().toString(), + audience: del.audience.did(), + issuer: del.issuer.did(), + bytes: delegationsToBytes([del]), + expires_at: expirationToDate(del.expiration), + }) + .onConflict((oc) => oc.column('cid').doNothing()) + .returningAll() + .executeTakeFirst() + return result + } + + /** + * @param {Ucanto.URI<"did:">} did + */ + async get(did) { + return await this.d1 + .selectFrom('accounts') + .selectAll() + .where('accounts.did', '=', did) + .executeTakeFirst() + } + + /** + * @param {Ucanto.URI<"did:">} did + */ + async getDelegations(did) { + return await this.d1 + .selectFrom('delegations') + .selectAll() + .where('delegations.audience', '=', did) + .execute() + } + + /** + * @param {string} cid + */ + async getDelegationsByCid(cid) { + return await this.d1 + .selectFrom('delegations') + .selectAll() + .where('delegations.cid', '=', cid) + .where((qb) => + qb + .where('delegations.expires_at', '>=', new Date()) + // eslint-disable-next-line unicorn/no-null + .orWhere('delegations.expires_at', 'is', null) + ) + .executeTakeFirst() + } +} diff --git a/packages/access-api/src/models/spaces.js b/packages/access-api/src/models/spaces.js index f22568912..3a862053b 100644 --- a/packages/access-api/src/models/spaces.js +++ b/packages/access-api/src/models/spaces.js @@ -4,9 +4,11 @@ import * as Ucanto from '@ucanto/interface' import { delegationToString } from '@web3-storage/access/encoding' import { Kysely } from 'kysely' import { D1Dialect } from 'kysely-d1' -import { D1Error, SpacePlugin } from '../utils/d1.js' +import { D1Error, GenericPlugin } from '../utils/d1.js' -const spacePlugin = new SpacePlugin() +/** + * @typedef {import('@web3-storage/access/src/types.js').SpaceRecord} SpaceRecord + */ /** * Spaces @@ -17,8 +19,17 @@ export class Spaces { * @param {D1Database} d1 */ constructor(d1) { + /** @type {GenericPlugin} */ + const objectPlugin = new GenericPlugin({ + metadata: (v) => JSON.parse(v), + inserted_at: (v) => new Date(v), + updated_at: (v) => new Date(v), + }) this.d1 = /** @type {Kysely} */ ( - new Kysely({ dialect: new D1Dialect({ database: d1 }) }) + new Kysely({ + dialect: new D1Dialect({ database: d1 }), + plugins: [objectPlugin], + }) ) } @@ -34,7 +45,6 @@ export class Spaces { /** @type {unknown} */ (invocation.facts[0]) ) const result = await this.d1 - .withPlugin(spacePlugin) .insertInto('spaces') .values({ agent: invocation.issuer.did(), @@ -64,7 +74,6 @@ export class Spaces { */ async get(did) { const space = await this.d1 - .withPlugin(spacePlugin) .selectFrom('spaces') .selectAll() .where('spaces.did', '=', did) @@ -80,7 +89,6 @@ export class Spaces { */ async getByEmail(email) { const spaces = await this.d1 - .withPlugin(spacePlugin) .selectFrom('spaces') .selectAll() .where('spaces.email', '=', email.replace('mailto:', '')) diff --git a/packages/access-api/src/models/validations.js b/packages/access-api/src/models/validations.js index 8783a85cd..5f36865cb 100644 --- a/packages/access-api/src/models/validations.js +++ b/packages/access-api/src/models/validations.js @@ -29,6 +29,18 @@ export class Validations { return delegation } + /** + * @template {import('@ucanto/interface').Capabilities} T = import('@ucanto/interface').Capabilities + * @param {import('@web3-storage/access/src/types').EncodedDelegation} ucan + * @param {import('@ucanto/interface').DID} agent + * @param {number} expirationTtl - Expiration in second from now. Defaults to 5 mins. + */ + async putSession(ucan, agent, expirationTtl = 60 * 5) { + return await this.kv.put(agent, ucan, { + expirationTtl, + }) + } + /** * @param {string} did */ diff --git a/packages/access-api/src/routes/validate-email.js b/packages/access-api/src/routes/validate-email.js index d3516a360..3da06bce7 100644 --- a/packages/access-api/src/routes/validate-email.js +++ b/packages/access-api/src/routes/validate-email.js @@ -1,5 +1,7 @@ /* eslint-disable no-unused-vars */ +import { stringToDelegation } from '@web3-storage/access/encoding' import QRCode from 'qrcode' +import { toEmail } from '../utils/did-mailto.js' import { HtmlResponse, ValidateEmail, @@ -14,6 +16,10 @@ export async function validateEmail(req, env) { if (req.query && req.query.ucan && req.query.mode === 'recover') { return recover(req, env) } + + if (req.query && req.query.ucan && req.query.mode === 'session') { + return session(req, env) + } if (req.query && req.query.ucan) { try { const delegation = await env.models.validations.put( @@ -25,7 +31,11 @@ export async function validateEmail(req, env) { return new HtmlResponse( ( } */ + const delegation = stringToDelegation(req.query.ucan) + await env.models.validations.putSession( + req.query.ucan, + delegation.capabilities[0].nb.key + ) + + try { + return new HtmlResponse( + ( + + ) + ) + } catch (error) { + const err = /** @type {Error} */ (error) + env.log.error(err) + return new HtmlResponse( + + ) + } +} diff --git a/packages/access-api/src/service/access-authorize.js b/packages/access-api/src/service/access-authorize.js new file mode 100644 index 000000000..1efd4b6b7 --- /dev/null +++ b/packages/access-api/src/service/access-authorize.js @@ -0,0 +1,45 @@ +// @ts-ignore +// eslint-disable-next-line no-unused-vars +import * as Ucanto from '@ucanto/interface' +import * as Server from '@ucanto/server' +import * as Access from '@web3-storage/capabilities/access' +import * as Mailto from '../utils/did-mailto.js' +import * as DID from '@ipld/dag-ucan/did' +import { delegationToString } from '@web3-storage/access/encoding' + +/** + * @param {import('../bindings').RouteContext} ctx + */ +export function accessAuthorizeProvider(ctx) { + return Server.provide( + Access.authorize, + async ({ capability, invocation }) => { + const session = await Access.session + .invoke({ + issuer: ctx.signer, + audience: DID.parse(capability.nb.as), + with: ctx.signer.did(), + lifetimeInSeconds: 86_400 * 7, // 7 days + nb: { + key: capability.with, + }, + }) + .delegate() + + const encoded = delegationToString(session) + + await ctx.models.accounts.create(capability.nb.as) + + const url = `${ctx.url.protocol}//${ctx.url.host}/validate-email?ucan=${encoded}&mode=session` + // For testing + if (ctx.config.ENV === 'test') { + return url + } + + await ctx.email.sendValidation({ + to: Mailto.toEmail(capability.nb.as), + url, + }) + } + ) +} diff --git a/packages/access-api/src/service/index.js b/packages/access-api/src/service/index.js index d1a24781d..8bef92ff6 100644 --- a/packages/access-api/src/service/index.js +++ b/packages/access-api/src/service/index.js @@ -10,11 +10,11 @@ import { import { voucherClaimProvider } from './voucher-claim.js' import { voucherRedeemProvider } from './voucher-redeem.js' import * as uploadApi from './upload-api-proxy.js' +import { accessAuthorizeProvider } from './access-authorize.js' /** * @param {import('../bindings').RouteContext} ctx - * @returns { - * & import('@web3-storage/access/types').Service + * @returns { import('@web3-storage/access/types').Service * & { store: uploadApi.StoreServiceInferred } * & { upload: uploadApi.UploadServiceInferred } * } @@ -24,6 +24,9 @@ export function service(ctx) { store: uploadApi.createStoreProxy(ctx), upload: uploadApi.createUploadProxy(ctx), + access: { + authorize: accessAuthorizeProvider(ctx), + }, voucher: { claim: voucherClaimProvider(ctx), redeem: voucherRedeemProvider(ctx), @@ -66,7 +69,7 @@ export function service(ctx) { const results = [] for (const { delegation, metadata } of spaces) { if (delegation) { - const proof = await stringToDelegation( + const proof = stringToDelegation( /** @type {import('@web3-storage/access/types').EncodedDelegation<[import('@web3-storage/access/types').Top]>} */ ( delegation ) diff --git a/packages/access-api/src/utils/common.js b/packages/access-api/src/utils/common.js index a8bf1d6c9..d438098ff 100644 --- a/packages/access-api/src/utils/common.js +++ b/packages/access-api/src/utils/common.js @@ -6,3 +6,43 @@ export function isObject(obj) { return typeof obj === 'object' && obj !== null } + +/** + * + * @param {unknown} value + * @returns {value is Record} + */ +export function isPlainObject(value) { + if (typeof value !== 'object' || value === null) { + return false + } + + const prototype = Object.getPrototypeOf(value) + return ( + (prototype === null || + prototype === Object.prototype || + Object.getPrototypeOf(prototype) === null) && + !(Symbol.toStringTag in value) && + !(Symbol.iterator in value) + ) +} + +/** + * @param {unknown} value + * @returns {value is Date} + */ +export function isDate(value) { + const objectTypeName = toString.call(value).slice(8, -1) + + return objectTypeName === 'Date' +} + +/** + * + * @param {unknown} value + * @returns {value is Buffer} + */ +export function isBuffer(value) { + // @ts-ignore + return value?.constructor?.isBuffer?.(value) ?? false +} diff --git a/packages/access-api/src/utils/context.js b/packages/access-api/src/utils/context.js index 7ea175f19..653d3343b 100644 --- a/packages/access-api/src/utils/context.js +++ b/packages/access-api/src/utils/context.js @@ -3,6 +3,7 @@ import Toucan from 'toucan-js' import { Signer } from '@ucanto/principal/ed25519' import pkg from '../../package.json' import { loadConfig } from '../config.js' +import { Accounts } from '../models/accounts.js' import { Spaces } from '../models/spaces.js' import { Validations } from '../models/validations.js' import { Email } from './email.js' @@ -53,6 +54,7 @@ export function getContext(request, env, ctx) { models: { spaces: new Spaces(config.DB), validations: new Validations(config.VALIDATIONS), + accounts: new Accounts(config.DB), }, email: new Email({ token: config.POSTMARK_TOKEN }), uploadApi: { diff --git a/packages/access-api/src/utils/d1.js b/packages/access-api/src/utils/d1.js index e19750055..82731a918 100644 --- a/packages/access-api/src/utils/d1.js +++ b/packages/access-api/src/utils/d1.js @@ -2,13 +2,13 @@ // eslint-disable-next-line no-unused-vars import * as Ucanto from '@ucanto/interface' import { OperationNodeTransformer } from 'kysely' -import { isObject } from './common.js' +import { isPlainObject, isDate, isBuffer } from './common.js' /** * @typedef {import('kysely').KyselyPlugin} KyselyPlugin */ -export class JsonTransformer extends OperationNodeTransformer { +export class ObjectLikeTransformer extends OperationNodeTransformer { /** * @param {import('kysely').PrimitiveValueListNode} node */ @@ -16,20 +16,49 @@ export class JsonTransformer extends OperationNodeTransformer { return { ...node, values: node.values.map((v) => { - return isObject(v) ? JSON.stringify(v) : v + if (isPlainObject(v)) { + return JSON.stringify(v) + } + + if (isDate(v)) { + return v.toISOString() + } + + return v }), } } + + /** + * @param {import('kysely').ValueNode} node + */ + transformValue(node) { + if (isPlainObject(node.value)) { + return { kind: node.kind, value: JSON.stringify(node.value) } + } + + if (isDate(node.value)) { + return { kind: node.kind, value: node.value.toISOString() } + } + + return node + } } /** - * Plugin to transform queries and results for the Space table + * Plugin to transform queries and results to and from js object types * + * @template R * @implements {KyselyPlugin} */ -export class SpacePlugin { - constructor() { - this.transformer = new JsonTransformer() +export class GenericPlugin { + /** + * + * @param {Partial<{[Key in keyof R]: (value: any) => R[Key]}>} resultTransforms + */ + constructor(resultTransforms) { + this.transformer = new ObjectLikeTransformer() + this.resultTransforms = resultTransforms } /** @@ -43,18 +72,23 @@ export class SpacePlugin { ...args.result, rows: args.result.rows.map((row) => { const custom = {} - if (row.metadata) { - // @ts-ignore - custom.metadata = JSON.parse(row.metadata) - } - if (row.inserted_at) { - // @ts-ignore - custom.inserted_at = new Date(row.inserted_at) - } - if (row.updated_at) { + for (const [key, value] of Object.entries(row)) { + if (isBuffer(value)) { + // @ts-ignore + custom[key] = new Uint8Array( + value.buffer, + value.byteOffset, + value.byteLength + ) + } + // @ts-ignore - custom.updated_at = new Date(row.updated_at) + if (this.resultTransforms[key]) { + // @ts-ignore + custom[key] = this.resultTransforms[key](value) + } } + return { ...row, ...custom, diff --git a/packages/access-api/src/utils/did-mailto.js b/packages/access-api/src/utils/did-mailto.js new file mode 100644 index 000000000..52db79170 --- /dev/null +++ b/packages/access-api/src/utils/did-mailto.js @@ -0,0 +1,12 @@ +/** + * + * @param {`did:${string}:${string}`} did + * @returns + */ +export function toEmail(did) { + const parts = did.split(':') + if (parts[1] !== 'mailto') { + throw new Error(`DID ${did} is not a mailto did.`) + } + return `${parts[3]}@${parts[2]}` +} diff --git a/packages/access-api/src/utils/html.js b/packages/access-api/src/utils/html.js index c62ada129..9db97041b 100644 --- a/packages/access-api/src/utils/html.js +++ b/packages/access-api/src/utils/html.js @@ -1,6 +1,4 @@ import { render } from 'preact-render-to-string' -// eslint-disable-next-line no-unused-vars -import * as Ucanto from '@ucanto/interface' /** * Build HTML document @@ -100,11 +98,12 @@ export class HtmlResponse extends Response { /** * * @param {object} param0 - * @param {Ucanto.Delegation<[import('@web3-storage/capabilities/types').VoucherClaim]> | Ucanto.Delegation<[import('@web3-storage/capabilities/types').SpaceRecover]>} param0.delegation * @param {string} param0.ucan + * @param {string} param0.email + * @param {string} param0.audience * @param {string} param0.qrcode */ -export const ValidateEmail = ({ delegation, ucan, qrcode }) => ( +export const ValidateEmail = ({ ucan, qrcode, email, audience }) => (
( width="80" />

Email Validated

-

- {delegation.capabilities[0].nb.identity.replace('mailto:', '')} was - confirmed. You may close this window. -

+

{email} was confirmed. You may close this window.

During the beta period, uploads via w3up will only appear via the beta @@ -141,10 +137,11 @@ export const ValidateEmail = ({ delegation, ucan, qrcode }) => (

More details
Validation requested by:

- {delegation.audience.did()} + {audience}

QR Code:
>} */ + let ctx + beforeEach(async function () { + ctx = await context() + }) + + it('should issue ./update', async function () { + const { issuer, service, conn, d1 } = ctx + const accountDID = 'did:mailto:dag.house:hello' + + const inv = await Access.authorize + .invoke({ + issuer, + audience: service, + with: issuer.did(), + nb: { + as: accountDID, + }, + }) + .execute(conn) + + if (!inv) { + return assert.fail('no output') + } + if (inv.error) { + return assert.fail(inv.message) + } + + const url = new URL(inv) + const encoded = + /** @type {import('@web3-storage/access/types').EncodedDelegation<[import('@web3-storage/capabilities/types').AccessSession]>} */ ( + url.searchParams.get('ucan') + ) + const delegation = stringToDelegation(encoded) + t.deepEqual(delegation.issuer.did(), service.did()) + t.deepEqual(delegation.audience.did(), accountDID) + t.deepEqual(delegation.capabilities[0].nb.key, issuer.did()) + t.deepEqual(delegation.capabilities[0].with, service.did()) + t.deepEqual(delegation.capabilities[0].can, './update') + + const accounts = new Accounts(d1) + const acc = await accounts.get(accountDID) + t.ok( + isSubset(acc, { + did: accountDID, + }) + ) + }) + + it('should validate have delegation in the email url', async function () { + const { issuer, service, conn, mf } = ctx + const accountDID = 'did:mailto:dag.house:email' + + const inv = await Access.authorize + .invoke({ + issuer, + audience: service, + with: issuer.did(), + nb: { + as: accountDID, + }, + }) + .execute(conn) + + if (!inv) { + return assert.fail('no output') + } + if (inv.error) { + return assert.fail(inv.message) + } + + const url = new URL(inv) + const encoded = + /** @type {import('@web3-storage/access/types').EncodedDelegation<[import('@web3-storage/capabilities/types').AccessSession]>} */ ( + url.searchParams.get('ucan') + ) + const rsp = await mf.dispatchFetch(url) + const html = await rsp.text() + + assert(html.includes(encoded)) + assert(html.includes(toEmail(accountDID))) + }) + + it('should receive delegation in the ws', async function () { + const { issuer, service, conn, mf } = ctx + const accountDID = 'did:mailto:dag.house:email' + + const inv = await Access.authorize + .invoke({ + issuer, + audience: service, + with: issuer.did(), + nb: { + as: accountDID, + }, + }) + .execute(conn) + + if (!inv) { + return assert.fail('no output') + } + if (inv.error) { + return assert.fail(inv.message) + } + + const url = new URL(inv) + // click email url + await mf.dispatchFetch(url) + + // ws + const res = await mf.dispatchFetch('http://localhost:8787/validate-ws', { + headers: { Upgrade: 'websocket' }, + }) + + const webSocket = res.webSocket + if (webSocket) { + let done = false + webSocket.accept() + webSocket.addEventListener('message', (event) => { + // @ts-ignore + const data = JSON.parse(event.data) + + const encoded = + /** @type {import('@web3-storage/access/types').EncodedDelegation<[import('@web3-storage/capabilities/types').AccessSession]>} */ ( + data.delegation + ) + + assert.ok(encoded) + const delegation = stringToDelegation(encoded) + t.deepEqual(delegation.issuer.did(), service.did()) + t.deepEqual(delegation.audience.did(), accountDID) + t.deepEqual(delegation.capabilities[0].nb.key, issuer.did()) + t.deepEqual(delegation.capabilities[0].with, service.did()) + t.deepEqual(delegation.capabilities[0].can, './update') + done = true + }) + + webSocket.send( + JSON.stringify({ + did: issuer.did(), + }) + ) + + await pWaitFor(() => done) + } else { + assert.fail('should have ws') + } + }) +}) diff --git a/packages/access-client/package.json b/packages/access-client/package.json index a87505339..592b720fd 100644 --- a/packages/access-client/package.json +++ b/packages/access-client/package.json @@ -17,7 +17,7 @@ "w3access": "./src/cli/index.js" }, "scripts": { - "lint": "tsc && eslint '**/*.{js,ts}' && prettier --check '**/*.{js,ts,yml,json}' --ignore-path ../../.gitignore", + "lint": "tsc --build && eslint '**/*.{js,ts}' && prettier --check '**/*.{js,ts,yml,json}' --ignore-path ../../.gitignore", "build": "tsc --build", "test": "pnpm -r --filter @web3-storage/access-ws run build && npm run test:node && npm run test:browser", "test:node": "mocha 'test/**/!(*.browser).test.js' -n experimental-vm-modules -n no-warnings", diff --git a/packages/access-client/src/types.ts b/packages/access-client/src/types.ts index 5af51e9f5..097bc68d2 100644 --- a/packages/access-client/src/types.ts +++ b/packages/access-client/src/types.ts @@ -31,11 +31,12 @@ import type { VoucherClaim, VoucherRedeem, Top, + AccessAuthorize, } from '@web3-storage/capabilities/types' import type { SetRequired } from 'type-fest' import { Driver } from './drivers/types.js' -import type { ColumnType, Selectable } from 'kysely' import { SpaceUnknown } from './errors.js' +import type { ColumnType, Generated, Selectable } from 'kysely' // export other types export * from '@web3-storage/capabilities/types' @@ -50,12 +51,32 @@ export interface SpaceTable { agent: URI<'did:'> email: string product: URI<`${string}:`> - inserted_at: ColumnType + inserted_at: Generated updated_at: ColumnType metadata: SpaceTableMetadata | null invocation: string delegation: string | null } +export type SpaceRecord = Selectable + +export interface AccountTable { + did: URI<'did:'> + inserted_at: Generated + updated_at: ColumnType +} +export type AccountRecord = Selectable + +export interface DelegationTable { + cid: string + bytes: Uint8Array + audience: URI<'did:'> + issuer: URI<'did:'> + expires_at: Date | null + inserted_at: Generated + updated_at: ColumnType +} + +export type DelegationRecord = Selectable export interface SpaceTableMetadata { space: SpaceMeta @@ -66,6 +87,10 @@ export interface SpaceTableMetadata { * Access api service definition type */ export interface Service { + access: { + // returns a URL string for tests or nothing in other envs + authorize: ServiceMethod + } voucher: { claim: ServiceMethod< VoucherClaim, @@ -75,11 +100,7 @@ export interface Service { redeem: ServiceMethod } space: { - info: ServiceMethod< - SpaceInfo, - Selectable, - Failure | SpaceUnknown - > + info: ServiceMethod 'recover-validation': ServiceMethod< SpaceRecoverValidation, EncodedDelegation<[SpaceRecover]> | undefined, diff --git a/packages/capabilities/src/access.js b/packages/capabilities/src/access.js index 7452ff862..46bd046c2 100644 --- a/packages/capabilities/src/access.js +++ b/packages/capabilities/src/access.js @@ -46,7 +46,7 @@ const base = top.or(access) export const authorize = base.derive({ to: capability({ can: 'access/authorize', - with: URI.match({ protocol: 'did:' }), + with: DID.match({ method: 'key' }), nb: { /** * Value MUST be a did:mailto identifier of the account diff --git a/packages/capabilities/src/index.js b/packages/capabilities/src/index.js index 3603ed34b..90008490c 100644 --- a/packages/capabilities/src/index.js +++ b/packages/capabilities/src/index.js @@ -6,7 +6,7 @@ import * as Voucher from './voucher.js' import * as Access from './access.js' import * as Utils from './utils.js' -export { Space, Top, Store, Upload, Voucher, Utils } +export { Access, Space, Top, Store, Upload, Voucher, Utils } /** @type {import('./types.js').AbilitiesArray} */ export const abilitiesAsStrings = [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b4b0fea2..5622b7997 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,14 +20,14 @@ importers: typedoc: 0.23.24_typescript@4.9.4 typedoc-plugin-missing-exports: 1.0.0_typedoc@0.23.24 devDependencies: - '@docusaurus/core': 2.2.0_typescript@4.9.4 + '@docusaurus/core': 2.3.0_typescript@4.9.4 docusaurus-plugin-typedoc: 0.18.0_res3k6jdwbtxmimicswazugz6i lint-staged: 13.1.0 prettier: 2.8.3 simple-git-hooks: 2.8.1 typedoc-plugin-markdown: 3.14.0_typedoc@0.23.24 typescript: 4.9.4 - wrangler: 2.8.1 + wrangler: 2.9.0 packages/access-api: specifiers: @@ -103,7 +103,7 @@ importers: better-sqlite3: 8.0.1 buffer: 6.0.3 dotenv: 16.0.3 - esbuild: 0.17.4 + esbuild: 0.17.5 git-rev-sync: 3.0.2 hd-scripts: 4.0.0 is-subset: 0.1.1 @@ -114,7 +114,7 @@ importers: readable-stream: 4.3.0 sade: 1.8.1 typescript: 4.9.4 - wrangler: 2.8.1 + wrangler: 2.9.0 packages/access-client: specifiers: @@ -161,7 +161,7 @@ importers: ws: ^8.12.0 zod: ^3.20.2 dependencies: - '@ipld/car': 5.0.3 + '@ipld/car': 5.1.0 '@ipld/dag-cbor': 9.0.0 '@ipld/dag-ucan': 3.2.0 '@ucanto/client': 4.2.3 @@ -181,7 +181,7 @@ importers: ora: 6.1.2 p-defer: 4.0.0 p-wait-for: 5.0.0 - type-fest: 3.5.3 + type-fest: 3.5.4 uint8arrays: 4.0.3 varint: 6.0.0 ws: 8.12.0 @@ -200,7 +200,7 @@ importers: miniflare: 2.11.0 mocha: 10.2.0 p-queue: 7.3.0 - playwright-test: 8.1.2 + playwright-test: 8.2.0 sade: 1.8.1 typescript: 4.9.4 watch: 1.0.2 @@ -237,7 +237,7 @@ importers: ava: 5.1.1 buffer: 6.0.3 dotenv: 16.0.3 - esbuild: 0.17.4 + esbuild: 0.17.5 git-rev-sync: 3.0.2 hd-scripts: 4.0.0 miniflare: 2.11.0 @@ -246,7 +246,7 @@ importers: readable-stream: 4.3.0 sade: 1.8.1 typescript: 4.9.4 - wrangler: 2.8.1 + wrangler: 2.9.0 packages/capabilities: specifiers: @@ -278,8 +278,8 @@ importers: assert: 2.0.0 hd-scripts: 4.0.0 mocha: 10.2.0 - playwright-test: 8.1.2 - type-fest: 3.5.3 + playwright-test: 8.2.0 + type-fest: 3.5.4 typescript: 4.9.4 watch: 1.0.2 @@ -310,7 +310,7 @@ importers: playwright-test: ^8.1.2 typescript: 4.9.4 dependencies: - '@ipld/car': 5.0.3 + '@ipld/car': 5.1.0 '@ipld/dag-ucan': 3.2.0 '@ipld/unixfs': 2.0.1 '@ucanto/client': 4.2.3 @@ -333,7 +333,7 @@ importers: ipfs-unixfs-exporter: 10.0.0 mocha: 10.2.0 npm-run-all: 4.1.5 - playwright-test: 8.1.2 + playwright-test: 8.2.0 typescript: 4.9.4 packages: @@ -357,8 +357,8 @@ packages: dependencies: '@babel/highlight': 7.18.6 - /@babel/compat-data/7.20.10: - resolution: {integrity: sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==} + /@babel/compat-data/7.20.14: + resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==} engines: {node: '>=6.9.0'} dev: true @@ -367,7 +367,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.7 + '@babel/generator': 7.20.14 '@babel/helper-module-transforms': 7.20.11 '@babel/helpers': 7.20.13 '@babel/parser': 7.20.13 @@ -392,7 +392,7 @@ packages: dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.7 + '@babel/generator': 7.20.14 '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-module-transforms': 7.20.11 '@babel/helpers': 7.20.13 @@ -409,8 +409,8 @@ packages: - supports-color dev: true - /@babel/generator/7.20.7: - resolution: {integrity: sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==} + /@babel/generator/7.20.14: + resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.20.7 @@ -438,10 +438,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.20.10 + '@babel/compat-data': 7.20.14 '@babel/core': 7.20.12 '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.4 + browserslist: 4.21.5 lru-cache: 5.1.1 semver: 6.3.0 dev: true @@ -817,7 +817,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.20.10 + '@babel/compat-data': 7.20.14 '@babel/core': 7.20.12 '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 @@ -1098,8 +1098,8 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-block-scoping/7.20.11_@babel+core@7.20.12: - resolution: {integrity: sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==} + /@babel/plugin-transform-block-scoping/7.20.14_@babel+core@7.20.12: + resolution: {integrity: sha512-sMPepQtsOs5fM1bwNvuJJHvaCfOEQfmc01FGw0ELlTpTJj5Ql/zuNRRldYhAPys4ghXdBIQJbRVYi44/7QflQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1527,7 +1527,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.20.10 + '@babel/compat-data': 7.20.14 '@babel/core': 7.20.12 '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 @@ -1567,7 +1567,7 @@ packages: '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.12 '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.20.12 '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-transform-block-scoping': 7.20.11_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoping': 7.20.14_@babel+core@7.20.12 '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.12 '@babel/plugin-transform-computed-properties': 7.20.7_@babel+core@7.20.12 '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.12 @@ -1677,7 +1677,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.7 + '@babel/generator': 7.20.14 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-hoist-variables': 7.18.6 @@ -1730,8 +1730,8 @@ packages: resolution: {integrity: sha512-vj9huEy4mjJ48GS1Z8yvtMm4BYAnFYACUds25ym6Gd/gsnngkJ17fo62a6mmbNNwCBS/8467PmZR01Zs/06TjA==} dev: true - /@docusaurus/core/2.2.0_typescript@4.9.4: - resolution: {integrity: sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==} + /@docusaurus/core/2.3.0_typescript@4.9.4: + resolution: {integrity: sha512-2AU5HfKyExO+/mi41SBnx5uY0aGZFXr3D93wntBY4lN1gsDKUpi7EE4lPBAXm9CoH4Pw6N24yDHy9CPR3sh/uA==} engines: {node: '>=16.14'} hasBin: true peerDependencies: @@ -1744,7 +1744,7 @@ packages: optional: true dependencies: '@babel/core': 7.20.12 - '@babel/generator': 7.20.7 + '@babel/generator': 7.20.14 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 '@babel/plugin-transform-runtime': 7.19.6_@babel+core@7.20.12 '@babel/preset-env': 7.20.2_@babel+core@7.20.12 @@ -1753,13 +1753,13 @@ packages: '@babel/runtime': 7.20.13 '@babel/runtime-corejs3': 7.20.13 '@babel/traverse': 7.20.13 - '@docusaurus/cssnano-preset': 2.2.0 - '@docusaurus/logger': 2.2.0 - '@docusaurus/mdx-loader': 2.2.0 + '@docusaurus/cssnano-preset': 2.3.0 + '@docusaurus/logger': 2.3.0 + '@docusaurus/mdx-loader': 2.3.0 '@docusaurus/react-loadable': 5.5.2 - '@docusaurus/utils': 2.2.0 - '@docusaurus/utils-common': 2.2.0 - '@docusaurus/utils-validation': 2.2.0 + '@docusaurus/utils': 2.3.0 + '@docusaurus/utils-common': 2.3.0 + '@docusaurus/utils-validation': 2.3.0 '@slorber/static-site-generator-webpack-plugin': 4.0.7 '@svgr/webpack': 6.5.1 autoprefixer: 10.4.13_postcss@8.4.21 @@ -1805,7 +1805,7 @@ packages: serve-handler: 6.1.5 shelljs: 0.8.5 terser-webpack-plugin: 5.3.6_webpack@5.75.0 - tslib: 2.4.1 + tslib: 2.5.0 update-notifier: 5.1.0 url-loader: 4.1.1_p5dl6emkcwslbw72e37w4ug7em wait-on: 6.0.1 @@ -1833,26 +1833,26 @@ packages: - webpack-cli dev: true - /@docusaurus/cssnano-preset/2.2.0: - resolution: {integrity: sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg==} + /@docusaurus/cssnano-preset/2.3.0: + resolution: {integrity: sha512-igmsXc1Q95lMeq07A1xua0/5wOPygDQ/ENSV7VVbiGhnvMv4gzkba8ZvbAtc7PmqK+kpYRfPzNCOk0GnQCvibg==} engines: {node: '>=16.14'} dependencies: cssnano-preset-advanced: 5.3.9_postcss@8.4.21 postcss: 8.4.21 postcss-sort-media-queries: 4.3.0_postcss@8.4.21 - tslib: 2.4.1 + tslib: 2.5.0 dev: true - /@docusaurus/logger/2.2.0: - resolution: {integrity: sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==} + /@docusaurus/logger/2.3.0: + resolution: {integrity: sha512-GO8s+FJpNT0vwt6kr/BZ/B1iB8EgHH/CF590i55Epy3TP2baQHGEHcAnQWvz5067OXIEke7Sa8sUNi0V9FrcJw==} engines: {node: '>=16.14'} dependencies: chalk: 4.1.2 - tslib: 2.4.1 + tslib: 2.5.0 dev: true - /@docusaurus/mdx-loader/2.2.0: - resolution: {integrity: sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==} + /@docusaurus/mdx-loader/2.3.0: + resolution: {integrity: sha512-uxownG7dlg/l19rTIfUP0KDsbI8lTCgziWsdubMcWpGvOgXgm1p4mKSmWPzAwkRENn+un4L8DBhl3j1toeJy1A==} engines: {node: '>=16.14'} peerDependencies: react: ^16.8.4 || ^17.0.0 @@ -1865,8 +1865,8 @@ packages: dependencies: '@babel/parser': 7.20.13 '@babel/traverse': 7.20.13 - '@docusaurus/logger': 2.2.0 - '@docusaurus/utils': 2.2.0 + '@docusaurus/logger': 2.3.0 + '@docusaurus/utils': 2.3.0 '@mdx-js/mdx': 1.6.22 escape-html: 1.0.3 file-loader: 6.2.0_webpack@5.75.0 @@ -1875,7 +1875,7 @@ packages: mdast-util-to-string: 2.0.0 remark-emoji: 2.2.0 stringify-object: 3.3.0 - tslib: 2.4.1 + tslib: 2.5.0 unified: 9.2.2 unist-util-visit: 2.0.3 url-loader: 4.1.1_p5dl6emkcwslbw72e37w4ug7em @@ -1901,8 +1901,8 @@ packages: prop-types: 15.8.1 dev: true - /@docusaurus/utils-common/2.2.0: - resolution: {integrity: sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==} + /@docusaurus/utils-common/2.3.0: + resolution: {integrity: sha512-nu5An+26FS7SQTwvyFR4g9lw3NU1u2RLcxJPZF+NCOG8Ne96ciuQosa7+N1kllm/heEJqfTaAUD0sFxpTZrDtw==} engines: {node: '>=16.14'} peerDependencies: '@docusaurus/types': '*' @@ -1910,18 +1910,18 @@ packages: '@docusaurus/types': optional: true dependencies: - tslib: 2.4.1 + tslib: 2.5.0 dev: true - /@docusaurus/utils-validation/2.2.0: - resolution: {integrity: sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg==} + /@docusaurus/utils-validation/2.3.0: + resolution: {integrity: sha512-TBJCLqwAoiQQJ6dbgBpuLvzsn/XiTgbZkd6eJFUIQYLb1d473Zv58QrHXVmVQDLWiCgmJpHW2LpMfumTpCDgJw==} engines: {node: '>=16.14'} dependencies: - '@docusaurus/logger': 2.2.0 - '@docusaurus/utils': 2.2.0 + '@docusaurus/logger': 2.3.0 + '@docusaurus/utils': 2.3.0 joi: 17.7.0 js-yaml: 4.1.0 - tslib: 2.4.1 + tslib: 2.5.0 transitivePeerDependencies: - '@docusaurus/types' - '@swc/core' @@ -1931,8 +1931,8 @@ packages: - webpack-cli dev: true - /@docusaurus/utils/2.2.0: - resolution: {integrity: sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA==} + /@docusaurus/utils/2.3.0: + resolution: {integrity: sha512-6+GCurDsePHHbLM3ktcjv8N4zrjgrl1O7gOQNG4UMktcwHssFFVm+geVcB4M8siOmwUjV2VaNrp0hpGy8DOQHw==} engines: {node: '>=16.14'} peerDependencies: '@docusaurus/types': '*' @@ -1940,8 +1940,9 @@ packages: '@docusaurus/types': optional: true dependencies: - '@docusaurus/logger': 2.2.0 + '@docusaurus/logger': 2.3.0 '@svgr/webpack': 6.5.1 + escape-string-regexp: 4.0.0 file-loader: 6.2.0_webpack@5.75.0 fs-extra: 10.1.0 github-slugger: 1.5.0 @@ -1952,7 +1953,7 @@ packages: micromatch: 4.0.5 resolve-pathname: 3.0.0 shelljs: 0.8.5 - tslib: 2.4.1 + tslib: 2.5.0 url-loader: 4.1.1_p5dl6emkcwslbw72e37w4ug7em webpack: 5.75.0 transitivePeerDependencies: @@ -1990,8 +1991,17 @@ packages: rollup-plugin-node-polyfills: 0.2.1 dev: true - /@esbuild/android-arm/0.17.4: - resolution: {integrity: sha512-R9GCe2xl2XDSc2XbQB63mFiFXHIVkOP+ltIxICKXqUPrFX97z6Z7vONCLQM1pSOLGqfLrGi3B7nbhxmFY/fomg==} + /@esbuild/android-arm/0.16.10: + resolution: {integrity: sha512-RmJjQTRrO6VwUWDrzTBLmV4OJZTarYsiepLGlF2rYTVB701hSorPywPGvP6d8HCuuRibyXa5JX4s3jN2kHEtjQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm/0.17.5: + resolution: {integrity: sha512-crmPUzgCmF+qZXfl1YkiFoUta2XAfixR1tEnr/gXIixE+WL8Z0BGqfydP5oox0EUOgQMMRgtATtakyAcClQVqQ==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1999,8 +2009,17 @@ packages: dev: true optional: true - /@esbuild/android-arm64/0.17.4: - resolution: {integrity: sha512-91VwDrl4EpxBCiG6h2LZZEkuNvVZYJkv2T9gyLG/mhGG1qrM7i5SwUcg/hlSPnL/4hDT0TFcF35/XMGSn0bemg==} + /@esbuild/android-arm64/0.16.10: + resolution: {integrity: sha512-47Y+NwVKTldTlDhSgJHZ/RpvBQMUDG7eKihqaF/u6g7s0ZPz4J1vy8A3rwnnUOF2CuDn7w7Gj/QcMoWz3U3SJw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.17.5: + resolution: {integrity: sha512-KHWkDqYAMmKZjY4RAN1PR96q6UOtfkWlTS8uEwWxdLtkRt/0F/csUhXIrVfaSIFxnscIBMPynGfhsMwQDRIBQw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -2008,8 +2027,17 @@ packages: dev: true optional: true - /@esbuild/android-x64/0.17.4: - resolution: {integrity: sha512-mGSqhEPL7029XL7QHNPxPs15JVa02hvZvysUcyMP9UXdGFwncl2WU0bqx+Ysgzd+WAbv8rfNa73QveOxAnAM2w==} + /@esbuild/android-x64/0.16.10: + resolution: {integrity: sha512-C4PfnrBMcuAcOurQzpF1tTtZz94IXO5JmICJJ3NFJRHbXXsQUg9RFG45KvydKqtFfBaFLCHpduUkUfXwIvGnRg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.17.5: + resolution: {integrity: sha512-8fI/AnIdmWz/+1iza2WrCw8kwXK9wZp/yZY/iS8ioC+U37yJCeppi9EHY05ewJKN64ASoBIseufZROtcFnX5GA==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -2017,8 +2045,17 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64/0.17.4: - resolution: {integrity: sha512-tTyJRM9dHvlMPt1KrBFVB5OW1kXOsRNvAPtbzoKazd5RhD5/wKlXk1qR2MpaZRYwf4WDMadt0Pv0GwxB41CVow==} + /@esbuild/darwin-arm64/0.16.10: + resolution: {integrity: sha512-bH/bpFwldyOKdi9HSLCLhhKeVgRYr9KblchwXgY2NeUHBB/BzTUHtUSBgGBmpydB1/4E37m+ggXXfSrnD7/E7g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.17.5: + resolution: {integrity: sha512-EAvaoyIySV6Iif3NQCglUNpnMfHSUgC5ugt2efl3+QDntucJe5spn0udNZjTgNi6tKVqSceOw9tQ32liNZc1Xw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -2026,8 +2063,17 @@ packages: dev: true optional: true - /@esbuild/darwin-x64/0.17.4: - resolution: {integrity: sha512-phQuC2Imrb3TjOJwLN8EO50nb2FHe8Ew0OwgZDH1SV6asIPGudnwTQtighDF2EAYlXChLoMJwqjAp4vAaACq6w==} + /@esbuild/darwin-x64/0.16.10: + resolution: {integrity: sha512-OXt7ijoLuy+AjDSKQWu+KdDFMBbdeaL6wtgMKtDUXKWHiAMKHan5+R1QAG6HD4+K0nnOvEJXKHeA9QhXNAjOTQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.17.5: + resolution: {integrity: sha512-ha7QCJh1fuSwwCgoegfdaljowwWozwTDjBgjD3++WAy/qwee5uUi1gvOg2WENJC6EUyHBOkcd3YmLDYSZ2TPPA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -2035,8 +2081,17 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64/0.17.4: - resolution: {integrity: sha512-oH6JUZkocgmjzzYaP5juERLpJQSwazdjZrTPgLRmAU2bzJ688x0vfMB/WTv4r58RiecdHvXOPC46VtsMy/mepg==} + /@esbuild/freebsd-arm64/0.16.10: + resolution: {integrity: sha512-shSQX/3GHuspE3Uxtq5kcFG/zqC+VuMnJkqV7LczO41cIe6CQaXHD3QdMLA4ziRq/m0vZo7JdterlgbmgNIAlQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.17.5: + resolution: {integrity: sha512-VbdXJkn2aI2pQ/wxNEjEcnEDwPpxt3CWWMFYmO7CcdFBoOsABRy2W8F3kjbF9F/pecEUDcI3b5i2w+By4VQFPg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -2044,8 +2099,17 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64/0.17.4: - resolution: {integrity: sha512-U4iWGn/9TrAfpAdfd56eO0pRxIgb0a8Wj9jClrhT8hvZnOnS4dfMPW7o4fn15D/KqoiVYHRm43jjBaTt3g/2KA==} + /@esbuild/freebsd-x64/0.16.10: + resolution: {integrity: sha512-5YVc1zdeaJGASijZmTzSO4h6uKzsQGG3pkjI6fuXvolhm3hVRhZwnHJkforaZLmzvNv5Tb7a3QL2FAVmrgySIA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.17.5: + resolution: {integrity: sha512-olgGYND1/XnnWxwhjtY3/ryjOG/M4WfcA6XH8dBTH1cxMeBemMODXSFhkw71Kf4TeZFFTN25YOomaNh0vq2iXg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -2053,8 +2117,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm/0.17.4: - resolution: {integrity: sha512-S2s9xWTGMTa/fG5EyMGDeL0wrWVgOSQcNddJWgu6rG1NCSXJHs76ZP9AsxjB3f2nZow9fWOyApklIgiTGZKhiw==} + /@esbuild/linux-arm/0.16.10: + resolution: {integrity: sha512-c360287ZWI2miBnvIj23bPyVctgzeMT2kQKR+x94pVqIN44h3GF8VMEs1SFPH1UgyDr3yBbx3vowDS1SVhyVhA==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -2062,8 +2126,26 @@ packages: dev: true optional: true - /@esbuild/linux-arm64/0.17.4: - resolution: {integrity: sha512-UkGfQvYlwOaeYJzZG4cLV0hCASzQZnKNktRXUo3/BMZvdau40AOz9GzmGA063n1piq6VrFFh43apRDQx8hMP2w==} + /@esbuild/linux-arm/0.17.5: + resolution: {integrity: sha512-YBdCyQwA3OQupi6W2/WO4FnI+NWFWe79cZEtlbqSESOHEg7a73htBIRiE6uHPQe7Yp5E4aALv+JxkRLGEUL7tw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.16.10: + resolution: {integrity: sha512-2aqeNVxIaRfPcIaMZIFoblLh588sWyCbmj1HHCCs9WmeNWm+EIN0SmvsmPvTa/TsNZFKnxTcvkX2eszTcCqIrA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.17.5: + resolution: {integrity: sha512-8a0bqSwu3OlLCfu2FBbDNgQyBYdPJh1B9PvNX7jMaKGC9/KopgHs37t+pQqeMLzcyRqG6z55IGNQAMSlCpBuqg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -2071,8 +2153,17 @@ packages: dev: true optional: true - /@esbuild/linux-ia32/0.17.4: - resolution: {integrity: sha512-3lqFi4VFo/Vwvn77FZXeLd0ctolIJH/uXkH3yNgEk89Eh6D3XXAC9/iTPEzeEpsNE5IqGIsFa5Z0iPeOh25IyA==} + /@esbuild/linux-ia32/0.16.10: + resolution: {integrity: sha512-sqMIEWeyrLGU7J5RB5fTkLRIFwsgsQ7ieWXlDLEmC2HblPYGb3AucD7inw2OrKFpRPKsec1l+lssiM3+NV5aOw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.17.5: + resolution: {integrity: sha512-uCwm1r/+NdP7vndctgq3PoZrnmhmnecWAr114GWMRwg2QMFFX+kIWnp7IO220/JLgnXK/jP7VKAFBGmeOYBQYQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -2080,8 +2171,17 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.17.4: - resolution: {integrity: sha512-HqpWZkVslDHIwdQ9D+gk7NuAulgQvRxF9no54ut/M55KEb3mi7sQS3GwpPJzSyzzP0UkjQVN7/tbk88/CaX4EQ==} + /@esbuild/linux-loong64/0.16.10: + resolution: {integrity: sha512-O7Pd5hLEtTg37NC73pfhUOGTjx/+aXu5YoSq3ahCxcN7Bcr2F47mv+kG5t840thnsEzrv0oB70+LJu3gUgchvg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.17.5: + resolution: {integrity: sha512-3YxhSBl5Sb6TtBjJu+HP93poBruFzgXmf3PVfIe4xOXMj1XpxboYZyw3W8BhoX/uwxzZz4K1I99jTE/5cgDT1g==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -2089,8 +2189,17 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el/0.17.4: - resolution: {integrity: sha512-d/nMCKKh/SVDbqR9ju+b78vOr0tNXtfBjcp5vfHONCCOAL9ad8gN9dC/u+UnH939pz7wO+0u/x9y1MaZcb/lKA==} + /@esbuild/linux-mips64el/0.16.10: + resolution: {integrity: sha512-FN8mZOH7531iPHM0kaFhAOqqNHoAb6r/YHW2ZIxNi0a85UBi2DO4Vuyn7t1p4UN8a4LoAnLOT1PqNgHkgBJgbA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.17.5: + resolution: {integrity: sha512-Hy5Z0YVWyYHdtQ5mfmfp8LdhVwGbwVuq8mHzLqrG16BaMgEmit2xKO+iDakHs+OetEx0EN/2mUzDdfdktI+Nmg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -2098,8 +2207,17 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64/0.17.4: - resolution: {integrity: sha512-lOD9p2dmjZcNiTU+sGe9Nn6G3aYw3k0HBJies1PU0j5IGfp6tdKOQ6mzfACRFCqXjnBuTqK7eTYpwx09O5LLfg==} + /@esbuild/linux-ppc64/0.16.10: + resolution: {integrity: sha512-Dg9RiqdvHOAWnOKIOTsIx8dFX9EDlY2IbPEY7YFzchrCiTZmMkD7jWA9UdZbNUygPjdmQBVPRCrLydReFlX9yg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.17.5: + resolution: {integrity: sha512-5dbQvBLbU/Y3Q4ABc9gi23hww1mQcM7KZ9KBqabB7qhJswYMf8WrDDOSw3gdf3p+ffmijMd28mfVMvFucuECyg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -2107,8 +2225,17 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64/0.17.4: - resolution: {integrity: sha512-mTGnwWwVshAjGsd8rP+K6583cPDgxOunsqqldEYij7T5/ysluMHKqUIT4TJHfrDFadUwrghAL6QjER4FeqQXoA==} + /@esbuild/linux-riscv64/0.16.10: + resolution: {integrity: sha512-XMqtpjwzbmlar0BJIxmzu/RZ7EWlfVfH68Vadrva0Wj5UKOdKvqskuev2jY2oPV3aoQUyXwnMbMrFmloO2GfAw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.17.5: + resolution: {integrity: sha512-fp/KUB/ZPzEWGTEUgz9wIAKCqu7CjH1GqXUO2WJdik1UNBQ7Xzw7myIajpxztE4Csb9504ERiFMxZg5KZ6HlZQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -2116,8 +2243,17 @@ packages: dev: true optional: true - /@esbuild/linux-s390x/0.17.4: - resolution: {integrity: sha512-AQYuUGp50XM29/N/dehADxvc2bUqDcoqrVuijop1Wv72SyxT6dDB9wjUxuPZm2HwIM876UoNNBMVd+iX/UTKVQ==} + /@esbuild/linux-s390x/0.16.10: + resolution: {integrity: sha512-fu7XtnoeRNFMx8DjK3gPWpFBDM2u5ba+FYwg27SjMJwKvJr4bDyKz5c+FLXLUSSAkMAt/UL+cUbEbra+rYtUgw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.17.5: + resolution: {integrity: sha512-kRV3yw19YDqHTp8SfHXfObUFXlaiiw4o2lvT1XjsPZ++22GqZwSsYWJLjMi1Sl7j9qDlDUduWDze/nQx0d6Lzw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -2125,8 +2261,17 @@ packages: dev: true optional: true - /@esbuild/linux-x64/0.17.4: - resolution: {integrity: sha512-+AsFBwKgQuhV2shfGgA9YloxLDVjXgUEWZum7glR5lLmV94IThu/u2JZGxTgjYby6kyXEx8lKOqP5rTEVBR0Rw==} + /@esbuild/linux-x64/0.16.10: + resolution: {integrity: sha512-61lcjVC/RldNNMUzQQdyCWjCxp9YLEQgIxErxU9XluX7juBdGKb0pvddS0vPNuCvotRbzijZ1pzII+26haWzbA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.17.5: + resolution: {integrity: sha512-vnxuhh9e4pbtABNLbT2ANW4uwQ/zvcHRCm1JxaYkzSehugoFd5iXyC4ci1nhXU13mxEwCnrnTIiiSGwa/uAF1g==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -2134,8 +2279,17 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64/0.17.4: - resolution: {integrity: sha512-zD1TKYX9553OiLS/qkXPMlWoELYkH/VkzRYNKEU+GwFiqkq0SuxsKnsCg5UCdxN3cqd+1KZ8SS3R+WG/Hxy2jQ==} + /@esbuild/netbsd-x64/0.16.10: + resolution: {integrity: sha512-JeZXCX3viSA9j4HqSoygjssdqYdfHd6yCFWyfSekLbz4Ef+D2EjvsN02ZQPwYl5a5gg/ehdHgegHhlfOFP0HCA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.17.5: + resolution: {integrity: sha512-cigBpdiSx/vPy7doUyImsQQBnBjV5f1M99ZUlaJckDAJjgXWl6y9W17FIfJTy8TxosEF6MXq+fpLsitMGts2nA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -2143,8 +2297,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64/0.17.4: - resolution: {integrity: sha512-PY1NjEsLRhPEFFg1AV0/4Or/gR+q2dOb9s5rXcPuCjyHRzbt8vnHJl3vYj+641TgWZzTFmSUnZbzs1zwTzjeqw==} + /@esbuild/openbsd-x64/0.16.10: + resolution: {integrity: sha512-3qpxQKuEVIIg8SebpXsp82OBrqjPV/OwNWmG+TnZDr3VGyChNnGMHccC1xkbxCHDQNnnXjxhMQNyHmdFJbmbRA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -2152,8 +2306,26 @@ packages: dev: true optional: true - /@esbuild/sunos-x64/0.17.4: - resolution: {integrity: sha512-B3Z7s8QZQW9tKGleMRXvVmwwLPAUoDCHs4WZ2ElVMWiortLJFowU1NjAhXOKjDgC7o9ByeVcwyOlJ+F2r6ZgmQ==} + /@esbuild/openbsd-x64/0.17.5: + resolution: {integrity: sha512-VdqRqPVIjjZfkf40LrqOaVuhw9EQiAZ/GNCSM2UplDkaIzYVsSnycxcFfAnHdWI8Gyt6dO15KHikbpxwx+xHbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.16.10: + resolution: {integrity: sha512-z+q0xZ+et/7etz7WoMyXTHZ1rB8PMSNp/FOqURLJLOPb3GWJ2aj4oCqFCjPwEbW1rsT7JPpxeH/DwGAWk/I1Bg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.17.5: + resolution: {integrity: sha512-ItxPaJ3MBLtI4nK+mALLEoUs6amxsx+J1ibnfcYMkqaCqHST1AkF4aENpBehty3czqw64r/XqL+W9WqU6kc2Qw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -2161,8 +2333,17 @@ packages: dev: true optional: true - /@esbuild/win32-arm64/0.17.4: - resolution: {integrity: sha512-0HCu8R3mY/H5V7N6kdlsJkvrT591bO/oRZy8ztF1dhgNU5xD5tAh5bKByT1UjTGjp/VVBsl1PDQ3L18SfvtnBQ==} + /@esbuild/win32-arm64/0.16.10: + resolution: {integrity: sha512-+YYu5sbQ9npkNT9Dec+tn1F/kjg6SMgr6bfi/6FpXYZvCRfu2YFPZGb+3x8K30s8eRxFpoG4sGhiSUkr1xbHEw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.17.5: + resolution: {integrity: sha512-4u2Q6qsJTYNFdS9zHoAi80spzf78C16m2wla4eJPh4kSbRv+BpXIfl6TmBSWupD8e47B1NrTfrOlEuco7mYQtg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -2170,8 +2351,17 @@ packages: dev: true optional: true - /@esbuild/win32-ia32/0.17.4: - resolution: {integrity: sha512-VUjhVDQycse1gLbe06pC/uaA0M+piQXJpdpNdhg8sPmeIZZqu5xPoGWVCmcsOO2gaM2cywuTYTHkXRozo3/Nkg==} + /@esbuild/win32-ia32/0.16.10: + resolution: {integrity: sha512-Aw7Fupk7XNehR1ftHGYwUteyJ2q+em/aE+fVU3YMTBN2V5A7Z4aVCSV+SvCp9HIIHZavPFBpbdP3VfjQpdf6Xg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.17.5: + resolution: {integrity: sha512-KYlm+Xu9TXsfTWAcocLuISRtqxKp/Y9ZBVg6CEEj0O5J9mn7YvBKzAszo2j1ndyzUPk+op+Tie2PJeN+BnXGqQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -2179,8 +2369,17 @@ packages: dev: true optional: true - /@esbuild/win32-x64/0.17.4: - resolution: {integrity: sha512-0kLAjs+xN5OjhTt/aUA6t48SfENSCKgGPfExADYTOo/UCn0ivxos9/anUVeSfg+L+2O9xkFxvJXIJfG+Q4sYSg==} + /@esbuild/win32-x64/0.16.10: + resolution: {integrity: sha512-qddWullt3sC1EIpfHvCRBq3H4g3L86DZpD6n8k2XFjFVyp01D++uNbN1hT/JRsHxTbyyemZcpwL5aRlJwc/zFw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.17.5: + resolution: {integrity: sha512-XgA9qWRqby7xdYXuF6KALsn37QGBMHsdhmnpjfZtYxKxbTOwfnDM6MYi2WuUku5poNaX2n9XGVr20zgT/2QwCw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -2188,13 +2387,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils/4.1.2_eslint@8.32.0: + /@eslint-community/eslint-utils/4.1.2_eslint@8.33.0: resolution: {integrity: sha512-7qELuQWWjVDdVsFQ5+beUl+KPczrEDA7S3zM4QUd/bJl7oXgsmpXaEVqrRTnOBqenOV4rWf2kVZk2Ot085zPWA==} 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.32.0 + eslint: 8.33.0 eslint-visitor-keys: 3.3.0 dev: true @@ -2205,7 +2404,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.4.1 - globals: 13.19.0 + globals: 13.20.0 ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -2249,8 +2448,8 @@ packages: resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} dev: true - /@ipld/car/5.0.3: - resolution: {integrity: sha512-omPSY65OSVmlFGJDn2xbd75o71GNHmgP5u2dQ5fITc0X/QqJZVfZi95NCs8oa1wWhjkaK3RTswRSg2iNqFUSAg==} + /@ipld/car/5.1.0: + resolution: {integrity: sha512-k9pO0YqJvmFGY5pJDhF2Ocz+mRp3C3r4ikr1NrUXkzN/z4JzhE7XbQzUCcm7daq8k4tRqap0fWPjxZwjS9PUcQ==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: '@ipld/dag-cbor': 9.0.0 @@ -2299,7 +2498,7 @@ packages: '@web-std/stream': 1.0.1 actor: 2.3.1 multiformats: 11.0.1 - protobufjs: 7.1.2 + protobufjs: 7.2.0 rabin-rs: 2.1.0 dev: false @@ -2308,22 +2507,22 @@ packages: engines: {node: '>=8'} dev: true - /@jest/schemas/29.0.0: - resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==} + /@jest/schemas/29.4.0: + resolution: {integrity: sha512-0E01f/gOZeNTG76i5eWWSupvSHaIINrTie7vCyjiYFKgzNdyEGd12BUv4oNBFHOqlHDbtoJi3HrQ38KCC90NsQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@sinclair/typebox': 0.24.51 + '@sinclair/typebox': 0.25.21 dev: true - /@jest/types/29.3.1: - resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==} + /@jest/types/29.4.1: + resolution: {integrity: sha512-zbrAXDUOnpJ+FMST2rV7QZOgec8rskg2zv8g2ajeqitp4tvZiyqTCYXANrKsM+ryj5o+LI+ZN2EgU9drrkiwSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.0.0 + '@jest/schemas': 29.4.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 '@types/node': 18.11.18 - '@types/yargs': 17.0.20 + '@types/yargs': 17.0.22 chalk: 4.1.2 dev: true @@ -2407,7 +2606,7 @@ packages: dependencies: '@miniflare/core': 2.11.0 '@miniflare/shared': 2.11.0 - http-cache-semantics: 4.1.0 + http-cache-semantics: 4.1.1 undici: 5.9.1 dev: true @@ -2661,7 +2860,7 @@ packages: requiresBuild: true dependencies: https-proxy-agent: 5.0.1 - node-fetch: 2.6.8 + node-fetch: 2.6.9 npmlog: 6.0.2 progress: 2.0.3 proxy-from-env: 1.1.0 @@ -2727,8 +2926,8 @@ packages: resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} dev: true - /@sinclair/typebox/0.24.51: - resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} + /@sinclair/typebox/0.25.21: + resolution: {integrity: sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==} dev: true /@sindresorhus/is/0.14.0: @@ -2878,7 +3077,7 @@ packages: dependencies: '@svgr/core': 6.5.1 cosmiconfig: 7.1.0 - deepmerge: 4.2.2 + deepmerge: 4.3.0 svgo: 2.8.0 dev: true @@ -3171,14 +3370,14 @@ packages: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true - /@types/yargs/17.0.20: - resolution: {integrity: sha512-eknWrTHofQuPk2iuqDm1waA7V6xPlbgBoaaXEgYkClhLOnB0TtbW+srJaOToAgawPxPlHQzwypFA2bhZaUGP5A==} + /@types/yargs/17.0.22: + resolution: {integrity: sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==} dependencies: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin/5.49.0_iu322prlnwsygkcra5kbpy22si: - resolution: {integrity: sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==} + /@typescript-eslint/eslint-plugin/5.50.0_ce5y2gf7dcf2syqm3ypo44ata4: + resolution: {integrity: sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -3188,12 +3387,13 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.49.0_7uibuqfxkfaozanbtbziikiqje - '@typescript-eslint/scope-manager': 5.49.0 - '@typescript-eslint/type-utils': 5.49.0_7uibuqfxkfaozanbtbziikiqje - '@typescript-eslint/utils': 5.49.0_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/parser': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u + '@typescript-eslint/scope-manager': 5.50.0 + '@typescript-eslint/type-utils': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u + '@typescript-eslint/utils': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u debug: 4.3.4 - eslint: 8.32.0 + eslint: 8.33.0 + grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 regexpp: 3.2.0 @@ -3204,21 +3404,21 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/5.49.0_7uibuqfxkfaozanbtbziikiqje: - resolution: {integrity: sha512-veLpCJLYn44Fru7mSvi2doxQMzMCOFSDYdMUQhAzaH1vFYq2RVNpecZ8d18Wh6UMv07yahXkiv/aShWE48iE9Q==} + /@typescript-eslint/experimental-utils/5.50.0_zkdaqh7it7uc4cvz2haft7rc6u: + resolution: {integrity: sha512-gZIhzNRivy0RVqcxjKnQ+ipGc0qolilhBeNmvH+Dvu7Vymug+IfiYxTj2zM7mIlHsw6Q5aH7L7WmuTE3tZyzag==} 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.49.0_7uibuqfxkfaozanbtbziikiqje - eslint: 8.32.0 + '@typescript-eslint/utils': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u + eslint: 8.33.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser/5.49.0_7uibuqfxkfaozanbtbziikiqje: - resolution: {integrity: sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==} + /@typescript-eslint/parser/5.50.0_zkdaqh7it7uc4cvz2haft7rc6u: + resolution: {integrity: sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3227,26 +3427,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.49.0 - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.9.4 + '@typescript-eslint/scope-manager': 5.50.0 + '@typescript-eslint/types': 5.50.0 + '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.4 debug: 4.3.4 - eslint: 8.32.0 + eslint: 8.33.0 typescript: 4.9.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.49.0: - resolution: {integrity: sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==} + /@typescript-eslint/scope-manager/5.50.0: + resolution: {integrity: sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/visitor-keys': 5.49.0 + '@typescript-eslint/types': 5.50.0 + '@typescript-eslint/visitor-keys': 5.50.0 dev: true - /@typescript-eslint/type-utils/5.49.0_7uibuqfxkfaozanbtbziikiqje: - resolution: {integrity: sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==} + /@typescript-eslint/type-utils/5.50.0_zkdaqh7it7uc4cvz2haft7rc6u: + resolution: {integrity: sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -3255,23 +3455,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.9.4 - '@typescript-eslint/utils': 5.49.0_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.4 + '@typescript-eslint/utils': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u debug: 4.3.4 - eslint: 8.32.0 + eslint: 8.33.0 tsutils: 3.21.0_typescript@4.9.4 typescript: 4.9.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.49.0: - resolution: {integrity: sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==} + /@typescript-eslint/types/5.50.0: + resolution: {integrity: sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.49.0_typescript@4.9.4: - resolution: {integrity: sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==} + /@typescript-eslint/typescript-estree/5.50.0_typescript@4.9.4: + resolution: {integrity: sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -3279,8 +3479,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/visitor-keys': 5.49.0 + '@typescript-eslint/types': 5.50.0 + '@typescript-eslint/visitor-keys': 5.50.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3291,31 +3491,31 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.49.0_7uibuqfxkfaozanbtbziikiqje: - resolution: {integrity: sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==} + /@typescript-eslint/utils/5.50.0_zkdaqh7it7uc4cvz2haft7rc6u: + resolution: {integrity: sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.49.0 - '@typescript-eslint/types': 5.49.0 - '@typescript-eslint/typescript-estree': 5.49.0_typescript@4.9.4 - eslint: 8.32.0 + '@typescript-eslint/scope-manager': 5.50.0 + '@typescript-eslint/types': 5.50.0 + '@typescript-eslint/typescript-estree': 5.50.0_typescript@4.9.4 + eslint: 8.33.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.32.0 + eslint-utils: 3.0.0_eslint@8.33.0 semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.49.0: - resolution: {integrity: sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==} + /@typescript-eslint/visitor-keys/5.50.0: + resolution: {integrity: sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.49.0 + '@typescript-eslint/types': 5.50.0 eslint-visitor-keys: 3.3.0 dev: true @@ -3328,7 +3528,7 @@ packages: /@ucanto/core/4.2.3: resolution: {integrity: sha512-udvp7IMRCE3XFhPYiKISt52r8QjbrqG7d1papdtWwF6RAzTbIWhgXSwAjEbroYCr/gQst7U8aYsgr4xvG2miUQ==} dependencies: - '@ipld/car': 5.0.3 + '@ipld/car': 5.1.0 '@ipld/dag-cbor': 9.0.0 '@ipld/dag-ucan': 3.2.0 '@ucanto/interface': 4.2.3 @@ -3359,7 +3559,7 @@ packages: /@ucanto/transport/4.2.3: resolution: {integrity: sha512-ZtHB5ybSB/1dBLhzJqjxGDEE+TTTNzc9HMrVA1AP5KHvaHPu2UtAmS2IMr+HrhSjcwWwdavK0qMQbXSfLWM+kg==} dependencies: - '@ipld/car': 5.0.3 + '@ipld/car': 5.1.0 '@ipld/dag-cbor': 9.0.0 '@ucanto/core': 4.2.3 '@ucanto/interface': 4.2.3 @@ -3369,7 +3569,7 @@ packages: /@ucanto/validator/4.2.3: resolution: {integrity: sha512-7lA9PK+c0Hu857eHuZIVX3ZBooqvOT25/CXUxGjqs5YFCY7dUhrNCxJYnWsPZnEdriq6x6VSj8pZPwN8I7CyQw==} dependencies: - '@ipld/car': 5.0.3 + '@ipld/car': 5.1.0 '@ipld/dag-cbor': 8.0.1 '@ucanto/core': 4.2.3 '@ucanto/interface': 4.2.3 @@ -3736,7 +3936,7 @@ packages: resolution: {integrity: sha512-IG23inYII3dWlU2EyiAiGj6Bwal5GzsgPMwjYGvc1HPE2dgbj4ZB5ToWBKSquKw74nB3TIuOwaI6/jSULzfgrw==} engines: {node: '>=14.16'} dependencies: - type-fest: 3.5.3 + type-fest: 3.5.4 dev: false /ansi-html-community/0.0.8: @@ -3916,8 +4116,8 @@ packages: peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.4 - caniuse-lite: 1.0.30001447 + browserslist: 4.21.5 + caniuse-lite: 1.0.30001450 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -4038,7 +4238,7 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.20.10 + '@babel/compat-data': 7.20.14 '@babel/core': 7.20.12 '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 semver: 6.3.0 @@ -4134,8 +4334,8 @@ packages: engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: err-code: 3.0.1 - interface-blockstore: 4.0.0 - interface-store: 3.0.3 + interface-blockstore: 4.0.1 + interface-store: 3.0.4 it-all: 2.0.0 it-drain: 2.0.0 it-filter: 2.0.0 @@ -4152,7 +4352,7 @@ packages: engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: bytes: 3.1.2 - content-type: 1.0.4 + content-type: 1.0.5 debug: 2.6.9 depd: 2.0.0 destroy: 1.2.0 @@ -4229,15 +4429,15 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist/4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} + /browserslist/4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001447 + caniuse-lite: 1.0.30001450 electron-to-chromium: 1.4.284 - node-releases: 2.0.8 - update-browserslist-db: 1.0.10_browserslist@4.21.4 + node-releases: 2.0.9 + update-browserslist-db: 1.0.10_browserslist@4.21.5 dev: true /buffer-from/1.1.2: @@ -4276,7 +4476,7 @@ packages: dev: true /bytes/3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + resolution: {integrity: sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=} engines: {node: '>= 0.8'} dev: true @@ -4310,7 +4510,7 @@ packages: dependencies: clone-response: 1.0.3 get-stream: 5.2.0 - http-cache-semantics: 4.1.0 + http-cache-semantics: 4.1.1 keyv: 3.1.0 lowercase-keys: 2.0.0 normalize-url: 4.5.1 @@ -4336,7 +4536,7 @@ packages: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} dependencies: pascal-case: 3.1.2 - tslib: 2.4.1 + tslib: 2.5.0 dev: true /camelcase-css/2.0.1: @@ -4353,17 +4553,22 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} + /camelcase/7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + dev: true + /caniuse-api/3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.21.4 - caniuse-lite: 1.0.30001447 + browserslist: 4.21.5 + caniuse-lite: 1.0.30001450 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite/1.0.30001447: - resolution: {integrity: sha512-bdKU1BQDPeEXe9A39xJnGtY0uRq/z5osrnXUw0TcK+EYno45Y+U7QU9HhHEyzvMDffpYadFXi3idnSNkcwLkTw==} + /caniuse-lite/1.0.30001450: + resolution: {integrity: sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==} dev: true /cbor/8.1.0: @@ -4698,7 +4903,7 @@ packages: dev: true /concat-map/0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} /concordance/5.0.4: resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} @@ -4756,7 +4961,7 @@ packages: dev: true /content-disposition/0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + resolution: {integrity: sha1-DPaLud318r55YcOoUXjLhdunjLQ=} engines: {node: '>= 0.6'} dev: true @@ -4767,8 +4972,8 @@ packages: safe-buffer: 5.2.1 dev: true - /content-type/1.0.4: - resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} + /content-type/1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} dev: true @@ -4782,7 +4987,7 @@ packages: dev: true /cookie-signature/1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} dev: true /cookie/0.4.2: @@ -4812,7 +5017,7 @@ packages: /core-js-compat/3.27.2: resolution: {integrity: sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==} dependencies: - browserslist: 4.21.4 + browserslist: 4.21.5 dev: true /core-js-pure/3.27.2: @@ -4963,7 +5168,7 @@ packages: dependencies: clean-css: 5.3.2 cssnano: 5.1.14_postcss@8.4.21 - jest-worker: 29.3.1 + jest-worker: 29.4.1 postcss: 8.4.21 schema-utils: 4.0.0 serialize-javascript: 6.0.1 @@ -5212,8 +5417,8 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deepmerge/4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + /deepmerge/4.3.0: + resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==} engines: {node: '>=0.10.0'} dev: true @@ -5311,7 +5516,7 @@ packages: readdirp: 3.6.0 require-package-name: 2.0.1 resolve: 1.22.1 - sass: 1.57.1 + sass: 1.58.0 scss-parser: 1.0.6 semver: 7.3.8 yargs: 16.2.0 @@ -5462,7 +5667,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.5.0 dev: true /dot-prop/5.3.0: @@ -5508,7 +5713,7 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} /ee-first/1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} dev: true /electron-to-chromium/1.4.284: @@ -5672,15 +5877,6 @@ packages: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} dev: true - /esbuild-android-64/0.14.39: - resolution: {integrity: sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - /esbuild-android-64/0.14.51: resolution: {integrity: sha512-6FOuKTHnC86dtrKDmdSj2CkcKF8PnqkaIXqvgydqfJmqBazCPdw+relrMlhGjkvVdiiGV70rpdnyFmA65ekBCQ==} engines: {node: '>=12'} @@ -5690,15 +5886,6 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.39: - resolution: {integrity: sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /esbuild-android-arm64/0.14.51: resolution: {integrity: sha512-vBtp//5VVkZWmYYvHsqBRCMMi1MzKuMIn5XDScmnykMTu9+TD9v0NMEDqQxvtFToeYmojdo5UCV2vzMQWJcJ4A==} engines: {node: '>=12'} @@ -5708,15 +5895,6 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.39: - resolution: {integrity: sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /esbuild-darwin-64/0.14.51: resolution: {integrity: sha512-YFmXPIOvuagDcwCejMRtCDjgPfnDu+bNeh5FU2Ryi68ADDVlWEpbtpAbrtf/lvFTWPexbgyKgzppNgsmLPr8PA==} engines: {node: '>=12'} @@ -5726,15 +5904,6 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.39: - resolution: {integrity: sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /esbuild-darwin-arm64/0.14.51: resolution: {integrity: sha512-juYD0QnSKwAMfzwKdIF6YbueXzS6N7y4GXPDeDkApz/1RzlT42mvX9jgNmyOlWKN7YzQAYbcUEJmZJYQGdf2ow==} engines: {node: '>=12'} @@ -5744,15 +5913,6 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.39: - resolution: {integrity: sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /esbuild-freebsd-64/0.14.51: resolution: {integrity: sha512-cLEI/aXjb6vo5O2Y8rvVSQ7smgLldwYY5xMxqh/dQGfWO+R1NJOFsiax3IS4Ng300SVp7Gz3czxT6d6qf2cw0g==} engines: {node: '>=12'} @@ -5762,15 +5922,6 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.39: - resolution: {integrity: sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /esbuild-freebsd-arm64/0.14.51: resolution: {integrity: sha512-TcWVw/rCL2F+jUgRkgLa3qltd5gzKjIMGhkVybkjk6PJadYInPtgtUBp1/hG+mxyigaT7ib+od1Xb84b+L+1Mg==} engines: {node: '>=12'} @@ -5780,15 +5931,6 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.39: - resolution: {integrity: sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-32/0.14.51: resolution: {integrity: sha512-RFqpyC5ChyWrjx8Xj2K0EC1aN0A37H6OJfmUXIASEqJoHcntuV3j2Efr9RNmUhMfNE6yEj2VpYuDteZLGDMr0w==} engines: {node: '>=12'} @@ -5798,15 +5940,6 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.39: - resolution: {integrity: sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-64/0.14.51: resolution: {integrity: sha512-dxjhrqo5i7Rq6DXwz5v+MEHVs9VNFItJmHBe1CxROWNf4miOGoQhqSG8StStbDkQ1Mtobg6ng+4fwByOhoQoeA==} engines: {node: '>=12'} @@ -5816,15 +5949,6 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.39: - resolution: {integrity: sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-arm/0.14.51: resolution: {integrity: sha512-LsJynDxYF6Neg7ZC7748yweCDD+N8ByCv22/7IAZglIEniEkqdF4HCaa49JNDLw1UQGlYuhOB8ZT/MmcSWzcWg==} engines: {node: '>=12'} @@ -5834,15 +5958,6 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.39: - resolution: {integrity: sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-arm64/0.14.51: resolution: {integrity: sha512-D9rFxGutoqQX3xJPxqd6o+kvYKeIbM0ifW2y0bgKk5HPgQQOo2k9/2Vpto3ybGYaFPCE5qTGtqQta9PoP6ZEzw==} engines: {node: '>=12'} @@ -5852,15 +5967,6 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.39: - resolution: {integrity: sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-mips64le/0.14.51: resolution: {integrity: sha512-vS54wQjy4IinLSlb5EIlLoln8buh1yDgliP4CuEHumrPk4PvvP4kTRIG4SzMXm6t19N0rIfT4bNdAxzJLg2k6A==} engines: {node: '>=12'} @@ -5870,15 +5976,6 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.39: - resolution: {integrity: sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-ppc64le/0.14.51: resolution: {integrity: sha512-xcdd62Y3VfGoyphNP/aIV9LP+RzFw5M5Z7ja+zdpQHHvokJM7d0rlDRMN+iSSwvUymQkqZO+G/xjb4/75du8BQ==} engines: {node: '>=12'} @@ -5888,15 +5985,6 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.39: - resolution: {integrity: sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-riscv64/0.14.51: resolution: {integrity: sha512-syXHGak9wkAnFz0gMmRBoy44JV0rp4kVCEA36P5MCeZcxFq8+fllBC2t6sKI23w3qd8Vwo9pTADCgjTSf3L3rA==} engines: {node: '>=12'} @@ -5906,15 +5994,6 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.39: - resolution: {integrity: sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - /esbuild-linux-s390x/0.14.51: resolution: {integrity: sha512-kFAJY3dv+Wq8o28K/C7xkZk/X34rgTwhknSsElIqoEo8armCOjMJ6NsMxm48KaWY2h2RUYGtQmr+RGuUPKBhyw==} engines: {node: '>=12'} @@ -5924,15 +6003,6 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.39: - resolution: {integrity: sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /esbuild-netbsd-64/0.14.51: resolution: {integrity: sha512-ZZBI7qrR1FevdPBVHz/1GSk1x5GDL/iy42Zy8+neEm/HA7ma+hH/bwPEjeHXKWUDvM36CZpSL/fn1/y9/Hb+1A==} engines: {node: '>=12'} @@ -5942,15 +6012,6 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.39: - resolution: {integrity: sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /esbuild-openbsd-64/0.14.51: resolution: {integrity: sha512-7R1/p39M+LSVQVgDVlcY1KKm6kFKjERSX1lipMG51NPcspJD1tmiZSmmBXoY5jhHIu6JL1QkFDTx94gMYK6vfA==} engines: {node: '>=12'} @@ -5960,15 +6021,6 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.39: - resolution: {integrity: sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - /esbuild-sunos-64/0.14.51: resolution: {integrity: sha512-HoHaCswHxLEYN8eBTtyO0bFEWvA3Kdb++hSQ/lLG7TyKF69TeSG0RNoBRAs45x/oCeWaTDntEZlYwAfQlhEtJA==} engines: {node: '>=12'} @@ -5978,15 +6030,6 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.39: - resolution: {integrity: sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-32/0.14.51: resolution: {integrity: sha512-4rtwSAM35A07CBt1/X8RWieDj3ZUHQqUOaEo5ZBs69rt5WAFjP4aqCIobdqOy4FdhYw1yF8Z0xFBTyc9lgPtEg==} engines: {node: '>=12'} @@ -5996,15 +6039,6 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.39: - resolution: {integrity: sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-64/0.14.51: resolution: {integrity: sha512-HoN/5HGRXJpWODprGCgKbdMvrC3A2gqvzewu2eECRw2sYxOUoh2TV1tS+G7bHNapPGI79woQJGV6pFH7GH7qnA==} engines: {node: '>=12'} @@ -6014,15 +6048,6 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.39: - resolution: {integrity: sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /esbuild-windows-arm64/0.14.51: resolution: {integrity: sha512-JQDqPjuOH7o+BsKMSddMfmVJXrnYZxXDHsoLHc0xgmAZkOOCflRmC43q31pk79F9xuyWY45jDBPolb5ZgGOf9g==} engines: {node: '>=12'} @@ -6032,34 +6057,6 @@ packages: dev: true optional: true - /esbuild/0.14.39: - resolution: {integrity: sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - esbuild-android-64: 0.14.39 - esbuild-android-arm64: 0.14.39 - esbuild-darwin-64: 0.14.39 - esbuild-darwin-arm64: 0.14.39 - esbuild-freebsd-64: 0.14.39 - esbuild-freebsd-arm64: 0.14.39 - esbuild-linux-32: 0.14.39 - esbuild-linux-64: 0.14.39 - esbuild-linux-arm: 0.14.39 - esbuild-linux-arm64: 0.14.39 - esbuild-linux-mips64le: 0.14.39 - esbuild-linux-ppc64le: 0.14.39 - esbuild-linux-riscv64: 0.14.39 - esbuild-linux-s390x: 0.14.39 - esbuild-netbsd-64: 0.14.39 - esbuild-openbsd-64: 0.14.39 - esbuild-sunos-64: 0.14.39 - esbuild-windows-32: 0.14.39 - esbuild-windows-64: 0.14.39 - esbuild-windows-arm64: 0.14.39 - dev: true - /esbuild/0.14.51: resolution: {integrity: sha512-+CvnDitD7Q5sT7F+FM65sWkF8wJRf+j9fPcprxYV4j+ohmzVj2W7caUqH2s5kCaCJAfcAICjSlKhDCcvDpU7nw==} engines: {node: '>=12'} @@ -6088,34 +6085,64 @@ packages: esbuild-windows-arm64: 0.14.51 dev: true - /esbuild/0.17.4: - resolution: {integrity: sha512-zBn9MeCwT7W5F1a3lXClD61ip6vQM+H8Msb0w8zMT4ZKBpDg+rFAraNyWCDelB/2L6M3g6AXHPnsyvjMFnxtFw==} + /esbuild/0.16.10: + resolution: {integrity: sha512-z5dIViHoVnw2l+NCJ3zj5behdXjYvXne9gL18OOivCadXDUhyDkeSvEtLcGVAJW2fNmh33TDUpsi704XYlDodw==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.4 - '@esbuild/android-arm64': 0.17.4 - '@esbuild/android-x64': 0.17.4 - '@esbuild/darwin-arm64': 0.17.4 - '@esbuild/darwin-x64': 0.17.4 - '@esbuild/freebsd-arm64': 0.17.4 - '@esbuild/freebsd-x64': 0.17.4 - '@esbuild/linux-arm': 0.17.4 - '@esbuild/linux-arm64': 0.17.4 - '@esbuild/linux-ia32': 0.17.4 - '@esbuild/linux-loong64': 0.17.4 - '@esbuild/linux-mips64el': 0.17.4 - '@esbuild/linux-ppc64': 0.17.4 - '@esbuild/linux-riscv64': 0.17.4 - '@esbuild/linux-s390x': 0.17.4 - '@esbuild/linux-x64': 0.17.4 - '@esbuild/netbsd-x64': 0.17.4 - '@esbuild/openbsd-x64': 0.17.4 - '@esbuild/sunos-x64': 0.17.4 - '@esbuild/win32-arm64': 0.17.4 - '@esbuild/win32-ia32': 0.17.4 - '@esbuild/win32-x64': 0.17.4 + '@esbuild/android-arm': 0.16.10 + '@esbuild/android-arm64': 0.16.10 + '@esbuild/android-x64': 0.16.10 + '@esbuild/darwin-arm64': 0.16.10 + '@esbuild/darwin-x64': 0.16.10 + '@esbuild/freebsd-arm64': 0.16.10 + '@esbuild/freebsd-x64': 0.16.10 + '@esbuild/linux-arm': 0.16.10 + '@esbuild/linux-arm64': 0.16.10 + '@esbuild/linux-ia32': 0.16.10 + '@esbuild/linux-loong64': 0.16.10 + '@esbuild/linux-mips64el': 0.16.10 + '@esbuild/linux-ppc64': 0.16.10 + '@esbuild/linux-riscv64': 0.16.10 + '@esbuild/linux-s390x': 0.16.10 + '@esbuild/linux-x64': 0.16.10 + '@esbuild/netbsd-x64': 0.16.10 + '@esbuild/openbsd-x64': 0.16.10 + '@esbuild/sunos-x64': 0.16.10 + '@esbuild/win32-arm64': 0.16.10 + '@esbuild/win32-ia32': 0.16.10 + '@esbuild/win32-x64': 0.16.10 + dev: true + + /esbuild/0.17.5: + resolution: {integrity: sha512-Bu6WLCc9NMsNoMJUjGl3yBzTjVLXdysMltxQWiLAypP+/vQrf+3L1Xe8fCXzxaECus2cEJ9M7pk4yKatEwQMqQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.17.5 + '@esbuild/android-arm64': 0.17.5 + '@esbuild/android-x64': 0.17.5 + '@esbuild/darwin-arm64': 0.17.5 + '@esbuild/darwin-x64': 0.17.5 + '@esbuild/freebsd-arm64': 0.17.5 + '@esbuild/freebsd-x64': 0.17.5 + '@esbuild/linux-arm': 0.17.5 + '@esbuild/linux-arm64': 0.17.5 + '@esbuild/linux-ia32': 0.17.5 + '@esbuild/linux-loong64': 0.17.5 + '@esbuild/linux-mips64el': 0.17.5 + '@esbuild/linux-ppc64': 0.17.5 + '@esbuild/linux-riscv64': 0.17.5 + '@esbuild/linux-s390x': 0.17.5 + '@esbuild/linux-x64': 0.17.5 + '@esbuild/netbsd-x64': 0.17.5 + '@esbuild/openbsd-x64': 0.17.5 + '@esbuild/sunos-x64': 0.17.5 + '@esbuild/win32-arm64': 0.17.5 + '@esbuild/win32-ia32': 0.17.5 + '@esbuild/win32-x64': 0.17.5 dev: true /escalade/3.1.1: @@ -6149,16 +6176,16 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - /eslint-config-prettier/8.6.0_eslint@8.32.0: + /eslint-config-prettier/8.6.0_eslint@8.33.0: resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.32.0 + eslint: 8.33.0 dev: true - /eslint-config-standard-with-typescript/30.0.0_3ozrqhxsq4rivumccwgffwbcbm: + /eslint-config-standard-with-typescript/30.0.0_rpwhjtqx5ezmthmp6daitjqzzm: resolution: {integrity: sha512-/Ltst1BCZCWrGmqprLHBkTwuAbcoQrR8uMeSzZAv1vHKIVg+2nFje+DULA30SW01yCNhnx0a8yhZBkR0ZZPp+w==} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -6168,19 +6195,19 @@ packages: eslint-plugin-promise: ^6.0.0 typescript: '*' dependencies: - '@typescript-eslint/eslint-plugin': 5.49.0_iu322prlnwsygkcra5kbpy22si - '@typescript-eslint/parser': 5.49.0_7uibuqfxkfaozanbtbziikiqje - eslint: 8.32.0 - eslint-config-standard: 17.0.0_xk3uaci65cbvygmsdibcdexy4y - eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 - eslint-plugin-n: 15.6.1_eslint@8.32.0 - eslint-plugin-promise: 6.1.1_eslint@8.32.0 + '@typescript-eslint/eslint-plugin': 5.50.0_ce5y2gf7dcf2syqm3ypo44ata4 + '@typescript-eslint/parser': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u + eslint: 8.33.0 + eslint-config-standard: 17.0.0_xh3wrndcszbt2l7hdksdjqnjcq + eslint-plugin-import: 2.27.5_ufewo3pl5nnmz6lltvjrdi2hii + eslint-plugin-n: 15.6.1_eslint@8.33.0 + eslint-plugin-promise: 6.1.1_eslint@8.33.0 typescript: 4.9.4 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard/17.0.0_xk3uaci65cbvygmsdibcdexy4y: + /eslint-config-standard/17.0.0_xh3wrndcszbt2l7hdksdjqnjcq: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -6188,20 +6215,20 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.32.0 - eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 - eslint-plugin-n: 15.6.1_eslint@8.32.0 - eslint-plugin-promise: 6.1.1_eslint@8.32.0 + eslint: 8.33.0 + eslint-plugin-import: 2.27.5_ufewo3pl5nnmz6lltvjrdi2hii + eslint-plugin-n: 15.6.1_eslint@8.33.0 + eslint-plugin-promise: 6.1.1_eslint@8.33.0 dev: true - /eslint-etc/5.2.0_7uibuqfxkfaozanbtbziikiqje: + /eslint-etc/5.2.0_zkdaqh7it7uc4cvz2haft7rc6u: resolution: {integrity: sha512-Gcm/NMa349FOXb1PEEfNMMyIANuorIc2/mI5Vfu1zENNsz+FBVhF62uY6gPUCigm/xDOc8JOnl+71WGnlzlDag==} peerDependencies: eslint: ^8.0.0 typescript: ^4.0.0 dependencies: - '@typescript-eslint/experimental-utils': 5.49.0_7uibuqfxkfaozanbtbziikiqje - eslint: 8.32.0 + '@typescript-eslint/experimental-utils': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u + eslint: 8.33.0 tsutils: 3.21.0_typescript@4.9.4 tsutils-etc: 1.4.1_cls2tekvgzl55omjuqfocrchqe typescript: 4.9.4 @@ -6219,7 +6246,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_cnxxylyx37asr43xy64ejg3pwe: + /eslint-module-utils/2.7.4_ypqpzq5szckeh62pb722iz7nn4: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -6240,44 +6267,44 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.49.0_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/parser': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u debug: 3.2.7 - eslint: 8.32.0 + eslint: 8.33.0 eslint-import-resolver-node: 0.3.7 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es/4.1.0_eslint@8.32.0: + /eslint-plugin-es/4.1.0_eslint@8.33.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.32.0 + eslint: 8.33.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-etc/2.0.2_7uibuqfxkfaozanbtbziikiqje: + /eslint-plugin-etc/2.0.2_zkdaqh7it7uc4cvz2haft7rc6u: resolution: {integrity: sha512-g3b95LCdTCwZA8On9EICYL8m1NMWaiGfmNUd/ftZTeGZDXrwujKXUr+unYzqKjKFo1EbqJ31vt+Dqzrdm/sUcw==} peerDependencies: eslint: ^8.0.0 typescript: ^4.0.0 dependencies: '@phenomnomnominal/tsquery': 4.2.0_typescript@4.9.4 - '@typescript-eslint/experimental-utils': 5.49.0_7uibuqfxkfaozanbtbziikiqje - eslint: 8.32.0 - eslint-etc: 5.2.0_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/experimental-utils': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u + eslint: 8.33.0 + eslint-etc: 5.2.0_zkdaqh7it7uc4cvz2haft7rc6u requireindex: 1.2.0 - tslib: 2.4.1 + tslib: 2.5.0 tsutils: 3.21.0_typescript@4.9.4 typescript: 4.9.4 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import/2.27.5_6savw6y3b7jng6f64kgkyoij64: + /eslint-plugin-import/2.27.5_ufewo3pl5nnmz6lltvjrdi2hii: resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -6287,15 +6314,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.49.0_7uibuqfxkfaozanbtbziikiqje + '@typescript-eslint/parser': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u 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.32.0 + eslint: 8.33.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_cnxxylyx37asr43xy64ejg3pwe + eslint-module-utils: 2.7.4_ypqpzq5szckeh62pb722iz7nn4 has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -6310,8 +6337,8 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc/39.6.7_eslint@8.32.0: - resolution: {integrity: sha512-0mrzXrHvL2ZLe3QK9X0OEDy7Fs2cFQ/f1d1G5KHEGD+13D1qg56Iovq0uOkYf5bJlHiKPytWVgOOO9y7kLW3VA==} + /eslint-plugin-jsdoc/39.7.5_eslint@8.33.0: + resolution: {integrity: sha512-6L90P0AnZcE4ra7nocolp9vTjgVr2wEZ7jPnEA/X30XAoQPk+wvnaq61n164Tf7Fg4QPpJtRSCPpApOsfWDdNA==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -6320,7 +6347,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.32.0 + eslint: 8.33.0 esquery: 1.4.0 semver: 7.3.8 spdx-expression-parse: 3.0.1 @@ -6328,16 +6355,16 @@ packages: - supports-color dev: true - /eslint-plugin-n/15.6.1_eslint@8.32.0: + /eslint-plugin-n/15.6.1_eslint@8.33.0: resolution: {integrity: sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.32.0 - eslint-plugin-es: 4.1.0_eslint@8.32.0 - eslint-utils: 3.0.0_eslint@8.32.0 + eslint: 8.33.0 + eslint-plugin-es: 4.1.0_eslint@8.33.0 + eslint-utils: 3.0.0_eslint@8.33.0 ignore: 5.2.4 is-core-module: 2.11.0 minimatch: 3.1.2 @@ -6350,26 +6377,26 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-promise/6.1.1_eslint@8.32.0: + /eslint-plugin-promise/6.1.1_eslint@8.33.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.32.0 + eslint: 8.33.0 dev: true - /eslint-plugin-react-hooks/4.6.0_eslint@8.32.0: + /eslint-plugin-react-hooks/4.6.0_eslint@8.33.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.32.0 + eslint: 8.33.0 dev: true - /eslint-plugin-react/7.32.1_eslint@8.32.0: - resolution: {integrity: sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www==} + /eslint-plugin-react/7.32.2_eslint@8.33.0: + resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 @@ -6378,7 +6405,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.32.0 + eslint: 8.33.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -6392,20 +6419,20 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-unicorn/45.0.2_eslint@8.32.0: + /eslint-plugin-unicorn/45.0.2_eslint@8.33.0: resolution: {integrity: sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw==} engines: {node: '>=14.18'} peerDependencies: eslint: '>=8.28.0' dependencies: '@babel/helper-validator-identifier': 7.19.1 - '@eslint-community/eslint-utils': 4.1.2_eslint@8.32.0 + '@eslint-community/eslint-utils': 4.1.2_eslint@8.33.0 ci-info: 3.7.1 clean-regexp: 1.0.0 - eslint: 8.32.0 + eslint: 8.33.0 esquery: 1.4.0 indent-string: 4.0.0 - is-builtin-module: 3.2.0 + is-builtin-module: 3.2.1 jsesc: 3.0.2 lodash: 4.17.21 pluralize: 8.0.0 @@ -6440,13 +6467,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.32.0: + /eslint-utils/3.0.0_eslint@8.33.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.32.0 + eslint: 8.33.0 eslint-visitor-keys: 2.1.0 dev: true @@ -6465,8 +6492,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.32.0: - resolution: {integrity: sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==} + /eslint/8.33.0: + resolution: {integrity: sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -6481,7 +6508,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.32.0 + eslint-utils: 3.0.0_eslint@8.33.0 eslint-visitor-keys: 3.3.0 espree: 9.4.1 esquery: 1.4.0 @@ -6490,7 +6517,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.19.0 + globals: 13.20.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 import-fresh: 3.3.0 @@ -6644,7 +6671,7 @@ packages: array-flatten: 1.1.1 body-parser: 1.20.1 content-disposition: 0.5.4 - content-type: 1.0.4 + content-type: 1.0.5 cookie: 0.5.0 cookie-signature: 1.0.6 debug: 2.6.9 @@ -6892,7 +6919,7 @@ packages: chalk: 4.1.2 chokidar: 3.5.3 cosmiconfig: 6.0.0 - deepmerge: 4.2.2 + deepmerge: 4.3.0 fs-extra: 9.1.0 glob: 7.2.3 memfs: 3.4.13 @@ -7121,8 +7148,8 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - /globals/13.19.0: - resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} + /globals/13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -7358,21 +7385,21 @@ packages: resolution: {integrity: sha512-eIkbX+8aAva5t6wvTMCxl90uKm5sXcjY20d+aEokHqu5I/MJECFbbkbnjUhYZVsKg1q2wuF9pnV9RrErHt5jyQ==} engines: {node: '>=14'} dependencies: - '@typescript-eslint/eslint-plugin': 5.49.0_iu322prlnwsygkcra5kbpy22si - '@typescript-eslint/parser': 5.49.0_7uibuqfxkfaozanbtbziikiqje - eslint: 8.32.0 - eslint-config-prettier: 8.6.0_eslint@8.32.0 - eslint-config-standard: 17.0.0_xk3uaci65cbvygmsdibcdexy4y - eslint-config-standard-with-typescript: 30.0.0_3ozrqhxsq4rivumccwgffwbcbm - eslint-plugin-etc: 2.0.2_7uibuqfxkfaozanbtbziikiqje - eslint-plugin-import: 2.27.5_6savw6y3b7jng6f64kgkyoij64 - eslint-plugin-jsdoc: 39.6.7_eslint@8.32.0 - eslint-plugin-n: 15.6.1_eslint@8.32.0 + '@typescript-eslint/eslint-plugin': 5.50.0_ce5y2gf7dcf2syqm3ypo44ata4 + '@typescript-eslint/parser': 5.50.0_zkdaqh7it7uc4cvz2haft7rc6u + eslint: 8.33.0 + eslint-config-prettier: 8.6.0_eslint@8.33.0 + eslint-config-standard: 17.0.0_xh3wrndcszbt2l7hdksdjqnjcq + eslint-config-standard-with-typescript: 30.0.0_rpwhjtqx5ezmthmp6daitjqzzm + eslint-plugin-etc: 2.0.2_zkdaqh7it7uc4cvz2haft7rc6u + eslint-plugin-import: 2.27.5_ufewo3pl5nnmz6lltvjrdi2hii + eslint-plugin-jsdoc: 39.7.5_eslint@8.33.0 + eslint-plugin-n: 15.6.1_eslint@8.33.0 eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-promise: 6.1.1_eslint@8.32.0 - eslint-plugin-react: 7.32.1_eslint@8.32.0 - eslint-plugin-react-hooks: 4.6.0_eslint@8.32.0 - eslint-plugin-unicorn: 45.0.2_eslint@8.32.0 + eslint-plugin-promise: 6.1.1_eslint@8.33.0 + eslint-plugin-react: 7.32.2_eslint@8.33.0 + eslint-plugin-react-hooks: 4.6.0_eslint@8.33.0 + eslint-plugin-unicorn: 45.0.2_eslint@8.33.0 lint-staged: 13.1.0 prettier: 2.8.3 simple-git-hooks: 2.8.1 @@ -7438,7 +7465,7 @@ packages: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.16.1 + terser: 5.16.2 dev: true /html-rewriter-wasm/0.4.1: @@ -7477,8 +7504,8 @@ packages: entities: 2.2.0 dev: true - /http-cache-semantics/4.1.0: - resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} + /http-cache-semantics/4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: true /http-deceiver/1.2.7: @@ -7602,8 +7629,8 @@ packages: queue: 6.0.2 dev: true - /immer/9.0.18: - resolution: {integrity: sha512-eAPNpsj7Ax1q6Y/3lm2PmlwRcFzpON7HSNQ3ru5WQH1/PSpnyed/HpNOELl2CxLKoj4r+bAHgdyKqW5gc2Se1A==} + /immer/9.0.19: + resolution: {integrity: sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ==} dev: true /immutable/4.2.2: @@ -7685,16 +7712,16 @@ packages: wrap-ansi: 8.1.0 dev: false - /interface-blockstore/4.0.0: - resolution: {integrity: sha512-Q+qKT2jK8hYiKL0JgqrwaZn31qR+dIU6tz8dLPtItXjIxNknySS5cYrwNaiAgX6kyikgAo8VSIovSfHkMJEQ0A==} + /interface-blockstore/4.0.1: + resolution: {integrity: sha512-ROWKGJls7vLeFaQtI3hZVCJOkUoZ05xAi2t2qysM4d7dwVKrfm5jUOqWh8JgLL7Iup3XqJ0mKXXZuwJ3s03RSw==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: - interface-store: 3.0.3 + interface-store: 3.0.4 multiformats: 11.0.1 dev: true - /interface-store/3.0.3: - resolution: {integrity: sha512-FihzZamIkSPHIFw7xZAvZ77DEOSTvHt/t3HvIG7pm8lmqDIUh8/PgDsez/4Aa2091bT0sqK4tTFBcKF9TOGhtQ==} + /interface-store/3.0.4: + resolution: {integrity: sha512-OjHUuGXbH4eXSBx1TF1tTySvjLldPLzRSYYXJwrEQI+XfH5JWYZofr0gVMV4F8XTwC+4V7jomDYkvGRmDSRKqQ==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dev: true @@ -7736,7 +7763,7 @@ packages: '@multiformats/murmur3': 2.1.2 err-code: 3.0.1 hamt-sharding: 3.0.2 - interface-blockstore: 4.0.0 + interface-blockstore: 4.0.1 ipfs-unixfs: 9.0.0 it-last: 2.0.0 it-map: 2.0.0 @@ -7753,7 +7780,7 @@ packages: engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: err-code: 3.0.1 - protobufjs: 7.1.2 + protobufjs: 7.2.0 dev: true /irregular-plurals/3.4.0: @@ -7815,8 +7842,8 @@ packages: engines: {node: '>=4'} dev: true - /is-builtin-module/3.2.0: - resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==} + /is-builtin-module/3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} dependencies: builtin-modules: 3.3.0 @@ -8222,11 +8249,11 @@ packages: engines: {node: '>=16.0.0', npm: '>=7.0.0'} dev: true - /jest-util/29.3.1: - resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==} + /jest-util/29.4.1: + resolution: {integrity: sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.3.1 + '@jest/types': 29.4.1 '@types/node': 18.11.18 chalk: 4.1.2 ci-info: 3.7.1 @@ -8243,12 +8270,12 @@ packages: supports-color: 8.1.1 dev: true - /jest-worker/29.3.1: - resolution: {integrity: sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==} + /jest-worker/29.4.1: + resolution: {integrity: sha512-O9doU/S1EBe+yp/mstQ0VpPwpv0Clgn68TkNwGxL6/usX/KUW9Arnn4ag8C3jc6qHcXznhsT5Na1liYzAsuAbQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.11.18 - jest-util: 29.3.1 + jest-util: 29.4.1 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -8311,7 +8338,7 @@ packages: dev: true /json-buffer/3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} dev: true /json-parse-better-errors/1.0.2: @@ -8598,7 +8625,7 @@ packages: /lower-case/2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.4.1 + tslib: 2.5.0 dev: true /lowercase-keys/1.0.1: @@ -8738,7 +8765,7 @@ packages: dev: true /merge-descriptors/1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=} dev: true /merge-options/3.0.4: @@ -9021,7 +9048,6 @@ packages: resolution: {integrity: sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==} engines: {node: ^14 || ^16 || >=18} hasBin: true - dev: false /napi-build-utils/1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} @@ -9056,7 +9082,7 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.4.1 + tslib: 2.5.0 dev: true /node-abi/3.31.0: @@ -9072,8 +9098,8 @@ packages: lodash: 4.17.21 dev: true - /node-fetch/2.6.8: - resolution: {integrity: sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==} + /node-fetch/2.6.9: + resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -9089,8 +9115,8 @@ packages: engines: {node: '>= 6.13.0'} dev: true - /node-releases/2.0.8: - resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==} + /node-releases/2.0.9: + resolution: {integrity: sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==} dev: true /nofilter/3.1.0: @@ -9138,7 +9164,7 @@ packages: minimatch: 3.1.2 pidtree: 0.3.1 read-pkg: 3.0.0 - shell-quote: 1.7.4 + shell-quote: 1.8.0 string.prototype.padend: 3.1.4 dev: true @@ -9472,13 +9498,6 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - /p-wait-for/4.1.0: - resolution: {integrity: sha512-i8nE5q++9h8oaQHWltS1Tnnv4IoMDOlqN7C0KFG2OdbK0iFJIt6CROZ8wfBM+K4Pxqfnq4C4lkkpXqTEpB5DZw==} - engines: {node: '>=12'} - dependencies: - p-timeout: 5.1.0 - dev: true - /p-wait-for/5.0.0: resolution: {integrity: sha512-nkxeZInKET8e78NTtqBgxpnxDLbiCiQnGdoTnkLkluovfTyI5UTCrGwPNOr6ewJ90NpWyxEFt1ToZ96LmIXXHQ==} engines: {node: '>=12'} @@ -9499,7 +9518,7 @@ packages: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} dependencies: dot-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.5.0 dev: true /parent-module/1.0.1: @@ -9558,7 +9577,7 @@ packages: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} dependencies: no-case: 3.0.4 - tslib: 2.4.1 + tslib: 2.5.0 dev: true /path-browserify/1.0.1: @@ -9679,33 +9698,33 @@ packages: dependencies: find-up: 3.0.0 - /playwright-core/1.28.1: - resolution: {integrity: sha512-3PixLnGPno0E8rSBJjtwqTwJe3Yw72QwBBBxNoukIj3lEeBNXwbNiKrNuB1oyQgTBw5QHUhNO3SteEtHaMK6ag==} + /playwright-core/1.29.0: + resolution: {integrity: sha512-pboOm1m0RD6z1GtwAbEH60PYRfF87vKdzOSRw2RyO0Y0a7utrMyWN2Au1ojGvQr4umuBMODkKTv607YIRypDSQ==} engines: {node: '>=14'} hasBin: true dev: true - /playwright-test/8.1.2: - resolution: {integrity: sha512-D+0Km5sAGhX/WOftY7JGNrcLb7jRZukGf23nJwh8tz+KAJnuZ30IrB3UHIsiasaP+YPAaw3bRgoLyrCgOMKBCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /playwright-test/8.2.0: + resolution: {integrity: sha512-EcEFHtIQXs1vNvurjsChfrzYL28GtWNfXAj1d6L3LULGp2LWh8A10mrvmP/zIs5O61id/oCb6PoQ1fT5+d34uQ==} + engines: {node: '>=16.0.0'} hasBin: true dependencies: buffer: 6.0.3 - camelcase: 6.3.0 + camelcase: 7.0.1 chokidar: 3.5.3 cpy: 9.0.1 - esbuild: 0.14.39 + esbuild: 0.16.10 events: 3.3.0 globby: 13.1.3 kleur: 4.1.5 lilconfig: 2.0.6 lodash: 4.17.21 merge-options: 3.0.4 - nanoid: 3.3.4 + nanoid: 4.0.0 ora: 6.1.2 - p-wait-for: 4.1.0 + p-wait-for: 5.0.0 path-browserify: 1.0.1 - playwright-core: 1.28.1 + playwright-core: 1.29.0 polka: 0.5.2 premove: 4.0.0 process: 0.11.10 @@ -9766,7 +9785,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 + browserslist: 4.21.5 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.21 @@ -9779,7 +9798,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 + browserslist: 4.21.5 postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true @@ -9872,7 +9891,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 + browserslist: 4.21.5 caniuse-api: 3.0.0 cssnano-utils: 3.1.0_postcss@8.4.21 postcss: 8.4.21 @@ -9907,7 +9926,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 + browserslist: 4.21.5 cssnano-utils: 3.1.0_postcss@8.4.21 postcss: 8.4.21 postcss-value-parser: 4.2.0 @@ -10029,7 +10048,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 + browserslist: 4.21.5 postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: true @@ -10082,7 +10101,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 + browserslist: 4.21.5 caniuse-api: 3.0.0 postcss: 8.4.21 dev: true @@ -10270,8 +10289,8 @@ packages: xtend: 4.0.2 dev: true - /protobufjs/7.1.2: - resolution: {integrity: sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==} + /protobufjs/7.2.0: + resolution: {integrity: sha512-hYCqTDuII4iJ4stZqiuGCSU8xxWl5JeXYpwARGtn/tWcKCAro6h3WQz+xpsNbXW0UYqpmTQFEyFWO0G0Kjt64g==} engines: {node: '>=12.0.0'} requiresBuild: true dependencies: @@ -10409,7 +10428,7 @@ packages: dependencies: '@babel/code-frame': 7.18.6 address: 1.2.2 - browserslist: 4.21.4 + browserslist: 4.21.5 chalk: 4.1.2 cross-spawn: 7.0.3 detect-port-alt: 1.1.6 @@ -10420,7 +10439,7 @@ packages: global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 - immer: 9.0.18 + immer: 9.0.19 is-root: 2.1.0 loader-utils: 3.2.1 open: 8.4.0 @@ -10428,7 +10447,7 @@ packages: prompts: 2.4.2 react-error-overlay: 6.0.11 recursive-readdir: 2.2.3 - shell-quote: 1.7.4 + shell-quote: 1.8.0 strip-ansi: 6.0.1 text-table: 0.2.0 typescript: 4.9.4 @@ -10916,7 +10935,7 @@ packages: /rxjs/7.8.0: resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} dependencies: - tslib: 2.4.1 + tslib: 2.5.0 /sade/1.8.1: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} @@ -10949,8 +10968,8 @@ packages: /safer-buffer/2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sass/1.57.1: - resolution: {integrity: sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==} + /sass/1.58.0: + resolution: {integrity: sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==} engines: {node: '>=12.0.0'} hasBin: true dependencies: @@ -11186,8 +11205,8 @@ packages: engines: {node: '>=8'} dev: true - /shell-quote/1.7.4: - resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} + /shell-quote/1.8.0: + resolution: {integrity: sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==} dev: true /shelljs/0.8.5: @@ -11627,7 +11646,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 + browserslist: 4.21.5 postcss: 8.4.21 postcss-selector-parser: 6.0.11 dev: true @@ -11781,12 +11800,12 @@ packages: jest-worker: 27.5.1 schema-utils: 3.1.1 serialize-javascript: 6.0.1 - terser: 5.16.1 + terser: 5.16.2 webpack: 5.75.0 dev: true - /terser/5.16.1: - resolution: {integrity: sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==} + /terser/5.16.2: + resolution: {integrity: sha512-JKuM+KvvWVqT7muHVyrwv7FVRPnmHDwF6XwoIxdbF5Witi0vu99RYpxDexpJndXt3jbZZmmWr2/mQa6HvSNdSg==} engines: {node: '>=10'} hasBin: true dependencies: @@ -11913,8 +11932,8 @@ packages: /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - /tslib/2.4.1: - resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + /tslib/2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} /tsutils-etc/1.4.1_cls2tekvgzl55omjuqfocrchqe: resolution: {integrity: sha512-6UPYgc7OXcIW5tFxlsZF3OVSBvDInl/BkS3Xsu64YITXk7WrnWTVByKWPCThFDBp5gl5IGHOzGMdQuDCE7OL4g==} @@ -11923,7 +11942,7 @@ packages: tsutils: ^3.0.0 typescript: ^4.0.0 dependencies: - '@types/yargs': 17.0.20 + '@types/yargs': 17.0.22 tsutils: 3.21.0_typescript@4.9.4 typescript: 4.9.4 yargs: 17.6.2 @@ -11987,8 +12006,8 @@ packages: engines: {node: '>=12.20'} dev: true - /type-fest/3.5.3: - resolution: {integrity: sha512-V2+og4j/rWReWvaFrse3s9g2xvUv/K9Azm/xo6CjIuq7oeGqsoimC7+9/A3tfvNcbQf8RPSVj/HV81fB4DJrjA==} + /type-fest/3.5.4: + resolution: {integrity: sha512-/Je22Er4LPoln256pcLzj73MUmPrTWg8u4WB1RlxaDl0idJOfD1r259VtKOinp4xLJqJ9zYVMuWOun6Ssp7boA==} engines: {node: '>=14.16'} /type-is/1.6.18: @@ -12203,13 +12222,13 @@ packages: engines: {node: '>= 0.8'} dev: true - /update-browserslist-db/1.0.10_browserslist@4.21.4: + /update-browserslist-db/1.0.10_browserslist@4.21.5: resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.4 + browserslist: 4.21.5 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -12284,7 +12303,7 @@ packages: dev: true /utils-merge/1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} engines: {node: '>= 0.4.0'} dev: true @@ -12528,7 +12547,7 @@ packages: '@webassemblyjs/wasm-parser': 1.11.1 acorn: 8.8.2 acorn-import-assertions: 1.8.0_acorn@8.8.2 - browserslist: 4.21.4 + browserslist: 4.21.5 chrome-trace-event: 1.0.3 enhanced-resolve: 5.12.0 es-module-lexer: 0.9.3 @@ -12676,8 +12695,8 @@ packages: resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} dev: true - /wrangler/2.8.1: - resolution: {integrity: sha512-O4wUr6/FUpk9KVstOUVYbiiZcWc1jKo7q0FfdwEjnMB3oN7Ofs6cIiX++Lzj1ldFSCOw2/aW3UYgixch6B2WCA==} + /wrangler/2.9.0: + resolution: {integrity: sha512-5nyyR4bXKG/Rwz0dH+nOx4SWvJWmTZVSbceLyTV+ZOH1sd2vvPnnW14NUzTNEjY3XaT93XH+28mc5+UNSYsFHw==} engines: {node: '>=16.13.0'} hasBin: true dependencies: