diff --git a/apps/shared/package.json b/apps/shared/package.json index 435dbf27e0e2164c361ab8e474bdc1501717b2d0..c3871f84d0039ce149728fb8e009a695d320fb09 100644 --- a/apps/shared/package.json +++ b/apps/shared/package.json @@ -15,9 +15,9 @@ "test": "jest" }, "dependencies": { - "@credo-ts/anoncreds": "0.5.0-alpha.149", - "@credo-ts/core": "0.5.0-alpha.149", - "@credo-ts/tenants": "0.5.0-alpha.149", + "@credo-ts/anoncreds": "0.5.0-alpha.151", + "@credo-ts/core": "0.5.0-alpha.151", + "@credo-ts/tenants": "0.5.0-alpha.151", "@elastic/ecs-winston-format": "1.5.2", "@nestjs/axios": "3.0.2", "@nestjs/swagger": "7.3.0", diff --git a/apps/ssi-abstraction/package.json b/apps/ssi-abstraction/package.json index 2844e984dd26dd86bef47edb481768b0412fea58..15c6be7be8d8eec20cb2d9690a6a9f8539d527e7 100644 --- a/apps/ssi-abstraction/package.json +++ b/apps/ssi-abstraction/package.json @@ -15,12 +15,12 @@ "test:e2e": "pnpm test -- -c=test/jest.config.js --runInBand" }, "dependencies": { - "@credo-ts/anoncreds": "0.5.0-alpha.149", - "@credo-ts/askar": "0.5.0-alpha.149", - "@credo-ts/core": "0.5.0-alpha.149", - "@credo-ts/indy-vdr": "0.5.0-alpha.149", - "@credo-ts/node": "0.5.0-alpha.149", - "@credo-ts/tenants": "0.5.0-alpha.149", + "@credo-ts/anoncreds": "0.5.0-alpha.151", + "@credo-ts/askar": "0.5.0-alpha.151", + "@credo-ts/core": "0.5.0-alpha.151", + "@credo-ts/indy-vdr": "0.5.0-alpha.151", + "@credo-ts/node": "0.5.0-alpha.151", + "@credo-ts/tenants": "0.5.0-alpha.151", "@elastic/ecs-winston-format": "1.5.2", "@hyperledger/anoncreds-nodejs": "^0.2.1", "@hyperledger/aries-askar-nodejs": "^0.2.0", diff --git a/apps/ssi-abstraction/src/agent/anoncredsCredentials/anoncredsCredentials.service.ts b/apps/ssi-abstraction/src/agent/anoncredsCredentials/anoncredsCredentials.service.ts index 6159fcf964c451c8ce98977668a6e943548db6db..8ba0be625d3ca406cd514e3ec2ed063db3c72d40 100644 --- a/apps/ssi-abstraction/src/agent/anoncredsCredentials/anoncredsCredentials.service.ts +++ b/apps/ssi-abstraction/src/agent/anoncredsCredentials/anoncredsCredentials.service.ts @@ -27,6 +27,7 @@ import type { import { AutoAcceptCredential, CredentialEventTypes, + CredentialRole, CredentialState, } from '@credo-ts/core'; import { GenericRecord } from '@credo-ts/core/build/modules/generic-records/repository/GenericRecord.js'; @@ -217,7 +218,7 @@ export class AnonCredsCredentialsService { throw new Error('Connection with yourself is not ready, yet'); } - const acceptOfferListener = new Promise((resolve) => { + const acceptOfferListener = new Promise<void>((resolve) => { this.agentService.agent.events.on<CredentialStateChangedEvent>( CredentialEventTypes.CredentialStateChanged, async ({ payload: { credentialRecord } }) => { @@ -242,7 +243,7 @@ export class AnonCredsCredentialsService { autoAcceptCredential: AutoAcceptCredential.Always, }); - resolve(connectionRecord); + resolve(); }, ); }); @@ -252,8 +253,8 @@ export class AnonCredsCredentialsService { CredentialEventTypes.CredentialStateChanged, ({ payload: { credentialRecord } }) => { if ( - credentialRecord.state === CredentialState.Done || - credentialRecord.state === CredentialState.CredentialIssued + credentialRecord.state === CredentialState.Done && + credentialRecord.role === CredentialRole.Holder ) resolve(credentialRecord); }, diff --git a/apps/ssi-abstraction/src/agent/connections/connections.service.ts b/apps/ssi-abstraction/src/agent/connections/connections.service.ts index 776cbeb0ad6cb28c6d0d49b597a6d2fde9038290..bd1cec984f758746c52badf2ab619c159bfaf343 100644 --- a/apps/ssi-abstraction/src/agent/connections/connections.service.ts +++ b/apps/ssi-abstraction/src/agent/connections/connections.service.ts @@ -120,6 +120,22 @@ export class ConnectionsService { }); } + public async waitUntilComplete({ connectionId }: { connectionId: string }) { + return new Promise<ConnectionRecord>((resolve) => + this.agent.events.on<ConnectionStateChangedEvent>( + ConnectionEventTypes.ConnectionStateChanged, + ({ payload: { connectionRecord } }) => { + if ( + connectionRecord.id === connectionId && + connectionRecord.state === DidExchangeState.Completed + ) { + resolve(connectionRecord); + } + }, + ), + ); + } + public async receiveInvitationFromUrl({ tenantId, invitationUrl, @@ -173,7 +189,10 @@ export class ConnectionsService { ); const connRepo = t.dependencyManager.resolve(ConnectionRepository); - await connRepo.update(t.context, connectionRecord); + // Check whether the connection record actually belongs to the current tenant (t) + if (await connRepo.findById(t.context, connectionRecord.id)) { + await connRepo.update(t.context, connectionRecord); + } resolve(connectionRecord); }, diff --git a/apps/ssi-abstraction/test/anoncredsCredentials.e2e-spec.ts b/apps/ssi-abstraction/test/anoncredsCredentials.e2e-spec.ts index e87583b335e314da0cff9c0b977a6b60d71a265c..3b218975320644644d828159e4e78f15eaba2cff 100644 --- a/apps/ssi-abstraction/test/anoncredsCredentials.e2e-spec.ts +++ b/apps/ssi-abstraction/test/anoncredsCredentials.e2e-spec.ts @@ -9,7 +9,6 @@ import type { EventAnonCredsCredentialsDeleteByIdInput, EventAnonCredsCredentialsGetAllInput, EventAnonCredsCredentialsGetByIdInput, - EventDidcommAnonCredsCredentialsAcceptOffer, EventDidcommAnonCredsCredentialsAcceptOfferInput, EventDidcommAnonCredsCredentialsOfferInput, EventDidcommAnonCredsCredentialsOfferToSelfInput, @@ -18,11 +17,13 @@ import type { import { AutoAcceptCredential, CredentialExchangeRecord, + CredentialRole, CredentialState, } from '@credo-ts/core'; import { ClientsModule, Transport } from '@nestjs/microservices'; import { Test } from '@nestjs/testing'; import { + EventDidcommAnonCredsCredentialsAcceptOffer, EventAnonCredsCredentialOfferGetAll, EventAnonCredsCredentialOfferGetById, EventAnonCredsCredentialRequestGetAll, @@ -30,10 +31,10 @@ import { EventAnonCredsCredentialsDeleteById, EventAnonCredsCredentialsGetAll, EventAnonCredsCredentialsGetById, - EventAnonCredsProofsDeleteById, EventDidcommAnonCredsCredentialsOffer, EventDidcommAnonCredsCredentialsOfferToSelf, } from '@ocm/shared'; +import assert from 'assert'; import { randomBytes } from 'crypto'; import { firstValueFrom } from 'rxjs'; @@ -57,6 +58,7 @@ describe('Credentials', () => { let app: INestApplication; let client: ClientProxy; let tenantId: string; + let tenantIdTwo: string; let issuerDid: string; let credentialDefinitionId: string; @@ -116,6 +118,11 @@ describe('Credentials', () => { const { id } = await tenantsService.create({ label: TOKEN }); tenantId = id; + const { id: tIdTwo } = await tenantsService.create({ + label: `${TOKEN}-two`, + }); + tenantIdTwo = tIdTwo; + const connectionsService = app.get(ConnectionsService); await connectionsService.createConnectionWithSelf({ tenantId }); @@ -150,15 +157,16 @@ describe('Credentials', () => { const connectionService = app.get(ConnectionsService); const { invitationUrl } = await connectionService.createInvitation({ - tenantId, + tenantId: tenantIdTwo, }); - const { id: cId } = await connectionService.receiveInvitationFromUrl({ + const connectionRecord = await connectionService.receiveInvitationFromUrl({ tenantId, invitationUrl, }); - connectionId = cId; + connectionId = connectionRecord.id; + await connectionService.waitUntilComplete({ connectionId }); }); afterAll(async () => { @@ -166,7 +174,7 @@ describe('Credentials', () => { client.close(); }); - xit(EventAnonCredsCredentialsGetAll.token, async () => { + it(EventAnonCredsCredentialsGetAll.token, async () => { const response$ = client.send< EventAnonCredsCredentialsGetAll, EventAnonCredsCredentialsGetAllInput @@ -177,7 +185,7 @@ describe('Credentials', () => { expect(eventInstance.instance).toEqual(expect.arrayContaining([])); }); - xit(EventAnonCredsCredentialOfferGetAll.token, async () => { + it(EventAnonCredsCredentialOfferGetAll.token, async () => { const response$ = client.send< EventAnonCredsCredentialOfferGetAll, EventAnonCredsCredentialOfferGetAllInput @@ -189,7 +197,7 @@ describe('Credentials', () => { expect(eventInstance.instance).toEqual(expect.arrayContaining([])); }); - xit(EventAnonCredsCredentialOfferGetById.token, async () => { + it(EventAnonCredsCredentialOfferGetById.token, async () => { const response$ = client.send< EventAnonCredsCredentialOfferGetById, EventAnonCredsCredentialOfferGetByIdInput @@ -204,7 +212,7 @@ describe('Credentials', () => { expect(eventInstance.instance).toBeNull(); }); - xit(EventAnonCredsCredentialRequestGetAll.token, async () => { + it(EventAnonCredsCredentialRequestGetAll.token, async () => { const response$ = client.send< EventAnonCredsCredentialRequestGetAll, EventAnonCredsCredentialRequestGetAllInput @@ -216,7 +224,7 @@ describe('Credentials', () => { expect(eventInstance.instance).toEqual(expect.arrayContaining([])); }); - xit(EventAnonCredsCredentialRequestGetById.token, async () => { + it(EventAnonCredsCredentialRequestGetById.token, async () => { const response$ = client.send< EventAnonCredsCredentialRequestGetById, EventAnonCredsCredentialRequestGetByIdInput @@ -231,7 +239,7 @@ describe('Credentials', () => { expect(eventInstance.instance).toBeNull(); }); - xit(EventAnonCredsCredentialsGetById.token, async () => { + it(EventAnonCredsCredentialsGetById.token, async () => { const response$ = client.send< EventAnonCredsCredentialsGetById, EventAnonCredsCredentialsGetByIdInput @@ -245,7 +253,7 @@ describe('Credentials', () => { expect(eventInstance.instance).toEqual(null); }); - xit(EventDidcommAnonCredsCredentialsOffer.token, async () => { + it(EventDidcommAnonCredsCredentialsOffer.token, async () => { const attributes = [ { name: 'Name', value: 'Berend' }, { name: 'Age', value: '25' }, @@ -265,23 +273,75 @@ describe('Credentials', () => { const eventInstance = EventDidcommAnonCredsCredentialsOffer.fromEvent(response); - await new Promise((r) => setTimeout(r, 2000)); + expect(eventInstance.instance).toMatchObject({ + state: CredentialState.OfferSent, + }); + + const getAllOffersResponse$ = client.send< + EventAnonCredsCredentialOfferGetAll, + EventAnonCredsCredentialOfferGetAllInput + >(EventAnonCredsCredentialOfferGetAll.token, { + tenantId: tenantIdTwo, + }); + + const getAllOffersResponse = await firstValueFrom(getAllOffersResponse$); + const getAllOffersEventInstance = + EventAnonCredsCredentialOfferGetAll.fromEvent(getAllOffersResponse); + + const receivedOffer = getAllOffersEventInstance.instance.find( + (o) => o.state === CredentialState.OfferReceived, + ); + + expect(receivedOffer).toMatchObject({ + state: CredentialState.OfferReceived, + }); + + assert(receivedOffer); const acceptResponse$ = client.send< EventDidcommAnonCredsCredentialsAcceptOffer, EventDidcommAnonCredsCredentialsAcceptOfferInput - >(EventDidcommAnonCredsCredentialsOffer.token, { - tenantId, - credentialId: eventInstance.instance.id, + >(EventDidcommAnonCredsCredentialsAcceptOffer.token, { + tenantId: tenantIdTwo, + credentialId: receivedOffer.id, }); const acceptResponse = await firstValueFrom(acceptResponse$); const acceptEventInstance = - EventAnonCredsCredentialsGetById.fromEvent(acceptResponse); + EventDidcommAnonCredsCredentialsOffer.fromEvent(acceptResponse); expect(acceptEventInstance.instance).toMatchObject({ state: CredentialState.RequestSent, }); + + await new Promise((r) => setTimeout(r, 2000)); + + const getAllCredentialsResponse$ = client.send< + EventAnonCredsCredentialsGetAll, + EventAnonCredsCredentialsGetAllInput + >(EventAnonCredsCredentialsGetAll.token, { + tenantId: tenantIdTwo, + }); + + const getAllCredentialsResponse = await firstValueFrom( + getAllCredentialsResponse$, + ); + const getAllCredentialsEventInstance = + EventAnonCredsCredentialsGetAll.fromEvent(getAllCredentialsResponse); + + const credential = getAllCredentialsEventInstance.instance.find( + (c) => c.id === receivedOffer.id, + ); + + expect(credential).toMatchObject({ + id: receivedOffer.id, + state: CredentialState.Done, + role: CredentialRole.Holder, + credentialAttributes: expect.arrayContaining([ + expect.objectContaining({ name: 'Name', value: 'Berend' }), + expect.objectContaining({ name: 'Age', value: '25' }), + ]), + }); }); it(EventDidcommAnonCredsCredentialsOfferToSelf.token, async () => { @@ -305,10 +365,16 @@ describe('Credentials', () => { expect(eventInstance.instance).toMatchObject({ autoAcceptCredential: AutoAcceptCredential.Always, + role: CredentialRole.Holder, + state: CredentialState.Done, }); + + // Sleep is done here so the last message can be received and we do not end up in a broken state. + // Without the sleep the broken state is reached because we still have to send to `ack` but we already shut down the agent when the test is finished. + await new Promise((r) => setTimeout(r, 1000)); }); - xit(EventAnonCredsProofsDeleteById.token, async () => { + it(EventAnonCredsCredentialsDeleteById.token, async () => { let credentialExchangeRecord: CredentialExchangeRecord | undefined = undefined; diff --git a/apps/ssi-abstraction/test/newFile.ts b/apps/ssi-abstraction/test/newFile.ts new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/package.json b/package.json index e51c046681ed9ff82296ac01460406a90e72c8af..bf255df3a6889151293ac7089af5394c9d9a503a 100644 --- a/package.json +++ b/package.json @@ -40,8 +40,8 @@ }, "pnpm": { "patchedDependencies": { - "@credo-ts/indy-vdr@0.5.0-alpha.149": "patches/@credo-ts__indy-vdr@0.5.0-alpha.149.patch", - "@credo-ts/anoncreds@0.5.0-alpha.149": "patches/@credo-ts__anoncreds@0.5.0-alpha.149.patch" + "@credo-ts/indy-vdr@0.5.0-alpha.151": "patches/@credo-ts__indy-vdr@0.5.0-alpha.151.patch", + "@credo-ts/anoncreds@0.5.0-alpha.151": "patches/@credo-ts__anoncreds@0.5.0-alpha.151.patch" } } } diff --git a/patches/@credo-ts__anoncreds@0.5.0-alpha.149.patch b/patches/@credo-ts__anoncreds@0.5.0-alpha.151.patch similarity index 100% rename from patches/@credo-ts__anoncreds@0.5.0-alpha.149.patch rename to patches/@credo-ts__anoncreds@0.5.0-alpha.151.patch diff --git a/patches/@credo-ts__indy-vdr@0.5.0-alpha.149.patch b/patches/@credo-ts__indy-vdr@0.5.0-alpha.151.patch similarity index 100% rename from patches/@credo-ts__indy-vdr@0.5.0-alpha.149.patch rename to patches/@credo-ts__indy-vdr@0.5.0-alpha.151.patch diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8cd75ecc4a7e86cb157db9cf13804ba59e69df4..c136adf9634a05a6377f9705b112fe5db63def41 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,12 +5,12 @@ settings: excludeLinksFromLockfile: false patchedDependencies: - '@credo-ts/anoncreds@0.5.0-alpha.149': + '@credo-ts/anoncreds@0.5.0-alpha.151': hash: j426fc3a5cnwxikpued4ld6mqi - path: patches/@credo-ts__anoncreds@0.5.0-alpha.149.patch - '@credo-ts/indy-vdr@0.5.0-alpha.149': + path: patches/@credo-ts__anoncreds@0.5.0-alpha.151.patch + '@credo-ts/indy-vdr@0.5.0-alpha.151': hash: rx3uz4zmmaugcgt7ujdip54kgy - path: patches/@credo-ts__indy-vdr@0.5.0-alpha.149.patch + path: patches/@credo-ts__indy-vdr@0.5.0-alpha.151.patch importers: @@ -520,14 +520,14 @@ importers: apps/shared: dependencies: '@credo-ts/anoncreds': - specifier: 0.5.0-alpha.149 - version: 0.5.0-alpha.149(patch_hash=j426fc3a5cnwxikpued4ld6mqi)(@hyperledger/anoncreds-shared@0.2.1)(expo@49.0.21)(react-native@0.73.2) + specifier: 0.5.0-alpha.151 + version: 0.5.0-alpha.151(patch_hash=j426fc3a5cnwxikpued4ld6mqi)(@hyperledger/anoncreds-shared@0.2.1)(expo@49.0.21)(react-native@0.73.2) '@credo-ts/core': - specifier: 0.5.0-alpha.149 - version: 0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2) + specifier: 0.5.0-alpha.151 + version: 0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2) '@credo-ts/tenants': - specifier: 0.5.0-alpha.149 - version: 0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2) + specifier: 0.5.0-alpha.151 + version: 0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2) '@elastic/ecs-winston-format': specifier: 1.5.2 version: 1.5.2 @@ -611,23 +611,23 @@ importers: apps/ssi-abstraction: dependencies: '@credo-ts/anoncreds': - specifier: 0.5.0-alpha.149 - version: 0.5.0-alpha.149(patch_hash=j426fc3a5cnwxikpued4ld6mqi)(@hyperledger/anoncreds-shared@0.2.1)(expo@49.0.21)(react-native@0.73.2) + specifier: 0.5.0-alpha.151 + version: 0.5.0-alpha.151(patch_hash=j426fc3a5cnwxikpued4ld6mqi)(@hyperledger/anoncreds-shared@0.2.1)(expo@49.0.21)(react-native@0.73.2) '@credo-ts/askar': - specifier: 0.5.0-alpha.149 - version: 0.5.0-alpha.149(@hyperledger/aries-askar-shared@0.2.0)(expo@49.0.21)(react-native@0.73.2) + specifier: 0.5.0-alpha.151 + version: 0.5.0-alpha.151(@hyperledger/aries-askar-shared@0.2.0)(expo@49.0.21)(react-native@0.73.2) '@credo-ts/core': - specifier: 0.5.0-alpha.149 - version: 0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2) + specifier: 0.5.0-alpha.151 + version: 0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2) '@credo-ts/indy-vdr': - specifier: 0.5.0-alpha.149 - version: 0.5.0-alpha.149(patch_hash=rx3uz4zmmaugcgt7ujdip54kgy)(@hyperledger/anoncreds-shared@0.2.1)(@hyperledger/indy-vdr-shared@0.2.0)(expo@49.0.21)(react-native@0.73.2) + specifier: 0.5.0-alpha.151 + version: 0.5.0-alpha.151(patch_hash=rx3uz4zmmaugcgt7ujdip54kgy)(@hyperledger/anoncreds-shared@0.2.1)(@hyperledger/indy-vdr-shared@0.2.0)(expo@49.0.21)(react-native@0.73.2) '@credo-ts/node': - specifier: 0.5.0-alpha.149 - version: 0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2) + specifier: 0.5.0-alpha.151 + version: 0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2) '@credo-ts/tenants': - specifier: 0.5.0-alpha.149 - version: 0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2) + specifier: 0.5.0-alpha.151 + version: 0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2) '@elastic/ecs-winston-format': specifier: 1.5.2 version: 1.5.2 @@ -2605,13 +2605,13 @@ packages: chalk: 4.1.2 dev: true - /@credo-ts/anoncreds@0.5.0-alpha.149(patch_hash=j426fc3a5cnwxikpued4ld6mqi)(@hyperledger/anoncreds-shared@0.2.1)(expo@49.0.21)(react-native@0.73.2): - resolution: {integrity: sha512-j91h8uZZ4gGIdDQXyST0IM0NgvVO6UOxNkmoOxiwH74a0qh3rIR1+nhrVdgD1U9bbEfy8ZU262XttRfzao7JgQ==} + /@credo-ts/anoncreds@0.5.0-alpha.151(patch_hash=j426fc3a5cnwxikpued4ld6mqi)(@hyperledger/anoncreds-shared@0.2.1)(expo@49.0.21)(react-native@0.73.2): + resolution: {integrity: sha512-6JMj/wwkvjt05ACFGtsHraxcNTuiYOrylt/XdsnxlXiWkT87gWGLajiSi/Iu9dzvyhxLUPQVgi0J2ENQu/tiIg==} peerDependencies: '@hyperledger/anoncreds-shared': ^0.2.1 dependencies: '@astronautlabs/jsonpath': 1.1.2 - '@credo-ts/core': 0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2) + '@credo-ts/core': 0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2) '@hyperledger/anoncreds-shared': 0.2.1 big-integer: 1.6.52 bn.js: 5.2.1 @@ -2628,12 +2628,12 @@ packages: dev: false patched: true - /@credo-ts/askar@0.5.0-alpha.149(@hyperledger/aries-askar-shared@0.2.0)(expo@49.0.21)(react-native@0.73.2): - resolution: {integrity: sha512-srsC2TNt8sneFZUUDy479g3KPkT0WPAz7XN7Dr2BQ9E65moMEg2uPUGDpEkLHDX+s7XMirCEfN6inNWdQW9RLw==} + /@credo-ts/askar@0.5.0-alpha.151(@hyperledger/aries-askar-shared@0.2.0)(expo@49.0.21)(react-native@0.73.2): + resolution: {integrity: sha512-RPPZfumxfIGW+5MPqbDDynRp+oYfmcSLYRuIghzNLRuoCpatxbp20VRJ4rjGnJTP/A9+LeDT7YRJ/qZ8pZAiNw==} peerDependencies: '@hyperledger/aries-askar-shared': ^0.2.0 dependencies: - '@credo-ts/core': 0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2) + '@credo-ts/core': 0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2) '@hyperledger/aries-askar-shared': 0.2.0 bn.js: 5.2.1 class-transformer: 0.5.1 @@ -2649,8 +2649,8 @@ packages: - web-streams-polyfill dev: false - /@credo-ts/core@0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2): - resolution: {integrity: sha512-zmY92C8ZVS2SUIJH/BoQun6IxI0dD/JeAAQLDJeiIejLGzUTyHcM1rP2E1cV2HnHLdbK1YW9//Ub0ep9C7S6MQ==} + /@credo-ts/core@0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2): + resolution: {integrity: sha512-t0C9syTBEzNlMPNF3IPPu+YE+U9PP4As8o5hcb1+BTffmBA+vUUd7VouvCNzIq9jwj9mW34BBNH2JDOYNN//TA==} dependencies: '@digitalcredentials/jsonld': 6.0.0(expo@49.0.21)(react-native@0.73.2) '@digitalcredentials/jsonld-signatures': 9.4.0(expo@49.0.21)(react-native@0.73.2) @@ -2692,13 +2692,13 @@ packages: - web-streams-polyfill dev: false - /@credo-ts/indy-vdr@0.5.0-alpha.149(patch_hash=rx3uz4zmmaugcgt7ujdip54kgy)(@hyperledger/anoncreds-shared@0.2.1)(@hyperledger/indy-vdr-shared@0.2.0)(expo@49.0.21)(react-native@0.73.2): - resolution: {integrity: sha512-dWW+TPitnWr352g/1dDULf4sIyILVJgQomq8WKbCO0mNffq3zAWQpBrClTo8uWW/D8LgmDwci8zxuBh/4aQl2A==} + /@credo-ts/indy-vdr@0.5.0-alpha.151(patch_hash=rx3uz4zmmaugcgt7ujdip54kgy)(@hyperledger/anoncreds-shared@0.2.1)(@hyperledger/indy-vdr-shared@0.2.0)(expo@49.0.21)(react-native@0.73.2): + resolution: {integrity: sha512-9prHfNZ79ccuA5JqbBWfFNHbfYB6ppZvvP1W8lc/WwyEbjf0cljDqkZVg2ZFD3nm8X2pr9ykWofxXif4297IKQ==} peerDependencies: '@hyperledger/indy-vdr-shared': ^0.2.0 dependencies: - '@credo-ts/anoncreds': 0.5.0-alpha.149(patch_hash=j426fc3a5cnwxikpued4ld6mqi)(@hyperledger/anoncreds-shared@0.2.1)(expo@49.0.21)(react-native@0.73.2) - '@credo-ts/core': 0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2) + '@credo-ts/anoncreds': 0.5.0-alpha.151(patch_hash=j426fc3a5cnwxikpued4ld6mqi)(@hyperledger/anoncreds-shared@0.2.1)(expo@49.0.21)(react-native@0.73.2) + '@credo-ts/core': 0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2) '@hyperledger/indy-vdr-shared': 0.2.0 transitivePeerDependencies: - '@hyperledger/anoncreds-shared' @@ -2711,12 +2711,12 @@ packages: dev: false patched: true - /@credo-ts/node@0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2): - resolution: {integrity: sha512-SjgfzRbwzKQV/HOB0BUERAKVwmJdZTMeMiV5vGeO5WtvGBOrMLnSVHnKIu5WseA219yOx4RMLfdwSY8g+7H46Q==} + /@credo-ts/node@0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2): + resolution: {integrity: sha512-ue0uHnGS1y4ak89f0eLIlrmgkeeexCYFUk0f1/WvMR3L9SJvvNMJ35tpwcJvYHm7y2EeLIxD40iTlQzRWmA0Xg==} dependencies: '@2060.io/ffi-napi': 4.0.8 '@2060.io/ref-napi': 3.0.6 - '@credo-ts/core': 0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2) + '@credo-ts/core': 0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2) '@types/express': 4.17.21 express: 4.18.2 ws: 8.16.0 @@ -2731,10 +2731,10 @@ packages: - web-streams-polyfill dev: false - /@credo-ts/tenants@0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2): - resolution: {integrity: sha512-XCHvgWSBMSmbGCw5RnDDtK3gYjK1GY25c/9iatuLxH8/+I1B2AK4IOyWTwQtNVwboHyMe28hQxlABFGhicBx7Q==} + /@credo-ts/tenants@0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2): + resolution: {integrity: sha512-XHaX4l3O05mLJT0RIiIh/0QkAjvIZVImZa/kMgxsWqdjzd6cU+ciPVe2/LX5XGaOgGyj/qTzZ29AGtE2cePlsg==} dependencies: - '@credo-ts/core': 0.5.0-alpha.149(expo@49.0.21)(react-native@0.73.2) + '@credo-ts/core': 0.5.0-alpha.151(expo@49.0.21)(react-native@0.73.2) async-mutex: 0.4.0 transitivePeerDependencies: - domexception