diff --git a/packages/data-store/src/__tests__/contact.store.test.ts b/packages/data-store/src/__tests__/contact.store.test.ts index 2d13f1cfb..cfb11ca62 100644 --- a/packages/data-store/src/__tests__/contact.store.test.ts +++ b/packages/data-store/src/__tests__/contact.store.test.ts @@ -403,7 +403,7 @@ describe('Database entities test', () => { expect(result).toBeDefined() }) - it('should get holder identity by id', async () => { + it('should get holderDID identity by id', async () => { const contact = { name: 'test_name', alias: 'test_alias', diff --git a/packages/did-auth-siop-op-authenticator/__tests__/shared/didAuthSiopOpAuthenticatorAgentLogic.ts b/packages/did-auth-siop-op-authenticator/__tests__/shared/didAuthSiopOpAuthenticatorAgentLogic.ts index ed69ab5d1..be4555ad7 100644 --- a/packages/did-auth-siop-op-authenticator/__tests__/shared/didAuthSiopOpAuthenticatorAgentLogic.ts +++ b/packages/did-auth-siop-op-authenticator/__tests__/shared/didAuthSiopOpAuthenticatorAgentLogic.ts @@ -359,7 +359,7 @@ export default (testContext: { }) }) - it('should get authentication details with getting specific credentials', async () => { + it('should get authentication details with getting specific verifiableCredentials', async () => { const pdSingle: PresentationDefinitionWithLocation = getFileAsJson( './packages/did-auth-siop-op-authenticator/__tests__/vc_vp_examples/pd/pd_single.json' ) @@ -394,7 +394,7 @@ export default (testContext: { }) }) - it('should get authentication details with multiple credentials', async () => { + it('should get authentication details with multiple verifiableCredentials', async () => { const pdMultiple: PresentationDefinitionWithLocation = getFileAsJson( './packages/did-auth-siop-op-authenticator/__tests__/vc_vp_examples/pd/pd_multiple.json' ) diff --git a/packages/did-auth-siop-op-authenticator/package.json b/packages/did-auth-siop-op-authenticator/package.json index 28b5ed0fd..3d1626dbb 100644 --- a/packages/did-auth-siop-op-authenticator/package.json +++ b/packages/did-auth-siop-op-authenticator/package.json @@ -14,8 +14,8 @@ "build:clean": "tsc --build --clean && tsc --build" }, "dependencies": { - "@sphereon/did-auth-siop": "^0.3.0-unstable.42", - "@sphereon/pex": "2.0.0-unstable.14", + "@sphereon/did-auth-siop": "0.3.0-unstable.43", + "@sphereon/pex": "2.0.0-unstable.19", "@sphereon/ssi-sdk-core": "^0.9.0", "@sphereon/ssi-sdk-did-utils": "^0.9.0", "@sphereon/ssi-types": "^0.9.0", diff --git a/packages/did-auth-siop-op-authenticator/src/session/OID4VP.ts b/packages/did-auth-siop-op-authenticator/src/session/OID4VP.ts index d55ca774d..6b8b28758 100644 --- a/packages/did-auth-siop-op-authenticator/src/session/OID4VP.ts +++ b/packages/did-auth-siop-op-authenticator/src/session/OID4VP.ts @@ -12,6 +12,7 @@ import { SelectResults, Status, SubmissionRequirementMatch } from '@sphereon/pex import { ProofOptions } from '@sphereon/ssi-sdk-core' import { createPresentationSignCallback, determineKid, getKey } from './functions' import { FindCredentialsArgs, IIdentifier } from '@veramo/core' +import { Format } from '@sphereon/pex-models' export class OID4VP { private readonly session: OpSession @@ -43,23 +44,34 @@ export class OID4VP { public async createVerifiablePresentations( credentialsWithDefinitions: VerifiableCredentialsWithDefinition[], - opts?: { proofOpts?: ProofOptions; identifierOpts?: IIdentifierOpts; holder?: string; subjectIsHolder?: boolean } + opts?: { + proofOpts?: ProofOptions + identifierOpts?: IIdentifierOpts + holderDID?: string + subjectIsHolder?: boolean + } ): Promise { return await Promise.all(credentialsWithDefinitions.map((cred) => this.createVerifiablePresentation(cred, opts))) } public async createVerifiablePresentation( selectedVerifiableCredentials: VerifiableCredentialsWithDefinition, - opts?: { proofOpts?: ProofOptions; identifierOpts?: IIdentifierOpts; holder?: string; subjectIsHolder?: boolean } + opts?: { + restrictToFormats?: Format + proofOpts?: ProofOptions + identifierOpts?: IIdentifierOpts + holderDID?: string + subjectIsHolder?: boolean + } ): Promise { - if (opts?.subjectIsHolder && opts?.holder) { - throw Error('Cannot both have subject is issuer and a holder value at the same time (programming error)') + if (opts?.subjectIsHolder && opts?.holderDID) { + throw Error('Cannot both have subject is issuer and a holderDID value at the same time (programming error)') } else if ( !selectedVerifiableCredentials || !selectedVerifiableCredentials.credentials || selectedVerifiableCredentials.credentials.length === 0 ) { - throw Error('No verifiable credentials provided for presentation definition') + throw Error('No verifiable verifiableCredentials provided for presentation definition') } let id: IIdentifier | undefined = opts?.identifierOpts?.identifier @@ -70,52 +82,56 @@ export class OID4VP { if (holder) { id = await this.session.context.agent.didManagerGet({ did: holder }) } - } else if (opts?.holder) { - id = await this.session.context.agent.didManagerGet({ did: opts.holder }) + } else if (opts?.holderDID) { + id = await this.session.context.agent.didManagerGet({ did: opts.holderDID }) } } const idOpts = opts?.identifierOpts ?? { identifier: id! } this.assertIdentifier(idOpts.identifier) - // We are making sure to filter, in case the user submitted all credentials in the wallet/agent. We also make sure to get original formats back + // We are making sure to filter, in case the user submitted all verifiableCredentials in the wallet/agent. We also make sure to get original formats back const vcs = await this.filterCredentials(selectedVerifiableCredentials.definition, { - verifiableCredentials: selectedVerifiableCredentials.credentials.map((vc) => CredentialMapper.storedCredentialToOriginalFormat(vc)), + restrictToFormats: opts?.restrictToFormats, + filterOpts: { + verifiableCredentials: selectedVerifiableCredentials.credentials.map((vc) => CredentialMapper.storedCredentialToOriginalFormat(vc)), + }, }) const key = await getKey(idOpts.identifier, 'authentication', this.session.context, idOpts.kid) const signCallback = await createPresentationSignCallback({ presentationSignCallback: this.session.options.presentationSignCallback, kid: determineKid(key, idOpts), context: this.session.context, - format: selectedVerifiableCredentials.definition.definition.format, + format: opts?.restrictToFormats ?? selectedVerifiableCredentials.definition.definition.format, }) - const presentation = await this.getPresentationExchange(vcs.credentials, this.allDIDs).createVerifiablePresentation( + const presentationResult = await this.getPresentationExchange(vcs.credentials, this.allDIDs).createVerifiablePresentation( vcs.definition.definition, vcs.credentials, + signCallback, { proofOptions: opts?.proofOpts, - holder: idOpts.identifier.did, - }, - signCallback + holderDID: idOpts.identifier.did, + } ) return { - credentials: vcs.credentials, + ...presentationResult, + verifiableCredentials: vcs.credentials, definition: selectedVerifiableCredentials.definition, - presentation, identifierOpts: idOpts, } } - public async filterCredentialsAgainstAllDefinitions(filterOpts?: { - verifiableCredentials?: W3CVerifiableCredential[] - filter?: FindCredentialsArgs + public async filterCredentialsAgainstAllDefinitions(opts?: { + filterOpts?: { verifiableCredentials?: W3CVerifiableCredential[]; filter?: FindCredentialsArgs } + holderDIDs?: string[] + restrictToFormats?: Format }): Promise { const defs = await this.getPresentationDefinitions() const result: VerifiableCredentialsWithDefinition[] = [] if (defs) { for (const definition of defs) { - result.push(await this.filterCredentials(definition, filterOpts)) + result.push(await this.filterCredentials(definition, opts)) } } return result @@ -123,21 +139,28 @@ export class OID4VP { public async filterCredentials( presentationDefinition: PresentationDefinitionWithLocation, - filterOpts?: { verifiableCredentials?: W3CVerifiableCredential[]; filter?: FindCredentialsArgs } + opts?: { + filterOpts?: { verifiableCredentials?: W3CVerifiableCredential[]; filter?: FindCredentialsArgs } + holderDIDs?: string[] + restrictToFormats?: Format + } ): Promise { return { definition: presentationDefinition, - credentials: (await this.filterCredentialsWithSelectionStatus(presentationDefinition, filterOpts)) - .verifiableCredential as W3CVerifiableCredential[], + credentials: (await this.filterCredentialsWithSelectionStatus(presentationDefinition, opts)).verifiableCredential as W3CVerifiableCredential[], } } public async filterCredentialsWithSelectionStatus( presentationDefinition: PresentationDefinitionWithLocation, - filterOpts?: { verifiableCredentials?: W3CVerifiableCredential[]; filter?: FindCredentialsArgs } + opts?: { + filterOpts?: { verifiableCredentials?: W3CVerifiableCredential[]; filter?: FindCredentialsArgs } + holderDIDs?: string[] + restrictToFormats?: Format + } ): Promise { const selectionResults: SelectResults = await this.getPresentationExchange( - await this.getCredentials(filterOpts) + await this.getCredentials(opts?.filterOpts) ).selectVerifiableCredentialsForSubmission(presentationDefinition.definition) if (selectionResults.errors && selectionResults.errors.length > 0) { throw Error(JSON.stringify(selectionResults.errors)) diff --git a/packages/did-auth-siop-op-authenticator/src/types/IDidAuthSiopOpAuthenticator.ts b/packages/did-auth-siop-op-authenticator/src/types/IDidAuthSiopOpAuthenticator.ts index 682ece5a6..0859db730 100644 --- a/packages/did-auth-siop-op-authenticator/src/types/IDidAuthSiopOpAuthenticator.ts +++ b/packages/did-auth-siop-op-authenticator/src/types/IDidAuthSiopOpAuthenticator.ts @@ -31,6 +31,7 @@ import { VerifyCallback } from '@sphereon/wellknown-dids-client' import { Resolvable } from 'did-resolver' import { DIDDocument } from '@sphereon/did-uni-client' import { EventEmitter } from 'events' +import { VerifiablePresentationResult } from '@sphereon/pex' export interface IDidAuthSiopOpAuthenticator extends IPluginMethodMap { siopGetOPSession(args: IGetSiopSessionArgs, context: IRequiredContext): Promise @@ -206,10 +207,9 @@ export interface VerifiableCredentialsWithDefinition { credentials: W3CVerifiableCredential[] } -export interface VerifiablePresentationWithDefinition { +export interface VerifiablePresentationWithDefinition extends VerifiablePresentationResult { definition: PresentationDefinitionWithLocation - credentials: W3CVerifiableCredential[] - presentation: W3CVerifiablePresentation + verifiableCredentials: W3CVerifiableCredential[] identifierOpts: IIdentifierOpts } export const DEFAULT_JWT_PROOF_TYPE = 'JwtProof2020' diff --git a/packages/ms-authenticator/src/authenticators/MsAuthenticator.ts b/packages/ms-authenticator/src/authenticators/MsAuthenticator.ts index d5db439dd..5e9079d30 100644 --- a/packages/ms-authenticator/src/authenticators/MsAuthenticator.ts +++ b/packages/ms-authenticator/src/authenticators/MsAuthenticator.ts @@ -15,7 +15,7 @@ const MS_LOGIN_OPENID_CONFIG_POSTFIX = '/v2.0/.well-known/openid-configuration' const MS_CLIENT_CREDENTIAL_DEFAULT_SCOPE = '3db474b9-6a0c-4840-96ac-1fceb342124f/.default' const ERROR_CREDENTIAL_MANIFEST_REGION = `Error in config file. CredentialManifest URL configured for wrong tenant region. Should start with:` -const ERROR_ACQUIRE_ACCESS_TOKEN_FOR_CLIENT = 'Could not acquire credentials to access your Azure Key Vault:\n' +const ERROR_ACQUIRE_ACCESS_TOKEN_FOR_CLIENT = 'Could not acquire verifiableCredentials to access your Azure Key Vault:\n' const ERROR_FAILED_AUTHENTICATION = 'failed to authenticate: ' async function getClientRegion(azTenantId: string): Promise { diff --git a/packages/ssi-types/src/mapper/credential-mapper.ts b/packages/ssi-types/src/mapper/credential-mapper.ts index 3d046a6c6..5d0ed326a 100644 --- a/packages/ssi-types/src/mapper/credential-mapper.ts +++ b/packages/ssi-types/src/mapper/credential-mapper.ts @@ -100,7 +100,7 @@ export class CredentialMapper { const presentation = { ...vp, - verifiableCredential: vcs, // We overwrite the credentials with wrapped versions, making it an InternalVerifiablePresentation. Note: we keep the singular key name of the vc data model + verifiableCredential: vcs, // We overwrite the verifiableCredentials with wrapped versions, making it an InternalVerifiablePresentation. Note: we keep the singular key name of the vc data model } as UniformVerifiablePresentation return { type, diff --git a/packages/ssi-types/src/types/vc.ts b/packages/ssi-types/src/types/vc.ts index f6074cf55..b46d70d6c 100644 --- a/packages/ssi-types/src/types/vc.ts +++ b/packages/ssi-types/src/types/vc.ts @@ -9,7 +9,7 @@ export interface ICredential { '@context': ICredentialContextType | ICredentialContextType[] type: string[] credentialSchema?: undefined | ICredentialSchemaType | ICredentialSchemaType[] - // If iss is present, the value MUST be used to set the issuer property of the new credential JSON object or the holder property of the new presentation JSON object. + // If iss is present, the value MUST be used to set the issuer property of the new credential JSON object or the holderDID property of the new presentation JSON object. issuer: IIssuerId | IIssuer // If nbf is present, the UNIX timestamp MUST be converted to an [XMLSCHEMA11-2] date-time, and MUST be used to set the value of the issuanceDate property of the new JSON object. issuanceDate: string diff --git a/packages/vc-handler-ld-local/plugin.schema.json b/packages/vc-handler-ld-local/plugin.schema.json index 7ccb921b0..afe9fe045 100644 --- a/packages/vc-handler-ld-local/plugin.schema.json +++ b/packages/vc-handler-ld-local/plugin.schema.json @@ -451,7 +451,7 @@ "properties": { "presentation": { "$ref": "#/components/schemas/PresentationPayload", - "description": "The json payload of the Presentation according to the\n {@link https://www.w3.org/TR/vc-data-model/#presentations | canonical model } .\n\nThe signer of the Presentation is chosen based on the `holder` property of the `presentation`\n\n'@context', 'type' and 'issuanceDate' will be added automatically if omitted" + "description": "The json payload of the Presentation according to the\n {@link https://www.w3.org/TR/vc-data-model/#presentations | canonical model } .\n\nThe signer of the Presentation is chosen based on the `holderDID` property of the `presentation`\n\n'@context', 'type' and 'issuanceDate' will be added automatically if omitted" }, "challenge": { "type": "string", @@ -800,7 +800,7 @@ "arguments", "caller" ], - "description": "Check status function, to check credentials that have a credentialStatus property" + "description": "Check status function, to check verifiableCredentials that have a credentialStatus property" } }, "required": [ @@ -882,7 +882,7 @@ "arguments", "caller" ], - "description": "Check status function, to check credentials that have a credentialStatus property" + "description": "Check status function, to check verifiableCredentials that have a credentialStatus property" } }, "required": [ diff --git a/packages/vc-handler-ld-local/src/agent/CredentialHandlerLDLocal.ts b/packages/vc-handler-ld-local/src/agent/CredentialHandlerLDLocal.ts index 487003e6e..b94e06f86 100644 --- a/packages/vc-handler-ld-local/src/agent/CredentialHandlerLDLocal.ts +++ b/packages/vc-handler-ld-local/src/agent/CredentialHandlerLDLocal.ts @@ -154,7 +154,7 @@ export class CredentialHandlerLDLocal implements IAgentPlugin { }*/ if (!isDefined(presentation.holder) || !presentation.holder) { - throw new Error('invalid_argument: args.presentation.holder must not be empty') + throw new Error('invalid_argument: args.presentation.holderDID must not be empty') } if (args.presentation.verifiableCredential) { @@ -175,7 +175,7 @@ export class CredentialHandlerLDLocal implements IAgentPlugin { try { identifier = await context.agent.didManagerGet({ did: presentation.holder }) } catch (e) { - throw new Error('invalid_argument: args.presentation.holder must be a DID managed by this agent') + throw new Error('invalid_argument: args.presentation.holderDID must be a DID managed by this agent') } try { const { managedKey, verificationMethod } = await this.getSigningKey(identifier, args.keyRef) diff --git a/packages/vc-handler-ld-local/src/ld-suites.ts b/packages/vc-handler-ld-local/src/ld-suites.ts index e73d939fb..d28b48dc9 100644 --- a/packages/vc-handler-ld-local/src/ld-suites.ts +++ b/packages/vc-handler-ld-local/src/ld-suites.ts @@ -26,7 +26,7 @@ export abstract class SphereonLdSignature { abstract preVerificationCredModification(credential: VerifiableCredential): void preSigningPresModification(presentation: PresentationPayload): void { - // TODO: Remove invalid field 'verifiers' from Presentation. Needs to be adapted for LD credentials + // TODO: Remove invalid field 'verifiers' from Presentation. Needs to be adapted for LD verifiableCredentials // Only remove empty array (vc.signPresentation will throw then) const sanitizedPresentation = presentation as any if (sanitizedPresentation?.verifier?.length == 0) { diff --git a/packages/vc-handler-ld-local/src/types/types.ts b/packages/vc-handler-ld-local/src/types/types.ts index 80272d04f..d03629510 100644 --- a/packages/vc-handler-ld-local/src/types/types.ts +++ b/packages/vc-handler-ld-local/src/types/types.ts @@ -21,7 +21,7 @@ export interface ICreateVerifiablePresentationLDArgs { * The json payload of the Presentation according to the * {@link https://www.w3.org/TR/vc-data-model/#presentations | canonical model}. * - * The signer of the Presentation is chosen based on the `holder` property + * The signer of the Presentation is chosen based on the `holderDID` property * of the `presentation` * * '@context', 'type' and 'issuanceDate' will be added automatically if omitted @@ -105,7 +105,7 @@ export interface IVerifyCredentialLDArgs { purpose?: IAuthenticationProofPurpose | IControllerProofPurpose | IAssertionProofPurpose | IProofPurpose /** - * Check status function, to check credentials that have a credentialStatus property + * Check status function, to check verifiableCredentials that have a credentialStatus property */ checkStatus?: Function } @@ -150,7 +150,7 @@ export interface IVerifyPresentationLDArgs { presentationPurpose?: IAuthenticationProofPurpose | IControllerProofPurpose | IAssertionProofPurpose | IProofPurpose /** - * Check status function, to check credentials that have a credentialStatus property + * Check status function, to check verifiableCredentials that have a credentialStatus property */ checkStatus?: Function } diff --git a/packages/wellknown-did-issuer/__tests__/shared/wellKnownDidIssuerAgentLogic.ts b/packages/wellknown-did-issuer/__tests__/shared/wellKnownDidIssuerAgentLogic.ts index 68b5606da..fa91befc5 100644 --- a/packages/wellknown-did-issuer/__tests__/shared/wellKnownDidIssuerAgentLogic.ts +++ b/packages/wellknown-did-issuer/__tests__/shared/wellKnownDidIssuerAgentLogic.ts @@ -159,7 +159,7 @@ export default (testContext: { }, ], }) - ).rejects.toThrow('All credentials should be issued for the same origin') + ).rejects.toThrow('All verifiableCredentials should be issued for the same origin') }) it('should throw error if credential issuance callbackName is not found when issueing DID configuration resource', async () => { diff --git a/packages/wellknown-did-issuer/src/agent/WellKnownDidIssuer.ts b/packages/wellknown-did-issuer/src/agent/WellKnownDidIssuer.ts index 6aa234f6f..e3a59a862 100644 --- a/packages/wellknown-did-issuer/src/agent/WellKnownDidIssuer.ts +++ b/packages/wellknown-did-issuer/src/agent/WellKnownDidIssuer.ts @@ -69,7 +69,7 @@ export class WellKnownDidIssuer implements IAgentPlugin { context: RequiredContext ): Promise { if (!args.issuances.every((issuance: IIssueDomainLinkageCredentialArgs) => issuance.origin === args.issuances[0].origin)) { - return Promise.reject(Error('All credentials should be issued for the same origin')) + return Promise.reject(Error('All verifiableCredentials should be issued for the same origin')) } // TODO We should combine all origins into one service when we update to Veramo 3.1.6.next-165 or higher, as then we can support multiple origins diff --git a/yarn.lock b/yarn.lock index b9b3e1567..519427864 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2312,15 +2312,15 @@ "@trust/keyto" "^2.0.0-alpha1" "@veramo/core" "4.2.0" -"@sphereon/did-auth-siop@^0.3.0-unstable.42": - version "0.3.0-unstable.42" - resolved "https://registry.yarnpkg.com/@sphereon/did-auth-siop/-/did-auth-siop-0.3.0-unstable.42.tgz#73892daf3951814a36fa8899de688764e46a7b0e" - integrity sha512-U8LAlCkO/ZF5wxnga8imRxjTna+5gzFmmV8RpKtdBBW1ng2lKUgozmsCJTo2TjlPuIoU3tA8IUdUchlYy/7iZA== +"@sphereon/did-auth-siop@0.3.0-unstable.43": + version "0.3.0-unstable.43" + resolved "https://registry.yarnpkg.com/@sphereon/did-auth-siop/-/did-auth-siop-0.3.0-unstable.43.tgz#cfcad3f689ef8fa0b4b35d9f7e976e19bb3b7394" + integrity sha512-eI11HjnuhIsGC3WLjopEnhJNg08RaJMlUYMKN0bU65XYwssJnd1AP2GlRDd9fKjnoB9eoKfNz3PSKlWGfKtn9A== dependencies: "@sphereon/did-uni-client" "^0.6.0" - "@sphereon/pex" "^2.0.0-unstable.14" - "@sphereon/pex-models" "^1.2.2" - "@sphereon/ssi-types" "^0.9.1-next.113" + "@sphereon/pex" "2.0.0-unstable.19" + "@sphereon/pex-models" "2.0.0-unstable.2" + "@sphereon/ssi-types" "0.9.1-next.118" "@sphereon/wellknown-dids-client" "^0.1.3" cross-fetch "^3.1.5" did-jwt "^6.11.6" @@ -2396,29 +2396,29 @@ "@waves/ts-lib-crypto" "^1.4.4-beta.1" lto-api "^0.5.14" -"@sphereon/pex-models@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@sphereon/pex-models/-/pex-models-1.2.2.tgz#85d2062693c0a9c31fb5c1be0847675141803846" - integrity sha512-/pGDQGs4lSK4Fuf6WzaGengb1UqNYmjRdkIC+dJT89kMktIwJLoNB2PvQHcggn3nEbmwZFB/1dgJGumAnWPYsg== +"@sphereon/pex-models@2.0.0-unstable.2", "@sphereon/pex-models@^2.0.0-unstable.2": + version "2.0.0-unstable.2" + resolved "https://registry.yarnpkg.com/@sphereon/pex-models/-/pex-models-2.0.0-unstable.2.tgz#ca7844c5a4960d3d937e9790ff1e8ce952da8162" + integrity sha512-VNRf67G1LcJ0B8odeczJHAZ1Wec5Y4Lyhw/atW3NOlxbIMCowaMxNZddGmHIRNWHcqWnil3eL4rcMATIcoCc5Q== -"@sphereon/pex@2.0.0-unstable.14", "@sphereon/pex@^2.0.0-unstable.14": - version "2.0.0-unstable.14" - resolved "https://registry.yarnpkg.com/@sphereon/pex/-/pex-2.0.0-unstable.14.tgz#13727200866206a93aa478a2e4ba651bb2024d91" - integrity sha512-QraUuoy6dxcZTcdK7pH6qcCAN+jJtWCfPC54eVLah7c5ogj8tuP9XYa1dSonuJ/ZUIrIvaRXB3ALSzvP3aWMhQ== +"@sphereon/pex@2.0.0-unstable.19": + version "2.0.0-unstable.19" + resolved "https://registry.yarnpkg.com/@sphereon/pex/-/pex-2.0.0-unstable.19.tgz#68da59c1ac6c4b71199d3f7f450f4d5eb596a8d3" + integrity sha512-k7wGRbME8ujSorN59l/pubtySGDAbrOV0WpRl5UTGp23wCLabApP2CUvUbNW3UyFbFFs24SFaJN8y2y3HEQbiQ== dependencies: - "@sphereon/pex-models" "^1.2.2" - "@sphereon/ssi-types" "^0.9.0" + "@sphereon/pex-models" "^2.0.0-unstable.2" + "@sphereon/ssi-types" "0.9.1-next.118" ajv "^8.12.0" ajv-formats "^2.1.1" jsonpath "^1.1.1" jwt-decode "^3.1.2" - nanoid "^3.3.4" + nanoid "^3.3.6" string.prototype.matchall "^4.0.8" -"@sphereon/ssi-types@^0.9.1-next.113": - version "0.9.1-unstable.136" - resolved "https://registry.yarnpkg.com/@sphereon/ssi-types/-/ssi-types-0.9.1-unstable.136.tgz#160a1ef075e01879e8fd7cac5523f3afdc0bd8c4" - integrity sha512-ugtoM+FVBTR+lNmJvQPPLkrkaC8tPDzS5GA/A56gdCSh8YZoCh7CympVZYHKF9W0gg0lqhCd+kh09UoFUdGLQg== +"@sphereon/ssi-types@0.9.1-next.118": + version "0.9.1-next.118" + resolved "https://registry.yarnpkg.com/@sphereon/ssi-types/-/ssi-types-0.9.1-next.118.tgz#1e83765e0b69badb9fdd5264e7ae58128b38696b" + integrity sha512-N8xHmSS22uEXumHHxuuLQki/5oJ7ZXeSqK3kNkejKfYZ/iDrSduJ9wfXgD/lzsBZFwf4QRIczAtjlnSFbq3RAg== dependencies: jwt-decode "^3.1.2" @@ -10493,10 +10493,10 @@ nan@^2.14.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== -nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== natural-compare-lite@^1.4.0: version "1.4.0" @@ -12045,6 +12045,21 @@ random-bytes@~1.0.0: resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== +randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -12471,7 +12486,7 @@ rxjs@^7.5.4, rxjs@^7.5.5: dependencies: tslib "^2.1.0" -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==