From e616a0c8d785494c962562044633793f561fb762 Mon Sep 17 00:00:00 2001 From: Neal Date: Thu, 14 Mar 2024 16:27:34 -0500 Subject: [PATCH 01/22] status list cred impl --- packages/credentials/package.json | 6 +- .../credentials/src/status-list-credential.ts | 235 ++++++++++++++++++ .../credentials/src/verifiable-credential.ts | 17 +- .../tests/status-list-credential.spec.ts | 232 +++++++++++++++++ 4 files changed, 484 insertions(+), 6 deletions(-) create mode 100644 packages/credentials/src/status-list-credential.ts create mode 100644 packages/credentials/tests/status-list-credential.spec.ts diff --git a/packages/credentials/package.json b/packages/credentials/package.json index 355e01dd4..a8eb60b51 100644 --- a/packages/credentials/package.json +++ b/packages/credentials/package.json @@ -77,7 +77,8 @@ "@sphereon/pex": "2.1.0", "@web5/common": "0.2.3", "@web5/crypto": "0.4.0", - "@web5/dids": "0.4.0" + "@web5/dids": "0.4.0", + "pako": "^2.1.0" }, "devDependencies": { "@playwright/test": "1.40.1", @@ -87,6 +88,7 @@ "@types/eslint": "8.44.2", "@types/mocha": "10.0.1", "@types/node": "20.11.19", + "@types/pako": "^2.0.3", "@types/sinon": "17.0.2", "@typescript-eslint/eslint-plugin": "6.4.0", "@typescript-eslint/parser": "6.4.0", @@ -104,4 +106,4 @@ "sinon": "16.1.3", "typescript": "5.1.6" } -} \ No newline at end of file +} diff --git a/packages/credentials/src/status-list-credential.ts b/packages/credentials/src/status-list-credential.ts new file mode 100644 index 000000000..da46fce30 --- /dev/null +++ b/packages/credentials/src/status-list-credential.ts @@ -0,0 +1,235 @@ +import pako from 'pako'; +import { getCurrentXmlSchema112Timestamp } from './utils.js'; +import { VerifiableCredential, DEFAULT_VC_CONTEXT, DEFAULT_VC_TYPE, VcDataModel } from './verifiable-credential.js'; +import type { ICredentialStatus} from '@sphereon/ssi-types'; + +export const DEFAULT_STATUS_LIST_VC_CONTEXT = 'https://w3id.org/vc/status-list/2021/v1'; +export const DEFAULT_STATUS_LIST_VC_TYPE = 'StatusList2021Credential'; + +export enum StatusPurpose { + REVOCATION = 'revocation', + SUSPENSION = 'suspension', +} + +/** + * The size of the bitstring in bits. + * The bitstring is 16KB in size. + */ +const BITSTRING_SIZE = 16 * 1024 * 8; // 16KB in bits + +/** + * StatusListCredentialCreateOptions for creating a status list credential. + * + * @param statusListCredentialId The id used for the resolvable path to the status list credential [String]. + * @param issuer The issuer URI of the credential, as a [String]. + * @param statusPurpose The status purpose of the status list cred, eg: revocation, as a [StatusPurpose]. + * @param issuedCredentials The credentials to be included in the status list credential, eg: revoked credentials, list of type [VerifiableCredential]. + */ +export type StatusListCredentialCreateOptions = { + statusListCredentialId: string, + issuer: string, + statusPurpose: StatusPurpose, + issuedCredentials: VerifiableCredential[] +}; + +/** + * The StatusList2021Entry instance representing the core data model of a vc status list 2021. + * + * @see {@link https://www.w3.org/community/reports/credentials/CG-FINAL-vc-status-list-2021-20230102/ | Status List 2021 Entry} + */ +export interface StatusList2021Entry extends ICredentialStatus { + statusListIndex: string, + statusListCredential: string, + statusPurpose: string, +} + +/** + * `StatusListCredential` represents a digitally verifiable status list credential according to the + * [W3C Verifiable Credentials Status List v2021](https://www.w3.org/community/reports/credentials/CG-FINAL-vc-status-list-2021-20230102/). + * + * When a status list is published, the result is a verifiable credential that encapsulates the status list. + * + */ +export class StatusListCredential { + /** + * Create a [StatusListCredential] with a specific purpose, e.g., for revocation. + * + * @param statusListCredentialId The id used for the resolvable path to the status list credential [String]. + * @param issuer The issuer URI of the credential, as a [String]. + * @param statusPurpose The status purpose of the status list cred, eg: revocation, as a [StatusPurpose]. + * @param issuedCredentials The credentials to be included in the status list credential, eg: revoked credentials, list of type [VerifiableCredential]. + * @returns A special [VerifiableCredential] instance that is a StatusListCredential. + * @throws Error If the status list credential cannot be created. + * + * Example: + * ``` + StatusListCredential.create({ + statusListCredentialId : 'https://statuslistcred.com/123', + issuer : issuerDid.uri, + statusPurpose : StatusPurpose.REVOCATION, + issuedCredentials : [credWithCredStatus] + }) + * ``` + */ + public static create(options: StatusListCredentialCreateOptions): VerifiableCredential { + const { statusListCredentialId, issuer, statusPurpose, issuedCredentials } = options; + const statusListIndexes: string[] = this.prepareCredentialsForStatusList(statusPurpose, issuedCredentials); + const bitString = this.bitstringGeneration(statusListIndexes); + + const credentialSubject = { + id : statusListCredentialId, + type : 'StatusList2021', + statusPurpose : statusPurpose, + encodedList : bitString, + }; + + const vcDataModel: VcDataModel = { + '@context' : [DEFAULT_VC_CONTEXT, DEFAULT_STATUS_LIST_VC_CONTEXT], + type : [DEFAULT_VC_TYPE, DEFAULT_STATUS_LIST_VC_TYPE], + id : statusListCredentialId, + issuer : issuer, + issuanceDate : getCurrentXmlSchema112Timestamp(), + credentialSubject : credentialSubject, + }; + + return new VerifiableCredential(vcDataModel); + } + + /** + * Validates if a given credential is part of the status list represented by a [VerifiableCredential]. + * + * @param credentialToValidate The [VerifiableCredential] to be validated against the status list. + * @param statusListCredential The [VerifiableCredential] representing the status list. + * @returns A [Boolean] indicating whether the `credentialToValidate` is part of the status list. + * + * This function checks if the given `credentialToValidate`'s status list index is present in the expanded status list derived from the `statusListCredential`. + * + * Example: + * ``` + * const isRevoked = StatusListCredential.validateCredentialInStatusList(credentialToCheck, statusListCred); + * ``` + */ + public static validateCredentialInStatusList( + credentialToValidate: VerifiableCredential, + statusListCredential: VerifiableCredential + ): boolean { + const statusListEntryValue = credentialToValidate.vcDataModel.credentialStatus! as StatusList2021Entry; + const credentialSubject = statusListCredential.vcDataModel.credentialSubject as any; + const statusListCredStatusPurpose = credentialSubject['statusPurpose'] as StatusPurpose; + const encodedListCompressedBitString = credentialSubject['encodedList'] as string; + + if (!statusListEntryValue.statusPurpose) { + throw new Error('status purpose in the credential to validate is undefined'); + } + + if (!statusListCredStatusPurpose) { + throw new Error('status purpose in the status list credential is undefined'); + } + + if (statusListEntryValue.statusPurpose !== statusListCredStatusPurpose) { + throw new Error('status purposes do not match between the credentials'); + } + + if (!encodedListCompressedBitString) { + throw new Error('compressed bitstring is null or empty'); + } + + const expandedValues = this.bitstringExpansion(encodedListCompressedBitString); + + const credentialIndex = statusListEntryValue.statusListIndex; + return expandedValues[parseInt(credentialIndex)] == 1; + } + + /** + * Validates and extracts unique statusListIndex values from VerifiableCredential objects. + * + * @param statusPurpose - The status purpose + * @param credentials - An array of VerifiableCredential objects. + * @returns {string[]} An array of unique statusListIndex values. + * @throws {Error} If any validation fails. + */ + private static prepareCredentialsForStatusList( + statusPurpose: StatusPurpose, + credentials: VerifiableCredential[] + ): string[] { + const duplicateSet = new Set(); + for (const vc of credentials) { + if (!vc.vcDataModel.credentialStatus) { + throw new Error('no credential status found in credential'); + } + + const statusListEntry: StatusList2021Entry = vc.vcDataModel.credentialStatus as StatusList2021Entry; + + if (statusListEntry.statusPurpose !== statusPurpose) { + throw new Error('status purpose mismatch'); + } + + if (duplicateSet.has(statusListEntry.statusListIndex)) { + throw new Error(`duplicate entry found with index: ${statusListEntry.statusListIndex}`); + } + + if(parseInt(statusListEntry.statusListIndex) < 0) { + throw new Error('status list index cannot be negative'); + } + + if(parseInt(statusListEntry.statusListIndex) >= BITSTRING_SIZE) { + throw new Error('status list index is larger than the bitset size'); + } + + duplicateSet.add(statusListEntry.statusListIndex); + } + + return Array.from(duplicateSet); + } + + /** + * Generates a compressed bitstring from an array of statusListIndex values. + * + * @param statusListIndexes - An array of statusListIndex values. + * @returns {string} The compressed bitstring as a base64-encoded string. + */ + private static bitstringGeneration(statusListIndexes: string[]): string { + // Initialize a Buffer with 16KB filled with zeros + const bitstring = Buffer.alloc(BITSTRING_SIZE / 8, 0); + + // Set bits for revoked credentials + statusListIndexes.forEach(index => { + const statusListIndex = parseInt(index); + const byteIndex = Math.floor(statusListIndex / 8); + const bitIndex = statusListIndex % 8; + + bitstring[byteIndex] = bitstring[byteIndex] | (1 << (7 - bitIndex)); // Set bit to 1 + }); + + // Compress the bitstring with GZIP using pako + const compressed = pako.gzip(bitstring); + + // Return the base64-encoded string + return Buffer.from(compressed).toString('base64'); + } + + /** + * Expands a compressed bitstring into an array of 0s and 1s. + * + * @param compressedBitstring - The compressed bitstring as a base64-encoded string. + * @returns {number[]} An array of 0s and 1s representing the bitstring. + */ + private static bitstringExpansion(compressedBitstring: string): number[] { + // Base64-decode the compressed bitstring + const compressedData = Buffer.from(compressedBitstring, 'base64'); + + // Decompress the data using pako + const decompressedData = pako.inflate(compressedData); + + // Convert the decompressed data into an array of "0" or "1" strings + const bitstringArray: number[] = []; + decompressedData.forEach(byte => { + for (let i = 7; i >= 0; i--) { + const bit = (byte >> i) & 1; + bitstringArray.push(bit); + } + }); + + return bitstringArray; + } +} \ No newline at end of file diff --git a/packages/credentials/src/verifiable-credential.ts b/packages/credentials/src/verifiable-credential.ts index e4ff03924..4ca506d0f 100644 --- a/packages/credentials/src/verifiable-credential.ts +++ b/packages/credentials/src/verifiable-credential.ts @@ -1,11 +1,12 @@ import type { BearerDid } from '@web5/dids'; -import type { ICredential, ICredentialSubject} from '@sphereon/ssi-types'; +import type { ICredential, ICredentialSubject, ICredentialStatus} from '@sphereon/ssi-types'; import { utils as cryptoUtils } from '@web5/crypto'; import { Jwt } from './jwt.js'; import { SsiValidator } from './validators.js'; import { getCurrentXmlSchema112Timestamp } from './utils.js'; +import { DEFAULT_STATUS_LIST_VC_CONTEXT, StatusList2021Entry } from './status-list-credential.js'; export const DEFAULT_VC_CONTEXT = 'https://www.w3.org/2018/credentials/v1'; export const DEFAULT_VC_TYPE = 'VerifiableCredential'; @@ -34,6 +35,7 @@ export type VerifiableCredentialCreateOptions = { data: any; issuanceDate?: string; expirationDate?: string; + credentialStatus?: StatusList2021Entry }; /** @@ -125,7 +127,7 @@ export class VerifiableCredential { * @returns A [VerifiableCredential] instance. */ public static async create(options: VerifiableCredentialCreateOptions): Promise { - const { type, issuer, subject, data, issuanceDate, expirationDate } = options; + const { type, issuer, subject, data, issuanceDate, expirationDate, credentialStatus } = options; const jsonData = JSON.parse(JSON.stringify(data)); @@ -146,8 +148,14 @@ export class VerifiableCredential { ...jsonData }; + const contexts: string[] = [DEFAULT_VC_CONTEXT]; + + if (credentialStatus !== null) { + contexts.push(DEFAULT_STATUS_LIST_VC_CONTEXT); + } + const vcDataModel: VcDataModel = { - '@context' : [DEFAULT_VC_CONTEXT], + '@context' : contexts, type : Array.isArray(type) ? [DEFAULT_VC_TYPE, ...type] : (type ? [DEFAULT_VC_TYPE, type] : [DEFAULT_VC_TYPE]), @@ -155,7 +163,8 @@ export class VerifiableCredential { issuer : issuer, issuanceDate : issuanceDate || getCurrentXmlSchema112Timestamp(), // use default if undefined credentialSubject : credentialSubject, - ...(expirationDate && { expirationDate }), // optional property + ...(expirationDate && { expirationDate }), // optional property + ...(credentialStatus && { credentialStatus }) // optional property }; validatePayload(vcDataModel); diff --git a/packages/credentials/tests/status-list-credential.spec.ts b/packages/credentials/tests/status-list-credential.spec.ts new file mode 100644 index 000000000..dae11218d --- /dev/null +++ b/packages/credentials/tests/status-list-credential.spec.ts @@ -0,0 +1,232 @@ +import type { BearerDid } from '@web5/dids'; + +import { expect } from 'chai'; +import { DidJwk } from '@web5/dids'; + +import { VerifiableCredential } from '../src/verifiable-credential.js'; +import { StatusListCredential, StatusPurpose } from '../src/status-list-credential.js'; + +describe('Status List Credential Tests', async() => { + let issuerDid: BearerDid; + let holderDid: BearerDid; + + class StreetCredibility { + constructor( + public localRespect: string, + public legit: boolean + ) {} + } + + beforeEach(async () => { + issuerDid = await DidJwk.create(); + holderDid = await DidJwk.create(); + }); + + describe('Status List Credential', () => { + it('create status list credential works', async () => { + const subjectDid = issuerDid; + + const credentialStatus = { + id : 'cred-with-status-id', + type : 'StatusList2021Entry', + statusPurpose : 'revocation', + statusListIndex : '94567', + statusListCredential : 'https://statuslistcred.com/123', + }; + + const credWithCredStatus = await VerifiableCredential.create({ + type : 'StreetCred', + issuer : issuerDid.uri, + subject : subjectDid.uri, + data : new StreetCredibility('high', true), + credentialStatus : credentialStatus + }); + + const credWithStatusContexts = credWithCredStatus.vcDataModel['@context'] as string[]; + + expect(credWithStatusContexts.includes('https://www.w3.org/2018/credentials/v1')).to.be.true; + expect(credWithStatusContexts.includes('https://w3id.org/vc/status-list/2021/v1')).to.be.true; + expect(credWithCredStatus.vcDataModel.credentialStatus).to.deep.equal(credentialStatus); + + const statusListCred = StatusListCredential.create({ + statusListCredentialId : 'https://statuslistcred.com/123', + issuer : issuerDid.uri, + statusPurpose : StatusPurpose.REVOCATION, + issuedCredentials : [credWithCredStatus] + }); + + const statusListCredContexts = statusListCred.vcDataModel['@context']; + + expect(statusListCred.vcDataModel.id).to.equal('https://statuslistcred.com/123'); + expect(statusListCredContexts).to.include('https://www.w3.org/2018/credentials/v1'); + expect(statusListCredContexts).to.include('https://w3id.org/vc/status-list/2021/v1'); + expect(statusListCred.type).to.include('StatusList2021Credential'); + expect(statusListCred.issuer).to.equal(issuerDid.uri); + + const statusListCredSubject = statusListCred.vcDataModel.credentialSubject as any; + expect(statusListCredSubject['id']).to.equal('https://statuslistcred.com/123'); + expect(statusListCredSubject['type']).to.equal('StatusList2021'); + expect(statusListCredSubject['statusPurpose']).to.equal(StatusPurpose.REVOCATION); + expect(statusListCredSubject['encodedList']).to.equal('H4sIAAAAAAAAA+3OMQ0AAAgDsOHfNBp2kZBWQRMAAAAAAAAAAAAAAL6Z6wAAAAAAtQVQdb5gAEAAAA=='); + }); + + it('should generate StatusListCredential from multiple VerifiableCredentials', async () => { + const credentialStatus1 = { + id : 'cred-with-status-id', + type : 'StatusList2021Entry', + statusPurpose : 'revocation', + statusListIndex : '123', + statusListCredential : 'https://example.com/credentials/status/3' + }; + + const vc1 = await VerifiableCredential.create({ + type : 'StreetCred', + issuer : issuerDid.uri, + subject : holderDid.uri, + data : new StreetCredibility('high', true), + credentialStatus : credentialStatus1 + }); + + const credentialStatus2 = { + id : 'cred-with-status-id', + type : 'StatusList2021Entry', + statusPurpose : 'revocation', + statusListIndex : '124', + statusListCredential : 'https://example.com/credentials/status/3' + }; + + const vc2 = await VerifiableCredential.create({ + type : 'StreetCred', + issuer : issuerDid.uri, + subject : holderDid.uri, + data : new StreetCredibility('high', true), + credentialStatus : credentialStatus2 + }); + + + const credentialStatus3 = { + id : 'cred-with-status-id', + type : 'StatusList2021Entry', + statusPurpose : 'revocation', + statusListIndex : '1247', + statusListCredential : 'https://example.com/credentials/status/3' + }; + + const vc3 = await VerifiableCredential.create({ + type : 'StreetCred', + issuer : issuerDid.uri, + subject : holderDid.uri, + data : new StreetCredibility('high', true), + credentialStatus : credentialStatus3 + }); + + const statusListCredential = await StatusListCredential.create({ + statusListCredentialId : 'revocation-id', + issuer : issuerDid.uri, + statusPurpose : StatusPurpose.REVOCATION, + issuedCredentials : [vc1, vc2] + }); + + expect(statusListCredential).not.be.undefined; + expect(statusListCredential.subject).to.equal('revocation-id'); + + const credentialSubject = statusListCredential.vcDataModel.credentialSubject as any; + expect(credentialSubject['type']).to.equal('StatusList2021'); + expect(credentialSubject['statusPurpose']).to.equal('revocation'); + + // TODO: Check encoding across other sdks and spec - https://github.com/TBD54566975/web5-kt/issues/97 + expect(credentialSubject['encodedList']).to.equal('H4sIAAAAAAAAA+3BMQEAAAjAoMWwf1JvC3gBdUwAAAAAAAAAAAAAAAAAAADAuwUYSEbMAEAAAA=='); + + expect(StatusListCredential.validateCredentialInStatusList(vc1, statusListCredential)).to.be.true; + expect(StatusListCredential.validateCredentialInStatusList(vc2, statusListCredential)).to.be.true; + expect(StatusListCredential.validateCredentialInStatusList(vc3, statusListCredential)).to.be.false; + }); + + it('should fail when generating StatusListCredential with duplicate indexes', async () => { + const subjectDid = issuerDid; + + const credentialStatus = { + id : 'cred-with-status-id', + type : 'StatusList2021Entry', + statusPurpose : 'revocation', + statusListIndex : '94567', + statusListCredential : 'https://statuslistcred.com/123', + }; + + const credWithCredStatus = await VerifiableCredential.create({ + type : 'StreetCred', + issuer : issuerDid.uri, + subject : subjectDid.uri, + data : new StreetCredibility('high', true), + credentialStatus : credentialStatus + }); + + expect(() => + StatusListCredential.create({ + statusListCredentialId : 'https://statuslistcred.com/123', + issuer : issuerDid.uri, + statusPurpose : StatusPurpose.REVOCATION, + issuedCredentials : [credWithCredStatus, credWithCredStatus] + }) + ).to.throw('duplicate entry found with index: 94567'); + }); + + it('should fail when generating StatusListCredential with negative index', async () => { + const subjectDid = issuerDid; + + const credentialStatus = { + id : 'cred-with-status-id', + type : 'StatusList2021Entry', + statusPurpose : 'revocation', + statusListIndex : '-3', + statusListCredential : 'https://statuslistcred.com/123', + }; + + const credWithCredStatus = await VerifiableCredential.create({ + type : 'StreetCred', + issuer : issuerDid.uri, + subject : subjectDid.uri, + data : new StreetCredibility('high', true), + credentialStatus : credentialStatus + }); + + expect(() => + StatusListCredential.create({ + statusListCredentialId : 'https://statuslistcred.com/123', + issuer : issuerDid.uri, + statusPurpose : StatusPurpose.REVOCATION, + issuedCredentials : [credWithCredStatus] + }) + ).to.throw('status list index cannot be negative'); + }); + + it('should fail when generating StatusListCredential with an index larger than maximum size', async () => { + const subjectDid = issuerDid; + + const credentialStatus = { + id : 'cred-with-status-id', + type : 'StatusList2021Entry', + statusPurpose : 'revocation', + statusListIndex : Number.MAX_SAFE_INTEGER.toString(), + statusListCredential : 'https://statuslistcred.com/123', + }; + + const credWithCredStatus = await VerifiableCredential.create({ + type : 'StreetCred', + issuer : issuerDid.uri, + subject : subjectDid.uri, + data : new StreetCredibility('high', true), + credentialStatus : credentialStatus + }); + + expect(() => + StatusListCredential.create({ + statusListCredentialId : 'https://statuslistcred.com/123', + issuer : issuerDid.uri, + statusPurpose : StatusPurpose.REVOCATION, + issuedCredentials : [credWithCredStatus] + }) + ).to.throw('status list index is larger than the bitset size'); + }); + }); +}); \ No newline at end of file From 4e73e21f5b42a4750ea76410bb159e576f4650be Mon Sep 17 00:00:00 2001 From: Neal Date: Thu, 14 Mar 2024 16:30:37 -0500 Subject: [PATCH 02/22] pnpm install --- pnpm-lock.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 54c087fc3..a2d2d1940 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -350,6 +350,9 @@ importers: '@web5/dids': specifier: 0.4.0 version: 0.4.0 + pako: + specifier: ^2.1.0 + version: 2.1.0 devDependencies: '@playwright/test': specifier: 1.40.1 @@ -372,6 +375,9 @@ importers: '@types/node': specifier: 20.11.19 version: 20.11.19 + '@types/pako': + specifier: ^2.0.3 + version: 2.0.3 '@types/sinon': specifier: 17.0.2 version: 17.0.2 @@ -2806,6 +2812,10 @@ packages: undici-types: 5.26.5 dev: true + /@types/pako@2.0.3: + resolution: {integrity: sha512-bq0hMV9opAcrmE0Byyo0fY3Ew4tgOevJmQ9grUhpXQhYfyLJ1Kqg3P33JT5fdbT2AjeAjR51zqqVjAL/HMkx7Q==} + dev: true + /@types/parse5@6.0.3: resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} dev: true @@ -7093,6 +7103,10 @@ packages: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} dev: true + /pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + dev: false + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} From eced7f6adb47474a9bdb38620ec5d1e8c42aa631 Mon Sep 17 00:00:00 2001 From: Neal Date: Thu, 14 Mar 2024 16:36:34 -0500 Subject: [PATCH 03/22] fix linter --- packages/credentials/src/verifiable-credential.ts | 2 +- packages/credentials/tests/status-list-credential.spec.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/credentials/src/verifiable-credential.ts b/packages/credentials/src/verifiable-credential.ts index 4ca506d0f..ab7e9b034 100644 --- a/packages/credentials/src/verifiable-credential.ts +++ b/packages/credentials/src/verifiable-credential.ts @@ -1,5 +1,5 @@ import type { BearerDid } from '@web5/dids'; -import type { ICredential, ICredentialSubject, ICredentialStatus} from '@sphereon/ssi-types'; +import type { ICredential, ICredentialSubject} from '@sphereon/ssi-types'; import { utils as cryptoUtils } from '@web5/crypto'; diff --git a/packages/credentials/tests/status-list-credential.spec.ts b/packages/credentials/tests/status-list-credential.spec.ts index dae11218d..0eee8abd1 100644 --- a/packages/credentials/tests/status-list-credential.spec.ts +++ b/packages/credentials/tests/status-list-credential.spec.ts @@ -44,8 +44,9 @@ describe('Status List Credential Tests', async() => { const credWithStatusContexts = credWithCredStatus.vcDataModel['@context'] as string[]; - expect(credWithStatusContexts.includes('https://www.w3.org/2018/credentials/v1')).to.be.true; - expect(credWithStatusContexts.includes('https://w3id.org/vc/status-list/2021/v1')).to.be.true; + expect(credWithStatusContexts.some(context => context.includes('https://w3id.org/vc/status-list/2021/v1'))).to.be.true; + expect(credWithStatusContexts.some(context => context.includes('https://www.w3.org/2018/credentials/v1'))).to.be.true; + expect(credWithCredStatus.vcDataModel.credentialStatus).to.deep.equal(credentialStatus); const statusListCred = StatusListCredential.create({ From a18bbc99337d92f10e437dda0ef047f7a609775b Mon Sep 17 00:00:00 2001 From: Neal Date: Fri, 5 Apr 2024 10:22:28 -0500 Subject: [PATCH 04/22] test vector --- .../tests/status-list-credential.spec.ts | 36 +++++++++++++++++++ web5-spec | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/packages/credentials/tests/status-list-credential.spec.ts b/packages/credentials/tests/status-list-credential.spec.ts index 0eee8abd1..2df8d9738 100644 --- a/packages/credentials/tests/status-list-credential.spec.ts +++ b/packages/credentials/tests/status-list-credential.spec.ts @@ -6,6 +6,8 @@ import { DidJwk } from '@web5/dids'; import { VerifiableCredential } from '../src/verifiable-credential.js'; import { StatusListCredential, StatusPurpose } from '../src/status-list-credential.js'; +import StatusListCredentialsCreateTestVector from '../../../web5-spec/test-vectors/status_list_credentials/create.json' assert { type: 'json' }; + describe('Status List Credential Tests', async() => { let issuerDid: BearerDid; let holderDid: BearerDid; @@ -42,6 +44,8 @@ describe('Status List Credential Tests', async() => { credentialStatus : credentialStatus }); + console.log(credWithCredStatus); + const credWithStatusContexts = credWithCredStatus.vcDataModel['@context'] as string[]; expect(credWithStatusContexts.some(context => context.includes('https://w3id.org/vc/status-list/2021/v1'))).to.be.true; @@ -230,4 +234,36 @@ describe('Status List Credential Tests', async() => { ).to.throw('status list index is larger than the bitset size'); }); }); + + describe('Web5TestVectorsStatusListCredentials', () => { + it('create', async () => { + const vectors = StatusListCredentialsCreateTestVector.vectors; + + for (const vector of vectors) { + const { input, output } = vector; + + const vcWithCredStatus = await VerifiableCredential.create({ + type : input.credential.type, + issuer : input.credential.issuer, + subject : input.credential.subject, + data : input.credential.credentialSubject, + credentialStatus : input.credential.credentialStatus + }); + + const statusListCred = StatusListCredential.create({ + statusListCredentialId : input.statusListCredential.statusListCredentialId, + issuer : input.statusListCredential.issuer, + statusPurpose : input.statusListCredential.statusPurpose as StatusPurpose, + issuedCredentials : [vcWithCredStatus] + }); + + expect(StatusListCredential.validateCredentialInStatusList(vcWithCredStatus, statusListCred)).to.be.true; + + const statusListCredSubject = statusListCred.vcDataModel.credentialSubject as any; + expect(statusListCredSubject['type']).to.equal('StatusList2021'); + expect(statusListCredSubject['statusPurpose']).to.equal(input.statusListCredential.statusPurpose); + expect(statusListCredSubject['encodedList']).to.equal(output.encodedList); + } + }); + }); }); \ No newline at end of file diff --git a/web5-spec b/web5-spec index 270966f0f..7767d07d4 160000 --- a/web5-spec +++ b/web5-spec @@ -1 +1 @@ -Subproject commit 270966f0ffab6c8834ab83aeb61855d212b12723 +Subproject commit 7767d07d48607aeed2b417938b3d7130180e8b73 From 2ad0f0ea253dfc3ab363dcb83b738ced40d91fb8 Mon Sep 17 00:00:00 2001 From: Neal Date: Fri, 5 Apr 2024 10:47:00 -0500 Subject: [PATCH 05/22] update --- packages/credentials/src/status-list-credential.ts | 7 +++++-- packages/credentials/tests/status-list-credential.spec.ts | 7 +++---- web5-spec | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/credentials/src/status-list-credential.ts b/packages/credentials/src/status-list-credential.ts index da46fce30..06ee9a8a3 100644 --- a/packages/credentials/src/status-list-credential.ts +++ b/packages/credentials/src/status-list-credential.ts @@ -2,6 +2,7 @@ import pako from 'pako'; import { getCurrentXmlSchema112Timestamp } from './utils.js'; import { VerifiableCredential, DEFAULT_VC_CONTEXT, DEFAULT_VC_TYPE, VcDataModel } from './verifiable-credential.js'; import type { ICredentialStatus} from '@sphereon/ssi-types'; +import { Convert } from '@web5/common'; export const DEFAULT_STATUS_LIST_VC_CONTEXT = 'https://w3id.org/vc/status-list/2021/v1'; export const DEFAULT_STATUS_LIST_VC_TYPE = 'StatusList2021Credential'; @@ -190,7 +191,7 @@ export class StatusListCredential { */ private static bitstringGeneration(statusListIndexes: string[]): string { // Initialize a Buffer with 16KB filled with zeros - const bitstring = Buffer.alloc(BITSTRING_SIZE / 8, 0); + const bitstring = new Uint8Array(BITSTRING_SIZE / 8); // Set bits for revoked credentials statusListIndexes.forEach(index => { @@ -205,7 +206,9 @@ export class StatusListCredential { const compressed = pako.gzip(bitstring); // Return the base64-encoded string - return Buffer.from(compressed).toString('base64'); + const base64EncodedString = Convert.uint8Array(compressed).toBase64Url(); + + return base64EncodedString; } /** diff --git a/packages/credentials/tests/status-list-credential.spec.ts b/packages/credentials/tests/status-list-credential.spec.ts index 2df8d9738..333a13a23 100644 --- a/packages/credentials/tests/status-list-credential.spec.ts +++ b/packages/credentials/tests/status-list-credential.spec.ts @@ -44,8 +44,6 @@ describe('Status List Credential Tests', async() => { credentialStatus : credentialStatus }); - console.log(credWithCredStatus); - const credWithStatusContexts = credWithCredStatus.vcDataModel['@context'] as string[]; expect(credWithStatusContexts.some(context => context.includes('https://w3id.org/vc/status-list/2021/v1'))).to.be.true; @@ -72,7 +70,8 @@ describe('Status List Credential Tests', async() => { expect(statusListCredSubject['id']).to.equal('https://statuslistcred.com/123'); expect(statusListCredSubject['type']).to.equal('StatusList2021'); expect(statusListCredSubject['statusPurpose']).to.equal(StatusPurpose.REVOCATION); - expect(statusListCredSubject['encodedList']).to.equal('H4sIAAAAAAAAA+3OMQ0AAAgDsOHfNBp2kZBWQRMAAAAAAAAAAAAAAL6Z6wAAAAAAtQVQdb5gAEAAAA=='); + + expect(statusListCredSubject['encodedList']).to.equal('H4sIAAAAAAAAA-3OMQ0AAAgDsOHfNBp2kZBWQRMAAAAAAAAAAAAAAL6Z6wAAAAAAtQVQdb5gAEAAAA'); }); it('should generate StatusListCredential from multiple VerifiableCredentials', async () => { @@ -140,7 +139,7 @@ describe('Status List Credential Tests', async() => { expect(credentialSubject['statusPurpose']).to.equal('revocation'); // TODO: Check encoding across other sdks and spec - https://github.com/TBD54566975/web5-kt/issues/97 - expect(credentialSubject['encodedList']).to.equal('H4sIAAAAAAAAA+3BMQEAAAjAoMWwf1JvC3gBdUwAAAAAAAAAAAAAAAAAAADAuwUYSEbMAEAAAA=='); + expect(credentialSubject['encodedList']).to.equal('H4sIAAAAAAAAA-3BMQEAAAjAoMWwf1JvC3gBdUwAAAAAAAAAAAAAAAAAAADAuwUYSEbMAEAAAA'); expect(StatusListCredential.validateCredentialInStatusList(vc1, statusListCredential)).to.be.true; expect(StatusListCredential.validateCredentialInStatusList(vc2, statusListCredential)).to.be.true; diff --git a/web5-spec b/web5-spec index 7767d07d4..d65f57148 160000 --- a/web5-spec +++ b/web5-spec @@ -1 +1 @@ -Subproject commit 7767d07d48607aeed2b417938b3d7130180e8b73 +Subproject commit d65f571482ea07c359943eb8c6a038cd177002b4 From 36408b14d61bc06b6bb5e9c0f4bc2bdad0100f12 Mon Sep 17 00:00:00 2001 From: Neal Date: Fri, 5 Apr 2024 10:54:19 -0500 Subject: [PATCH 06/22] update --- packages/credentials/src/status-list-credential.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/credentials/src/status-list-credential.ts b/packages/credentials/src/status-list-credential.ts index 06ee9a8a3..93f0672f7 100644 --- a/packages/credentials/src/status-list-credential.ts +++ b/packages/credentials/src/status-list-credential.ts @@ -219,7 +219,7 @@ export class StatusListCredential { */ private static bitstringExpansion(compressedBitstring: string): number[] { // Base64-decode the compressed bitstring - const compressedData = Buffer.from(compressedBitstring, 'base64'); + const compressedData = Convert.base64Url(compressedBitstring).toUint8Array(); // Decompress the data using pako const decompressedData = pako.inflate(compressedData); From 7b8aa3950281642ab6cb5efa4f0799ca47341bd5 Mon Sep 17 00:00:00 2001 From: Henry Tsai Date: Fri, 5 Apr 2024 18:07:55 -0700 Subject: [PATCH 07/22] Updates to status list 2021 PR (#486) --- packages/credentials/.c8rc.json | 1 + packages/credentials/.vscode/settings.json | 3 + .../credentials/src/status-list-credential.ts | 98 ++++++++++--------- .../credentials/src/verifiable-credential.ts | 4 +- .../tests/status-list-credential.spec.ts | 26 ++--- 5 files changed, 73 insertions(+), 59 deletions(-) create mode 100644 packages/credentials/.vscode/settings.json diff --git a/packages/credentials/.c8rc.json b/packages/credentials/.c8rc.json index c44b67aba..e96f8a5a3 100644 --- a/packages/credentials/.c8rc.json +++ b/packages/credentials/.c8rc.json @@ -14,6 +14,7 @@ ], "reporter": [ "cobertura", + "html", "text" ] } \ No newline at end of file diff --git a/packages/credentials/.vscode/settings.json b/packages/credentials/.vscode/settings.json new file mode 100644 index 000000000..eeb67bf56 --- /dev/null +++ b/packages/credentials/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "search.useParentIgnoreFiles": true +} \ No newline at end of file diff --git a/packages/credentials/src/status-list-credential.ts b/packages/credentials/src/status-list-credential.ts index 93f0672f7..57e66f451 100644 --- a/packages/credentials/src/status-list-credential.ts +++ b/packages/credentials/src/status-list-credential.ts @@ -1,22 +1,25 @@ import pako from 'pako'; import { getCurrentXmlSchema112Timestamp } from './utils.js'; import { VerifiableCredential, DEFAULT_VC_CONTEXT, DEFAULT_VC_TYPE, VcDataModel } from './verifiable-credential.js'; -import type { ICredentialStatus} from '@sphereon/ssi-types'; import { Convert } from '@web5/common'; export const DEFAULT_STATUS_LIST_VC_CONTEXT = 'https://w3id.org/vc/status-list/2021/v1'; export const DEFAULT_STATUS_LIST_VC_TYPE = 'StatusList2021Credential'; +/** + * The status purpose dictated by Status List 2021 spec. + * @see {@link https://www.w3.org/community/reports/credentials/CG-FINAL-vc-status-list-2021-20230102/#statuslist2021entry | Status List 2021 Entry} + */ export enum StatusPurpose { - REVOCATION = 'revocation', - SUSPENSION = 'suspension', + revocation = 'revocation', + suspension = 'suspension', } /** * The size of the bitstring in bits. * The bitstring is 16KB in size. */ -const BITSTRING_SIZE = 16 * 1024 * 8; // 16KB in bits +const BITSTRING_SIZE = 16 * 1024 * 8; // 16KiB in bits /** * StatusListCredentialCreateOptions for creating a status list credential. @@ -24,24 +27,31 @@ const BITSTRING_SIZE = 16 * 1024 * 8; // 16KB in bits * @param statusListCredentialId The id used for the resolvable path to the status list credential [String]. * @param issuer The issuer URI of the credential, as a [String]. * @param statusPurpose The status purpose of the status list cred, eg: revocation, as a [StatusPurpose]. - * @param issuedCredentials The credentials to be included in the status list credential, eg: revoked credentials, list of type [VerifiableCredential]. + * @param credentialsToDisable The credentials to be included in the status list credential, eg: revoked credentials, list of type [VerifiableCredential]. */ export type StatusListCredentialCreateOptions = { statusListCredentialId: string, issuer: string, statusPurpose: StatusPurpose, - issuedCredentials: VerifiableCredential[] + credentialsToDisable: VerifiableCredential[] }; /** - * The StatusList2021Entry instance representing the core data model of a vc status list 2021. + * Credential status lookup information included in a Verifiable Credential that supports status lookup. + * Data model dictated by the Status List 2021 spec. * - * @see {@link https://www.w3.org/community/reports/credentials/CG-FINAL-vc-status-list-2021-20230102/ | Status List 2021 Entry} + * @see {@link https://www.w3.org/community/reports/credentials/CG-FINAL-vc-status-list-2021-20230102/#example-example-statuslist2021credential | Status List 2021 Entry} */ -export interface StatusList2021Entry extends ICredentialStatus { +export interface StatusList2021Entry { + id: string + type: string + statusPurpose: string, + + /** The index of the status entry in the status list. Poorly named by spec, should really be `entryIndex`. */ statusListIndex: string, + + /** URL to the status list. */ statusListCredential: string, - statusPurpose: string, } /** @@ -58,7 +68,7 @@ export class StatusListCredential { * @param statusListCredentialId The id used for the resolvable path to the status list credential [String]. * @param issuer The issuer URI of the credential, as a [String]. * @param statusPurpose The status purpose of the status list cred, eg: revocation, as a [StatusPurpose]. - * @param issuedCredentials The credentials to be included in the status list credential, eg: revoked credentials, list of type [VerifiableCredential]. + * @param credentialsToDisable The credentials to be marked as revoked/suspended (status bit set to 1) in the status list. * @returns A special [VerifiableCredential] instance that is a StatusListCredential. * @throws Error If the status list credential cannot be created. * @@ -67,15 +77,15 @@ export class StatusListCredential { StatusListCredential.create({ statusListCredentialId : 'https://statuslistcred.com/123', issuer : issuerDid.uri, - statusPurpose : StatusPurpose.REVOCATION, - issuedCredentials : [credWithCredStatus] + statusPurpose : StatusPurpose.revocation, + credentialsToDisable : [credWithCredStatus] }) * ``` */ public static create(options: StatusListCredentialCreateOptions): VerifiableCredential { - const { statusListCredentialId, issuer, statusPurpose, issuedCredentials } = options; - const statusListIndexes: string[] = this.prepareCredentialsForStatusList(statusPurpose, issuedCredentials); - const bitString = this.bitstringGeneration(statusListIndexes); + const { statusListCredentialId, issuer, statusPurpose, credentialsToDisable } = options; + const indexesOfCredentialsToRevoke: number[] = this.validateStatusListEntryIndexesAreAllUnique(statusPurpose, credentialsToDisable); + const bitString = this.generateBitString(indexesOfCredentialsToRevoke); const credentialSubject = { id : statusListCredentialId, @@ -142,68 +152,68 @@ export class StatusListCredential { } /** - * Validates and extracts unique statusListIndex values from VerifiableCredential objects. + * Validates that the status list entry index in all the given credentials are unique, + * and returns the unique index values. * - * @param statusPurpose - The status purpose - * @param credentials - An array of VerifiableCredential objects. - * @returns {string[]} An array of unique statusListIndex values. + * @param statusPurpose - The status purpose that all given credentials must match to. + * @param credentials - An array of VerifiableCredential objects each contain a status list entry index. + * @returns {number[]} An array of unique statusListIndex values. * @throws {Error} If any validation fails. */ - private static prepareCredentialsForStatusList( + private static validateStatusListEntryIndexesAreAllUnique( statusPurpose: StatusPurpose, credentials: VerifiableCredential[] - ): string[] { - const duplicateSet = new Set(); + ): number[] { + const uniqueIndexes = new Set(); for (const vc of credentials) { if (!vc.vcDataModel.credentialStatus) { throw new Error('no credential status found in credential'); } - const statusListEntry: StatusList2021Entry = vc.vcDataModel.credentialStatus as StatusList2021Entry; + const statusList2021Entry: StatusList2021Entry = vc.vcDataModel.credentialStatus as StatusList2021Entry; - if (statusListEntry.statusPurpose !== statusPurpose) { + if (statusList2021Entry.statusPurpose !== statusPurpose) { throw new Error('status purpose mismatch'); } - if (duplicateSet.has(statusListEntry.statusListIndex)) { - throw new Error(`duplicate entry found with index: ${statusListEntry.statusListIndex}`); + if (uniqueIndexes.has(statusList2021Entry.statusListIndex)) { + throw new Error(`duplicate entry found with index: ${statusList2021Entry.statusListIndex}`); } - if(parseInt(statusListEntry.statusListIndex) < 0) { + if(parseInt(statusList2021Entry.statusListIndex) < 0) { throw new Error('status list index cannot be negative'); } - if(parseInt(statusListEntry.statusListIndex) >= BITSTRING_SIZE) { + if(parseInt(statusList2021Entry.statusListIndex) >= BITSTRING_SIZE) { throw new Error('status list index is larger than the bitset size'); } - duplicateSet.add(statusListEntry.statusListIndex); + uniqueIndexes.add(statusList2021Entry.statusListIndex); } - return Array.from(duplicateSet); + return Array.from(uniqueIndexes).map(index => parseInt(index)); } /** - * Generates a compressed bitstring from an array of statusListIndex values. + * Generates a Base64URL encoded, GZIP compressed bit string. * - * @param statusListIndexes - An array of statusListIndex values. - * @returns {string} The compressed bitstring as a base64-encoded string. + * @param indexOfBitsToTurnOn - The indexes of the bits to turn on (set to 1) in the bit string. + * @returns {string} The compressed bit string as a base64-encoded string. */ - private static bitstringGeneration(statusListIndexes: string[]): string { + private static generateBitString(indexOfBitsToTurnOn: number[]): string { // Initialize a Buffer with 16KB filled with zeros - const bitstring = new Uint8Array(BITSTRING_SIZE / 8); + const bitArray = new Uint8Array(BITSTRING_SIZE / 8); - // Set bits for revoked credentials - statusListIndexes.forEach(index => { - const statusListIndex = parseInt(index); - const byteIndex = Math.floor(statusListIndex / 8); - const bitIndex = statusListIndex % 8; + // set specified bits to 1 + indexOfBitsToTurnOn.forEach(index => { + const byteIndex = Math.floor(index / 8); + const bitIndex = index % 8; - bitstring[byteIndex] = bitstring[byteIndex] | (1 << (7 - bitIndex)); // Set bit to 1 + bitArray[byteIndex] = bitArray[byteIndex] | (1 << (7 - bitIndex)); // Set bit to 1 }); - // Compress the bitstring with GZIP using pako - const compressed = pako.gzip(bitstring); + // Compress the bit array with GZIP using pako + const compressed = pako.gzip(bitArray); // Return the base64-encoded string const base64EncodedString = Convert.uint8Array(compressed).toBase64Url(); diff --git a/packages/credentials/src/verifiable-credential.ts b/packages/credentials/src/verifiable-credential.ts index c4011d141..b68fafb28 100644 --- a/packages/credentials/src/verifiable-credential.ts +++ b/packages/credentials/src/verifiable-credential.ts @@ -44,7 +44,7 @@ export type VerifiableCredentialCreateOptions = { issuanceDate?: string; /** The expiration date of the credential, as a string. */ expirationDate?: string; - /** The status of the credential, as a StatusList2021Entry. */ + /** The credential status lookup information. */ credentialStatus?: StatusList2021Entry; /** The evidence of the credential, as an array of any. */ evidence?: any[]; @@ -171,8 +171,8 @@ export class VerifiableCredential { ...jsonData }; + // create the @context value const contexts: string[] = [DEFAULT_VC_CONTEXT]; - if (credentialStatus !== null) { contexts.push(DEFAULT_STATUS_LIST_VC_CONTEXT); } diff --git a/packages/credentials/tests/status-list-credential.spec.ts b/packages/credentials/tests/status-list-credential.spec.ts index 333a13a23..8cd26a45c 100644 --- a/packages/credentials/tests/status-list-credential.spec.ts +++ b/packages/credentials/tests/status-list-credential.spec.ts @@ -54,8 +54,8 @@ describe('Status List Credential Tests', async() => { const statusListCred = StatusListCredential.create({ statusListCredentialId : 'https://statuslistcred.com/123', issuer : issuerDid.uri, - statusPurpose : StatusPurpose.REVOCATION, - issuedCredentials : [credWithCredStatus] + statusPurpose : StatusPurpose.revocation, + credentialsToDisable : [credWithCredStatus] }); const statusListCredContexts = statusListCred.vcDataModel['@context']; @@ -69,12 +69,12 @@ describe('Status List Credential Tests', async() => { const statusListCredSubject = statusListCred.vcDataModel.credentialSubject as any; expect(statusListCredSubject['id']).to.equal('https://statuslistcred.com/123'); expect(statusListCredSubject['type']).to.equal('StatusList2021'); - expect(statusListCredSubject['statusPurpose']).to.equal(StatusPurpose.REVOCATION); + expect(statusListCredSubject['statusPurpose']).to.equal(StatusPurpose.revocation); expect(statusListCredSubject['encodedList']).to.equal('H4sIAAAAAAAAA-3OMQ0AAAgDsOHfNBp2kZBWQRMAAAAAAAAAAAAAAL6Z6wAAAAAAtQVQdb5gAEAAAA'); }); - it('should generate StatusListCredential from multiple VerifiableCredentials', async () => { + it('should generate StatusListCredential from multiple revoked VerifiableCredentials', async () => { const credentialStatus1 = { id : 'cred-with-status-id', type : 'StatusList2021Entry', @@ -127,8 +127,8 @@ describe('Status List Credential Tests', async() => { const statusListCredential = await StatusListCredential.create({ statusListCredentialId : 'revocation-id', issuer : issuerDid.uri, - statusPurpose : StatusPurpose.REVOCATION, - issuedCredentials : [vc1, vc2] + statusPurpose : StatusPurpose.revocation, + credentialsToDisable : [vc1, vc2] }); expect(statusListCredential).not.be.undefined; @@ -169,8 +169,8 @@ describe('Status List Credential Tests', async() => { StatusListCredential.create({ statusListCredentialId : 'https://statuslistcred.com/123', issuer : issuerDid.uri, - statusPurpose : StatusPurpose.REVOCATION, - issuedCredentials : [credWithCredStatus, credWithCredStatus] + statusPurpose : StatusPurpose.revocation, + credentialsToDisable : [credWithCredStatus, credWithCredStatus] }) ).to.throw('duplicate entry found with index: 94567'); }); @@ -198,8 +198,8 @@ describe('Status List Credential Tests', async() => { StatusListCredential.create({ statusListCredentialId : 'https://statuslistcred.com/123', issuer : issuerDid.uri, - statusPurpose : StatusPurpose.REVOCATION, - issuedCredentials : [credWithCredStatus] + statusPurpose : StatusPurpose.revocation, + credentialsToDisable : [credWithCredStatus] }) ).to.throw('status list index cannot be negative'); }); @@ -227,8 +227,8 @@ describe('Status List Credential Tests', async() => { StatusListCredential.create({ statusListCredentialId : 'https://statuslistcred.com/123', issuer : issuerDid.uri, - statusPurpose : StatusPurpose.REVOCATION, - issuedCredentials : [credWithCredStatus] + statusPurpose : StatusPurpose.revocation, + credentialsToDisable : [credWithCredStatus] }) ).to.throw('status list index is larger than the bitset size'); }); @@ -253,7 +253,7 @@ describe('Status List Credential Tests', async() => { statusListCredentialId : input.statusListCredential.statusListCredentialId, issuer : input.statusListCredential.issuer, statusPurpose : input.statusListCredential.statusPurpose as StatusPurpose, - issuedCredentials : [vcWithCredStatus] + credentialsToDisable : [vcWithCredStatus] }); expect(StatusListCredential.validateCredentialInStatusList(vcWithCredStatus, statusListCred)).to.be.true; From 028b1106f9dea726d7c775c2ccd2eac5c9561e64 Mon Sep 17 00:00:00 2001 From: Neal Date: Mon, 8 Apr 2024 10:28:43 -0500 Subject: [PATCH 08/22] updates --- .../credentials/src/status-list-credential.ts | 63 ++++++++++++++++--- .../tests/status-list-credential.spec.ts | 2 +- 2 files changed, 57 insertions(+), 8 deletions(-) diff --git a/packages/credentials/src/status-list-credential.ts b/packages/credentials/src/status-list-credential.ts index 57e66f451..72b9cc3e6 100644 --- a/packages/credentials/src/status-list-credential.ts +++ b/packages/credentials/src/status-list-credential.ts @@ -145,10 +145,7 @@ export class StatusListCredential { throw new Error('compressed bitstring is null or empty'); } - const expandedValues = this.bitstringExpansion(encodedListCompressedBitString); - - const credentialIndex = statusListEntryValue.statusListIndex; - return expandedValues[parseInt(credentialIndex)] == 1; + return this.getBit(encodedListCompressedBitString, parseInt(statusListEntryValue.statusListIndex)); } /** @@ -221,12 +218,64 @@ export class StatusListCredential { return base64EncodedString; } + // private static getBit(compressedBitstring: string, bitIndex: number): boolean { + // // Base64-decode the compressed bitstring + // const compressedData = Convert.base64Url(compressedBitstring).toUint8Array(); + + // // Decompress the data using pako + // const decompressedData = pako.inflate(compressedData); + + // // Calculate byte index in the array + // const byteIndex = Math.floor(bitIndex / 8); + + // // Ensure the bitIndex is within the bounds of the decompressedData + // if (byteIndex < 0 || byteIndex >= decompressedData.length) { + // throw new Error('Bit index is out of bounds'); + // } + + // // Calculate the bit's position within the selected byte + // const bitPosition = 7 - (bitIndex % 8); + + // // Extract the bit + // const bitInteger = (decompressedData[byteIndex] >> bitPosition) & 1; + + // return bitInteger === 1; + // } + + /** - * Expands a compressed bitstring into an array of 0s and 1s. + * Retrieves the value of a specific bit from a compressed base64 URL-encoded bitstring + * by decoding and decompressing a bitstring, then extracting a bit's value by its index. * - * @param compressedBitstring - The compressed bitstring as a base64-encoded string. - * @returns {number[]} An array of 0s and 1s representing the bitstring. + * @param compressedBitstring A base64 URL-encoded string representing the compressed bitstring. + * @param bitIndex The zero-based index of the bit to retrieve from the decompressed bitstream. + * @returns {boolean} True if the bit at the specified index is 1, false if it is 0. */ + private static getBit(compressedBitstring: string, bitIndex: number): boolean { + // Base64-decode the compressed bitstring + const compressedData = Convert.base64Url(compressedBitstring).toUint8Array(); + + // Decompress the data using pako + const decompressedData = pako.inflate(compressedData); + + // Find the byte index, and bit index within the byte. + const byteIndex = Math.floor(bitIndex / 8); + const bitIndexWithinByte = bitIndex % 8; + + const byte = decompressedData[byteIndex]; + + // Extracts the targeted bit by adjusting for bit's position from left to right. + const bitInteger = (byte >> (7 - bitIndexWithinByte)) & 1; + + return (bitInteger === 1); + } + + // /** + // * Expands a compressed bitstring into an array of 0s and 1s. + // * + // * @param compressedBitstring - The compressed bitstring as a base64-encoded string. + // * @returns {number[]} An array of 0s and 1s representing the bitstring. + // */ private static bitstringExpansion(compressedBitstring: string): number[] { // Base64-decode the compressed bitstring const compressedData = Convert.base64Url(compressedBitstring).toUint8Array(); diff --git a/packages/credentials/tests/status-list-credential.spec.ts b/packages/credentials/tests/status-list-credential.spec.ts index 8cd26a45c..36c653ab3 100644 --- a/packages/credentials/tests/status-list-credential.spec.ts +++ b/packages/credentials/tests/status-list-credential.spec.ts @@ -138,7 +138,7 @@ describe('Status List Credential Tests', async() => { expect(credentialSubject['type']).to.equal('StatusList2021'); expect(credentialSubject['statusPurpose']).to.equal('revocation'); - // TODO: Check encoding across other sdks and spec - https://github.com/TBD54566975/web5-kt/issues/97 + // TODO: Check encoding across other sdks and spec - https://github.com/TBD54566975/web5-kt/issues/52 expect(credentialSubject['encodedList']).to.equal('H4sIAAAAAAAAA-3BMQEAAAjAoMWwf1JvC3gBdUwAAAAAAAAAAAAAAAAAAADAuwUYSEbMAEAAAA'); expect(StatusListCredential.validateCredentialInStatusList(vc1, statusListCredential)).to.be.true; From dc72c5a86819bea7402615000b00e0a36c97f712 Mon Sep 17 00:00:00 2001 From: Neal Date: Mon, 8 Apr 2024 10:32:24 -0500 Subject: [PATCH 09/22] updates --- .../credentials/src/status-list-credential.ts | 50 ------------------- 1 file changed, 50 deletions(-) diff --git a/packages/credentials/src/status-list-credential.ts b/packages/credentials/src/status-list-credential.ts index 72b9cc3e6..ba1243b3b 100644 --- a/packages/credentials/src/status-list-credential.ts +++ b/packages/credentials/src/status-list-credential.ts @@ -218,31 +218,6 @@ export class StatusListCredential { return base64EncodedString; } - // private static getBit(compressedBitstring: string, bitIndex: number): boolean { - // // Base64-decode the compressed bitstring - // const compressedData = Convert.base64Url(compressedBitstring).toUint8Array(); - - // // Decompress the data using pako - // const decompressedData = pako.inflate(compressedData); - - // // Calculate byte index in the array - // const byteIndex = Math.floor(bitIndex / 8); - - // // Ensure the bitIndex is within the bounds of the decompressedData - // if (byteIndex < 0 || byteIndex >= decompressedData.length) { - // throw new Error('Bit index is out of bounds'); - // } - - // // Calculate the bit's position within the selected byte - // const bitPosition = 7 - (bitIndex % 8); - - // // Extract the bit - // const bitInteger = (decompressedData[byteIndex] >> bitPosition) & 1; - - // return bitInteger === 1; - // } - - /** * Retrieves the value of a specific bit from a compressed base64 URL-encoded bitstring * by decoding and decompressing a bitstring, then extracting a bit's value by its index. @@ -269,29 +244,4 @@ export class StatusListCredential { return (bitInteger === 1); } - - // /** - // * Expands a compressed bitstring into an array of 0s and 1s. - // * - // * @param compressedBitstring - The compressed bitstring as a base64-encoded string. - // * @returns {number[]} An array of 0s and 1s representing the bitstring. - // */ - private static bitstringExpansion(compressedBitstring: string): number[] { - // Base64-decode the compressed bitstring - const compressedData = Convert.base64Url(compressedBitstring).toUint8Array(); - - // Decompress the data using pako - const decompressedData = pako.inflate(compressedData); - - // Convert the decompressed data into an array of "0" or "1" strings - const bitstringArray: number[] = []; - decompressedData.forEach(byte => { - for (let i = 7; i >= 0; i--) { - const bit = (byte >> i) & 1; - bitstringArray.push(bit); - } - }); - - return bitstringArray; - } } \ No newline at end of file From 08974e1f0ccee41c95fba1004e713daadafc2ca6 Mon Sep 17 00:00:00 2001 From: Neal Date: Tue, 9 Apr 2024 11:19:43 -0500 Subject: [PATCH 10/22] updating timeout --- packages/dids/tests/methods/did-dht.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dids/tests/methods/did-dht.spec.ts b/packages/dids/tests/methods/did-dht.spec.ts index 61f5db026..e30f7d8d5 100644 --- a/packages/dids/tests/methods/did-dht.spec.ts +++ b/packages/dids/tests/methods/did-dht.spec.ts @@ -1157,6 +1157,6 @@ describe('DidDhtDocument', () => { const didResolutionResult = await DidDht.resolve(vector.input.didUri); expect(didResolutionResult.didResolutionMetadata.error).to.equal(vector.output.didResolutionMetadata.error); } - }).timeout(30000); // Set timeout to 30 seconds for this test for did:dht resolution timeout test + }).timeout(300000); // Set timeout to 300 seconds for this test for did:dht resolution timeout test }); }); From 0770ff1c93349590232353c1e007980c37cbf157 Mon Sep 17 00:00:00 2001 From: Neal Date: Tue, 9 Apr 2024 13:12:59 -0500 Subject: [PATCH 11/22] updates --- packages/dids/tests/methods/did-dht.spec.ts | 27 ++++++++++++++++++++- web5-spec | 2 +- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/dids/tests/methods/did-dht.spec.ts b/packages/dids/tests/methods/did-dht.spec.ts index e30f7d8d5..3b97cd7f9 100644 --- a/packages/dids/tests/methods/did-dht.spec.ts +++ b/packages/dids/tests/methods/did-dht.spec.ts @@ -1152,11 +1152,36 @@ describe('DidDhtDocument', () => { }); describe('Web5TestVectorsDidDht', () => { + let fetchStub: sinon.SinonStub; + + beforeEach(() => { + // Setup stub so that a mocked response is returned rather than calling over the network. + fetchStub = sinon.stub(globalThis as any, 'fetch'); + + // By default, return a 200 OK response when fetch is called by publish(). + fetchStub.resolves(fetchOkResponse()); + }); + + afterEach(() => { + fetchStub.restore(); + }); + it('resolve', async () => { for (const vector of DidDhtResolveTestVector.vectors as any[]) { + + if(vector.input.mockResponse) { + fetchStub.resolves({ + ok : vector.input.mockResponse.ok, + status : vector.input.mockResponse.status, + statusText : vector.input.mockResponse.statusText, + json : () => Promise.resolve(vector.input.mockResponse.body), + text : () => Promise.resolve(JSON.stringify(vector.input.mockResponse.body)), + }); + } + const didResolutionResult = await DidDht.resolve(vector.input.didUri); expect(didResolutionResult.didResolutionMetadata.error).to.equal(vector.output.didResolutionMetadata.error); } - }).timeout(300000); // Set timeout to 300 seconds for this test for did:dht resolution timeout test + }); }); }); diff --git a/web5-spec b/web5-spec index d65f57148..30ebc84ff 160000 --- a/web5-spec +++ b/web5-spec @@ -1 +1 @@ -Subproject commit d65f571482ea07c359943eb8c6a038cd177002b4 +Subproject commit 30ebc84ffefc485dd35f12562279319f52ed0153 From 7da1a369688006eee2516e92ca9d33f3b90896ef Mon Sep 17 00:00:00 2001 From: Neal Date: Thu, 2 May 2024 11:26:22 -0700 Subject: [PATCH 12/22] add changeset --- .changeset/cyan-laws-add.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/cyan-laws-add.md diff --git a/.changeset/cyan-laws-add.md b/.changeset/cyan-laws-add.md new file mode 100644 index 000000000..3413733f4 --- /dev/null +++ b/.changeset/cyan-laws-add.md @@ -0,0 +1,5 @@ +--- +"@web5/credentials": patch +--- + +Adding credential status From ddaa248852ccd0ce853fc1f24ca64c329318a87b Mon Sep 17 00:00:00 2001 From: Neal Date: Thu, 2 May 2024 15:38:47 -0700 Subject: [PATCH 13/22] update --- pnpm-lock.yaml | 1723 ++++++++++++++++++++++++++---------------------- 1 file changed, 918 insertions(+), 805 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 74b0afa73..fb8645ec2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -61,7 +61,7 @@ importers: version: 0.4.11 isomorphic-ws: specifier: ^5.0.0 - version: 5.0.0(ws@8.13.0) + version: 5.0.0(ws@8.17.0) level: specifier: 8.0.0 version: 8.0.0 @@ -234,7 +234,7 @@ importers: version: 16.1.3 source-map-loader: specifier: 4.0.2 - version: 4.0.2(webpack@5.90.3) + version: 4.0.2(webpack@5.91.0) typescript: specifier: 5.1.6 version: 5.1.6 @@ -337,7 +337,7 @@ importers: version: link:../crypto '@web5/dids': specifier: 1.0.1 - version: link:../dids + version: 1.0.1 pako: specifier: ^2.1.0 version: 2.1.0 @@ -498,7 +498,7 @@ importers: version: 16.1.3 source-map-loader: specifier: 4.0.2 - version: 4.0.2(webpack@5.90.3) + version: 4.0.2(webpack@5.91.0) typescript: specifier: 5.1.6 version: 5.1.6 @@ -580,7 +580,7 @@ importers: version: 16.1.3 source-map-loader: specifier: 4.0.2 - version: 4.0.2(webpack@5.90.3) + version: 4.0.2(webpack@5.91.0) typescript: specifier: 5.1.6 version: 5.1.6 @@ -683,7 +683,7 @@ importers: version: 16.1.3 source-map-loader: specifier: 4.0.2 - version: 4.0.2(webpack@5.90.3) + version: 4.0.2(webpack@5.91.0) typescript: specifier: 5.1.6 version: 5.1.6 @@ -956,11 +956,6 @@ packages: typical: 7.1.1 dev: true - /@aashutoshrathi/word-wrap@1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - dev: true - /@assemblyscript/loader@0.9.4: resolution: {integrity: sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==} @@ -970,14 +965,6 @@ packages: static-eval: 2.0.2 dev: false - /@aws-crypto/crc32@3.0.0: - resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.468.0 - tslib: 1.14.1 - dev: false - /@aws-crypto/ie11-detection@3.0.0: resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} dependencies: @@ -992,7 +979,7 @@ packages: '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 '@aws-sdk/types': 3.468.0 - '@aws-sdk/util-locate-window': 3.495.0 + '@aws-sdk/util-locate-window': 3.568.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 dev: false @@ -1038,30 +1025,30 @@ packages: '@aws-sdk/util-endpoints': 3.478.0 '@aws-sdk/util-user-agent-browser': 3.468.0 '@aws-sdk/util-user-agent-node': 3.470.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 - '@smithy/util-base64': 2.1.1 - '@smithy/util-body-length-browser': 2.1.1 - '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-retry': 2.1.1 - '@smithy/util-utf8': 2.1.1 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt @@ -1083,30 +1070,30 @@ packages: '@aws-sdk/util-endpoints': 3.478.0 '@aws-sdk/util-user-agent-browser': 3.468.0 '@aws-sdk/util-user-agent-node': 3.470.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 - '@smithy/util-base64': 2.1.1 - '@smithy/util-body-length-browser': 2.1.1 - '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-retry': 2.1.1 - '@smithy/util-utf8': 2.1.1 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt @@ -1129,31 +1116,31 @@ packages: '@aws-sdk/util-endpoints': 3.478.0 '@aws-sdk/util-user-agent-browser': 3.468.0 '@aws-sdk/util-user-agent-node': 3.470.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/core': 1.3.2 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 - '@smithy/util-base64': 2.1.1 - '@smithy/util-body-length-browser': 2.1.1 - '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 - '@smithy/util-utf8': 2.1.1 + '@smithy/config-resolver': 2.2.0 + '@smithy/core': 1.4.2 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 fast-xml-parser: 4.2.5 tslib: 2.6.2 transitivePeerDependencies: @@ -1164,11 +1151,11 @@ packages: resolution: {integrity: sha512-o0434EH+d1BxHZvgG7z8vph2SYefciQ5RnJw2MgvETGnthgqsnI4nnNJLSw0FVeqCeS18n6vRtzqlGYR2YPCNg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/core': 1.3.2 - '@smithy/protocol-http': 3.1.1 - '@smithy/signature-v4': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/core': 1.4.2 + '@smithy/protocol-http': 3.3.0 + '@smithy/signature-v4': 2.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false @@ -1177,8 +1164,8 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.468.0 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false @@ -1191,10 +1178,10 @@ packages: '@aws-sdk/credential-provider-sso': 3.478.0 '@aws-sdk/credential-provider-web-identity': 3.468.0 '@aws-sdk/types': 3.468.0 - '@smithy/credential-provider-imds': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt @@ -1210,10 +1197,10 @@ packages: '@aws-sdk/credential-provider-sso': 3.478.0 '@aws-sdk/credential-provider-web-identity': 3.468.0 '@aws-sdk/types': 3.468.0 - '@smithy/credential-provider-imds': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt @@ -1224,9 +1211,9 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.468.0 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false @@ -1237,9 +1224,9 @@ packages: '@aws-sdk/client-sso': 3.478.0 '@aws-sdk/token-providers': 3.478.0 '@aws-sdk/types': 3.468.0 - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt @@ -1250,8 +1237,8 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.468.0 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false @@ -1260,8 +1247,8 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.468.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false @@ -1270,7 +1257,7 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.468.0 - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false @@ -1279,8 +1266,8 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.468.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false @@ -1289,11 +1276,11 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.468.0 - '@smithy/property-provider': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/signature-v4': 2.1.1 - '@smithy/types': 2.9.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/property-provider': 2.2.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/signature-v4': 2.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-middleware': 2.2.0 tslib: 2.6.2 dev: false @@ -1303,8 +1290,8 @@ packages: dependencies: '@aws-sdk/types': 3.468.0 '@aws-sdk/util-endpoints': 3.478.0 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false @@ -1312,10 +1299,10 @@ packages: resolution: {integrity: sha512-C1o1J06iIw8cyAAOvHqT4Bbqf+PgQ/RDlSyjt2gFfP2OovDpc2o2S90dE8f8iZdSGpg70N5MikT1DBhW9NbhtQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 - '@smithy/util-config-provider': 2.2.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-config-provider': 2.3.0 + '@smithy/util-middleware': 2.2.0 tslib: 2.6.2 dev: false @@ -1334,31 +1321,31 @@ packages: '@aws-sdk/util-endpoints': 3.478.0 '@aws-sdk/util-user-agent-browser': 3.468.0 '@aws-sdk/util-user-agent-node': 3.470.0 - '@smithy/config-resolver': 2.1.1 - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/hash-node': 2.1.1 - '@smithy/invalid-dependency': 2.1.1 - '@smithy/middleware-content-length': 2.1.1 - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/property-provider': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 - '@smithy/util-base64': 2.1.1 - '@smithy/util-body-length-browser': 2.1.1 - '@smithy/util-body-length-node': 2.2.1 - '@smithy/util-defaults-mode-browser': 2.1.1 - '@smithy/util-defaults-mode-node': 2.2.0 - '@smithy/util-endpoints': 1.1.1 - '@smithy/util-retry': 2.1.1 - '@smithy/util-utf8': 2.1.1 + '@smithy/config-resolver': 2.2.0 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/hash-node': 2.2.0 + '@smithy/invalid-dependency': 2.2.0 + '@smithy/middleware-content-length': 2.2.0 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/middleware-stack': 2.2.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/property-provider': 2.2.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-body-length-browser': 2.2.0 + '@smithy/util-body-length-node': 2.3.0 + '@smithy/util-defaults-mode-browser': 2.2.1 + '@smithy/util-defaults-mode-node': 2.3.1 + '@smithy/util-endpoints': 1.2.0 + '@smithy/util-retry': 2.2.0 + '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt @@ -1368,7 +1355,7 @@ packages: resolution: {integrity: sha512-rx/9uHI4inRbp2tw3Y4Ih4PNZkVj32h7WneSg3MVgVjAoVD5Zti9KhS5hkvsBxfgmQmg0AQbE+b1sy5WGAgntA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false @@ -1377,13 +1364,13 @@ packages: engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.468.0 - '@smithy/util-endpoints': 1.1.1 + '@smithy/util-endpoints': 1.2.0 tslib: 2.6.2 dev: false - /@aws-sdk/util-locate-window@3.495.0: - resolution: {integrity: sha512-MfaPXT0kLX2tQaR90saBT9fWQq2DHqSSJRzW+MZWsmF+y5LGCOhO22ac/2o6TKSQm7h0HRc2GaADqYYYor62yg==} - engines: {node: '>=14.0.0'} + /@aws-sdk/util-locate-window@3.568.0: + resolution: {integrity: sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==} + engines: {node: '>=16.0.0'} dependencies: tslib: 2.6.2 dev: false @@ -1392,7 +1379,7 @@ packages: resolution: {integrity: sha512-OJyhWWsDEizR3L+dCgMXSUmaCywkiZ7HSbnQytbeKGwokIhD69HTiJcibF/sgcM5gk4k3Mq3puUhGnEZ46GIig==} dependencies: '@aws-sdk/types': 3.468.0 - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 bowser: 2.11.0 tslib: 2.6.2 dev: false @@ -1407,8 +1394,8 @@ packages: optional: true dependencies: '@aws-sdk/types': 3.468.0 - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false @@ -1418,30 +1405,31 @@ packages: tslib: 2.6.2 dev: false - /@babel/code-frame@7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + /@babel/code-frame@7.24.2: + resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 + '@babel/highlight': 7.24.5 + picocolors: 1.0.0 dev: true - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + /@babel/helper-validator-identifier@7.24.5: + resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} dev: true - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + /@babel/highlight@7.24.5: + resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-validator-identifier': 7.24.5 chalk: 2.4.2 js-tokens: 4.0.0 + picocolors: 1.0.0 dev: true - /@babel/runtime@7.24.4: - resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} + /@babel/runtime@7.24.5: + resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 @@ -1454,7 +1442,7 @@ packages: /@changesets/apply-release-plan@7.0.0: resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 '@changesets/config': 3.0.0 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.0 @@ -1472,7 +1460,7 @@ packages: /@changesets/assemble-release-plan@6.0.0: resolution: {integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.0.0 '@changesets/types': 6.0.0 @@ -1500,7 +1488,7 @@ packages: resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} hasBin: true dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 '@changesets/apply-release-plan': 7.0.0 '@changesets/assemble-release-plan': 6.0.0 '@changesets/changelog-git': 0.2.0 @@ -1515,7 +1503,7 @@ packages: '@changesets/types': 6.0.0 '@changesets/write': 0.3.0 '@manypkg/get-packages': 1.1.3 - '@types/semver': 7.5.7 + '@types/semver': 7.5.8 ansi-colors: 4.1.3 chalk: 2.4.2 ci-info: 3.9.0 @@ -1574,7 +1562,7 @@ packages: /@changesets/get-release-plan@4.0.0: resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 '@changesets/assemble-release-plan': 6.0.0 '@changesets/config': 3.0.0 '@changesets/pre': 2.0.0 @@ -1590,7 +1578,7 @@ packages: /@changesets/git@3.0.0: resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -1615,7 +1603,7 @@ packages: /@changesets/pre@2.0.0: resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -1625,7 +1613,7 @@ packages: /@changesets/read@0.6.0: resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 '@changesets/git': 3.0.0 '@changesets/logger': 0.1.0 '@changesets/parse': 0.4.0 @@ -1646,7 +1634,7 @@ packages: /@changesets/write@0.3.0: resolution: {integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -1656,8 +1644,8 @@ packages: /@decentralized-identity/ion-sdk@1.0.1: resolution: {integrity: sha512-+P+DXcRSFjsEsI5KIqUmVjpzgUT28B2lWpTO+IxiBcfibAN/1Sg20NebGTO/+serz2CnSZf95N2a1OZ6eXypGQ==} dependencies: - '@noble/ed25519': 2.0.0 - '@noble/secp256k1': 2.0.0 + '@noble/ed25519': 2.1.0 + '@noble/secp256k1': 2.1.0 canonicalize: 2.0.0 multiformats: 12.1.3 multihashes: 4.0.3 @@ -1666,8 +1654,8 @@ packages: /@decentralized-identity/ion-sdk@1.0.4: resolution: {integrity: sha512-pOWrlTH5ChxUKRHOgfG2ZeTioWEFJXADyErCQOJ0BqYNDKfP+CM09Vss+9ei6PNOABQlcDn0mEDFZtpO+DXl8A==} dependencies: - '@noble/ed25519': 2.0.0 - '@noble/secp256k1': 2.0.0 + '@noble/ed25519': 2.1.0 + '@noble/secp256k1': 2.1.0 canonicalize: 2.0.0 multiformats: 12.1.3 uri-js: 4.4.1 @@ -1677,7 +1665,7 @@ packages: resolution: {integrity: sha512-WXTuFvL3G+74SchFAtz3FgIYVOe196ycvGsMgvSH/8Goptb1qpIQtIuM4SOK9G9lhMWYpHxnXyy544ZhluFOew==} engines: {node: '>=6'} dependencies: - '@leichtgewicht/ip-codec': 2.0.4 + '@leichtgewicht/ip-codec': 2.0.5 utf8-codec: 1.0.0 /@esbuild/android-arm64@0.19.8: @@ -1910,8 +1898,8 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1919,7 +1907,7 @@ packages: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.2 + '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: @@ -1931,8 +1919,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} dev: true /@ipld/dag-cbor@9.0.3: @@ -1946,8 +1934,9 @@ packages: resolution: {integrity: sha512-N14oMy0q4gM6OuZkIpisKe0JBSjf1Jb39VI+7jMLiWX9124u1Z3Fdj/Tag1NA0cVxxqWDh0CqsjcVfOKtelPDA==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: - cborg: 4.0.9 + cborg: 4.2.0 multiformats: 13.1.0 + dev: true /@ipld/dag-pb@4.1.0: resolution: {integrity: sha512-LJU451Drqs5zjFm7jI4Hs3kHlilOqkjcSfPiQgVsZnWaYb2C7YdfhnclrVn/X+ucKejlU9BL3+gXFCZUXkMuCg==} @@ -1976,13 +1965,13 @@ packages: engines: {node: '>=8'} dev: true - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/set-array': 1.1.2 + '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@jridgewell/resolve-uri@3.1.2: @@ -1990,24 +1979,24 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/source-map@0.3.5: - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + /@jridgewell/source-map@0.3.6: + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.22: - resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 @@ -2020,13 +2009,13 @@ packages: jsbi: 4.3.0 tslib: 2.6.2 - /@leichtgewicht/ip-codec@2.0.4: - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + /@leichtgewicht/ip-codec@2.0.5: + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} /@manypkg/find-root@1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 @@ -2035,7 +2024,7 @@ packages: /@manypkg/get-packages@1.1.3: resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} dependencies: - '@babel/runtime': 7.24.4 + '@babel/runtime': 7.24.5 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -2067,6 +2056,9 @@ packages: /@noble/ed25519@2.0.0: resolution: {integrity: sha512-/extjhkwFupyopDrt80OMWKdLgP429qLZj+z6sYJz90rF2Iz0gjZh2ArMKPImUl13Kx+0EXI2hN9T/KJV0/Zng==} + /@noble/ed25519@2.1.0: + resolution: {integrity: sha512-KM4qTyXPinyCgMzeYJH/UudpdL+paJXtY3CHtHYZQtBkS8MZoPr4rOikZllIutJe0d06QDQKisyn02gxZ8TcQA==} + /@noble/hashes@1.3.3: resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} engines: {node: '>= 16'} @@ -2074,6 +2066,9 @@ packages: /@noble/secp256k1@2.0.0: resolution: {integrity: sha512-rUGBd95e2a45rlmFTqQJYEFA4/gdIARFfuTuTqLglz0PZ6AKyzyXsEZZq7UZn8hZsvaBgpCzKKBJizT2cJERXw==} + /@noble/secp256k1@2.1.0: + resolution: {integrity: sha512-XLEQQNdablO0XZOIniFQimiXsZDNwaYgL96dZwC54Q30imSbAOFf3NKtepc+cXyuZf5Q1HCgbqgZ2UFFuHVcEw==} + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2095,14 +2090,14 @@ packages: fastq: 1.17.1 dev: true - /@npmcli/git@5.0.4: - resolution: {integrity: sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==} + /@npmcli/git@5.0.6: + resolution: {integrity: sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/promise-spawn': 7.0.1 - lru-cache: 10.2.0 + lru-cache: 10.2.2 npm-pick-manifest: 9.0.0 - proc-log: 3.0.0 + proc-log: 4.2.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 semver: 7.6.0 @@ -2115,8 +2110,8 @@ packages: resolution: {integrity: sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - '@npmcli/git': 5.0.4 - glob: 10.3.10 + '@npmcli/git': 5.0.6 + glob: 10.3.12 hosted-git-info: 7.0.1 json-parse-even-better-errors: 3.0.1 normalize-package-data: 6.0.0 @@ -2170,7 +2165,7 @@ packages: - supports-color dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.12.0): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.17.2): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2179,16 +2174,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.12.0) + '@rollup/pluginutils': 5.1.0(rollup@4.17.2) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.12.0 + rollup: 4.17.2 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.12.0): + /@rollup/pluginutils@5.1.0(rollup@4.17.2): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2200,107 +2195,131 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.12.0 + rollup: 4.17.2 dev: true - /@rollup/rollup-android-arm-eabi@4.12.0: - resolution: {integrity: sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==} + /@rollup/rollup-android-arm-eabi@4.17.2: + resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.12.0: - resolution: {integrity: sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==} + /@rollup/rollup-android-arm64@4.17.2: + resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.12.0: - resolution: {integrity: sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==} + /@rollup/rollup-darwin-arm64@4.17.2: + resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.12.0: - resolution: {integrity: sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==} + /@rollup/rollup-darwin-x64@4.17.2: + resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.12.0: - resolution: {integrity: sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==} + /@rollup/rollup-linux-arm-gnueabihf@4.17.2: + resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.17.2: + resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.12.0: - resolution: {integrity: sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==} + /@rollup/rollup-linux-arm64-gnu@4.17.2: + resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.12.0: - resolution: {integrity: sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==} + /@rollup/rollup-linux-arm64-musl@4.17.2: + resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.12.0: - resolution: {integrity: sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==} + /@rollup/rollup-linux-powerpc64le-gnu@4.17.2: + resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.17.2: + resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.12.0: - resolution: {integrity: sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==} + /@rollup/rollup-linux-s390x-gnu@4.17.2: + resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.17.2: + resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.12.0: - resolution: {integrity: sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==} + /@rollup/rollup-linux-x64-musl@4.17.2: + resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.12.0: - resolution: {integrity: sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==} + /@rollup/rollup-win32-arm64-msvc@4.17.2: + resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.12.0: - resolution: {integrity: sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==} + /@rollup/rollup-win32-ia32-msvc@4.17.2: + resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.12.0: - resolution: {integrity: sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==} + /@rollup/rollup-win32-x64-msvc@4.17.2: + resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} cpu: [x64] os: [win32] requiresBuild: true @@ -2372,375 +2391,366 @@ packages: resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} dev: true - /@smithy/abort-controller@2.1.1: - resolution: {integrity: sha512-1+qdrUqLhaALYL0iOcN43EP6yAXXQ2wWZ6taf4S2pNGowmOc5gx+iMQv+E42JizNJjB0+gEadOXeV1Bf7JWL1Q==} + /@smithy/abort-controller@2.2.0: + resolution: {integrity: sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/config-resolver@2.1.1: - resolution: {integrity: sha512-lxfLDpZm+AWAHPFZps5JfDoO9Ux1764fOgvRUBpHIO8HWHcSN1dkgsago1qLRVgm1BZ8RCm8cgv99QvtaOWIhw==} + /@smithy/config-resolver@2.2.0: + resolution: {integrity: sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 - '@smithy/util-config-provider': 2.2.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-config-provider': 2.3.0 + '@smithy/util-middleware': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/core@1.3.2: - resolution: {integrity: sha512-tYDmTp0f2TZVE18jAOH1PnmkngLQ+dOGUlMd1u67s87ieueNeyqhja6z/Z4MxhybEiXKOWFOmGjfTZWFxljwJw==} + /@smithy/core@1.4.2: + resolution: {integrity: sha512-2fek3I0KZHWJlRLvRTqxTEri+qV0GRHrJIoLFuBMZB4EMg4WgeBGfF0X6abnrNYpq55KJ6R4D6x4f0vLnhzinA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-retry': 2.1.1 - '@smithy/middleware-serde': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-retry': 2.3.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/util-middleware': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/credential-provider-imds@2.2.1: - resolution: {integrity: sha512-7XHjZUxmZYnONheVQL7j5zvZXga+EWNgwEAP6OPZTi7l8J4JTeNh9aIOfE5fKHZ/ee2IeNOh54ZrSna+Vc6TFA==} + /@smithy/credential-provider-imds@2.3.0: + resolution: {integrity: sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 - tslib: 2.6.2 - dev: false - - /@smithy/eventstream-codec@2.1.1: - resolution: {integrity: sha512-E8KYBxBIuU4c+zrpR22VsVrOPoEDzk35bQR3E+xm4k6Pa6JqzkDOdMyf9Atac5GPNKHJBdVaQ4JtjdWX2rl/nw==} - dependencies: - '@aws-crypto/crc32': 3.0.0 - '@smithy/types': 2.9.1 - '@smithy/util-hex-encoding': 2.1.1 + '@smithy/node-config-provider': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/fetch-http-handler@2.4.1: - resolution: {integrity: sha512-VYGLinPsFqH68lxfRhjQaSkjXM7JysUOJDTNjHBuN/ykyRb2f1gyavN9+VhhPTWCy32L4yZ2fdhpCs/nStEicg==} + /@smithy/fetch-http-handler@2.5.0: + resolution: {integrity: sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==} dependencies: - '@smithy/protocol-http': 3.1.1 - '@smithy/querystring-builder': 2.1.1 - '@smithy/types': 2.9.1 - '@smithy/util-base64': 2.1.1 + '@smithy/protocol-http': 3.3.0 + '@smithy/querystring-builder': 2.2.0 + '@smithy/types': 2.12.0 + '@smithy/util-base64': 2.3.0 tslib: 2.6.2 dev: false - /@smithy/hash-node@2.1.1: - resolution: {integrity: sha512-Qhoq0N8f2OtCnvUpCf+g1vSyhYQrZjhSwvJ9qvR8BUGOtTXiyv2x1OD2e6jVGmlpC4E4ax1USHoyGfV9JFsACg==} + /@smithy/hash-node@2.2.0: + resolution: {integrity: sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 - '@smithy/util-buffer-from': 2.1.1 - '@smithy/util-utf8': 2.1.1 + '@smithy/types': 2.12.0 + '@smithy/util-buffer-from': 2.2.0 + '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 dev: false - /@smithy/invalid-dependency@2.1.1: - resolution: {integrity: sha512-7WTgnKw+VPg8fxu2v9AlNOQ5yaz6RA54zOVB4f6vQuR0xFKd+RzlCpt0WidYTsye7F+FYDIaS/RnJW4pxjNInw==} + /@smithy/invalid-dependency@2.2.0: + resolution: {integrity: sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/is-array-buffer@2.1.1: - resolution: {integrity: sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ==} + /@smithy/is-array-buffer@2.2.0: + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/middleware-content-length@2.1.1: - resolution: {integrity: sha512-rSr9ezUl9qMgiJR0UVtVOGEZElMdGFyl8FzWEF5iEKTlcWxGr2wTqGfDwtH3LAB7h+FPkxqv4ZU4cpuCN9Kf/g==} + /@smithy/middleware-content-length@2.2.0: + resolution: {integrity: sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/middleware-endpoint@2.4.1: - resolution: {integrity: sha512-XPZTb1E2Oav60Ven3n2PFx+rX9EDsU/jSTA8VDamt7FXks67ekjPY/XrmmPDQaFJOTUHJNKjd8+kZxVO5Ael4Q==} + /@smithy/middleware-endpoint@2.5.1: + resolution: {integrity: sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-serde': 2.1.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/url-parser': 2.1.1 - '@smithy/util-middleware': 2.1.1 + '@smithy/middleware-serde': 2.3.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 + '@smithy/url-parser': 2.2.0 + '@smithy/util-middleware': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/middleware-retry@2.1.1: - resolution: {integrity: sha512-eMIHOBTXro6JZ+WWzZWd/8fS8ht5nS5KDQjzhNMHNRcG5FkNTqcKpYhw7TETMYzbLfhO5FYghHy1vqDWM4FLDA==} + /@smithy/middleware-retry@2.3.1: + resolution: {integrity: sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/service-error-classification': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-retry': 2.1.1 + '@smithy/node-config-provider': 2.3.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/service-error-classification': 2.1.5 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-retry': 2.2.0 tslib: 2.6.2 - uuid: 8.3.2 + uuid: 9.0.1 dev: false - /@smithy/middleware-serde@2.1.1: - resolution: {integrity: sha512-D8Gq0aQBeE1pxf3cjWVkRr2W54t+cdM2zx78tNrVhqrDykRA7asq8yVJij1u5NDtKzKqzBSPYh7iW0svUKg76g==} + /@smithy/middleware-serde@2.3.0: + resolution: {integrity: sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/middleware-stack@2.1.1: - resolution: {integrity: sha512-KPJhRlhsl8CjgGXK/DoDcrFGfAqoqvuwlbxy+uOO4g2Azn1dhH+GVfC3RAp+6PoL5PWPb+vt6Z23FP+Mr6qeCw==} + /@smithy/middleware-stack@2.2.0: + resolution: {integrity: sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/node-config-provider@2.2.1: - resolution: {integrity: sha512-epzK3x1xNxA9oJgHQ5nz+2j6DsJKdHfieb+YgJ7ATWxzNcB7Hc+Uya2TUck5MicOPhDV8HZImND7ZOecVr+OWg==} + /@smithy/node-config-provider@2.3.0: + resolution: {integrity: sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/property-provider': 2.1.1 - '@smithy/shared-ini-file-loader': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/property-provider': 2.2.0 + '@smithy/shared-ini-file-loader': 2.4.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/node-http-handler@2.3.1: - resolution: {integrity: sha512-gLA8qK2nL9J0Rk/WEZSvgin4AppvuCYRYg61dcUo/uKxvMZsMInL5I5ZdJTogOvdfVug3N2dgI5ffcUfS4S9PA==} + /@smithy/node-http-handler@2.5.0: + resolution: {integrity: sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/abort-controller': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/querystring-builder': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/abort-controller': 2.2.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/querystring-builder': 2.2.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/property-provider@2.1.1: - resolution: {integrity: sha512-FX7JhhD/o5HwSwg6GLK9zxrMUrGnb3PzNBrcthqHKBc3dH0UfgEAU24xnJ8F0uow5mj17UeBEOI6o3CF2k7Mhw==} + /@smithy/property-provider@2.2.0: + resolution: {integrity: sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/protocol-http@3.1.1: - resolution: {integrity: sha512-6ZRTSsaXuSL9++qEwH851hJjUA0OgXdQFCs+VDw4tGH256jQ3TjYY/i34N4vd24RV3nrjNsgd1yhb57uMoKbzQ==} + /@smithy/protocol-http@3.3.0: + resolution: {integrity: sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/querystring-builder@2.1.1: - resolution: {integrity: sha512-C/ko/CeEa8jdYE4gt6nHO5XDrlSJ3vdCG0ZAc6nD5ZIE7LBp0jCx4qoqp7eoutBu7VrGMXERSRoPqwi1WjCPbg==} + /@smithy/querystring-builder@2.2.0: + resolution: {integrity: sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 - '@smithy/util-uri-escape': 2.1.1 + '@smithy/types': 2.12.0 + '@smithy/util-uri-escape': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/querystring-parser@2.1.1: - resolution: {integrity: sha512-H4+6jKGVhG1W4CIxfBaSsbm98lOO88tpDWmZLgkJpt8Zkk/+uG0FmmqMuCAc3HNM2ZDV+JbErxr0l5BcuIf/XQ==} + /@smithy/querystring-parser@2.2.0: + resolution: {integrity: sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/service-error-classification@2.1.1: - resolution: {integrity: sha512-txEdZxPUgM1PwGvDvHzqhXisrc5LlRWYCf2yyHfvITWioAKat7srQvpjMAvgzf0t6t7j8yHrryXU9xt7RZqFpw==} + /@smithy/service-error-classification@2.1.5: + resolution: {integrity: sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 dev: false - /@smithy/shared-ini-file-loader@2.3.1: - resolution: {integrity: sha512-2E2kh24igmIznHLB6H05Na4OgIEilRu0oQpYXo3LCNRrawHAcfDKq9004zJs+sAMt2X5AbY87CUCJ7IpqpSgdw==} + /@smithy/shared-ini-file-loader@2.4.0: + resolution: {integrity: sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/signature-v4@2.1.1: - resolution: {integrity: sha512-Hb7xub0NHuvvQD3YwDSdanBmYukoEkhqBjqoxo+bSdC0ryV9cTfgmNjuAQhTPYB6yeU7hTR+sPRiFMlxqv6kmg==} + /@smithy/signature-v4@2.3.0: + resolution: {integrity: sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/eventstream-codec': 2.1.1 - '@smithy/is-array-buffer': 2.1.1 - '@smithy/types': 2.9.1 - '@smithy/util-hex-encoding': 2.1.1 - '@smithy/util-middleware': 2.1.1 - '@smithy/util-uri-escape': 2.1.1 - '@smithy/util-utf8': 2.1.1 + '@smithy/is-array-buffer': 2.2.0 + '@smithy/types': 2.12.0 + '@smithy/util-hex-encoding': 2.2.0 + '@smithy/util-middleware': 2.2.0 + '@smithy/util-uri-escape': 2.2.0 + '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 dev: false - /@smithy/smithy-client@2.3.1: - resolution: {integrity: sha512-YsTdU8xVD64r2pLEwmltrNvZV6XIAC50LN6ivDopdt+YiF/jGH6PY9zUOu0CXD/d8GMB8gbhnpPsdrjAXHS9QA==} + /@smithy/smithy-client@2.5.1: + resolution: {integrity: sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/middleware-endpoint': 2.4.1 - '@smithy/middleware-stack': 2.1.1 - '@smithy/protocol-http': 3.1.1 - '@smithy/types': 2.9.1 - '@smithy/util-stream': 2.1.1 + '@smithy/middleware-endpoint': 2.5.1 + '@smithy/middleware-stack': 2.2.0 + '@smithy/protocol-http': 3.3.0 + '@smithy/types': 2.12.0 + '@smithy/util-stream': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/types@2.9.1: - resolution: {integrity: sha512-vjXlKNXyprDYDuJ7UW5iobdmyDm6g8dDG+BFUncAg/3XJaN45Gy5RWWWUVgrzIK7S4R1KWgIX5LeJcfvSI24bw==} + /@smithy/types@2.12.0: + resolution: {integrity: sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/url-parser@2.1.1: - resolution: {integrity: sha512-qC9Bv8f/vvFIEkHsiNrUKYNl8uKQnn4BdhXl7VzQRP774AwIjiSMMwkbT+L7Fk8W8rzYVifzJNYxv1HwvfBo3Q==} + /@smithy/url-parser@2.2.0: + resolution: {integrity: sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==} dependencies: - '@smithy/querystring-parser': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/querystring-parser': 2.2.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/util-base64@2.1.1: - resolution: {integrity: sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g==} + /@smithy/util-base64@2.3.0: + resolution: {integrity: sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/util-buffer-from': 2.1.1 + '@smithy/util-buffer-from': 2.2.0 + '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 dev: false - /@smithy/util-body-length-browser@2.1.1: - resolution: {integrity: sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag==} + /@smithy/util-body-length-browser@2.2.0: + resolution: {integrity: sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-body-length-node@2.2.1: - resolution: {integrity: sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg==} + /@smithy/util-body-length-node@2.3.0: + resolution: {integrity: sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-buffer-from@2.1.1: - resolution: {integrity: sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg==} + /@smithy/util-buffer-from@2.2.0: + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/is-array-buffer': 2.1.1 + '@smithy/is-array-buffer': 2.2.0 tslib: 2.6.2 dev: false - /@smithy/util-config-provider@2.2.1: - resolution: {integrity: sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw==} + /@smithy/util-config-provider@2.3.0: + resolution: {integrity: sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-browser@2.1.1: - resolution: {integrity: sha512-lqLz/9aWRO6mosnXkArtRuQqqZBhNpgI65YDpww4rVQBuUT7qzKbDLG5AmnQTCiU4rOquaZO/Kt0J7q9Uic7MA==} + /@smithy/util-defaults-mode-browser@2.2.1: + resolution: {integrity: sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw==} engines: {node: '>= 10.0.0'} dependencies: - '@smithy/property-provider': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/property-provider': 2.2.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 bowser: 2.11.0 tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-node@2.2.0: - resolution: {integrity: sha512-iFJp/N4EtkanFpBUtSrrIbtOIBf69KNuve03ic1afhJ9/korDxdM0c6cCH4Ehj/smI9pDCfVv+bqT3xZjF2WaA==} + /@smithy/util-defaults-mode-node@2.3.1: + resolution: {integrity: sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA==} engines: {node: '>= 10.0.0'} dependencies: - '@smithy/config-resolver': 2.1.1 - '@smithy/credential-provider-imds': 2.2.1 - '@smithy/node-config-provider': 2.2.1 - '@smithy/property-provider': 2.1.1 - '@smithy/smithy-client': 2.3.1 - '@smithy/types': 2.9.1 + '@smithy/config-resolver': 2.2.0 + '@smithy/credential-provider-imds': 2.3.0 + '@smithy/node-config-provider': 2.3.0 + '@smithy/property-provider': 2.2.0 + '@smithy/smithy-client': 2.5.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/util-endpoints@1.1.1: - resolution: {integrity: sha512-sI4d9rjoaekSGEtq3xSb2nMjHMx8QXcz2cexnVyRWsy4yQ9z3kbDpX+7fN0jnbdOp0b3KSTZJZ2Yb92JWSanLw==} + /@smithy/util-endpoints@1.2.0: + resolution: {integrity: sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==} engines: {node: '>= 14.0.0'} dependencies: - '@smithy/node-config-provider': 2.2.1 - '@smithy/types': 2.9.1 + '@smithy/node-config-provider': 2.3.0 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/util-hex-encoding@2.1.1: - resolution: {integrity: sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg==} + /@smithy/util-hex-encoding@2.2.0: + resolution: {integrity: sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-middleware@2.1.1: - resolution: {integrity: sha512-mKNrk8oz5zqkNcbcgAAepeJbmfUW6ogrT2Z2gDbIUzVzNAHKJQTYmH9jcy0jbWb+m7ubrvXKb6uMjkSgAqqsFA==} + /@smithy/util-middleware@2.2.0: + resolution: {integrity: sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/types': 2.9.1 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/util-retry@2.1.1: - resolution: {integrity: sha512-Mg+xxWPTeSPrthpC5WAamJ6PW4Kbo01Fm7lWM1jmGRvmrRdsd3192Gz2fBXAMURyXpaNxyZf6Hr/nQ4q70oVEA==} + /@smithy/util-retry@2.2.0: + resolution: {integrity: sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==} engines: {node: '>= 14.0.0'} dependencies: - '@smithy/service-error-classification': 2.1.1 - '@smithy/types': 2.9.1 + '@smithy/service-error-classification': 2.1.5 + '@smithy/types': 2.12.0 tslib: 2.6.2 dev: false - /@smithy/util-stream@2.1.1: - resolution: {integrity: sha512-J7SMIpUYvU4DQN55KmBtvaMc7NM3CZ2iWICdcgaovtLzseVhAqFRYqloT3mh0esrFw+3VEK6nQFteFsTqZSECQ==} + /@smithy/util-stream@2.2.0: + resolution: {integrity: sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/fetch-http-handler': 2.4.1 - '@smithy/node-http-handler': 2.3.1 - '@smithy/types': 2.9.1 - '@smithy/util-base64': 2.1.1 - '@smithy/util-buffer-from': 2.1.1 - '@smithy/util-hex-encoding': 2.1.1 - '@smithy/util-utf8': 2.1.1 + '@smithy/fetch-http-handler': 2.5.0 + '@smithy/node-http-handler': 2.5.0 + '@smithy/types': 2.12.0 + '@smithy/util-base64': 2.3.0 + '@smithy/util-buffer-from': 2.2.0 + '@smithy/util-hex-encoding': 2.2.0 + '@smithy/util-utf8': 2.3.0 tslib: 2.6.2 dev: false - /@smithy/util-uri-escape@2.1.1: - resolution: {integrity: sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw==} + /@smithy/util-uri-escape@2.2.0: + resolution: {integrity: sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-utf8@2.1.1: - resolution: {integrity: sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A==} + /@smithy/util-utf8@2.3.0: + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} dependencies: - '@smithy/util-buffer-from': 2.1.1 + '@smithy/util-buffer-from': 2.2.0 tslib: 2.6.2 dev: false @@ -2754,11 +2764,11 @@ packages: '@astronautlabs/jsonpath': 1.1.2 '@sphereon/pex-models': 2.2.0 '@sphereon/ssi-types': 0.13.0 - ajv: 8.12.0 - ajv-formats: 2.1.1(ajv@8.12.0) + ajv: 8.13.0 + ajv-formats: 2.1.1(ajv@8.13.0) jwt-decode: 3.1.2 nanoid: 3.3.7 - string.prototype.matchall: 4.0.10 + string.prototype.matchall: 4.0.11 dev: false /@sphereon/ssi-types@0.13.0: @@ -2861,7 +2871,7 @@ packages: resolution: {integrity: sha512-UhuhrQ5hclX6UJctv5m4Rfp52AfG9o9+d9/HwjxhVB5NjXxr5t9oKgJxN8xRHgr35oo8meUEHUPFWiKg6y71aA==} dependencies: '@types/node': 20.11.19 - '@types/qs': 6.9.11 + '@types/qs': 6.9.15 dev: true /@types/command-line-args@5.2.3: @@ -2919,11 +2929,11 @@ packages: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true - /@types/express-serve-static-core@4.17.43: - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} + /@types/express-serve-static-core@4.19.0: + resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} dependencies: '@types/node': 20.11.19 - '@types/qs': 6.9.11 + '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 dev: true @@ -2932,9 +2942,9 @@ packages: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.43 - '@types/qs': 6.9.11 - '@types/serve-static': 1.15.5 + '@types/express-serve-static-core': 4.19.0 + '@types/qs': 6.9.15 + '@types/serve-static': 1.15.7 dev: true /@types/http-assert@1.5.5: @@ -2972,11 +2982,11 @@ packages: /@types/koa-compose@3.2.8: resolution: {integrity: sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==} dependencies: - '@types/koa': 2.14.0 + '@types/koa': 2.15.0 dev: true - /@types/koa@2.14.0: - resolution: {integrity: sha512-DTDUyznHGNHAl+wd1n0z1jxNajduyTh8R53xoewuerdBzGo6Ogj6F2299BFtrexJw4NtgjsI5SMPCmV9gZwGXA==} + /@types/koa@2.15.0: + resolution: {integrity: sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==} dependencies: '@types/accepts': 1.3.7 '@types/content-disposition': 0.5.8 @@ -2992,10 +3002,6 @@ packages: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} dev: true - /@types/mime@3.0.4: - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - dev: true - /@types/minimist@1.2.5: resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true @@ -3030,8 +3036,8 @@ packages: resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} dev: true - /@types/qs@6.9.11: - resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + /@types/qs@6.9.15: + resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} dev: true /@types/range-parser@1.2.7: @@ -3049,8 +3055,8 @@ packages: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true - /@types/semver@7.5.7: - resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true /@types/send@0.17.4: @@ -3060,12 +3066,12 @@ packages: '@types/node': 20.11.19 dev: true - /@types/serve-static@1.15.5: - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} + /@types/serve-static@1.15.7: + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 '@types/node': 20.11.19 + '@types/send': 0.17.4 dev: true /@types/sinon@17.0.2: @@ -3115,7 +3121,7 @@ packages: ignore: 5.3.1 natural-compare: 1.4.0 semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.1.6) + ts-api-utils: 1.3.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -3164,7 +3170,7 @@ packages: '@typescript-eslint/utils': 6.4.0(eslint@8.47.0)(typescript@5.1.6) debug: 4.3.4(supports-color@8.1.1) eslint: 8.47.0 - ts-api-utils: 1.2.1(typescript@5.1.6) + ts-api-utils: 1.3.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -3190,7 +3196,7 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.1.6) + ts-api-utils: 1.3.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color @@ -3204,7 +3210,7 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.7 + '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.4.0 '@typescript-eslint/types': 6.4.0 '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) @@ -3239,16 +3245,16 @@ packages: resolution: {integrity: sha512-alHd2j0f4e1ekqYDR8lWScrzR7D5gfsUZq3BP3De9bkFWM3AELINCmqqlVKmCtlkAdEc9VyQvNiEqrxraOdc2A==} engines: {node: '>=18.0.0'} dependencies: - '@types/koa': 2.14.0 + '@types/koa': 2.15.0 '@types/ws': 7.4.7 '@web/parse5-utils': 2.1.0 chokidar: 3.6.0 clone: 2.1.2 - es-module-lexer: 1.4.1 + es-module-lexer: 1.5.2 get-stream: 6.0.1 is-stream: 2.0.1 isbinaryfile: 5.0.2 - koa: 2.15.0 + koa: 2.15.3 koa-etag: 4.0.0 koa-send: 5.0.1 koa-static: 5.0.0 @@ -3267,11 +3273,11 @@ packages: resolution: {integrity: sha512-vhtsQ8qu1pBHailOBOYJwZnYDc1Lmx6ZAd2j+y5PD2ck0R1LmVsZ7dZK8hDCpkvpvlu2ndURjL9tbzdcsBRJmg==} engines: {node: '>=18.0.0'} dependencies: - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.12.0) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.17.2) '@web/dev-server-core': 0.7.1 nanocolors: 0.2.13 parse5: 6.0.1 - rollup: 4.12.0 + rollup: 4.17.2 whatwg-url: 11.0.0 transitivePeerDependencies: - bufferutil @@ -3279,12 +3285,12 @@ packages: - utf-8-validate dev: true - /@web/dev-server@0.4.3: - resolution: {integrity: sha512-vf2ZVjdTj8ExrMSYagyHD+snRue9oRetynxd1p0P7ndEpZDKeNLYsvkJyo0pNU6moBxHmXnYeC5VrAT4E3+lNg==} + /@web/dev-server@0.4.4: + resolution: {integrity: sha512-Gye0DhDbst/KVNRCFzRd+4V9LJmuuQYJBsf6UXeEbCYuBSKeshEW4AA1esLsfy1gONsD6NIGiru5509l35P9Ug==} engines: {node: '>=18.0.0'} hasBin: true dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 '@types/command-line-args': 5.2.3 '@web/config-loader': 0.3.1 '@web/dev-server-core': 0.7.1 @@ -3345,7 +3351,7 @@ packages: resolution: {integrity: sha512-2hESALx/UFsAzK+ApWXAkFp2eCmwcs2yj1v4YjwV8F38sQumJ40P3px3BMjFwkOYDORtQOicW0RUeSw1g3BMLA==} engines: {node: '>=18.0.0'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 '@types/babel__code-frame': 7.0.6 '@types/co-body': 6.1.3 '@types/convert-source-map': 2.0.3 @@ -3423,7 +3429,7 @@ packages: dependencies: '@web/browser-logs': 0.4.0 '@web/config-loader': 0.3.1 - '@web/dev-server': 0.4.3 + '@web/dev-server': 0.4.4 '@web/test-runner-chrome': 0.15.0(typescript@5.1.6) '@web/test-runner-commands': 0.9.0 '@web/test-runner-core': 0.13.1 @@ -3525,8 +3531,8 @@ packages: multiformats: 11.0.2 mysql2: 3.9.7 node-fetch: 3.3.1 - pg: 8.11.3 - pg-cursor: 2.10.3(pg@8.11.3) + pg: 8.11.5 + pg-cursor: 2.10.5(pg@8.11.5) prom-client: 14.2.0 readable-stream: 4.4.2 response-time: 2.3.2 @@ -3553,8 +3559,8 @@ packages: - supports-color dev: false - /@webassemblyjs/ast@1.11.6: - resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} + /@webassemblyjs/ast@1.12.1: + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} dependencies: '@webassemblyjs/helper-numbers': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 @@ -3568,8 +3574,8 @@ packages: resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} dev: true - /@webassemblyjs/helper-buffer@1.11.6: - resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==} + /@webassemblyjs/helper-buffer@1.12.1: + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} dev: true /@webassemblyjs/helper-numbers@1.11.6: @@ -3584,13 +3590,13 @@ packages: resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} dev: true - /@webassemblyjs/helper-wasm-section@1.11.6: - resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==} + /@webassemblyjs/helper-wasm-section@1.12.1: + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 dev: true /@webassemblyjs/ieee754@1.11.6: @@ -3609,42 +3615,42 @@ packages: resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} dev: true - /@webassemblyjs/wasm-edit@1.11.6: - resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==} + /@webassemblyjs/wasm-edit@1.12.1: + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - '@webassemblyjs/wasm-opt': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 - '@webassemblyjs/wast-printer': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 dev: true - /@webassemblyjs/wasm-gen@1.11.6: - resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==} + /@webassemblyjs/wasm-gen@1.12.1: + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} dependencies: - '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/ieee754': 1.11.6 '@webassemblyjs/leb128': 1.11.6 '@webassemblyjs/utf8': 1.11.6 dev: true - /@webassemblyjs/wasm-opt@1.11.6: - resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==} + /@webassemblyjs/wasm-opt@1.12.1: + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} dependencies: - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/helper-buffer': 1.11.6 - '@webassemblyjs/wasm-gen': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 dev: true - /@webassemblyjs/wasm-parser@1.11.6: - resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==} + /@webassemblyjs/wasm-parser@1.12.1: + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} dependencies: - '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/helper-api-error': 1.11.6 '@webassemblyjs/helper-wasm-bytecode': 1.11.6 '@webassemblyjs/ieee754': 1.11.6 @@ -3652,10 +3658,10 @@ packages: '@webassemblyjs/utf8': 1.11.6 dev: true - /@webassemblyjs/wast-printer@1.11.6: - resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==} + /@webassemblyjs/wast-printer@1.12.1: + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} dependencies: - '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/ast': 1.12.1 '@xtuc/long': 4.2.2 dev: true @@ -3727,8 +3733,8 @@ packages: hasBin: true dev: true - /agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + /agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} dependencies: debug: 4.3.4(supports-color@8.1.1) @@ -3736,7 +3742,7 @@ packages: - supports-color dev: true - /ajv-formats@2.1.1(ajv@8.12.0): + /ajv-formats@2.1.1(ajv@8.13.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: ajv: ^8.0.0 @@ -3744,7 +3750,7 @@ packages: ajv: optional: true dependencies: - ajv: 8.12.0 + ajv: 8.13.0 dev: false /ajv-keywords@3.5.2(ajv@6.12.6): @@ -3772,6 +3778,15 @@ packages: require-from-string: 2.0.2 uri-js: 4.4.1 + /ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: false + /ansi-colors@4.1.1: resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} engines: {node: '>=6'} @@ -3789,11 +3804,9 @@ packages: type-fest: 0.21.3 dev: true - /ansi-escapes@6.2.0: - resolution: {integrity: sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==} + /ansi-escapes@6.2.1: + resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} engines: {node: '>=14.16'} - dependencies: - type-fest: 3.13.1 dev: true /ansi-regex@5.0.1: @@ -3875,7 +3888,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 dev: true @@ -3886,24 +3899,23 @@ packages: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} dev: true - /asn1.js@5.4.1: - resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} + /asn1.js@4.10.1: + resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} dependencies: bn.js: 4.12.0 inherits: 2.0.4 minimalistic-assert: 1.0.1 - safer-buffer: 2.1.2 dev: true /assert@2.1.0: @@ -3911,7 +3923,7 @@ packages: dependencies: call-bind: 1.0.7 is-nan: 1.3.2 - object-is: 1.1.5 + object-is: 1.1.6 object.assign: 4.1.5 util: 0.12.5 dev: true @@ -3958,8 +3970,8 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /bare-events@2.2.0: - resolution: {integrity: sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==} + /bare-events@2.2.2: + resolution: {integrity: sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==} requiresBuild: true dev: true optional: true @@ -3971,8 +3983,8 @@ packages: /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /basic-ftp@5.0.4: - resolution: {integrity: sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==} + /basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} dev: true @@ -3994,11 +4006,11 @@ packages: requiresBuild: true dependencies: bindings: 1.5.0 - prebuild-install: 7.1.1 + prebuild-install: 7.1.2 dev: true - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} dev: true @@ -4151,18 +4163,19 @@ packages: randombytes: 2.1.0 dev: true - /browserify-sign@4.2.2: - resolution: {integrity: sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==} - engines: {node: '>= 4'} + /browserify-sign@4.2.3: + resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} + engines: {node: '>= 0.12'} dependencies: bn.js: 5.2.1 browserify-rsa: 4.1.0 create-hash: 1.2.0 create-hmac: 1.1.7 - elliptic: 6.5.4 + elliptic: 6.5.5 + hash-base: 3.0.4 inherits: 2.0.4 - parse-asn1: 5.1.6 - readable-stream: 3.6.2 + parse-asn1: 5.1.7 + readable-stream: 2.3.8 safe-buffer: 5.2.1 dev: true @@ -4177,10 +4190,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001588 - electron-to-chromium: 1.4.677 + caniuse-lite: 1.0.30001615 + electron-to-chromium: 1.4.754 node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + update-browserslist-db: 1.0.14(browserslist@4.23.0) dev: true /buffer-crc32@0.2.13: @@ -4191,11 +4204,6 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /buffer-writer@2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} - dev: true - /buffer-xor@1.0.3: resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} dev: true @@ -4222,8 +4230,8 @@ packages: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} dev: true - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} + /builtins@5.1.0: + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} dependencies: semver: 7.6.0 dev: true @@ -4256,7 +4264,7 @@ packages: engines: {node: '>= 6.0.0'} dependencies: mime-types: 2.1.35 - ylru: 1.3.2 + ylru: 1.4.0 dev: true /call-bind@1.0.7: @@ -4267,7 +4275,7 @@ packages: es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 - set-function-length: 1.2.1 + set-function-length: 1.2.2 /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -4293,8 +4301,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001588: - resolution: {integrity: sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==} + /caniuse-lite@1.0.30001615: + resolution: {integrity: sha512-1IpazM5G3r38meiae0bHRnPhz+CBQ3ZLqbQMtrg+AsTPKAXgW38JNsXkyZ+v8waCsDmPq87lmfun5Q2AGysNEQ==} dev: true /canonicalize@2.0.0: @@ -4308,9 +4316,10 @@ packages: resolution: {integrity: sha512-xVW1rSIw1ZXbkwl2XhJ7o/jAv0vnVoQv/QlfQxV8a7V5PlA4UU/AcIiXqmpyybwNWy/GPQU1m/aBVNIWr7/T0w==} hasBin: true - /cborg@4.0.9: - resolution: {integrity: sha512-xAuZbCDUOZxCe/ZJuIrnlG1Bk1R0qhwCXdnPYxVmqBSqm9M3BeE3G6Qoj5Zq+8epas36bT3vjiInDTJ6BVH6Rg==} + /cborg@4.2.0: + resolution: {integrity: sha512-q6cFW5m3KxfP/9xGI3yGLaC1l5DP6DWM9IvjiJojnIwohL5CQDl02EXViPV852mOfQo+7PJGPN01MI87vFGzyA==} hasBin: true + dev: true /chai-as-promised@7.1.1(chai@4.3.10): resolution: {integrity: sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==} @@ -4454,7 +4463,7 @@ packages: catering: 2.1.1 module-error: 1.0.2 napi-macros: 2.2.2 - node-gyp-build: 4.8.0 + node-gyp-build: 4.8.1 /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} @@ -4502,7 +4511,7 @@ packages: resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==} dependencies: inflation: 2.1.0 - qs: 6.11.2 + qs: 6.12.1 raw-body: 2.5.2 type-is: 1.6.18 dev: true @@ -4607,6 +4616,10 @@ packages: keygrip: 1.1.0 dev: true + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + /cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} @@ -4619,7 +4632,7 @@ packages: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} dependencies: bn.js: 4.12.0 - elliptic: 6.5.4 + elliptic: 6.5.5 dev: true /create-hash@1.2.0: @@ -4679,7 +4692,7 @@ packages: resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} dependencies: browserify-cipher: 1.0.1 - browserify-sign: 4.2.2 + browserify-sign: 4.2.3 create-ecdh: 4.0.4 create-hash: 1.2.0 create-hmac: 1.1.7 @@ -4723,6 +4736,30 @@ packages: engines: {node: '>= 14'} dev: true + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + /dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} dev: true @@ -4891,8 +4928,8 @@ packages: engines: {node: '>=8'} dev: true - /detect-libc@2.0.2: - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + /detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} dev: true @@ -4967,12 +5004,12 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true - /electron-to-chromium@1.4.677: - resolution: {integrity: sha512-erDa3CaDzwJOpyvfKhOiJjBVNnMM0qxHq47RheVVwsSQrgBA9ZSGV9kdaOfZDPXcHzhG7lBxhj6A7KvfLJBd6Q==} + /electron-to-chromium@1.4.754: + resolution: {integrity: sha512-7Kr5jUdns5rL/M9wFFmMZAgFDuL2YOnanFH4OI4iFzUqyh3XOL7nAGbSlSMZdzKMIyyTpNSbqZsWG9odwLeKvA==} dev: true - /elliptic@6.5.4: - resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + /elliptic@6.5.5: + resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} dependencies: bn.js: 4.12.0 brorand: 1.1.0 @@ -5002,8 +5039,8 @@ packages: once: 1.4.0 dev: true - /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + /enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.11 @@ -5035,33 +5072,38 @@ packages: resolution: {integrity: sha512-jE4i0SMYevwu/xxAuzhly/KTwtj0xDhbzB6m1xPImxTkw8wcCbgarOQPfCVMi5JKVyW7in29pNJCCJrry3Ynnw==} dev: true - /es-abstract@1.22.4: - resolution: {integrity: sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==} + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 available-typed-arrays: 1.0.7 call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 es-define-property: 1.0.0 es-errors: 1.3.0 + es-object-atoms: 1.0.0 es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 get-symbol-description: 1.0.2 - globalthis: 1.0.3 + globalthis: 1.0.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.1 + hasown: 2.0.2 internal-slot: 1.0.7 is-array-buffer: 3.0.4 is-callable: 1.2.7 + is-data-view: 1.0.1 is-negative-zero: 2.0.3 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 @@ -5069,17 +5111,17 @@ packages: object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.0 + safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.0 + typed-array-byte-length: 1.0.1 typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.5 + typed-array-length: 1.0.6 unbox-primitive: 1.0.2 - which-typed-array: 1.1.14 + which-typed-array: 1.1.15 /es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} @@ -5091,22 +5133,28 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - /es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} + /es-module-lexer@1.5.2: + resolution: {integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==} dev: true + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + /es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 - hasown: 2.0.1 + hasown: 2.0.2 /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.1 + hasown: 2.0.2 dev: true /es-to-primitive@1.2.1: @@ -5246,7 +5294,7 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 + '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -5277,7 +5325,7 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.3 + optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: @@ -5542,7 +5590,7 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.3.0 + flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 dev: true @@ -5552,8 +5600,8 @@ packages: hasBin: true dev: true - /flatted@3.3.0: - resolution: {integrity: sha512-noqGuLw158+DuD9UPRKHpJ2hGxpFyDlYYrfM0mWt4XhT4n0lwzTLh70Tkdyy4kyTmyTT9Bv7bWAJqw7cgkEXDg==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true /for-each@0.3.3: @@ -5646,7 +5694,7 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 functions-have-names: 1.2.3 /functions-have-names@1.2.3: @@ -5688,7 +5736,7 @@ packages: function-bind: 1.1.2 has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.1 + hasown: 2.0.2 /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} @@ -5714,7 +5762,7 @@ packages: resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} engines: {node: '>= 14'} dependencies: - basic-ftp: 5.0.4 + basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 debug: 4.3.4(supports-color@8.1.1) fs-extra: 11.2.0 @@ -5744,16 +5792,16 @@ packages: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: true - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + /glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.3 + minimatch: 9.0.4 minipass: 7.0.4 - path-scurry: 1.10.1 + path-scurry: 1.10.2 dev: true /glob@7.2.0: @@ -5785,7 +5833,7 @@ packages: fs.realpath: 1.0.0 minimatch: 8.0.4 minipass: 4.2.8 - path-scurry: 1.10.1 + path-scurry: 1.10.2 dev: true /globals@13.24.0: @@ -5795,11 +5843,12 @@ packages: type-fest: 0.20.2 dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + /globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 + gopd: 1.0.1 /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -5834,7 +5883,7 @@ packages: resolution: {integrity: sha512-nZeamxfymIWLpVcAN0CRrb7uVq3hCOGj9IcL6NMA6VVCVWqj+h9Jo/SmaWuS92AEDf1thmHsM5D5c70hM3j2Tg==} dependencies: sparse-array: 1.3.2 - uint8arrays: 5.0.2 + uint8arrays: 5.0.3 /hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} @@ -5872,6 +5921,14 @@ packages: dependencies: has-symbols: 1.0.3 + /hash-base@3.0.4: + resolution: {integrity: sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==} + engines: {node: '>=4'} + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + /hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} engines: {node: '>=4'} @@ -5888,8 +5945,8 @@ packages: minimalistic-assert: 1.0.1 dev: true - /hasown@2.0.1: - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -5915,7 +5972,7 @@ packages: resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - lru-cache: 10.2.0 + lru-cache: 10.2.2 dev: true /html-escaper@2.0.2: @@ -5966,7 +6023,7 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -5980,7 +6037,7 @@ packages: resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -6069,8 +6126,8 @@ packages: engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 - hasown: 2.0.1 - side-channel: 1.0.5 + hasown: 2.0.2 + side-channel: 1.0.6 /ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} @@ -6093,17 +6150,17 @@ packages: resolution: {integrity: sha512-O5aMawsHoe4DaYk5FFil2EPrNOaU3pkHC6qUR5JMnW7es93W3b/RjJoO7AyDL1rpb+M3K0oRu86Yc5wLNQQ8jg==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: - '@ipld/dag-cbor': 9.2.0 + '@ipld/dag-cbor': 9.0.3 '@ipld/dag-pb': 4.1.0 '@multiformats/murmur3': 2.1.8 err-code: 3.0.1 hamt-sharding: 3.0.6 interface-blockstore: 5.2.3 - ipfs-unixfs: 11.1.3 - it-filter: 3.0.4 - it-last: 3.0.4 - it-map: 3.0.5 - it-parallel: 3.0.6 + ipfs-unixfs: 11.1.4 + it-filter: 3.1.0 + it-last: 3.0.6 + it-map: 3.1.0 + it-parallel: 3.0.7 it-pipe: 3.0.1 it-pushable: 3.2.3 multiformats: 11.0.2 @@ -6121,11 +6178,11 @@ packages: hamt-sharding: 3.0.6 interface-blockstore: 5.2.3 interface-store: 5.1.2 - ipfs-unixfs: 11.1.3 - it-all: 3.0.4 - it-batch: 3.0.4 - it-first: 3.0.4 - it-parallel-batch: 3.0.4 + ipfs-unixfs: 11.1.4 + it-all: 3.0.6 + it-batch: 3.0.6 + it-first: 3.0.6 + it-parallel-batch: 3.0.5 multiformats: 11.0.2 progress-events: 1.0.0 rabin-wasm: 0.1.5 @@ -6135,8 +6192,8 @@ packages: - encoding - supports-color - /ipfs-unixfs@11.1.3: - resolution: {integrity: sha512-sy6Koojwm/EcM8yvDlycRYA89C8wIcLcGTMMpqnCPUtqTCdl+JxsuPNCBgAu7tmO8Nipm7Tv7f0g/erxTGKKRA==} + /ipfs-unixfs@11.1.4: + resolution: {integrity: sha512-RE4nyx5qgG2w7JOLj0Y0D7SfAR1ZkEdramNaBx0OSD4DlQ2Y2NORgc4FHfej3Pgy31v+QISDVP1pQJhdv3bUUg==} dependencies: err-code: 3.0.1 protons-runtime: 5.4.0 @@ -6170,7 +6227,7 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: - binary-extensions: 2.2.0 + binary-extensions: 2.3.0 dev: true /is-boolean-object@1.1.2: @@ -6202,9 +6259,15 @@ packages: /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - hasown: 2.0.1 + hasown: 2.0.2 dev: true + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + dependencies: + is-typed-array: 1.1.13 + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -6294,8 +6357,9 @@ packages: call-bind: 1.0.7 has-tostringtag: 1.0.2 - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -6327,7 +6391,7 @@ packages: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.14 + which-typed-array: 1.1.15 /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} @@ -6351,6 +6415,10 @@ packages: is-docker: 2.2.1 dev: true + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -6373,12 +6441,12 @@ packages: engines: {node: '>=10'} dev: true - /isomorphic-ws@5.0.0(ws@8.13.0): + /isomorphic-ws@5.0.0(ws@8.17.0): resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} peerDependencies: ws: '*' dependencies: - ws: 8.13.0 + ws: 8.17.0 dev: false /istanbul-lib-coverage@3.2.2: @@ -6403,58 +6471,58 @@ packages: istanbul-lib-report: 3.0.1 dev: true - /it-all@3.0.4: - resolution: {integrity: sha512-UMiy0i9DqCHBdWvMbzdYvVGa5/w4t1cc4nchpbnjdLhklglv8mQeEYnii0gvKESJuL1zV32Cqdb33R6/GPfxpQ==} + /it-all@3.0.6: + resolution: {integrity: sha512-HXZWbxCgQZJfrv5rXvaVeaayXED8nTKx9tj9fpBhmcUJcedVZshMMMqTj0RG2+scGypb9Ut1zd1ifbf3lA8L+Q==} - /it-batch@3.0.4: - resolution: {integrity: sha512-WRu2mqOYIs+T9k7+yxSK9VJdk0UE4R0jKQsWQcti5c6vhb1FhjC2+yCB5XBrctQ9edNfCMU/wVzdDj8qSwimbA==} + /it-batch@3.0.6: + resolution: {integrity: sha512-pQAAlSvJ4aV6xM/6LRvkPdKSKXxS4my2fGzNUxJyAQ8ccFdxPmK1bUuF5OoeUDkcdrbs8jtsmc4DypCMrGY6sg==} - /it-filter@3.0.4: - resolution: {integrity: sha512-e0sz+st4sudK/zH6GZ/gRTRP8A/ADuJFCYDmRgMbZvR79y5+v4ZXav850bBZk5wL9zXaYZFxS1v/6Qi+Vjwh5g==} + /it-filter@3.1.0: + resolution: {integrity: sha512-FiYuzdsUhmMZJTJQ8YLdgX3ArjQmAtCG1lyrtZd+92/2eC6YO9UoybdrwVj/yyZkuXAPykrSipLuZ+KSKpt29A==} dependencies: - it-peekable: 3.0.3 + it-peekable: 3.0.4 - /it-first@3.0.4: - resolution: {integrity: sha512-FtQl84iTNxN5EItP/JgL28V2rzNMkCzTUlNoj41eVdfix2z1DBuLnBqZ0hzYhGGa1rMpbQf0M7CQSA2adlrLJg==} + /it-first@3.0.6: + resolution: {integrity: sha512-ExIewyK9kXKNAplg2GMeWfgjUcfC1FnUXz/RPfAvIXby+w7U4b3//5Lic0NV03gXT8O/isj5Nmp6KiY0d45pIQ==} - /it-last@3.0.4: - resolution: {integrity: sha512-Ns+KTsQWhs0KCvfv5X3Ck3lpoYxHcp4zUp4d+AOdmC8cXXqDuoZqAjfWhgCbxJubXyIYWdfE2nRcfWqgvZHP8Q==} + /it-last@3.0.6: + resolution: {integrity: sha512-M4/get95O85u2vWvWQinF8SJUc/RPC5bWTveBTYXvlP2q5TF9Y+QhT3nz+CRCyS2YEc66VJkyl/da6WrJ0wKhw==} - /it-map@3.0.5: - resolution: {integrity: sha512-hB0TDXo/h4KSJJDSRLgAPmDroiXP6Fx1ck4Bzl3US9hHfZweTKsuiP0y4gXuTMcJlS6vj0bb+f70rhkD47ZA3w==} + /it-map@3.1.0: + resolution: {integrity: sha512-B7zNmHYRE0qes8oTiNYU7jXEF5WvKZNAUosskCks1JT9Z4DNwRClrQyd+C/hgITG8ewDbVZMGx9VXAx3KMY2kA==} dependencies: - it-peekable: 3.0.3 + it-peekable: 3.0.4 - /it-merge@3.0.3: - resolution: {integrity: sha512-FYVU15KC5pb/GQX1Ims+lee8d4pdqGVCpWr0lkNj8o4xuNo7jY71k6GuEiWdP+T7W1bJqewSxX5yoTy5yZpRVA==} + /it-merge@3.0.5: + resolution: {integrity: sha512-2l7+mPf85pyRF5pqi0dKcA54E5Jm/2FyY5GsOaN51Ta0ipC7YZ3szuAsH8wOoB6eKY4XsU4k2X+mzPmFBMayEA==} dependencies: it-pushable: 3.2.3 - /it-parallel-batch@3.0.4: - resolution: {integrity: sha512-O1omh8ss8+UtXiMjE+8kM5C20DT0Ma4VtKVfrSHOJU0UHZ+iWBXarabzPYEp+WiuQmrv+klDPPlTZ9KaLN9xOA==} + /it-parallel-batch@3.0.5: + resolution: {integrity: sha512-WxoFCMj61zV7rxaDj8Uox2aU+GI/JQzYQwcLi4QT1wN5cjAV+kA0GjaF9I95YG2JB6LVHb2qSbpfZEM7YVtnfQ==} dependencies: - it-batch: 3.0.4 + it-batch: 3.0.6 - /it-parallel@3.0.6: - resolution: {integrity: sha512-i7UM7I9LTkDJw3YIqXHFAPZX6CWYzGc+X3irdNrVExI4vPazrJdI7t5OqrSVN8CONXLAunCiqaSV/zZRbQR56A==} + /it-parallel@3.0.7: + resolution: {integrity: sha512-aIIc2t8knfER/mQu4uEHaAYZrnj/2Tdp+Vj6BA94Gi7xghx1kblvpyrLkCYO9K+eDyPS1cE3Vfhh9a20MEmzXA==} dependencies: - p-defer: 4.0.0 + p-defer: 4.0.1 - /it-peekable@3.0.3: - resolution: {integrity: sha512-Wx21JX/rMzTEl9flx3DGHuPV1KQFGOl8uoKfQtmZHgPQtGb89eQ6RyVd82h3HuP9Ghpt0WgBDlmmdWeHXqyx7w==} + /it-peekable@3.0.4: + resolution: {integrity: sha512-Bb4xyMX5xAveFyh9ySbCrHMCpIF0+fIbl+0ZkcxP94JVofLe5j/mSBK0gjrrISsSVURVyey8X4L/IqrekOxjiA==} /it-pipe@3.0.1: resolution: {integrity: sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} dependencies: - it-merge: 3.0.3 + it-merge: 3.0.5 it-pushable: 3.2.3 it-stream-types: 2.0.1 /it-pushable@3.2.3: resolution: {integrity: sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==} dependencies: - p-defer: 4.0.0 + p-defer: 4.0.1 /it-stream-types@2.0.1: resolution: {integrity: sha512-6DmOs5r7ERDbvS4q8yLKENcj6Yecr7QQTqWApbZdfAUTEC947d+PEha7PCqhm//9oxaLYL7TWRekwhoXl2s6fg==} @@ -6611,8 +6679,8 @@ packages: - supports-color dev: true - /koa@2.15.0: - resolution: {integrity: sha512-KEL/vU1knsoUvfP4MC4/GthpQrY/p6dzwaaGI6Rt4NQuFqkw3qrvsdYF5pz3wOfi7IGTvMPHC9aZIcUKYFNxsw==} + /koa@2.15.3: + resolution: {integrity: sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==} engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} dependencies: accepts: 1.3.8 @@ -6647,8 +6715,8 @@ packages: engines: {node: '>=14.0.0'} dev: true - /layerr@2.0.1: - resolution: {integrity: sha512-z0730CwG/JO24evdORnyDkwG1Q7b7mF2Tp1qRQ0YvrMMARbt1DFG694SOv439Gm7hYKolyZyaB49YIrYIfZBdg==} + /layerr@2.1.0: + resolution: {integrity: sha512-xDD9suWxfBYeXgqffRVH/Wqh+mqZrQcqPRn0I0ijl7iJQ7vu8gMGPt1Qop59pEW/jaIDNUN7+PX1Qk40+vuflg==} /level-supports@4.0.1: resolution: {integrity: sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==} @@ -6786,8 +6854,8 @@ packages: get-func-name: 2.0.2 dev: true - /lru-cache@10.2.0: - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + /lru-cache@10.2.2: + resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} dev: true @@ -6979,8 +7047,8 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -7203,11 +7271,11 @@ packages: '@sinonjs/fake-timers': 11.2.2 '@sinonjs/text-encoding': 0.7.2 just-extend: 6.2.0 - path-to-regexp: 6.2.1 + path-to-regexp: 6.2.2 dev: true - /node-abi@3.55.0: - resolution: {integrity: sha512-uPEjtyh2tFEvWYt4Jw7McOD5FPcHkcxm/tHZc5PWaDB3JYq0rGFUbgaAK+CT5pYpQddBfsZVWI08OwoRfdfbcQ==} + /node-abi@3.62.0: + resolution: {integrity: sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==} engines: {node: '>=10'} dependencies: semver: 7.6.0 @@ -7244,8 +7312,8 @@ packages: formdata-polyfill: 4.0.10 dev: true - /node-gyp-build@4.8.0: - resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} + /node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} hasBin: true /node-releases@2.0.14: @@ -7314,7 +7382,7 @@ packages: engines: {node: '>=14.0.0'} hasBin: true dependencies: - ansi-escapes: 6.2.0 + ansi-escapes: 6.2.1 colors: 1.4.0 get-folder-size: 2.0.1 node-emoji: 1.11.0 @@ -7333,12 +7401,12 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + /npm-package-arg@11.0.2: + resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: hosted-git-info: 7.0.1 - proc-log: 3.0.0 + proc-log: 4.2.0 semver: 7.6.0 validate-npm-package-name: 5.0.0 dev: true @@ -7349,7 +7417,7 @@ packages: dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 - npm-package-arg: 11.0.1 + npm-package-arg: 11.0.2 semver: 7.6.0 dev: true @@ -7361,8 +7429,8 @@ packages: /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - /object-is@1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + /object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -7432,16 +7500,16 @@ packages: word-wrap: 1.2.5 dev: false - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + /optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + word-wrap: 1.2.5 dev: true /os-browserify@0.3.0: @@ -7457,8 +7525,8 @@ packages: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} dev: true - /p-defer@4.0.0: - resolution: {integrity: sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==} + /p-defer@4.0.1: + resolution: {integrity: sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==} engines: {node: '>=12'} /p-filter@2.1.0: @@ -7522,13 +7590,13 @@ packages: engines: {node: '>= 14'} dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4(supports-color@8.1.1) get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.2 + socks-proxy-agent: 8.0.3 transitivePeerDependencies: - supports-color dev: true @@ -7541,10 +7609,6 @@ packages: netmask: 2.0.2 dev: true - /packet-reader@1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} - dev: true - /pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} dev: true @@ -7560,12 +7624,14 @@ packages: callsites: 3.1.0 dev: true - /parse-asn1@5.1.6: - resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==} + /parse-asn1@5.1.7: + resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} + engines: {node: '>= 0.10'} dependencies: - asn1.js: 5.4.1 + asn1.js: 4.10.1 browserify-aes: 1.2.0 evp_bytestokey: 1.0.3 + hash-base: 3.0.4 pbkdf2: 3.1.2 safe-buffer: 5.2.1 dev: true @@ -7574,7 +7640,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.24.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -7612,11 +7678,11 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + /path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.2.0 + lru-cache: 10.2.2 minipass: 7.0.4 dev: true @@ -7624,8 +7690,8 @@ packages: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} dev: true - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + /path-to-regexp@6.2.2: + resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} dev: true /path-type@4.0.0: @@ -7658,16 +7724,16 @@ packages: dev: true optional: true - /pg-connection-string@2.6.2: - resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + /pg-connection-string@2.6.4: + resolution: {integrity: sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==} dev: true - /pg-cursor@2.10.3(pg@8.11.3): - resolution: {integrity: sha512-rDyBVoqPVnx/PTmnwQAYgusSeAKlTL++gmpf5klVK+mYMFEqsOc6VHHZnPKc/4lOvr4r6fiMuoxSFuBF1dx4FQ==} + /pg-cursor@2.10.5(pg@8.11.5): + resolution: {integrity: sha512-wzgmyk+k9mwuYe30ylLA6qRWw2TBFSee4Bw23oTz66YL9RdRJjDi2TaROMMF+V3QB6QWB3FFCju22loDftjKkw==} peerDependencies: pg: ^8 dependencies: - pg: 8.11.3 + pg: 8.11.5 dev: true /pg-int8@1.0.1: @@ -7675,16 +7741,16 @@ packages: engines: {node: '>=4.0.0'} dev: true - /pg-pool@3.6.1(pg@8.11.3): - resolution: {integrity: sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==} + /pg-pool@3.6.2(pg@8.11.5): + resolution: {integrity: sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==} peerDependencies: pg: '>=8.0' dependencies: - pg: 8.11.3 + pg: 8.11.5 dev: true - /pg-protocol@1.6.0: - resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} + /pg-protocol@1.6.1: + resolution: {integrity: sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==} dev: true /pg-types@2.2.0: @@ -7698,8 +7764,8 @@ packages: postgres-interval: 1.2.0 dev: true - /pg@8.11.3: - resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} + /pg@8.11.5: + resolution: {integrity: sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -7707,11 +7773,9 @@ packages: pg-native: optional: true dependencies: - buffer-writer: 2.0.0 - packet-reader: 1.0.0 - pg-connection-string: 2.6.2 - pg-pool: 3.6.1(pg@8.11.3) - pg-protocol: 1.6.0 + pg-connection-string: 2.6.4 + pg-pool: 3.6.2(pg@8.11.5) + pg-protocol: 1.6.1 pg-types: 2.2.0 pgpass: 1.0.5 optionalDependencies: @@ -7805,18 +7869,18 @@ packages: xtend: 4.0.2 dev: true - /prebuild-install@7.1.1: - resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + /prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} engines: {node: '>=10'} hasBin: true dependencies: - detect-libc: 2.0.2 + detect-libc: 2.0.3 expand-template: 2.0.3 github-from-package: 0.0.0 minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.55.0 + node-abi: 3.62.0 pump: 3.0.0 rc: 1.2.8 simple-get: 4.0.1 @@ -7855,6 +7919,15 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true + /proc-log@4.2.0: + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dev: true + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + /process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} @@ -7897,7 +7970,7 @@ packages: dependencies: uint8-varint: 2.0.4 uint8arraylist: 2.4.8 - uint8arrays: 5.0.2 + uint8arrays: 5.0.3 /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -7911,14 +7984,14 @@ packages: resolution: {integrity: sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 lru-cache: 7.18.3 pac-proxy-agent: 7.0.1 proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.2 + socks-proxy-agent: 8.0.3 transitivePeerDependencies: - supports-color dev: true @@ -7937,7 +8010,7 @@ packages: bn.js: 4.12.0 browserify-rsa: 4.1.0 create-hash: 1.2.0 - parse-asn1: 5.1.6 + parse-asn1: 5.1.7 randombytes: 2.1.0 safe-buffer: 5.2.1 dev: true @@ -7984,14 +8057,14 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.5 + side-channel: 1.0.6 dev: true - /qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + /qs@6.12.1: + resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.5 + side-channel: 1.0.6 dev: true /querystring-es3@0.2.1: @@ -8095,6 +8168,18 @@ packages: strip-bom: 3.0.0 dev: true + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -8246,26 +8331,29 @@ packages: inherits: 2.0.4 dev: true - /rollup@4.12.0: - resolution: {integrity: sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==} + /rollup@4.17.2: + resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.12.0 - '@rollup/rollup-android-arm64': 4.12.0 - '@rollup/rollup-darwin-arm64': 4.12.0 - '@rollup/rollup-darwin-x64': 4.12.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.0 - '@rollup/rollup-linux-arm64-gnu': 4.12.0 - '@rollup/rollup-linux-arm64-musl': 4.12.0 - '@rollup/rollup-linux-riscv64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-gnu': 4.12.0 - '@rollup/rollup-linux-x64-musl': 4.12.0 - '@rollup/rollup-win32-arm64-msvc': 4.12.0 - '@rollup/rollup-win32-ia32-msvc': 4.12.0 - '@rollup/rollup-win32-x64-msvc': 4.12.0 + '@rollup/rollup-android-arm-eabi': 4.17.2 + '@rollup/rollup-android-arm64': 4.17.2 + '@rollup/rollup-darwin-arm64': 4.17.2 + '@rollup/rollup-darwin-x64': 4.17.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.17.2 + '@rollup/rollup-linux-arm-musleabihf': 4.17.2 + '@rollup/rollup-linux-arm64-gnu': 4.17.2 + '@rollup/rollup-linux-arm64-musl': 4.17.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2 + '@rollup/rollup-linux-riscv64-gnu': 4.17.2 + '@rollup/rollup-linux-s390x-gnu': 4.17.2 + '@rollup/rollup-linux-x64-gnu': 4.17.2 + '@rollup/rollup-linux-x64-musl': 4.17.2 + '@rollup/rollup-win32-arm64-msvc': 4.17.2 + '@rollup/rollup-win32-ia32-msvc': 4.17.2 + '@rollup/rollup-win32-x64-msvc': 4.17.2 fsevents: 2.3.3 dev: true @@ -8286,8 +8374,8 @@ packages: tslib: 2.6.2 dev: true - /safe-array-concat@1.1.0: - resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 @@ -8389,8 +8477,8 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true - /set-function-length@1.2.1: - resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 @@ -8453,8 +8541,8 @@ packages: engines: {node: '>=8'} dev: true - /side-channel@1.0.5: - resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==} + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -8526,39 +8614,39 @@ packages: yargs: 15.4.1 dev: true - /socks-proxy-agent@8.0.2: - resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} + /socks-proxy-agent@8.0.3: + resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4(supports-color@8.1.1) - socks: 2.7.3 + socks: 2.8.3 transitivePeerDependencies: - supports-color dev: true - /socks@2.7.3: - resolution: {integrity: sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==} + /socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 dev: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} dev: true - /source-map-loader@4.0.2(webpack@5.90.3): + /source-map-loader@4.0.2(webpack@5.91.0): resolution: {integrity: sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==} engines: {node: '>= 14.15.0'} peerDependencies: webpack: ^5.72.1 dependencies: iconv-lite: 0.6.3 - source-map-js: 1.0.2 - webpack: 5.90.3(esbuild@0.19.8) + source-map-js: 1.2.0 + webpack: 5.91.0(esbuild@0.19.8) dev: true /source-map-support@0.5.21: @@ -8571,7 +8659,6 @@ packages: /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - requiresBuild: true /source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} @@ -8677,7 +8764,7 @@ packages: fast-fifo: 1.3.2 queue-tick: 1.0.1 optionalDependencies: - bare-events: 2.2.0 + bare-events: 2.2.2 dev: true /string-width@4.2.3: @@ -8698,41 +8785,53 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 get-intrinsic: 1.2.4 + gopd: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.7 regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 - side-channel: 1.0.5 + side-channel: 1.0.6 dev: false - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-object-atoms: 1.0.0 - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-object-atoms: 1.0.0 + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -8870,7 +8969,7 @@ packages: engines: {node: '>=8'} dev: true - /terser-webpack-plugin@5.3.10(esbuild@0.19.8)(webpack@5.90.3): + /terser-webpack-plugin@5.3.10(esbuild@0.19.8)(webpack@5.91.0): resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -8886,21 +8985,21 @@ packages: uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 esbuild: 0.19.8 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.27.2 - webpack: 5.90.3(esbuild@0.19.8) + terser: 5.31.0 + webpack: 5.91.0(esbuild@0.19.8) dev: true - /terser@5.27.2: - resolution: {integrity: sha512-sHXmLSkImesJ4p5apTeT63DsV4Obe1s37qT8qvwHRmVxKTBH7Rv9Wr26VcAMmLbmk9UliiwK8z+657NyJHHy/w==} + /terser@5.31.0: + resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} engines: {node: '>=10'} hasBin: true dependencies: - '@jridgewell/source-map': 0.3.5 + '@jridgewell/source-map': 0.3.6 acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 @@ -8968,8 +9067,8 @@ packages: engines: {node: '>=8'} dev: true - /ts-api-utils@1.2.1(typescript@5.1.6): - resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + /ts-api-utils@1.3.0(typescript@5.1.6): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' @@ -9057,11 +9156,6 @@ packages: engines: {node: '>=8'} dev: true - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - dev: true - /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} @@ -9078,12 +9172,13 @@ packages: es-errors: 1.3.0 is-typed-array: 1.1.13 - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 + gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 @@ -9098,8 +9193,8 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 - /typed-array-length@1.0.5: - resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==} + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -9134,12 +9229,12 @@ packages: resolution: {integrity: sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==} dependencies: uint8arraylist: 2.4.8 - uint8arrays: 5.0.2 + uint8arrays: 5.0.3 /uint8arraylist@2.4.8: resolution: {integrity: sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==} dependencies: - uint8arrays: 5.0.2 + uint8arrays: 5.0.3 /uint8arrays@3.1.1: resolution: {integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==} @@ -9151,8 +9246,8 @@ packages: dependencies: multiformats: 12.1.3 - /uint8arrays@5.0.2: - resolution: {integrity: sha512-S0GaeR+orZt7LaqzTRs4ZP8QqzAauJ+0d4xvP2lJTA99jIkKsE2FgDs4tGF/K/z5O9I/2W5Yvrh7IuqNeYH+0Q==} + /uint8arrays@5.0.3: + resolution: {integrity: sha512-6LBuKji28kHjgPJMkQ6GDaBb1lRwIhyOYq6pDGwYMoDPfImE9SkuYENVmR0yu9yGgs2clHUSY9fKDukR+AXfqQ==} dependencies: multiformats: 13.1.0 @@ -9160,7 +9255,7 @@ packages: resolution: {integrity: sha512-DlMi97oP9HASI3kLCjBlOhAG1SoisUrEqC2PJ7itiFbq9q5Zo0JejupXeu2Gke99W62epNzA4MFNToNiq8A5LA==} engines: {node: '>=16'} dependencies: - layerr: 2.0.1 + layerr: 2.1.0 /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -9196,8 +9291,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.23.0): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + /update-browserslist-db@1.0.14(browserslist@4.23.0): + resolution: {integrity: sha512-JixKH8GR2pWYshIPUg/NujK3JO7JiqEEUiNArE86NQyrgUuZeTlZQN3xuS/yiV5Kb48ev9K6RqNkaJjXsdg7Jw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -9216,7 +9311,7 @@ packages: resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} dependencies: punycode: 1.4.1 - qs: 6.11.2 + qs: 6.12.1 dev: true /utf8-codec@1.0.0: @@ -9232,7 +9327,7 @@ packages: is-arguments: 1.1.1 is-generator-function: 1.0.10 is-typed-array: 1.1.13 - which-typed-array: 1.1.14 + which-typed-array: 1.1.15 dev: true /utils-merge@1.0.1: @@ -9249,11 +9344,16 @@ packages: hasBin: true dev: true + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + dev: false + /v8-to-istanbul@9.2.0: resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 dev: true @@ -9269,7 +9369,7 @@ packages: resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - builtins: 5.0.1 + builtins: 5.1.0 dev: true /varint@5.0.2: @@ -9287,8 +9387,8 @@ packages: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} dev: true - /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + /watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 @@ -9319,8 +9419,8 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack@5.90.3(esbuild@0.19.8): - resolution: {integrity: sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==} + /webpack@5.91.0(esbuild@0.19.8): + resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -9331,15 +9431,15 @@ packages: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.11.6 - '@webassemblyjs/wasm-edit': 1.11.6 - '@webassemblyjs/wasm-parser': 1.11.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 acorn: 8.11.3 acorn-import-assertions: 1.9.0(acorn@8.11.3) browserslist: 4.23.0 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.15.0 - es-module-lexer: 1.4.1 + enhanced-resolve: 5.16.0 + es-module-lexer: 1.5.2 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -9350,8 +9450,8 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.19.8)(webpack@5.90.3) - watchpack: 2.4.0 + terser-webpack-plugin: 5.3.10(esbuild@0.19.8)(webpack@5.91.0) + watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -9394,8 +9494,8 @@ packages: path-exists: 4.0.0 dev: true - /which-typed-array@1.1.14: - resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} dependencies: available-typed-arrays: 1.0.7 @@ -9430,7 +9530,6 @@ packages: /word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - dev: false /wordwrapjs@5.1.0: resolution: {integrity: sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==} @@ -9509,6 +9608,20 @@ packages: optional: true utf-8-validate: optional: true + dev: true + + /ws@8.17.0: + resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false /xml@1.0.1: resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} @@ -9627,8 +9740,8 @@ packages: fd-slicer: 1.1.0 dev: true - /ylru@1.3.2: - resolution: {integrity: sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==} + /ylru@1.4.0: + resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} engines: {node: '>= 4.0.0'} dev: true From aeb17c37e5620bd262d43e83b69cc1cf9a3ffc5d Mon Sep 17 00:00:00 2001 From: nitro-neal <5314059+nitro-neal@users.noreply.github.com> Date: Thu, 2 May 2024 15:49:36 -0700 Subject: [PATCH 14/22] Delete packages/credentials/.vscode/settings.json --- packages/credentials/.vscode/settings.json | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 packages/credentials/.vscode/settings.json diff --git a/packages/credentials/.vscode/settings.json b/packages/credentials/.vscode/settings.json deleted file mode 100644 index eeb67bf56..000000000 --- a/packages/credentials/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "search.useParentIgnoreFiles": true -} \ No newline at end of file From 28614727faa47c444dd167263d499e459dbd50e7 Mon Sep 17 00:00:00 2001 From: Neal Date: Thu, 2 May 2024 15:50:00 -0700 Subject: [PATCH 15/22] update --- packages/credentials/.c8rc.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/credentials/.c8rc.json b/packages/credentials/.c8rc.json index e96f8a5a3..c44b67aba 100644 --- a/packages/credentials/.c8rc.json +++ b/packages/credentials/.c8rc.json @@ -14,7 +14,6 @@ ], "reporter": [ "cobertura", - "html", "text" ] } \ No newline at end of file From bfb88396792d920173a80597b5c4b1967af4f57f Mon Sep 17 00:00:00 2001 From: Neal Date: Fri, 3 May 2024 10:02:05 -0700 Subject: [PATCH 16/22] update --- packages/credentials/src/verifiable-credential.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/credentials/src/verifiable-credential.ts b/packages/credentials/src/verifiable-credential.ts index f4b9f6317..bcdd48ef1 100644 --- a/packages/credentials/src/verifiable-credential.ts +++ b/packages/credentials/src/verifiable-credential.ts @@ -39,6 +39,8 @@ export type CredentialSchema = { * @param issuanceDate Optional. The issuance date of the credential, as a string. * Defaults to the current date if not specified. * @param expirationDate Optional. The expiration date of the credential, as a string. + * @param credentialStatus Optional. The credential status lookup information to see if credential is revoked. + * @param credentialSchema Optional. The credential schema of the credential. * @param evidence Optional. Evidence can be included by an issuer to provide the verifier with additional supporting information in a verifiable credential. */ export type VerifiableCredentialCreateOptions = { From 51931b232fdf397141a65312b163f5ed00fd0f63 Mon Sep 17 00:00:00 2001 From: Neal Date: Fri, 17 May 2024 10:31:09 -0700 Subject: [PATCH 17/22] lint --- packages/credentials/tests/status-list-credential.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/credentials/tests/status-list-credential.spec.ts b/packages/credentials/tests/status-list-credential.spec.ts index 36c653ab3..bf1a2ffd7 100644 --- a/packages/credentials/tests/status-list-credential.spec.ts +++ b/packages/credentials/tests/status-list-credential.spec.ts @@ -8,7 +8,7 @@ import { StatusListCredential, StatusPurpose } from '../src/status-list-credenti import StatusListCredentialsCreateTestVector from '../../../web5-spec/test-vectors/status_list_credentials/create.json' assert { type: 'json' }; -describe('Status List Credential Tests', async() => { +describe('Status List Credential Tests', () => { let issuerDid: BearerDid; let holderDid: BearerDid; From 9ad8bcf5501de55a2cb2f3e20f130cd1de3469a2 Mon Sep 17 00:00:00 2001 From: Neal Date: Fri, 17 May 2024 10:56:04 -0700 Subject: [PATCH 18/22] update --- packages/credentials/src/status-list-credential.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/credentials/src/status-list-credential.ts b/packages/credentials/src/status-list-credential.ts index ba1243b3b..ce0c207c3 100644 --- a/packages/credentials/src/status-list-credential.ts +++ b/packages/credentials/src/status-list-credential.ts @@ -43,8 +43,13 @@ export type StatusListCredentialCreateOptions = { * @see {@link https://www.w3.org/community/reports/credentials/CG-FINAL-vc-status-list-2021-20230102/#example-example-statuslist2021credential | Status List 2021 Entry} */ export interface StatusList2021Entry { + /* The id of the status list entry. */ id: string + + /* The type of the status list entry. */ type: string + + /* The status purpose of the status list entry. */ statusPurpose: string, /** The index of the status entry in the status list. Poorly named by spec, should really be `entryIndex`. */ From dcedbd145847b3f0d012358f8bd1cc7d07e47e09 Mon Sep 17 00:00:00 2001 From: Neal Date: Fri, 17 May 2024 11:00:54 -0700 Subject: [PATCH 19/22] lint --- packages/credentials/src/status-list-credential.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/credentials/src/status-list-credential.ts b/packages/credentials/src/status-list-credential.ts index ce0c207c3..12119ab38 100644 --- a/packages/credentials/src/status-list-credential.ts +++ b/packages/credentials/src/status-list-credential.ts @@ -44,19 +44,15 @@ export type StatusListCredentialCreateOptions = { */ export interface StatusList2021Entry { /* The id of the status list entry. */ - id: string - + id: string, /* The type of the status list entry. */ - type: string - + type: string, /* The status purpose of the status list entry. */ statusPurpose: string, - /** The index of the status entry in the status list. Poorly named by spec, should really be `entryIndex`. */ statusListIndex: string, - /** URL to the status list. */ - statusListCredential: string, + statusListCredential: string } /** From 2ea663dbc3ed607f00d8279d9952b4bf4ad2f330 Mon Sep 17 00:00:00 2001 From: Neal Date: Thu, 23 May 2024 11:54:17 -0700 Subject: [PATCH 20/22] doc warning --- packages/credentials/src/status-list-credential.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/credentials/src/status-list-credential.ts b/packages/credentials/src/status-list-credential.ts index 12119ab38..b4d49cb9b 100644 --- a/packages/credentials/src/status-list-credential.ts +++ b/packages/credentials/src/status-list-credential.ts @@ -37,7 +37,7 @@ export type StatusListCredentialCreateOptions = { }; /** - * Credential status lookup information included in a Verifiable Credential that supports status lookup. + * StatusList2021Entry Credential status lookup information included in a Verifiable Credential that supports status lookup. * Data model dictated by the Status List 2021 spec. * * @see {@link https://www.w3.org/community/reports/credentials/CG-FINAL-vc-status-list-2021-20230102/#example-example-statuslist2021credential | Status List 2021 Entry} From 0f4a14a2f7026e0e0efcaa85e2520afcbb797326 Mon Sep 17 00:00:00 2001 From: Henry Tsai Date: Thu, 23 May 2024 12:10:32 -0700 Subject: [PATCH 21/22] Exported status list related libs --- packages/credentials/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/credentials/src/index.ts b/packages/credentials/src/index.ts index 9374e7fd7..c17b88a43 100644 --- a/packages/credentials/src/index.ts +++ b/packages/credentials/src/index.ts @@ -1,5 +1,6 @@ export * from './jwt.js'; export * from './presentation-exchange.js'; +export * from './status-list-credential.js'; export * from './verifiable-credential.js'; export * from './verifiable-presentation.js'; export * as utils from './utils.js'; \ No newline at end of file From 2e21b51d7698cc37bf16b747c166383891a738a0 Mon Sep 17 00:00:00 2001 From: Henry Tsai Date: Thu, 23 May 2024 12:29:15 -0700 Subject: [PATCH 22/22] Docs --- .../credentials/src/status-list-credential.ts | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/credentials/src/status-list-credential.ts b/packages/credentials/src/status-list-credential.ts index b4d49cb9b..4e1addf36 100644 --- a/packages/credentials/src/status-list-credential.ts +++ b/packages/credentials/src/status-list-credential.ts @@ -3,15 +3,19 @@ import { getCurrentXmlSchema112Timestamp } from './utils.js'; import { VerifiableCredential, DEFAULT_VC_CONTEXT, DEFAULT_VC_TYPE, VcDataModel } from './verifiable-credential.js'; import { Convert } from '@web5/common'; +/** Status list VC context */ export const DEFAULT_STATUS_LIST_VC_CONTEXT = 'https://w3id.org/vc/status-list/2021/v1'; -export const DEFAULT_STATUS_LIST_VC_TYPE = 'StatusList2021Credential'; + +const DEFAULT_STATUS_LIST_VC_TYPE = 'StatusList2021Credential'; /** * The status purpose dictated by Status List 2021 spec. * @see {@link https://www.w3.org/community/reports/credentials/CG-FINAL-vc-status-list-2021-20230102/#statuslist2021entry | Status List 2021 Entry} */ export enum StatusPurpose { + /** `revocation` purpose */ revocation = 'revocation', + /** `suspension` purpose */ suspension = 'suspension', } @@ -23,16 +27,15 @@ const BITSTRING_SIZE = 16 * 1024 * 8; // 16KiB in bits /** * StatusListCredentialCreateOptions for creating a status list credential. - * - * @param statusListCredentialId The id used for the resolvable path to the status list credential [String]. - * @param issuer The issuer URI of the credential, as a [String]. - * @param statusPurpose The status purpose of the status list cred, eg: revocation, as a [StatusPurpose]. - * @param credentialsToDisable The credentials to be included in the status list credential, eg: revoked credentials, list of type [VerifiableCredential]. */ export type StatusListCredentialCreateOptions = { + /** The id used for the resolvable path to the status list credential [String]. */ statusListCredentialId: string, + /** The issuer URI of the credential, as a [String]. */ issuer: string, + /** The status purpose of the status list cred, eg: revocation, as a [StatusPurpose]. */ statusPurpose: StatusPurpose, + /** The credentials to be included in the status list credential, eg: revoked credentials, list of type [VerifiableCredential]. */ credentialsToDisable: VerifiableCredential[] }; @@ -43,11 +46,11 @@ export type StatusListCredentialCreateOptions = { * @see {@link https://www.w3.org/community/reports/credentials/CG-FINAL-vc-status-list-2021-20230102/#example-example-statuslist2021credential | Status List 2021 Entry} */ export interface StatusList2021Entry { - /* The id of the status list entry. */ + /** The id of the status list entry. */ id: string, - /* The type of the status list entry. */ + /** The type of the status list entry. */ type: string, - /* The status purpose of the status list entry. */ + /** The status purpose of the status list entry. */ statusPurpose: string, /** The index of the status entry in the status list. Poorly named by spec, should really be `entryIndex`. */ statusListIndex: string,