diff --git a/package.json b/package.json index 0f20f96..d9f5e56 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "dependencies": { "@astronautlabs/jsonpath": "^1.1.2", "@sphereon/did-uni-client": "^0.6.1", - "@sphereon/pex": "^3.3.0", + "@sphereon/pex": "^3.3.1", "@sphereon/pex-models": "^2.2.2", "@sphereon/ssi-types": "0.19.0", "@sphereon/wellknown-dids-client": "^0.1.3", @@ -83,18 +83,18 @@ "jest": "^29.7.0", "jest-junit": "^16.0.0", "jest-resolver-enhanced": "^1.1.0", - "jose": "^4.12.0", + "jose": "^4.15.5", "jwt-decode": "^3.1.2", "moment": "^2.30.1", - "nock": "^13.4.0", + "nock": "^13.5.4", "npm-run-all": "^4.1.5", - "open-cli": "^7.1.0", - "prettier": "^2.8.8", + "open-cli": "^8.0.0", + "prettier": "^3.2.5", "ts-interface-checker": "^1.0.2", "ts-jest": "^29.1.2", "ts-json-schema-generator": "1.5.0", - "tsimp": "^2.0.10", - "typescript": "^5.3.3" + "tsimp": "^2.0.11", + "typescript": "^5.4.2" }, "resolutions": { "isomorphic-webcrypto": "npm:@sphereon/isomorphic-webcrypto@^2.4.0-unstable.4", diff --git a/src/authorization-request/AuthorizationRequest.ts b/src/authorization-request/AuthorizationRequest.ts index be5b203..4e9b80c 100644 --- a/src/authorization-request/AuthorizationRequest.ts +++ b/src/authorization-request/AuthorizationRequest.ts @@ -163,7 +163,7 @@ export class AuthorizationRequest { if (mergedPayload[registrationPropertyKey] || mergedPayload[`${registrationPropertyKey}_uri`]) { registrationMetadataPayload = await fetchByReferenceOrUseByValue( mergedPayload[`${registrationPropertyKey}_uri`], - mergedPayload[registrationPropertyKey] + mergedPayload[registrationPropertyKey], ); assertValidRPRegistrationMedataPayload(registrationMetadataPayload); // TODO: We need to do something with the metadata probably diff --git a/src/authorization-request/Opts.ts b/src/authorization-request/Opts.ts index 5fcb8b1..a534e59 100644 --- a/src/authorization-request/Opts.ts +++ b/src/authorization-request/Opts.ts @@ -28,7 +28,7 @@ export const mergeVerificationOpts = ( requestOpts: { correlationId: string; verification?: InternalVerification | ExternalVerification; - } + }, ) => { const resolver = requestOpts.verification?.resolveOpts?.resolver ?? classOpts.verification?.resolveOpts?.resolver; const wellknownDIDVerifyCallback = requestOpts.verification?.wellknownDIDVerifyCallback ?? classOpts.verification?.wellknownDIDVerifyCallback; diff --git a/src/authorization-request/Payload.ts b/src/authorization-request/Payload.ts index 07f36a1..a9c29dc 100644 --- a/src/authorization-request/Payload.ts +++ b/src/authorization-request/Payload.ts @@ -42,7 +42,7 @@ export const createPresentationDefinitionClaimsProperties = (opts: ClaimPayloadO export const createAuthorizationRequestPayload = async ( opts: CreateAuthorizationRequestOpts, - requestObject?: RequestObject + requestObject?: RequestObject, ): Promise => { const payload = opts.payload; const state = payload?.state ?? undefined; @@ -90,7 +90,7 @@ export const assertValidRPRegistrationMedataPayload = (regObj: RPRegistrationMet export const checkWellknownDIDFromRequest = async ( authorizationRequestPayload: RequestObjectPayload, - opts: VerifyAuthorizationRequestOpts + opts: VerifyAuthorizationRequestOpts, ): Promise => { if (authorizationRequestPayload.client_id.startsWith('did:')) { if (opts.verification.checkLinkedDomain && opts.verification.checkLinkedDomain != CheckLinkedDomain.NEVER) { diff --git a/src/authorization-request/RequestRegistration.ts b/src/authorization-request/RequestRegistration.ts index 6307896..1af7af4 100644 --- a/src/authorization-request/RequestRegistration.ts +++ b/src/authorization-request/RequestRegistration.ts @@ -28,7 +28,7 @@ export const assertValidRequestRegistrationOpts = (opts: ClientMetadataOpts) => const createRequestRegistrationPayload = async ( opts: ClientMetadataOpts, metadataPayload: RPRegistrationMetadataPayload, - version: SupportedVersion + version: SupportedVersion, ): Promise => { assertValidRequestRegistrationOpts(opts); @@ -53,7 +53,7 @@ const createRequestRegistrationPayload = async ( export const createRequestRegistration = async ( clientMetadataOpts: ClientMetadataOpts, - createRequestOpts: CreateAuthorizationRequestOpts + createRequestOpts: CreateAuthorizationRequestOpts, ): Promise<{ payload: RequestRegistrationPayloadProperties | RequestClientMetadataPayloadProperties; metadata: RPRegistrationMetadataPayload; diff --git a/src/authorization-request/URI.ts b/src/authorization-request/URI.ts index 20e092b..f2d67dc 100644 --- a/src/authorization-request/URI.ts +++ b/src/authorization-request/URI.ts @@ -128,7 +128,7 @@ export class URI implements AuthorizationRequestURI { uriScheme: authorizationRequest.options.uriScheme, }, authorizationRequest.payload, - authorizationRequest.requestObject + authorizationRequest.requestObject, ); } @@ -141,7 +141,7 @@ export class URI implements AuthorizationRequestURI { private static async fromAuthorizationRequestPayload( opts: { uriScheme?: string; passBy: PassBy; reference_uri?: string; version?: SupportedVersion }, authorizationRequestPayload: AuthorizationRequestPayload, - requestObject?: RequestObject + requestObject?: RequestObject, ): Promise { if (!authorizationRequestPayload) { if (!requestObject || !(await requestObject.getPayload())) { @@ -154,8 +154,8 @@ export class URI implements AuthorizationRequestURI { const requestObjectJwt = requestObject ? await requestObject.toJwt() : typeof authorizationRequestPayload === 'string' - ? authorizationRequestPayload - : authorizationRequestPayload.request; + ? authorizationRequestPayload + : authorizationRequestPayload.request; if (isJwt && (!requestObjectJwt || !requestObjectJwt.startsWith('ey'))) { throw Error(SIOPErrors.NO_JWT); } @@ -242,7 +242,7 @@ export class URI implements AuthorizationRequestURI { const requestObjectJwt = await fetchByReferenceOrUseByValue(authorizationRequestPayload.request_uri, authorizationRequestPayload.request, true); const registrationMetadata: RPRegistrationMetadataPayload = await fetchByReferenceOrUseByValue( authorizationRequestPayload['client_metadata_uri'] ?? authorizationRequestPayload['registration_uri'], - authorizationRequestPayload['client_metadata'] ?? authorizationRequestPayload['registration'] + authorizationRequestPayload['client_metadata'] ?? authorizationRequestPayload['registration'], ); assertValidRPRegistrationMedataPayload(registrationMetadata); return { scheme, authorizationRequestPayload, requestObjectJwt, registrationMetadata }; diff --git a/src/authorization-response/AuthorizationResponse.ts b/src/authorization-response/AuthorizationResponse.ts index c606992..8f7d306 100644 --- a/src/authorization-response/AuthorizationResponse.ts +++ b/src/authorization-response/AuthorizationResponse.ts @@ -45,7 +45,7 @@ export class AuthorizationResponse { static async fromRequestObject( requestObject: string, responseOpts: AuthorizationResponseOpts, - verifyOpts: VerifyAuthorizationRequestOpts + verifyOpts: VerifyAuthorizationRequestOpts, ): Promise { assertValidVerifyAuthorizationRequestOpts(verifyOpts); await assertValidResponseOpts(responseOpts); @@ -58,7 +58,7 @@ export class AuthorizationResponse { static async fromPayload( authorizationResponsePayload: AuthorizationResponsePayload, - responseOpts?: AuthorizationResponseOpts + responseOpts?: AuthorizationResponseOpts, ): Promise { if (!authorizationResponsePayload) { throw new Error(SIOPErrors.NO_RESPONSE); @@ -73,7 +73,7 @@ export class AuthorizationResponse { static async fromAuthorizationRequest( authorizationRequest: AuthorizationRequest, responseOpts: AuthorizationResponseOpts, - verifyOpts: VerifyAuthorizationRequestOpts + verifyOpts: VerifyAuthorizationRequestOpts, ): Promise { await assertValidResponseOpts(responseOpts); if (!authorizationRequest) { @@ -86,7 +86,7 @@ export class AuthorizationResponse { static async fromVerifiedAuthorizationRequest( verifiedAuthorizationRequest: VerifiedAuthorizationRequest, responseOpts: AuthorizationResponseOpts, - verifyOpts: VerifyAuthorizationRequestOpts + verifyOpts: VerifyAuthorizationRequestOpts, ): Promise { await assertValidResponseOpts(responseOpts); if (!verifiedAuthorizationRequest) { @@ -98,7 +98,7 @@ export class AuthorizationResponse { // const merged = verifiedAuthorizationRequest.authorizationRequest.requestObject, verifiedAuthorizationRequest.requestObject); // const presentationDefinitions = await PresentationExchange.findValidPresentationDefinitions(merged, await authorizationRequest.getSupportedVersion()); const presentationDefinitions = JSON.parse( - JSON.stringify(verifiedAuthorizationRequest.presentationDefinitions) + JSON.stringify(verifiedAuthorizationRequest.presentationDefinitions), ) as PresentationDefinitionWithLocation[]; const wantsIdToken = await authorizationRequest.containsResponseType(ResponseType.ID_TOKEN); const hasVpToken = await authorizationRequest.containsResponseType(ResponseType.VP_TOKEN); diff --git a/src/authorization-response/OpenID4VP.ts b/src/authorization-response/OpenID4VP.ts index 84dd53c..0f0dec4 100644 --- a/src/authorization-response/OpenID4VP.ts +++ b/src/authorization-response/OpenID4VP.ts @@ -26,7 +26,7 @@ import { export const verifyPresentations = async ( authorizationResponse: AuthorizationResponse, - verifyOpts: VerifyAuthorizationResponseOpts + verifyOpts: VerifyAuthorizationResponseOpts, ): Promise => { const presentations = await extractPresentationsFromAuthorizationResponse(authorizationResponse, { hasher: verifyOpts.hasher }); const presentationDefinitions = verifyOpts.presentationDefinitions @@ -76,7 +76,7 @@ export const verifyPresentations = async ( export const extractPresentationsFromAuthorizationResponse = async ( response: AuthorizationResponse, - opts?: { hasher?: Hasher } + opts?: { hasher?: Hasher }, ): Promise => { const wrappedVerifiablePresentations: WrappedVerifiablePresentation[] = []; if (response.payload.vp_token) { @@ -90,7 +90,7 @@ export const extractPresentationsFromAuthorizationResponse = async ( export const createPresentationSubmission = async ( verifiablePresentations: W3CVerifiablePresentation[], - opts?: { presentationDefinitions: (PresentationDefinitionWithLocation | IPresentationDefinition)[] } + opts?: { presentationDefinitions: (PresentationDefinitionWithLocation | IPresentationDefinition)[] }, ): Promise => { let submission_data: PresentationSubmission; for (const verifiablePresentation of verifiablePresentations) { @@ -138,7 +138,7 @@ export const putPresentationSubmissionInLocation = async ( authorizationRequest: AuthorizationRequest, responsePayload: AuthorizationResponsePayload, resOpts: AuthorizationResponseOpts, - idTokenPayload?: IDTokenPayload + idTokenPayload?: IDTokenPayload, ): Promise => { const version = await authorizationRequest.getSupportedVersion(); const idTokenType = await authorizationRequest.containsResponseType(ResponseType.ID_TOKEN); @@ -197,7 +197,7 @@ export const putPresentationSubmissionInLocation = async ( if (responsePayload.presentation_submission) { if (submissionData !== responsePayload.presentation_submission) { throw Error( - 'Different submission data was provided as an option, but exising submission data was already present in the authorization response' + 'Different submission data was provided as an option, but exising submission data was already present in the authorization response', ); } } else { @@ -250,7 +250,7 @@ export const assertValidVerifiablePresentations = async (args: { args.presentationDefinitions, presentationsWithFormat, args.verificationCallback, - args.opts + args.opts, ); } }; diff --git a/src/authorization-response/Payload.ts b/src/authorization-response/Payload.ts index 7e65300..2bae467 100644 --- a/src/authorization-response/Payload.ts +++ b/src/authorization-response/Payload.ts @@ -10,7 +10,7 @@ import { AuthorizationResponseOpts } from './types'; export const createResponsePayload = async ( authorizationRequest: AuthorizationRequest, responseOpts: AuthorizationResponseOpts, - idTokenPayload?: IDTokenPayload + idTokenPayload?: IDTokenPayload, ): Promise => { await assertValidResponseOpts(responseOpts); if (!authorizationRequest) { @@ -44,7 +44,7 @@ export const createResponsePayload = async ( */ export const mergeOAuth2AndOpenIdInRequestPayload = async ( payload: AuthorizationRequestPayload, - requestObject?: RequestObject + requestObject?: RequestObject, ): Promise => { const payloadCopy = JSON.parse(JSON.stringify(payload)); diff --git a/src/authorization-response/PresentationExchange.ts b/src/authorization-response/PresentationExchange.ts index 671b82b..6dcc31c 100644 --- a/src/authorization-response/PresentationExchange.ts +++ b/src/authorization-response/PresentationExchange.ts @@ -54,7 +54,7 @@ export class PresentationExchange { selectedCredentials: OriginalVerifiableCredential[], presentationSignCallback: PresentationSignCallback, // options2?: { nonce?: string; domain?: string, proofType?: IProofType, verificationMethod?: string, signatureKeyEncoding?: KeyEncoding }, - options?: VerifiablePresentationFromOpts + options?: VerifiablePresentationFromOpts, ): Promise { if (!presentationDefinition) { throw new Error(SIOPErrors.REQUEST_CLAIMS_PRESENTATION_DEFINITION_NOT_VALID); @@ -97,7 +97,7 @@ export class PresentationExchange { holderDIDs?: string[]; restrictToFormats?: Format; restrictToDIDMethods?: string[]; - } + }, ): Promise { if (!presentationDefinition) { throw new Error(SIOPErrors.REQUEST_CLAIMS_PRESENTATION_DEFINITION_NOT_VALID); @@ -132,7 +132,7 @@ export class PresentationExchange { restrictToDIDMethods?: string[]; presentationSubmission?: PresentationSubmission; hasher?: Hasher; - } + }, ): Promise { const wvp: WrappedVerifiablePresentation = typeof verifiablePresentation === 'object' && 'original' in verifiablePresentation @@ -173,14 +173,14 @@ export class PresentationExchange { */ public static async findValidPresentationDefinitions( authorizationRequestPayload: AuthorizationRequestPayload, - version?: SupportedVersion + version?: SupportedVersion, ): Promise { const allDefinitions: PresentationDefinitionWithLocation[] = []; async function extractDefinitionFromVPToken() { const vpTokens: PresentationDefinitionV1[] | PresentationDefinitionV2[] = extractDataFromPath( authorizationRequestPayload, - '$..vp_token.presentation_definition' + '$..vp_token.presentation_definition', ).map((d) => d.value); const vpTokenRefs = extractDataFromPath(authorizationRequestPayload, '$..vp_token.presentation_definition_uri'); if (vpTokens && vpTokens.length && vpTokenRefs && vpTokenRefs.length) { @@ -190,7 +190,7 @@ export class PresentationExchange { vpTokens.forEach((vpToken: PresentationDefinitionV1 | PresentationDefinitionV2) => { if (allDefinitions.find((value) => value.definition.id === vpToken.id)) { console.log( - `Warning. We encountered presentation definition with id ${vpToken.id}, more then once whilst processing! Make sure your payload is valid!` + `Warning. We encountered presentation definition with id ${vpToken.id}, more then once whilst processing! Make sure your payload is valid!`, ); return; } @@ -208,7 +208,7 @@ export class PresentationExchange { | PresentationDefinitionV2; if (allDefinitions.find((value) => value.definition.id === pd.id)) { console.log( - `Warning. We encountered presentation definition with id ${pd.id}, more then once whilst processing! Make sure your payload is valid!` + `Warning. We encountered presentation definition with id ${pd.id}, more then once whilst processing! Make sure your payload is valid!`, ); return; } @@ -221,7 +221,7 @@ export class PresentationExchange { function addSingleToplevelPDToPDs(definition: IPresentationDefinition, version?: SupportedVersion): void { if (allDefinitions.find((value) => value.definition.id === definition.id)) { console.log( - `Warning. We encountered presentation definition with id ${definition.id}, more then once whilst processing! Make sure your payload is valid!` + `Warning. We encountered presentation definition with id ${definition.id}, more then once whilst processing! Make sure your payload is valid!`, ); return; } @@ -276,7 +276,7 @@ export class PresentationExchange { public static assertValidPresentationDefinitionWithLocations(definitionsWithLocations: PresentationDefinitionWithLocation[]) { if (definitionsWithLocations && definitionsWithLocations.length > 0) { definitionsWithLocations.forEach((definitionWithLocation) => - PresentationExchange.assertValidPresentationDefinition(definitionWithLocation.definition) + PresentationExchange.assertValidPresentationDefinition(definitionWithLocation.definition), ); } } @@ -298,15 +298,15 @@ export class PresentationExchange { restrictToDIDMethods?: string[]; presentationSubmission?: PresentationSubmission; hasher?: Hasher; - } + }, ) { if (!definitions || !vpPayloads || !definitions.length || definitions.length !== vpPayloads.length) { throw new Error(SIOPErrors.COULD_NOT_FIND_VCS_MATCHING_PD); } await Promise.all( definitions.map( - async (pd) => await PresentationExchange.validatePresentationsAgainstDefinition(pd.definition, vpPayloads, verifyPresentationCallback, opts) - ) + async (pd) => await PresentationExchange.validatePresentationsAgainstDefinition(pd.definition, vpPayloads, verifyPresentationCallback, opts), + ), ); } @@ -320,7 +320,7 @@ export class PresentationExchange { restrictToDIDMethods?: string[]; presentationSubmission?: PresentationSubmission; hasher?: Hasher; - } + }, ) { const pex = new PEX({ hasher: opts?.hasher }); @@ -347,7 +347,7 @@ export class PresentationExchange { const verificationResult = await verifyPresentationCallback(vpw.original as W3CVerifiablePresentation, presentationSubmission); if (!verificationResult.verified) { throw new Error( - SIOPErrors.VERIFIABLE_PRESENTATION_SIGNATURE_NOT_VALID + verificationResult.reason ? `. ${verificationResult.reason}` : '' + SIOPErrors.VERIFIABLE_PRESENTATION_SIGNATURE_NOT_VALID + verificationResult.reason ? `. ${verificationResult.reason}` : '', ); } } catch (error: unknown) { diff --git a/src/authorization-response/types.ts b/src/authorization-response/types.ts index 3589558..9dfc37e 100644 --- a/src/authorization-response/types.ts +++ b/src/authorization-response/types.ts @@ -91,7 +91,7 @@ export type PresentationVerificationResult = { verified: boolean; reason?: strin export type PresentationVerificationCallback = ( args: W3CVerifiablePresentation | CompactSdJwtVc, - presentationSubmission: PresentationSubmission + presentationSubmission: PresentationSubmission, ) => Promise; export type PresentationSignCallback = (args: PresentationSignCallBackParams) => Promise; diff --git a/src/did/DIDResolution.ts b/src/did/DIDResolution.ts index 6af62a4..b3b5f44 100644 --- a/src/did/DIDResolution.ts +++ b/src/did/DIDResolution.ts @@ -14,7 +14,7 @@ export function getResolver(opts: ResolveOpts): Resolvable { throw Error(`No subject syntax types nor did methods configured for DID resolution, but fallback to universal resolver has been disabled`); } console.log( - `Falling back to universal resolver as no resolve opts have been provided, or no subject syntax types supported are provided. It is wise to fix this` + `Falling back to universal resolver as no resolve opts have been provided, or no subject syntax types supported are provided. It is wise to fix this`, ); return new UniResolver(); } @@ -37,7 +37,7 @@ export function getResolver(opts: ResolveOpts): Resolvable { throw Error(`No subject syntax types nor did methods configured for DID resolution, but fallback to universal resolver has been disabled`); } console.log( - `Falling back to universal resolver as no resolve opts have been provided, or no subject syntax types supported are provided. It is wise to fix this` + `Falling back to universal resolver as no resolve opts have been provided, or no subject syntax types supported are provided. It is wise to fix this`, ); return new UniResolver(); } @@ -57,7 +57,7 @@ export function getResolver(opts: ResolveOpts): Resolvable { export function getResolverUnion( customResolver: Resolvable, subjectSyntaxTypesSupported: string[] | string, - resolverMap: Map + resolverMap: Map, ): Resolvable { if (customResolver) { return customResolver; diff --git a/src/did/DidJWT.ts b/src/did/DidJWT.ts index 8f59828..76e203b 100644 --- a/src/did/DidJWT.ts +++ b/src/did/DidJWT.ts @@ -79,7 +79,7 @@ export async function verifyDidJWT(jwt: string, resolver: Resolvable, options: J export async function createDidJWT( payload: Partial, { issuer, signer, expiresIn, canonicalize }: JWTOptions, - header: Partial + header: Partial, ): Promise { return createJWT(payload, { issuer, signer, expiresIn, canonicalize }, header); } @@ -139,7 +139,7 @@ async function signDidJwtInternal( hexPrivateKey: string, alg: SigningAlgo, kid: string, - customJwtSigner?: Signer + customJwtSigner?: Signer, ): Promise { const signer = determineSigner(alg, hexPrivateKey, customJwtSigner); const header = { @@ -160,7 +160,7 @@ async function signDidJwtExternal( signatureUri: string, authZToken: string, alg: SigningAlgo, - kid?: string + kid?: string, ): Promise { const body = { issuer: payload.iss && payload.iss.includes('did:') ? payload.iss : payload.sub, @@ -180,7 +180,7 @@ async function signDidJwtSupplied( issuer: string, signer: Signer, alg: SigningAlgo, - kid: string + kid: string, ): Promise { const header = { alg, diff --git a/src/helpers/HttpUtils.ts b/src/helpers/HttpUtils.ts index bfbe727..4ea7cbb 100644 --- a/src/helpers/HttpUtils.ts +++ b/src/helpers/HttpUtils.ts @@ -13,7 +13,7 @@ export const getJson = async ( accept?: string; customHeaders?: HeadersInit; exceptionOnHttpErrorStatus?: boolean; - } + }, ): Promise> => { return await siopFetch(URL, undefined, { method: 'GET', ...opts }); }; @@ -27,7 +27,7 @@ export const formPost = async ( accept?: string; customHeaders?: HeadersInit; exceptionOnHttpErrorStatus?: boolean; - } + }, ): Promise> => { return await post(url, body, opts?.contentType ? { ...opts } : { contentType: ContentType.FORM_URL_ENCODED, ...opts }); }; @@ -41,7 +41,7 @@ export const post = async ( accept?: string; customHeaders?: HeadersInit; exceptionOnHttpErrorStatus?: boolean; - } + }, ): Promise> => { return await siopFetch(url, body, { method: 'POST', ...opts }); }; @@ -56,7 +56,7 @@ const siopFetch = async ( accept?: string; customHeaders?: HeadersInit; exceptionOnHttpErrorStatus?: boolean; - } + }, ): Promise> => { if (!url || url.toLowerCase().startsWith('did:')) { throw Error(`Invalid URL supplied. Expected a http(s) URL. Recieved: ${url}`); diff --git a/src/helpers/LanguageTagUtils.ts b/src/helpers/LanguageTagUtils.ts index 1f346c0..68ad2b8 100644 --- a/src/helpers/LanguageTagUtils.ts +++ b/src/helpers/LanguageTagUtils.ts @@ -51,7 +51,7 @@ export class LanguageTagUtils { value as string, languageTagSeparatorIndexInKey, requiredFieldNamesMapping, - discoveredLanguageTaggedFields + discoveredLanguageTaggedFields, ); } }); @@ -64,7 +64,7 @@ export class LanguageTagUtils { value: string, languageTagSeparatorIndexInKey: number, languageTagEnabledFieldsNamesMapping: Map, - languageTaggedFields: Map + languageTaggedFields: Map, ): void { const fieldName = this.getFieldName(key, languageTagSeparatorIndexInKey); diff --git a/src/helpers/Metadata.ts b/src/helpers/Metadata.ts index e5058c5..b059fc1 100644 --- a/src/helpers/Metadata.ts +++ b/src/helpers/Metadata.ts @@ -43,7 +43,8 @@ function verifySubjectSyntaxes(subjectSyntaxTypesSupported: string[]): boolean { if ( subjectSyntaxTypesSupported.length === subjectSyntaxTypesSupported.filter( - (sst) => sst.includes(SubjectSyntaxTypesSupportedValues.DID.valueOf()) || sst === SubjectSyntaxTypesSupportedValues.JWK_THUMBPRINT.valueOf() + (sst) => + sst.includes(SubjectSyntaxTypesSupportedValues.DID.valueOf()) || sst === SubjectSyntaxTypesSupportedValues.JWK_THUMBPRINT.valueOf(), ).length ) { return true; diff --git a/src/helpers/Revocation.ts b/src/helpers/Revocation.ts index aa3fcaa..2cd4486 100644 --- a/src/helpers/Revocation.ts +++ b/src/helpers/Revocation.ts @@ -5,7 +5,7 @@ import { RevocationStatus, RevocationVerification, RevocationVerificationCallbac export const verifyRevocation = async ( vpToken: WrappedVerifiablePresentation, revocationVerificationCallback: RevocationVerificationCallback, - revocationVerification: RevocationVerification + revocationVerification: RevocationVerification, ): Promise => { if (!vpToken) { throw new Error(`VP token not provided`); @@ -22,7 +22,7 @@ export const verifyRevocation = async ( ) { const result = await revocationVerificationCallback( vc.original as W3CVerifiableCredential, - originalTypeToVerifiableCredentialTypeFormat(vc.format) + originalTypeToVerifiableCredentialTypeFormat(vc.format), ); if (result.status === RevocationStatus.INVALID) { throw new Error(`Revocation invalid for vc. Error: ${result.error}`); diff --git a/src/helpers/SIOPSpecVersion.ts b/src/helpers/SIOPSpecVersion.ts index 1b5f963..2ae0908 100644 --- a/src/helpers/SIOPSpecVersion.ts +++ b/src/helpers/SIOPSpecVersion.ts @@ -74,7 +74,7 @@ export const authorizationRequestVersionDiscovery = (authorizationRequest: Autho export const checkSIOPSpecVersionSupported = async ( payload: AuthorizationRequestPayload, - supportedVersions: SupportedVersion[] + supportedVersions: SupportedVersion[], ): Promise => { const versions: SupportedVersion[] = authorizationRequestVersionDiscovery(payload); if (!supportedVersions || supportedVersions.length === 0) { diff --git a/src/id-token/IDToken.ts b/src/id-token/IDToken.ts index 570ae0c..9c8437f 100644 --- a/src/id-token/IDToken.ts +++ b/src/id-token/IDToken.ts @@ -31,7 +31,7 @@ export class IDToken { public static async fromVerifiedAuthorizationRequest( verifiedAuthorizationRequest: VerifiedAuthorizationRequest, responseOpts: AuthorizationResponseOpts, - verifyOpts?: VerifyAuthorizationResponseOpts + verifyOpts?: VerifyAuthorizationResponseOpts, ) { const authorizationRequestPayload = verifiedAuthorizationRequest.authorizationRequestPayload; if (!authorizationRequestPayload) { @@ -58,7 +58,7 @@ export class IDToken { public static async fromIDTokenPayload( idTokenPayload: IDTokenPayload, responseOpts: AuthorizationResponseOpts, - verifyOpts?: VerifyAuthorizationResponseOpts + verifyOpts?: VerifyAuthorizationResponseOpts, ) { if (!idTokenPayload) { throw new Error(SIOPErrors.NO_JWT); diff --git a/src/id-token/Payload.ts b/src/id-token/Payload.ts index 674916b..1d2fcfe 100644 --- a/src/id-token/Payload.ts +++ b/src/id-token/Payload.ts @@ -14,7 +14,7 @@ import { export const createIDTokenPayload = async ( verifiedAuthorizationRequest: VerifiedAuthorizationRequest, - responseOpts: AuthorizationResponseOpts + responseOpts: AuthorizationResponseOpts, ): Promise => { await assertValidResponseOpts(responseOpts); const authorizationRequestPayload = await verifiedAuthorizationRequest.authorizationRequest.mergedPayloads(); @@ -26,7 +26,7 @@ export const createIDTokenPayload = async ( const supportedDidMethods = verifiedAuthorizationRequest.registrationMetadataPayload?.subject_syntax_types_supported?.filter((sst) => - sst.includes(SubjectSyntaxTypesSupportedValues.DID.valueOf()) + sst.includes(SubjectSyntaxTypesSupportedValues.DID.valueOf()), ) ?? []; const state = payload.state; const nonce = payload.nonce; @@ -35,7 +35,7 @@ export const createIDTokenPayload = async ( const rpSupportedVersions = authorizationRequestVersionDiscovery(payload); const maxRPVersion = rpSupportedVersions.reduce( (previous, current) => (current.valueOf() > previous.valueOf() ? current : previous), - SupportedVersion.SIOPv2_D12_OID4VP_D18 + SupportedVersion.SIOPv2_D12_OID4VP_D18, ); if (responseOpts.version && rpSupportedVersions.length > 0 && !rpSupportedVersions.includes(responseOpts.version)) { throw Error(`RP does not support spec version ${responseOpts.version}, supported versions: ${rpSupportedVersions.toString()}`); diff --git a/src/op/OP.ts b/src/op/OP.ts index 7d529b7..c5a67dd 100644 --- a/src/op/OP.ts +++ b/src/op/OP.ts @@ -58,7 +58,7 @@ export class OP { public async verifyAuthorizationRequest( requestJwtOrUri: string | URI, - requestOpts?: { correlationId?: string; verification?: InternalVerification | ExternalVerification } + requestOpts?: { correlationId?: string; verification?: InternalVerification | ExternalVerification }, ): Promise { const correlationId = requestOpts?.correlationId || uuidv4(); const authorizationRequest = await AuthorizationRequest.fromUriOrJwt(requestJwtOrUri) @@ -104,7 +104,7 @@ export class OP { signature?: InternalSignature | ExternalSignature | SuppliedSignature; verification?: InternalVerification | ExternalVerification; presentationExchange?: PresentationExchangeResponseOpts; - } + }, ): Promise { if ( verifiedAuthorizationRequest.correlationId && @@ -112,7 +112,7 @@ export class OP { verifiedAuthorizationRequest.correlationId !== responseOpts.correlationId ) { throw new Error( - `Request correlation id ${verifiedAuthorizationRequest.correlationId} is different from option correlation id ${responseOpts.correlationId}` + `Request correlation id ${verifiedAuthorizationRequest.correlationId} is different from option correlation id ${responseOpts.correlationId}`, ); } let version = responseOpts?.version; @@ -122,7 +122,7 @@ export class OP { } else if (!version) { version = rpSupportedVersions.reduce( (previous, current) => (current.valueOf() > previous.valueOf() ? current : previous), - SupportedVersion.SIOPv2_ID1 + SupportedVersion.SIOPv2_ID1, ); } const correlationId = responseOpts?.correlationId ?? verifiedAuthorizationRequest.correlationId ?? uuidv4(); @@ -140,7 +140,7 @@ export class OP { version, correlationId, }), - verifiedAuthorizationRequest.verifyOpts + verifiedAuthorizationRequest.verifyOpts, ); void this.emitEvent(AuthorizationEvents.ON_AUTH_RESPONSE_CREATE_SUCCESS, { correlationId, @@ -269,7 +269,7 @@ export class OP { correlationId: string; subject: AuthorizationRequest | AuthorizationResponse | string | URI; error?: Error; - } + }, ): Promise { if (this._eventEmitter) { this._eventEmitter.emit(type, new AuthorizationEvent(payload)); diff --git a/src/op/OPBuilder.ts b/src/op/OPBuilder.ts index 20694f7..69d745f 100644 --- a/src/op/OPBuilder.ts +++ b/src/op/OPBuilder.ts @@ -123,7 +123,7 @@ export class OPBuilder { signature: (data: string | Uint8Array) => Promise, did: string, kid: string, - alg: SigningAlgo + alg: SigningAlgo, ): OPBuilder { this.withSignature({ signature, did, kid, alg }); return this; diff --git a/src/op/Opts.ts b/src/op/Opts.ts index eebfe8b..ddd8615 100644 --- a/src/op/Opts.ts +++ b/src/op/Opts.ts @@ -16,7 +16,7 @@ export const createResponseOptsFromBuilderOrExistingOpts = (opts: { if (opts?.builder?.resolvers.size && opts.builder?.responseRegistration?.subject_syntax_types_supported) { opts.builder.responseRegistration.subject_syntax_types_supported = mergeAllDidMethods( opts.builder.responseRegistration.subject_syntax_types_supported, - opts.builder.resolvers + opts.builder.resolvers, ); } @@ -33,8 +33,8 @@ export const createResponseOptsFromBuilderOrExistingOpts = (opts: { ...(responseOpts?.version ? { version: responseOpts.version } : Array.isArray(opts.builder.supportedVersions) && opts.builder.supportedVersions.length > 0 - ? { version: opts.builder.supportedVersions[0] } - : {}), + ? { version: opts.builder.supportedVersions[0] } + : {}), }; if (!responseOpts.registration.passBy) { @@ -43,7 +43,7 @@ export const createResponseOptsFromBuilderOrExistingOpts = (opts: { const languageTagEnabledFieldsNames = ['clientName', 'clientPurpose']; const languageTaggedFields: Map = LanguageTagUtils.getLanguageTaggedProperties( opts.builder.responseRegistration, - languageTagEnabledFieldsNames + languageTagEnabledFieldsNames, ); languageTaggedFields.forEach((value: string, key: string) => { @@ -72,7 +72,7 @@ export const createVerifyRequestOptsFromBuilderOrExistingOpts = (opts: { if (opts?.builder?.resolvers.size && opts.builder?.responseRegistration) { opts.builder.responseRegistration.subject_syntax_types_supported = mergeAllDidMethods( opts.builder.responseRegistration.subject_syntax_types_supported, - opts.builder.resolvers + opts.builder.resolvers, ); } let resolver: Resolvable; @@ -80,7 +80,7 @@ export const createVerifyRequestOptsFromBuilderOrExistingOpts = (opts: { resolver = getResolverUnion( opts.builder.customResolver, opts.builder.responseRegistration.subject_syntax_types_supported, - opts.builder.resolvers + opts.builder.resolvers, ); } return opts.builder diff --git a/src/request-object/RequestObject.ts b/src/request-object/RequestObject.ts index 0d6a407..597217e 100644 --- a/src/request-object/RequestObject.ts +++ b/src/request-object/RequestObject.ts @@ -18,7 +18,7 @@ export class RequestObject { private constructor( opts?: CreateAuthorizationRequestOpts | RequestObjectOpts, payload?: RequestObjectPayload, - jwt?: string + jwt?: string, ) { this.opts = opts ? RequestObject.mergeOAuth2AndOpenIdProperties(opts) : undefined; this.payload = payload; @@ -119,7 +119,7 @@ export class RequestObject { } private static mergeOAuth2AndOpenIdProperties( - opts: CreateAuthorizationRequestOpts | RequestObjectOpts + opts: CreateAuthorizationRequestOpts | RequestObjectOpts, ): RequestObjectOpts { if (!opts) { throw Error(SIOPErrors.BAD_PARAMS); diff --git a/src/rp/InMemoryRPSessionManager.ts b/src/rp/InMemoryRPSessionManager.ts index 35179f4..c92a435 100644 --- a/src/rp/InMemoryRPSessionManager.ts +++ b/src/rp/InMemoryRPSessionManager.ts @@ -78,7 +78,7 @@ export class InMemoryRPSessionManager implements IRPSessionManager { type: 'nonce' | 'state' | 'correlationId', value: string, mapping: Record, - errorOnNotFound?: boolean + errorOnNotFound?: boolean, ): Promise { const correlationId = await this.getCorrelationIdImpl(type, value, errorOnNotFound); const result = mapping[correlationId] as T; @@ -137,7 +137,7 @@ export class InMemoryRPSessionManager implements IRPSessionManager { private async getCorrelationIdImpl( type: 'nonce' | 'state' | 'correlationId', value: string, - errorOnNotFound?: boolean + errorOnNotFound?: boolean, ): Promise { if (!value || !type) { throw Error('No type or value provided'); @@ -158,7 +158,7 @@ export class InMemoryRPSessionManager implements IRPSessionManager { event: AuthorizationEvent, key: string, value: string | undefined, - allowExisting: boolean + allowExisting: boolean, ) { const hash = await hashcodeForValue(event, key); const existing = mapping[hash]; @@ -179,7 +179,7 @@ export class InMemoryRPSessionManager implements IRPSessionManager { private async updateState( type: 'request' | 'response', event: AuthorizationEvent, - status: AuthorizationRequestStateStatus | AuthorizationResponseStateStatus + status: AuthorizationRequestStateStatus | AuthorizationResponseStateStatus, ): Promise { if (!event) { throw new Error('event not present'); diff --git a/src/rp/Opts.ts b/src/rp/Opts.ts index b24906f..2954744 100644 --- a/src/rp/Opts.ts +++ b/src/rp/Opts.ts @@ -53,7 +53,7 @@ export const createVerifyResponseOptsFromBuilderOrExistingOpts = (opts: { builde if (opts?.builder?.resolvers.size && opts.builder?.clientMetadata) { opts.builder.clientMetadata.subject_syntax_types_supported = mergeAllDidMethods( opts.builder.clientMetadata.subject_syntax_types_supported, - opts.builder.resolvers + opts.builder.resolvers, ); } let resolver: Resolvable; diff --git a/src/rp/RP.ts b/src/rp/RP.ts index 5a19620..00b5fa1 100644 --- a/src/rp/RP.ts +++ b/src/rp/RP.ts @@ -143,7 +143,7 @@ export class RP { nonce?: string; verification?: InternalVerification | ExternalVerification; presentationDefinitions?: PresentationDefinitionWithLocation | PresentationDefinitionWithLocation[]; - } + }, ): Promise { const state = opts?.state || this.verifyResponseOptions.state; let correlationId: string | undefined = opts?.correlationId || state; @@ -305,7 +305,7 @@ export class RP { audience?: string; checkLinkedDomain?: CheckLinkedDomain; presentationDefinitions?: PresentationDefinitionWithLocation | PresentationDefinitionWithLocation[]; - } + }, ): Promise { let correlationId = opts?.correlationId ?? this._verifyResponseOptions.correlationId; let state = opts?.state ?? this._verifyResponseOptions.state; @@ -354,7 +354,7 @@ export class RP { private async emitEvent( type: AuthorizationEvents, - payload: { correlationId: string; subject?: AuthorizationRequest | AuthorizationResponse | AuthorizationResponsePayload; error?: Error } + payload: { correlationId: string; subject?: AuthorizationRequest | AuthorizationResponse | AuthorizationResponsePayload; error?: Error }, ): Promise { if (this._eventEmitter) { try { diff --git a/src/rp/RPBuilder.ts b/src/rp/RPBuilder.ts index eefef69..df301eb 100644 --- a/src/rp/RPBuilder.ts +++ b/src/rp/RPBuilder.ts @@ -127,14 +127,14 @@ export class RPBuilder { propertyValue: authorizationEndpoint, targets, }, - false + false, ); this._requestObjectPayload.authorization_endpoint = assignIfRequestObject( { propertyValue: authorizationEndpoint, targets, }, - true + true, ); return this; } @@ -192,14 +192,14 @@ export class RPBuilder { propertyValue: clientMetadata, targets, }, - false + false, ); this._requestObjectPayload.registration = assignIfRequestObject( { propertyValue: clientMetadata, targets, }, - true + true, ); } else { this._authorizationRequestPayload.client_metadata = assignIfAuth( @@ -207,14 +207,14 @@ export class RPBuilder { propertyValue: clientMetadata, targets, }, - false + false, ); this._requestObjectPayload.client_metadata = assignIfRequestObject( { propertyValue: clientMetadata, targets, }, - true + true, ); } this.clientMetadata = clientMetadata; @@ -237,7 +237,7 @@ export class RPBuilder { signature: (data: string | Uint8Array) => Promise, did: string, kid: string, - alg: SigningAlgo + alg: SigningAlgo, ): RPBuilder { this.withSignature({ signature, did, kid, alg }); return this; @@ -270,28 +270,28 @@ export class RPBuilder { propertyValue: definition, targets, }, - false + false, ); this._authorizationRequestPayload.presentation_definition_uri = assignIfAuth( { propertyValue: definitionUri, targets, }, - true + true, ); this._requestObjectPayload.presentation_definition = assignIfRequestObject( { propertyValue: definition, targets, }, - true + true, ); this._requestObjectPayload.presentation_definition_uri = assignIfRequestObject( { propertyValue: definitionUri, targets, }, - true + true, ); } return this; diff --git a/src/types/SIOP.types.ts b/src/types/SIOP.types.ts index 65e4933..7acd702 100644 --- a/src/types/SIOP.types.ts +++ b/src/types/SIOP.types.ts @@ -726,11 +726,11 @@ export const isRequestOpts = (object: CreateAuthorizationRequestOpts | Authoriza 'requestBy' in object; export const isResponseOpts = ( - object: RequestObjectOpts | AuthorizationResponseOpts + object: RequestObjectOpts | AuthorizationResponseOpts, ): object is RequestObjectOpts => 'did' in object; export const isRequestPayload = ( - object: AuthorizationRequestPayload | RequestObjectPayload | AuthorizationResponsePayload | IDTokenPayload + object: AuthorizationRequestPayload | RequestObjectPayload | AuthorizationResponsePayload | IDTokenPayload, ): object is AuthorizationRequestPayload => 'response_mode' in object && 'response_type' in object; export const isResponsePayload = (object: RequestObjectPayload | IDTokenPayload): object is IDTokenPayload => 'iss' in object && 'aud' in object; @@ -755,7 +755,7 @@ export interface IRevocationVerificationStatus { export type RevocationVerificationCallback = ( vc: W3CVerifiableCredential, - type: VerifiableCredentialTypeFormat + type: VerifiableCredentialTypeFormat, ) => Promise; export enum RevocationVerification { diff --git a/test/AuthenticationRequest.verify.spec.ts b/test/AuthenticationRequest.verify.spec.ts index 8f80bb6..ae1bf82 100644 --- a/test/AuthenticationRequest.verify.spec.ts +++ b/test/AuthenticationRequest.verify.spec.ts @@ -237,14 +237,14 @@ describe('verifyJWT should', () => { it('throw VERIFY_BAD_PARAMETERS when no responseOpts is passed', async () => { expect.assertions(1); await expect(AuthorizationRequest.verify('an invalid JWT bypassing the undefined check', undefined as never)).rejects.toThrow( - SIOPErrors.VERIFY_BAD_PARAMS + SIOPErrors.VERIFY_BAD_PARAMS, ); }); it('throw VERIFY_BAD_PARAMETERS when no responseOpts.verification is passed', async () => { expect.assertions(1); await expect(AuthorizationRequest.verify('an invalid JWT bypassing the undefined check', {} as never)).rejects.toThrow( - SIOPErrors.VERIFY_BAD_PARAMS + SIOPErrors.VERIFY_BAD_PARAMS, ); }); @@ -381,7 +381,7 @@ describe('verifyJWT should', () => { const verifyJWT = await AuthorizationRequest.verify(await requestObject.toJwt(), verifyOpts); expect(verifyJWT.jwt).toMatch(/^eyJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6ZXRocjowe.*$/); }, - UNIT_TEST_TIMEOUT + UNIT_TEST_TIMEOUT, ); }); diff --git a/test/AuthenticationResponse.response.spec.ts b/test/AuthenticationResponse.response.spec.ts index 96d729d..f2d9ee1 100644 --- a/test/AuthenticationResponse.response.spec.ts +++ b/test/AuthenticationResponse.response.spec.ts @@ -105,7 +105,7 @@ describe('create JWT from Request JWT should', () => { it('throw VERIFY_BAD_PARAMS when no verifyOpts is passed', async () => { expect.assertions(1); await expect(AuthorizationResponse.fromRequestObject(validButExpiredJWT, responseOpts, undefined as never)).rejects.toThrow( - SIOPErrors.VERIFY_BAD_PARAMS + SIOPErrors.VERIFY_BAD_PARAMS, ); }); @@ -290,7 +290,7 @@ describe('create JWT from Request JWT should', () => { // console.log(JSON.stringify(await AuthorizationResponse.fromRequestObject(await requestObject.toJwt(), responseOpts, verifyOpts))); await expect(AuthorizationResponse.fromRequestObject(await requestObject.toJwt(), responseOpts, verifyOpts)).resolves.toBeDefined(); }, - UNIT_TEST_TIMEOUT + UNIT_TEST_TIMEOUT, ); it('succeed when valid JWT with PD is passed in', async () => { @@ -412,7 +412,7 @@ describe('create JWT from Request JWT should', () => { definition, presentation.verifiableCredential, presentationSignCallback, - {} + {}, ); const responseOpts: AuthorizationResponseOpts = { checkLinkedDomain: CheckLinkedDomain.NEVER, @@ -588,7 +588,7 @@ describe('create JWT from Request JWT should', () => { definition, presentation.verifiableCredential, presentationSignCallback, - {} + {}, ); const responseOpts: AuthorizationResponseOpts = { checkLinkedDomain: CheckLinkedDomain.NEVER, diff --git a/test/AuthenticationResponse.verify.spec.ts b/test/AuthenticationResponse.verify.spec.ts index 1d005cd..1eb497f 100644 --- a/test/AuthenticationResponse.verify.spec.ts +++ b/test/AuthenticationResponse.verify.spec.ts @@ -35,14 +35,14 @@ describe('verify JWT from Request JWT should', () => { it('throw JWT_ERROR when expired but valid JWT is passed in', async () => { expect.assertions(1); await expect(IDToken.verify(validButExpiredResJWT, { ...verifyOpts, audience: 'https://acme.com/hello' })).rejects.toThrow( - /invalid_jwt: JWT has expired: exp: 1632272403/ + /invalid_jwt: JWT has expired: exp: 1632272403/, ); }); it('throw JWT_ERROR when expired but valid JWT is passed in', async () => { expect.assertions(1); await expect(IDToken.verify(validButExpiredResJWT, { ...verifyOpts, audience: 'https://acme.com/hello' })).rejects.toThrow( - /invalid_jwt: JWT has expired: exp: 1632272403/ + /invalid_jwt: JWT has expired: exp: 1632272403/, ); }); }); diff --git a/test/HttpUtils.fetch.spec.ts b/test/HttpUtils.fetch.spec.ts index 4d81b3e..909e209 100644 --- a/test/HttpUtils.fetch.spec.ts +++ b/test/HttpUtils.fetch.spec.ts @@ -17,14 +17,14 @@ describe('HttpUtils should', () => { it('have an error body when response is not 200 or 201', async () => { expect.assertions(1); await expect( - post(`${URL}/404`, JSON.stringify({ iss: 'mock' }), { bearerToken: 'bearerToken' }).then((value) => value.errorBody) + post(`${URL}/404`, JSON.stringify({ iss: 'mock' }), { bearerToken: 'bearerToken' }).then((value) => value.errorBody), ).resolves.toMatch('Not found'); }); it('return response when response HTTP status is 200', async () => { expect.assertions(1); await expect( - post(`${URL}/200`, JSON.stringify({ iss: 'mock' }), { bearerToken: 'bearerToken' }).then((value) => value.successBody) + post(`${URL}/200`, JSON.stringify({ iss: 'mock' }), { bearerToken: 'bearerToken' }).then((value) => value.successBody), ).resolves.toMatchObject({ status: 'ok', }); @@ -32,7 +32,7 @@ describe('HttpUtils should', () => { it('return response when response HTTP status is 201', async () => { expect.assertions(1); await expect( - post(`${URL}/201`, JSON.stringify({ iss: 'mock' }), { bearerToken: 'bearerToken' }).then((value) => value.successBody) + post(`${URL}/201`, JSON.stringify({ iss: 'mock' }), { bearerToken: 'bearerToken' }).then((value) => value.successBody), ).resolves.toMatchObject({ status: 'ok', }); diff --git a/test/IT.spec.ts b/test/IT.spec.ts index 4e25e2c..cb62e50 100644 --- a/test/IT.spec.ts +++ b/test/IT.spec.ts @@ -239,7 +239,7 @@ describe('RP and OP interaction should', () => { expect(verifiedAuthResponseWithJWT.idToken.jwt).toBeDefined(); expect(verifiedAuthResponseWithJWT.idToken.payload.nonce).toMatch('qBrR7mqnY3Qr49dAZycPF8FzgE83m6H0c2l0bzP4xSg'); }, - UNIT_TEST_TIMEOUT + UNIT_TEST_TIMEOUT, ); it('succeed when calling optional steps in the full flow', async () => { @@ -435,7 +435,7 @@ describe('RP and OP interaction should', () => { expect(verifiedAuthReqWithJWT.signer).toBeDefined(); expect(verifiedAuthReqWithJWT.issuer).toMatch(rpMockEntity.did); await expect(op.createAuthorizationResponse(verifiedAuthReqWithJWT)).rejects.toThrow( - Error('authentication request expects a verifiable presentation in the response') + Error('authentication request expects a verifiable presentation in the response'), ); expect(verifiedAuthReqWithJWT.payload['registration'].client_name).toEqual(VERIFIER_NAME_FOR_CLIENT); @@ -538,7 +538,7 @@ describe('RP and OP interaction should', () => { expect(verifiedAuthReqWithJWT.issuer).toMatch(rpMockEntity.did); const pex = new PresentationExchange({ allDIDs: [HOLDER_DID], allVerifiableCredentials: getVCs() }); const pd: PresentationDefinitionWithLocation[] = await PresentationExchange.findValidPresentationDefinitions( - parsedAuthReqURI.authorizationRequestPayload + parsedAuthReqURI.authorizationRequestPayload, ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const verifiablePresentationResult = await pex.createVerifiablePresentation(pd[0].definition, getVCs(), presentationSignCallback, {}); @@ -666,7 +666,7 @@ describe('RP and OP interaction should', () => { expect(verifiedAuthReqWithJWT.issuer).toMatch(rpMockEntity.did); const pex = new PresentationExchange({ allDIDs: [HOLDER_DID], allVerifiableCredentials: getVCs() }); const pd: PresentationDefinitionWithLocation[] = await PresentationExchange.findValidPresentationDefinitions( - parsedAuthReqURI.authorizationRequestPayload + parsedAuthReqURI.authorizationRequestPayload, ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const verifiablePresentationResult = await pex.createVerifiablePresentation(pd[0].definition, getVCs(), presentationSignCallback, {}); @@ -703,10 +703,10 @@ describe('RP and OP interaction should', () => { revocationVerificationCallback: (_credential, _type) => Promise.resolve({ status: RevocationStatus.VALID }), }, }, - }) + }), ).rejects.toThrow(new Error(WDCErrors.PROPERTY_SERVICE_NOT_PRESENT)); }, - UNIT_TEST_TIMEOUT + UNIT_TEST_TIMEOUT, ); it('succeed when calling with CheckLinkedDomain.ALWAYS', async () => { @@ -811,7 +811,7 @@ describe('RP and OP interaction should', () => { expect(verifiedAuthReqWithJWT.issuer).toMatch(rpMockEntity.did); const pex = new PresentationExchange({ allDIDs: [HOLDER_DID], allVerifiableCredentials: getVCs() }); const pd: PresentationDefinitionWithLocation[] = await PresentationExchange.findValidPresentationDefinitions( - parsedAuthReqURI.authorizationRequestPayload + parsedAuthReqURI.authorizationRequestPayload, ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const verifiablePresentationResult = await pex.createVerifiablePresentation(pd[0].definition, getVCs(), presentationSignCallback, {}); @@ -947,7 +947,7 @@ describe('RP and OP interaction should', () => { expect(verifiedAuthReqWithJWT.issuer).toMatch(rpMockEntity.did); const pex = new PresentationExchange({ allDIDs: [HOLDER_DID], allVerifiableCredentials: getVCs() }); const pd: PresentationDefinitionWithLocation[] = await PresentationExchange.findValidPresentationDefinitions( - parsedAuthReqURI.authorizationRequestPayload + parsedAuthReqURI.authorizationRequestPayload, ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const verifiablePresentationResult = await pex.createVerifiablePresentation(pd[0].definition, getVCs(), presentationSignCallback, {}); @@ -975,7 +975,7 @@ describe('RP and OP interaction should', () => { expect(verifiedAuthResponseWithJWT.idToken.jwt).toBeDefined(); expect(verifiedAuthResponseWithJWT.idToken.payload.nonce).toMatch('qBrR7mqnY3Qr49dAZycPF8FzgE83m6H0c2l0bzP4xSg'); }, - UNIT_TEST_TIMEOUT + UNIT_TEST_TIMEOUT, ); it('succeed when calling with RevocationVerification.ALWAYS with ldp_vp', async () => { @@ -1090,7 +1090,7 @@ describe('RP and OP interaction should', () => { const pex = new PresentationExchange({ allDIDs: [HOLDER_DID], allVerifiableCredentials: getVCs() }); const pd: PresentationDefinitionWithLocation[] = await PresentationExchange.findValidPresentationDefinitions( - parsedAuthReqURI.authorizationRequestPayload + parsedAuthReqURI.authorizationRequestPayload, ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const verifiablePresentationResult = await pex.createVerifiablePresentation(pd[0].definition, getVCs(), presentationSignCallback, {}); @@ -1198,8 +1198,8 @@ describe('RP and OP interaction should', () => { async () => { return { status: RevocationStatus.VALID }; }, - RevocationVerification.ALWAYS - ) + RevocationVerification.ALWAYS, + ), ).resolves.not.toThrow(); }); @@ -1280,8 +1280,8 @@ describe('RP and OP interaction should', () => { async () => { return { status: RevocationStatus.VALID }; }, - RevocationVerification.ALWAYS - ) + RevocationVerification.ALWAYS, + ), ).resolves.not.toThrow(); }); @@ -1383,7 +1383,7 @@ describe('RP and OP interaction should', () => { expect(verifiedAuthReqWithJWT.issuer).toMatch(rpMockEntity.did); const pex = new PresentationExchange({ allDIDs: [HOLDER_DID], allVerifiableCredentials: getVCs() }); const pd: PresentationDefinitionWithLocation[] = await PresentationExchange.findValidPresentationDefinitions( - parsedAuthReqURI.authorizationRequestPayload + parsedAuthReqURI.authorizationRequestPayload, ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const verifiablePresentationResult = await pex.createVerifiablePresentation(pd[0].definition, getVCs(), presentationSignCallback, {}); @@ -1507,7 +1507,7 @@ describe('RP and OP interaction should', () => { const verifiedAuthReqWithJWT = await op.verifyAuthorizationRequest(parsedAuthReqURI.requestObjectJwt); const pex = new PresentationExchange({ allDIDs: [HOLDER_DID], allVerifiableCredentials: getVCs() }); const pd: PresentationDefinitionWithLocation[] = await PresentationExchange.findValidPresentationDefinitions( - parsedAuthReqURI.authorizationRequestPayload + parsedAuthReqURI.authorizationRequestPayload, ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const verifiablePresentationResult = await pex.createVerifiablePresentation(pd[0].definition, getVCs(), presentationSignCallback, {}); diff --git a/test/OP.request.spec.ts b/test/OP.request.spec.ts index 518a221..a714d93 100644 --- a/test/OP.request.spec.ts +++ b/test/OP.request.spec.ts @@ -64,7 +64,7 @@ describe('OP OPBuilder should', () => { .withInternalSignature('myprivatekey', 'did:example:123', 'did:example:123#key', SigningAlgo.ES256K) .withExpiresIn(1000) .withSupportedVersions([SupportedVersion.SIOPv2_ID1]) - .build() + .build(), ).toBeInstanceOf(OP); }); }); @@ -191,7 +191,7 @@ describe('OP should', () => { }); expect(verifiedRequest.jwt).toBeDefined(); }, - UNIT_TEST_TIMEOUT + UNIT_TEST_TIMEOUT, ); it('succeed from builder when all params are set', async () => { diff --git a/test/PresentationExchange.spec.ts b/test/PresentationExchange.spec.ts index 06e6cdf..65e675f 100644 --- a/test/PresentationExchange.spec.ts +++ b/test/PresentationExchange.spec.ts @@ -228,8 +228,8 @@ describe('presentation exchange manager tests', () => { type: ['VerifiablePresentation', 'PresentationSubmission'], verifiableCredential: vcs, presentation_submission, - } as W3CVerifiablePresentation) - ) + } as W3CVerifiablePresentation), + ), ).rejects.toThrow(SIOPErrors.COULD_NOT_FIND_VCS_MATCHING_PD); }); @@ -279,8 +279,8 @@ describe('presentation exchange manager tests', () => { type: ['VerifiablePresentation', 'PresentationSubmission'], presentation_submission, verifiableCredential: vcs, - } as W3CVerifiablePresentation) - ) + } as W3CVerifiablePresentation), + ), ).rejects.toThrow(SIOPErrors.COULD_NOT_FIND_VCS_MATCHING_PD); }); @@ -289,7 +289,7 @@ describe('presentation exchange manager tests', () => { // eslint-disable-next-line @typescript-eslint/no-explicit-any (payload.claims.vp_token as any).presentation_definition_uri = EXAMPLE_PD_URL; await expect(PresentationExchange.findValidPresentationDefinitions(payload)).rejects.toThrow( - SIOPErrors.REQUEST_CLAIMS_PRESENTATION_DEFINITION_BY_REF_AND_VALUE_NON_EXCLUSIVE + SIOPErrors.REQUEST_CLAIMS_PRESENTATION_DEFINITION_BY_REF_AND_VALUE_NON_EXCLUSIVE, ); }); @@ -304,7 +304,7 @@ describe('presentation exchange manager tests', () => { type: ['VerifiablePresentation', 'PresentationSubmission'], presentation_submission, verifiableCredential: vcs, - } as W3CVerifiablePresentation) + } as W3CVerifiablePresentation), ); expect(result.errors.length).toBe(0); expect(result.value.definition_id).toBe('Insurance Plans'); @@ -322,7 +322,7 @@ describe('presentation exchange manager tests', () => { type: ['VerifiablePresentation', 'PresentationSubmission'], presentation_submission, verifiableCredential: vcs, - } as W3CVerifiablePresentation) + } as W3CVerifiablePresentation), ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const presentationSignCallback: PresentationSignCallback = async (_args) => ({ @@ -416,7 +416,7 @@ describe('presentation exchange manager tests', () => { pd, [CredentialMapper.toWrappedVerifiablePresentation(verifiablePresentationResult.verifiablePresentation)], undefined, - {} + {}, ); } catch (e) { console.log(e); diff --git a/test/RP.request.spec.ts b/test/RP.request.spec.ts index 03bc1ae..555372f 100644 --- a/test/RP.request.spec.ts +++ b/test/RP.request.spec.ts @@ -66,7 +66,7 @@ describe('RP OPBuilder should', () => { .withInternalSignature('myprivatekye', 'did:example:123', 'did:example:123#key', SigningAlgo.ES256K) .withSupportedVersions(SupportedVersion.SIOPv2_ID1) - .build() + .build(), ).toBeInstanceOf(RP); }); }); @@ -284,7 +284,7 @@ describe('RP should', () => { clientPurpose: VERIFIERZ_PURPOSE_TO_VERIFY + ' 2022-09-29 01', 'clientPurpose#nl-NL': VERIFIERZ_PURPOSE_TO_VERIFY_NL + ' 2022-09-29 01', }, - alltargets + alltargets, ) .addDidMethod('did:ethr') .withSupportedVersions([SupportedVersion.SIOPv2_D11]) diff --git a/test/SdJwt.spec.ts b/test/SdJwt.spec.ts index 59350be..3e571cf 100644 --- a/test/SdJwt.spec.ts +++ b/test/SdJwt.spec.ts @@ -204,7 +204,7 @@ describe('RP and OP interaction should', () => { expect(verifiedAuthReqWithJWT.issuer).toMatch(rpMockEntity.did); const pex = new PresentationExchange({ allDIDs: [HOLDER_DID], allVerifiableCredentials: getVCs(), hasher }); const pd: PresentationDefinitionWithLocation[] = await PresentationExchange.findValidPresentationDefinitions( - parsedAuthReqURI.authorizationRequestPayload + parsedAuthReqURI.authorizationRequestPayload, ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const verifiablePresentationResult = await pex.createVerifiablePresentation(pd[0].definition, getVCs(), presentationSignCallback, {}); diff --git a/test/TestUtils.ts b/test/TestUtils.ts index 8009f55..e4d7b8d 100644 --- a/test/TestUtils.ts +++ b/test/TestUtils.ts @@ -113,7 +113,7 @@ export const mockedKeyAndDid = async (): Promise<{ }; const mockedEntityAuthNToken = async ( - enterpiseName?: string + enterpiseName?: string, ): Promise<{ jwt: string; jwk: JWK; diff --git a/test/e2e/EBSI.spec.ts b/test/e2e/EBSI.spec.ts index 0d103f2..07307a3 100644 --- a/test/e2e/EBSI.spec.ts +++ b/test/e2e/EBSI.spec.ts @@ -75,7 +75,7 @@ describe('EBSI SIOPv2 should', () => { async () => { await testWithOp(); }, - UNIT_TEST_TIMEOUT + UNIT_TEST_TIMEOUT, ); async function getAuthRequestURL({ nonce }: { nonce: string }): Promise { diff --git a/test/e2e/mattr.launchpad.spec.ts b/test/e2e/mattr.launchpad.spec.ts index 0943d4d..ded7ab6 100644 --- a/test/e2e/mattr.launchpad.spec.ts +++ b/test/e2e/mattr.launchpad.spec.ts @@ -57,7 +57,7 @@ export const generateDid = async (opts?: { seed?: Uint8Array }) => { return opts?.seed ?? '913466d1a38d1d8c0d3c0fb0fc3b633075085a31372bbd2a8022215a88d9d1e5'; }, }, - { accept: 'application/did+json' } + { accept: 'application/did+json' }, ); return { keys, didDocument }; @@ -96,7 +96,7 @@ describe('OID4VCI-Client using Mattr issuer should', () => { const pex = new PresentationExchange({ allDIDs: [didStr], allVerifiableCredentials: [OPENBADGE_JWT_VC] }); const pd: PresentationDefinitionWithLocation[] = await PresentationExchange.findValidPresentationDefinitions( - verifiedAuthRequest.authorizationRequestPayload + verifiedAuthRequest.authorizationRequestPayload, ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const verifiablePresentationResult = await pex.createVerifiablePresentation(pd[0].definition, [OPENBADGE_JWT_VC], presentationSignCalback, { @@ -149,7 +149,7 @@ describe('OID4VCI-Client using Mattr issuer should', () => { const pex = new PresentationExchange({ allDIDs: [didStr], allVerifiableCredentials: [OPENBADGE_JWT_VC] }); const pd: PresentationDefinitionWithLocation[] = await PresentationExchange.findValidPresentationDefinitions( - verifiedAuthRequest.authorizationRequestPayload + verifiedAuthRequest.authorizationRequestPayload, ); await pex.selectVerifiableCredentialsForSubmission(pd[0].definition); const verifiablePresentationResult = await pex.createVerifiablePresentation(pd[0].definition, [OPENBADGE_JWT_VC], presentationSignCalback, { @@ -167,7 +167,7 @@ describe('OID4VCI-Client using Mattr issuer should', () => { }, signature: { hexPrivateKey: '913466d1a38d1d8c0d3c0fb0fc3b633075085a31372bbd2a8022215a88d9d1e5', did: didStr, kid, alg: SigningAlgo.EDDSA }, }, - { correlationId, verification: { mode: VerificationMode.INTERNAL, resolveOpts: {} }, nonce, state } + { correlationId, verification: { mode: VerificationMode.INTERNAL, resolveOpts: {} }, nonce, state }, ); expect(authResponse).toBeDefined(); @@ -182,14 +182,14 @@ describe('OID4VCI-Client using Mattr issuer should', () => { async () => { await testWithPayloads('OpenBadgeCredential'); }, - UNIT_TEST_TIMEOUT + UNIT_TEST_TIMEOUT, ); it( 'succeed in a full flow with the client using OpenID4VCI version 11 and jwt_vc_json', async () => { await testWithOp('OpenBadgeCredential'); }, - UNIT_TEST_TIMEOUT + UNIT_TEST_TIMEOUT, ); }); diff --git a/test/functions/DidJWT.spec.ts b/test/functions/DidJWT.spec.ts index f9684a7..400e04f 100644 --- a/test/functions/DidJWT.spec.ts +++ b/test/functions/DidJWT.spec.ts @@ -44,7 +44,7 @@ describe('DidJWT ', () => { let err = undefined; try { getIssuerDidFromJWT( - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c', ); } catch (e) { err = e; @@ -64,7 +64,7 @@ describe('DidJWT ', () => { it('parseJWT: should pass if method returns with correct decoded ', async function () { const result = parseJWT( - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c', ); expect(result.payload.name).toBe('John Doe'); }); diff --git a/test/functions/Encodings.spec.ts b/test/functions/Encodings.spec.ts index 9821678..851e457 100644 --- a/test/functions/Encodings.spec.ts +++ b/test/functions/Encodings.spec.ts @@ -40,12 +40,12 @@ describe('Encodings', () => { }, vp_token: ['ey...1', 'ey...2'], vp_token_single: 'ey...3', - } + }, /*{ arraysWithIndex: ['presentation_submission', 'vp_token', 'vp_token_single'] }*/ ); expect(encoded).toBe( - `presentation_submission=%7B%22id%22%3A%22bbYJTQe7YPvVx-3rLl4Aq%22%2C%22definition_id%22%3A%22000fc41b-2859-4fc3-b797-510492a9479a%22%2C%22descriptor_map%22%3A%5B%7B%22id%22%3A%22OpenBadgeCredential%22%2C%22format%22%3A%22jwt_vp%22%2C%22path%22%3A%22%24%22%2C%22path_nested%22%3A%7B%22id%22%3A%22OpenBadgeCredential%22%2C%22format%22%3A%22jwt_vc_json%22%2C%22path%22%3A%22%24.vp.verifiableCredential%5B0%5D%22%7D%7D%5D%7D&vp_token=%5B%22ey...1%22%2C%22ey...2%22%5D&vp_token_single=ey...3` + `presentation_submission=%7B%22id%22%3A%22bbYJTQe7YPvVx-3rLl4Aq%22%2C%22definition_id%22%3A%22000fc41b-2859-4fc3-b797-510492a9479a%22%2C%22descriptor_map%22%3A%5B%7B%22id%22%3A%22OpenBadgeCredential%22%2C%22format%22%3A%22jwt_vp%22%2C%22path%22%3A%22%24%22%2C%22path_nested%22%3A%7B%22id%22%3A%22OpenBadgeCredential%22%2C%22format%22%3A%22jwt_vc_json%22%2C%22path%22%3A%22%24.vp.verifiableCredential%5B0%5D%22%7D%7D%5D%7D&vp_token=%5B%22ey...1%22%2C%22ey...2%22%5D&vp_token_single=ey...3`, ); }); }); diff --git a/test/functions/LinkedDomainValidations.spec.ts b/test/functions/LinkedDomainValidations.spec.ts index 8f753f4..81f477c 100644 --- a/test/functions/LinkedDomainValidations.spec.ts +++ b/test/functions/LinkedDomainValidations.spec.ts @@ -314,7 +314,7 @@ describe('validateLinkedDomainWithDid', () => { checkLinkedDomain: CheckLinkedDomain.ALWAYS, resolveOpts: {}, mode: VerificationMode.INTERNAL, - }) + }), ).resolves.not.toThrow(); }); it('should succeed with ion did and CheckLinkedDomain.ALWAYS', async () => { @@ -335,7 +335,7 @@ describe('validateLinkedDomainWithDid', () => { checkLinkedDomain: CheckLinkedDomain.ALWAYS, resolveOpts: {}, mode: VerificationMode.INTERNAL, - }) + }), ).resolves.not.toThrow(); }); @@ -348,7 +348,7 @@ describe('validateLinkedDomainWithDid', () => { checkLinkedDomain: CheckLinkedDomain.ALWAYS, resolveOpts: {}, mode: VerificationMode.INTERNAL, - }) + }), ).rejects.toThrow(); }); @@ -361,7 +361,7 @@ describe('validateLinkedDomainWithDid', () => { checkLinkedDomain: CheckLinkedDomain.IF_PRESENT, resolveOpts: {}, mode: VerificationMode.INTERNAL, - }) + }), ).rejects.toThrow(); }); }); diff --git a/test/interop/EBSI/EBSI.spec.ts b/test/interop/EBSI/EBSI.spec.ts index 079e5e5..890e001 100644 --- a/test/interop/EBSI/EBSI.spec.ts +++ b/test/interop/EBSI/EBSI.spec.ts @@ -64,6 +64,6 @@ describe('EBSI', () => { expect(verifiedRequest.issuer).toMatch('https://conformance-test.ebsi.eu/conformance/v3/auth-mock'); expect(verifiedRequest.jwt).toBeDefined(); }, - UNIT_TEST_TIMEOUT + UNIT_TEST_TIMEOUT, ); }); diff --git a/test/spec-compliance/jwtVCPresentationProfile.spec.ts b/test/spec-compliance/jwtVCPresentationProfile.spec.ts index 18ad94c..603db34 100644 --- a/test/spec-compliance/jwtVCPresentationProfile.spec.ts +++ b/test/spec-compliance/jwtVCPresentationProfile.spec.ts @@ -63,7 +63,7 @@ beforeEach(async () => { }, subject_syntax_types_supported: ['did:ion'], }, - PropertyTarget.REQUEST_OBJECT + PropertyTarget.REQUEST_OBJECT, ) .withRedirectUri('https://example.com/siop-response', PropertyTarget.REQUEST_OBJECT) .withRequestBy(PassBy.REFERENCE, TestVectors.request_uri) @@ -141,7 +141,7 @@ describe('RP using test vectors', () => { const authRequest = await createAuthRequest(); const uri = await authRequest.uri(); expect(uri.encodedUri).toEqual( - 'openid-vc://?request_uri=https%3A%2F%2Fexample%2Fservice%2Fapi%2Fv1%2Fpresentation-request%2F649d8c3c-f5ac-41bd-9c19-5804ea1b8fe9' + 'openid-vc://?request_uri=https%3A%2F%2Fexample%2Fservice%2Fapi%2Fv1%2Fpresentation-request%2F649d8c3c-f5ac-41bd-9c19-5804ea1b8fe9', ); }); it('should get presentation definition', async () => { @@ -170,7 +170,7 @@ describe('RP using test vectors', () => { presentationVerificationCallback, wellknownDIDVerifyCallback: verifyCallback, }, - }) + }), ).toBeTruthy(); }); @@ -197,7 +197,7 @@ describe('RP using test vectors', () => { revocationVerification: RevocationVerification.NEVER, }, }, - }) + }), ).toBeTruthy(); const authRequest = await createAuthRequest(); @@ -337,7 +337,7 @@ describe('OP using test vectors', () => { proofOptions: { type: IProofType.JwtProof2020, }, - } + }, ); const response = await op.createAuthorizationResponse(result, { presentationExchange: { @@ -616,6 +616,9 @@ class TestVectors { } public static mockDID(did: string, vm: string, publickKeyJwk: JsonWebKey) { - nock('https://dev.uniresolver.io').get(`/1.0/identifiers/${did}`).times(100).reply(200, TestVectors.didDocument(did, vm, publickKeyJwk)); + nock('https://dev.uniresolver.io') + .get(`/1.0/identifiers/${did}`) + .times(100) + .reply(200, TestVectors.didDocument(did, vm, publickKeyJwk)); } } diff --git a/yarn.lock b/yarn.lock index 0b157f7..e2615cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2519,6 +2519,14 @@ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== +"@sd-jwt/decode@0.6.1", "@sd-jwt/decode@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@sd-jwt/decode/-/decode-0.6.1.tgz#141f7782df53bab7159a75d91ed4711e1c14a7ea" + integrity sha512-QgTIoYd5zyKKLgXB4xEYJTrvumVwtsj5Dog0v0L9UH9ZvHekDaeexS247X7A4iSdzTvmZzUpGskgABOa4D8NmQ== + dependencies: + "@sd-jwt/types" "0.6.1" + "@sd-jwt/utils" "0.6.1" + "@sd-jwt/decode@^0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@sd-jwt/decode/-/decode-0.2.0.tgz#44211418fd0884a160f8223feedfe04ae52398c4" @@ -2527,31 +2535,24 @@ "@sd-jwt/types" "0.2.0" "@sd-jwt/utils" "0.2.0" -"@sd-jwt/decode@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@sd-jwt/decode/-/decode-0.3.0.tgz#23627ce1b7c678a6ac685d7241e7f64e18bd9a8c" - integrity sha512-jCN1g3VzopiUxUtBZWq0Ojfzbg+wYkE1/gV86Xq7/gV8aNacCJo7Su5a3pYtoYg/rnH7ou1kwpD6vteQFkvXMQ== - dependencies: - "@sd-jwt/types" "0.3.0" - "@sd-jwt/utils" "0.3.0" - -"@sd-jwt/present@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@sd-jwt/present/-/present-0.3.0.tgz#e054f66c0ec9c339570ec028e0f2291d75c279e3" - integrity sha512-dICPhH5hqOLXmuJMdTaA47ZMpCDkTzbWUQXsIgw0vma7Aj9Bc6ySNevPwlsUx4K8XBjPgYWwBM9tKdrs3tsCvQ== +"@sd-jwt/present@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@sd-jwt/present/-/present-0.6.1.tgz#82b9188becb0fa240897c397d84a54d55c7d169e" + integrity sha512-QRD3TUDLj4PqQNZ70bBxh8FLLrOE9mY8V9qiZrJSsaDOLFs2p1CtZG+v9ig62fxFYJZMf4bWKwYjz+qqGAtxCg== dependencies: - "@sd-jwt/types" "0.3.0" - "@sd-jwt/utils" "0.3.0" + "@sd-jwt/decode" "0.6.1" + "@sd-jwt/types" "0.6.1" + "@sd-jwt/utils" "0.6.1" "@sd-jwt/types@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@sd-jwt/types/-/types-0.2.0.tgz#3cb50392e1b76ce69453f403c71c937a6e202352" integrity sha512-16WFRcL/maG0/JxN9UCSx07/vJ2SDbGscv9gDLmFLgJzhJcGPer41XfI6aDfVARYP430wHFixChfY/n7qC1L/Q== -"@sd-jwt/types@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@sd-jwt/types/-/types-0.3.0.tgz#12f2fa7b448f1f5e368ddfac8db2143ed58c38f7" - integrity sha512-JbpZICZ+nWPiKPKw+Veg5tf0Oftit4EzxhLJyvcd0u4R6IulNZvi6LCoUL7b2IT1H86eYPd/qB1KvSh43ByZOA== +"@sd-jwt/types@0.6.1", "@sd-jwt/types@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@sd-jwt/types/-/types-0.6.1.tgz#fc4235e00cf40d35a21d6bc02e44e12d7162aa9b" + integrity sha512-LKpABZJGT77jNhOLvAHIkNNmGqXzyfwBT+6r+DN9zNzMx1CzuNR0qXk1GMUbast9iCfPkGbnEpUv/jHTBvlIvg== "@sd-jwt/utils@0.2.0": version "0.2.0" @@ -2561,13 +2562,13 @@ "@sd-jwt/types" "0.2.0" buffer "*" -"@sd-jwt/utils@0.3.0", "@sd-jwt/utils@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@sd-jwt/utils/-/utils-0.3.0.tgz#73ce9809ccc98b35d5a6d1bf1ed34758bcdfb39d" - integrity sha512-jQNYxvyfLda9StVLeUqUZtv5csI6IuzcD6b55/wsC9xJgTuntZqf8vyJvuu4MwEJUFwm9PdGkCJXyl/nbpmNLw== +"@sd-jwt/utils@0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@sd-jwt/utils/-/utils-0.6.1.tgz#33273b20c9eb1954e4eab34118158b646b574ff9" + integrity sha512-1NHZ//+GecGQJb+gSdDicnrHG0DvACUk9jTnXA5yLZhlRjgkjyfJLNsCZesYeCyVp/SiyvIC9B+JwoY4kI0TwQ== dependencies: - "@sd-jwt/types" "0.3.0" - buffer "*" + "@sd-jwt/types" "0.6.1" + js-base64 "^3.7.6" "@sinclair/typebox@^0.27.8": version "0.27.8" @@ -2601,27 +2602,28 @@ resolved "https://registry.yarnpkg.com/@sphereon/pex-models/-/pex-models-2.2.2.tgz#3f8b12c49d8fab7372b4b47eae5bcbf8729cccba" integrity sha512-CZIsBoaV5rMZEWYBsmH+RxsdoxpXf5FSDwDz0GB0qOf5WFk1BGUnzpZzi5yJ+2L151mhPk97dlRc9Wb01Awr4Q== -"@sphereon/pex@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@sphereon/pex/-/pex-3.3.0.tgz#86384f7ee6e5a966b98d3e8010a27e93eb144317" - integrity sha512-CNthF/6dlIECqTqdOWGD5HOT72OWjzKTFVuFGmSbgOqsEtEtGU0e0g0gYbvXWNm0hYKsyFgS5XIZ1Uj3NR5UMg== +"@sphereon/pex@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@sphereon/pex/-/pex-3.3.1.tgz#670b5cec57262ff1e206600bc92c2001522b2f41" + integrity sha512-DFFWLndJju4MplNnowrAVLwIxb64YOX6Ni2PZt2pr1jREE1c/4MwG5X8LyMOgPWH0nZUTDaS5H7MdjMKviFaDg== dependencies: "@astronautlabs/jsonpath" "^1.1.2" - "@sd-jwt/decode" "^0.3.0" - "@sd-jwt/present" "^0.3.0" - "@sd-jwt/utils" "^0.3.0" + "@sd-jwt/decode" "^0.6.1" + "@sd-jwt/present" "^0.6.1" + "@sd-jwt/types" "^0.6.1" "@sphereon/pex-models" "^2.2.2" - "@sphereon/ssi-types" "0.18.1" + "@sphereon/ssi-types" "0.19.0" ajv "^8.12.0" ajv-formats "^2.1.1" jwt-decode "^3.1.2" nanoid "^3.3.7" string.prototype.matchall "^4.0.10" + uint8arrays "^3.1.1" -"@sphereon/ssi-types@0.18.1": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@sphereon/ssi-types/-/ssi-types-0.18.1.tgz#c00e4939149f4e441fae56af860735886a4c33a5" - integrity sha512-uM0gb1woyc0R+p+qh8tVDi15ZWmpzo9BP0iBp/yRkJar7gAfgwox/yvtEToaH9jROKnDCwL3DDQCDeNucpMkwg== +"@sphereon/ssi-types@0.19.0": + version "0.19.0" + resolved "https://registry.yarnpkg.com/@sphereon/ssi-types/-/ssi-types-0.19.0.tgz#414f85ff6718edeaa4b5c83b6252ed26da5a1968" + integrity sha512-C4NW4a9rhnEApkQvMYQx3GFboyZDwS0C0Ec6vVRuhFp7AZU4EBMBZsfP3wXUjoBHBdTF4ru/SdriCs7XvN5wIg== dependencies: "@sd-jwt/decode" "^0.2.0" jwt-decode "^3.1.2" @@ -3103,11 +3105,6 @@ resolved "https://registry.yarnpkg.com/@types/language-tags/-/language-tags-1.0.4.tgz#c622209605b919c41cbf5a78c2fb58dbc3d6f029" integrity sha512-20PQbifv3v/djCT+KlXybv0KqO5ofoR1qD1wkinN59kfggTPVTWGmPFgL/1yWuDyRcsQP/POvkqK+fnl5nOwTg== -"@types/minimist@^1.2.2": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" - integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== - "@types/node@*": version "20.11.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.0.tgz#8e0b99e70c0c1ade1a86c4a282f7b7ef87c9552f" @@ -3120,11 +3117,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== -"@types/normalize-package-data@^2.4.1": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" - integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== - "@types/qs@^6.9.11": version "6.9.11" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.11.tgz#208d8a30bc507bd82e03ada29e4732ea46a6bbda" @@ -3458,11 +3450,6 @@ arraybuffer.prototype.slice@^1.0.2: is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - asmcrypto.js@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz#b9f84bd0a1fb82f21f8c29cc284a707ad17bba2e" @@ -3658,7 +3645,7 @@ bech32@^2.0.0: resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== -big-integer@^1.6.44, big-integer@^1.6.48: +big-integer@^1.6.48: version "1.6.52" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== @@ -3673,13 +3660,6 @@ bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3751,12 +3731,12 @@ buffer@*: base64-js "^1.3.1" ieee754 "^1.2.1" -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== +bundle-name@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889" + integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== dependencies: - run-applescript "^5.0.0" + run-applescript "^7.0.0" call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: version "1.0.5" @@ -3772,16 +3752,6 @@ callsites@^3.0.0, callsites@^3.1.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase-keys@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-8.0.2.tgz#a7140ba7c797aea32161d4ce5cdbda11d09eb414" - integrity sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA== - dependencies: - camelcase "^7.0.0" - map-obj "^4.3.0" - quick-lru "^6.1.1" - type-fest "^2.13.0" - camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -3792,11 +3762,6 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -camelcase@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" - integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== - caniuse-lite@^1.0.30001565: version "1.0.30001576" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz#893be772cf8ee6056d6c1e2d07df365b9ec0a5c4" @@ -4201,24 +4166,6 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -decamelize-keys@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" - integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decamelize@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-6.0.0.tgz#8cad4d916fde5c41a264a43d0ecc56fe3d31749e" - integrity sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA== - dedent@^1.0.0: version "1.5.1" resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" @@ -4234,23 +4181,18 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" +default-browser-id@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" + integrity sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== +default-browser@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.2.1.tgz#7b7ba61204ff3e425b556869ae6d3e9d9f1712cf" + integrity sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" + bundle-name "^4.1.0" + default-browser-id "^5.0.0" define-data-property@^1.0.1, define-data-property@^1.1.1: version "1.1.1" @@ -4781,21 +4723,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -4897,7 +4824,7 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-type@^18.2.1: +file-type@^18.7.0: version "18.7.0" resolved "https://registry.yarnpkg.com/file-type/-/file-type-18.7.0.tgz#cddb16f184d6b94106cfc4bb56978726b25cb2a2" integrity sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw== @@ -4929,14 +4856,6 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" - integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== - dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" - fix-esm@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fix-esm/-/fix-esm-1.0.1.tgz#e0e2199d841e43ff7db9b5f5ba7496bc45130ebb" @@ -5076,7 +4995,7 @@ get-stdin@^9.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -5192,11 +5111,6 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -5286,20 +5200,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -hosted-git-info@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.2.1.tgz#0ba1c97178ef91f3ab30842ae63d6a272341156f" - integrity sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw== - dependencies: - lru-cache "^7.5.1" - html-escaper@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" @@ -5327,11 +5227,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -5375,11 +5270,6 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== -indent-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" - integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -5449,7 +5339,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: +is-core-module@^2.13.0, is-core-module@^2.13.1: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== @@ -5463,11 +5353,6 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - is-docker@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" @@ -5536,11 +5421,6 @@ is-path-inside@^3.0.3: resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -5613,12 +5493,12 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== +is-wsl@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.0.tgz#e1c657e39c10090afcbedec61720f6b924c3cbd2" + integrity sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== dependencies: - is-docker "^2.0.0" + is-inside-container "^1.0.0" isarray@^2.0.5: version "2.0.5" @@ -6091,11 +5971,21 @@ jest@^29.7.0: import-local "^3.0.2" jest-cli "^29.7.0" -jose@^4.12.0, jose@^4.14.4, jose@^4.14.6, jose@^4.3.8: +jose@^4.14.4, jose@^4.14.6, jose@^4.3.8: version "4.15.4" resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.4.tgz#02a9a763803e3872cf55f29ecef0dfdcc218cc03" integrity sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ== +jose@^4.15.5: + version "4.15.5" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.5.tgz#6475d0f467ecd3c630a1b5dadd2735a7288df706" + integrity sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg== + +js-base64@^3.7.6: + version "3.7.7" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.7.tgz#e51b84bf78fbf5702b9541e2cb7bfcb893b43e79" + integrity sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw== + js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -6244,7 +6134,7 @@ keyv@^4.5.3: dependencies: json-buffer "3.0.1" -kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -6342,13 +6232,6 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -locate-path@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" - integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - dependencies: - p-locate "^6.0.0" - lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -6388,11 +6271,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.5.1: - version "7.18.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" - integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== - "lru-cache@^9.1.1 || ^10.0.0": version "10.1.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" @@ -6431,16 +6309,6 @@ map-age-cleaner@^0.1.3: dependencies: p-defer "^1.0.0" -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - md5.js@^1.3.4, md5.js@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -6463,23 +6331,10 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== -meow@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-11.0.0.tgz#273a19c12d49d013c56effe9f011994022887157" - integrity sha512-Cl0yeeIrko6d94KpUo1M+0X1sB14ikoaqlIGuTH1fW4I+E3+YljL54/hb/BWmVfrV9tTV9zU04+xjw08Fh2WkA== - dependencies: - "@types/minimist" "^1.2.2" - camelcase-keys "^8.0.2" - decamelize "^6.0.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^4.0.1" - read-pkg-up "^9.1.0" - redent "^4.0.0" - trim-newlines "^4.0.2" - type-fest "^3.1.0" - yargs-parser "^21.1.1" +meow@^12.1.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-12.1.1.tgz#e558dddbab12477b69b2e9a2728c327f191bace6" + integrity sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== merge-stream@^2.0.0: version "2.0.0" @@ -6521,11 +6376,6 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== -min-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -6557,15 +6407,6 @@ minimatch@^9.0.1: dependencies: brace-expansion "^2.0.1" -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -6638,10 +6479,10 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -nock@^13.4.0: - version "13.4.0" - resolved "https://registry.yarnpkg.com/nock/-/nock-13.4.0.tgz#60aa3f7a4afa9c12052e74d8fb7550f682ef0115" - integrity sha512-W8NVHjO/LCTNA64yxAPHV/K47LpGYcVzgKd3Q0n6owhwvD0Dgoterc25R4rnZbckJEb6Loxz1f5QMuJpJnbSyQ== +nock@^13.5.4: + version "13.5.4" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.5.4.tgz#8918f0addc70a63736170fef7106a9721e0dc479" + integrity sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw== dependencies: debug "^4.1.0" json-stringify-safe "^5.0.1" @@ -6706,26 +6547,6 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c" - integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg== - dependencies: - hosted-git-info "^5.0.0" - is-core-module "^2.8.1" - semver "^7.3.5" - validate-npm-package-license "^3.0.4" - normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -6753,13 +6574,6 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" - integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== - dependencies: - path-key "^4.0.0" - object-inspect@^1.13.1, object-inspect@^1.9.0: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" @@ -6822,33 +6636,26 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open-cli@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/open-cli/-/open-cli-7.2.0.tgz#9431203847648890026c54c08dcd3430c6fce23f" - integrity sha512-1ANJc8oJ92FiaNZ0o2Hw4WBvDJoXs1P74aFMtpAvlbkIPV4uPcQvDz7V6kMOrsZkmB4tglrHVMlLQaafuUuxXg== +open-cli@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/open-cli/-/open-cli-8.0.0.tgz#077d11bd5f1247895028d41ab3ea74c3d63e6c02" + integrity sha512-3muD3BbfLyzl+aMVSEfn2FfOqGdPYR0O4KNnxXsLEPE2q9OSjBfJAaB6XKbrUzLgymoSMejvb5jpXJfru/Ko2A== dependencies: - file-type "^18.2.1" + file-type "^18.7.0" get-stdin "^9.0.0" - meow "^11.0.0" - open "^9.0.0" - tempy "^3.0.0" + meow "^12.1.1" + open "^10.0.0" + tempy "^3.1.0" -open@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== +open@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/open/-/open-10.1.0.tgz#a7795e6e5d519abe4286d9937bb24b51122598e1" + integrity sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw== dependencies: - default-browser "^4.0.0" + default-browser "^5.2.1" define-lazy-prop "^3.0.0" is-inside-container "^1.0.0" - is-wsl "^2.2.0" + is-wsl "^3.1.0" optionator@^0.8.1: version "0.8.3" @@ -6893,13 +6700,6 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" -p-limit@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" - integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - dependencies: - yocto-queue "^1.0.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -6914,13 +6714,6 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-locate@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" - integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - dependencies: - p-limit "^4.0.0" - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -6968,11 +6761,6 @@ path-exists@^4.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-exists@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" - integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -6988,11 +6776,6 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -7065,10 +6848,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prettier@^2.8.8: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== pretty-format@^29.0.0, pretty-format@^29.7.0: version "29.7.0" @@ -7136,11 +6919,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quick-lru@^6.1.1: - version "6.1.2" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-6.1.2.tgz#e9a90524108629be35287d0b864e7ad6ceb3659e" - integrity sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ== - randombytes@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -7168,15 +6946,6 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -read-pkg-up@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-9.1.0.tgz#38ca48e0bc6c6b260464b14aad9bcd4e5b1fbdc3" - integrity sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg== - dependencies: - find-up "^6.3.0" - read-pkg "^7.1.0" - type-fest "^2.5.0" - read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -7186,16 +6955,6 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-7.1.0.tgz#438b4caed1ad656ba359b3e00fd094f3c427a43e" - integrity sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg== - dependencies: - "@types/normalize-package-data" "^2.4.1" - normalize-package-data "^3.0.2" - parse-json "^5.2.0" - type-fest "^2.0.0" - readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" @@ -7212,14 +6971,6 @@ readable-web-to-node-stream@^3.0.2: dependencies: readable-stream "^3.6.0" -redent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" - integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== - dependencies: - indent-string "^5.0.0" - strip-indent "^4.0.0" - regenerate-unicode-properties@^10.1.0: version "10.1.1" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" @@ -7352,12 +7103,10 @@ ripemd160@^2.0.1, ripemd160@^2.0.2: hash-base "^3.0.0" inherits "^2.0.1" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" +run-applescript@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.0.0.tgz#e5a553c2bffd620e169d276c1cd8f1b64778fbeb" + integrity sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A== run-parallel@^1.1.9: version "1.2.0" @@ -7424,7 +7173,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: +semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -7542,12 +7291,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -sock-daemon@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/sock-daemon/-/sock-daemon-1.4.1.tgz#0cc21555d4b71b639f4267115351d3cd609e1f4a" - integrity sha512-KaiK8hLNEMKydOsdveudcruwzps/j83v4C1JQ58Bs8skIiMe1pAYSqHcNoxmU1McIaPTRIrhskB7g+TuzLzfjg== +sock-daemon@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/sock-daemon/-/sock-daemon-1.4.2.tgz#b9d5d1f8b156b20a7c1ceba095da8b8745fac405" + integrity sha512-IzbegWshWWR+UzQ7487mbdYNmfJ1jXUXQBUHooqtpylO+aW0vMVbFN2d2ug3CSPZ0wbG7ZTTGwpUuthIDFIOGg== dependencies: - mkdirp "^3.0.1" rimraf "^5.0.5" signal-exit "^4.1.0" socket-post-message "^1.0.3" @@ -7748,18 +7496,6 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" - integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== - dependencies: - min-indent "^1.0.1" - strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -7825,7 +7561,7 @@ temp-dir@^3.0.0: resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-3.0.0.tgz#7f147b42ee41234cc6ba3138cd8e8aa2302acffa" integrity sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw== -tempy@^3.0.0: +tempy@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/tempy/-/tempy-3.1.0.tgz#00958b6df85db8589cb595465e691852aac038e9" integrity sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g== @@ -7849,11 +7585,6 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -7884,11 +7615,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -trim-newlines@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" - integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== - ts-interface-checker@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-1.0.2.tgz#63f73a098b0ed34b982df1f490c54890e8e5e0b3" @@ -7931,10 +7657,10 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tsimp@^2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/tsimp/-/tsimp-2.0.10.tgz#5113450fc2edca1c305d45c7f2d639645b97a529" - integrity sha512-FLcP/VOvIROt+w2qBrTcUAuHHeMoKI+pTJ1JDt2ADhMgyKYS87M28BXoBFOdVuewpl8030/33gNXolbbshW5Xw== +tsimp@^2.0.11: + version "2.0.11" + resolved "https://registry.yarnpkg.com/tsimp/-/tsimp-2.0.11.tgz#28b7efb609a070554cedb4309c1a7def662e93ab" + integrity sha512-wRhMmvar8tWHN3ZmykD8f4B4sjCn/f8DFM67LRY+stf/LPa2Kq8ATE2PIi570/DiDJA8kjjxzos3EgP0LmnFLA== dependencies: "@isaacs/cached" "^1.0.1" "@isaacs/catcher" "^1.0.4" @@ -7943,7 +7669,7 @@ tsimp@^2.0.10: pirates "^4.0.6" rimraf "^5.0.5" signal-exit "^4.1.0" - sock-daemon "^1.4.1" + sock-daemon "^1.4.2" walk-up-path "^3.0.1" tslib@2.4.0: @@ -8012,16 +7738,11 @@ type-fest@^1.0.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== -type-fest@^2.0.0, type-fest@^2.12.2, type-fest@^2.13.0, type-fest@^2.5.0: +type-fest@^2.12.2: version "2.19.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== -type-fest@^3.1.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" - integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== - typed-array-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" @@ -8068,7 +7789,12 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^5.3.3, typescript@~5.3.2: +typescript@^5.4.2: + version "5.4.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372" + integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== + +typescript@~5.3.2: version "5.3.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== @@ -8139,11 +7865,6 @@ unique-string@^3.0.0: dependencies: crypto-random-string "^4.0.0" -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" @@ -8201,7 +7922,7 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^2.0.0" -validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: +validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== @@ -8424,8 +8145,3 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -yocto-queue@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" - integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==