From fe533669de3ff882a9c23357ba2eed35e432d493 Mon Sep 17 00:00:00 2001 From: Simonas Karuzas Date: Thu, 16 Apr 2020 20:19:57 +0300 Subject: [PATCH] fix: React-graphql using new api --- .../components/ActivityItem/ActivityItem.tsx | 20 +- .../src/components/Credential/Credential.tsx | 16 +- .../client/src/components/Request/Request.tsx | 15 +- .../react-graphql/client/src/gql/mutations.ts | 22 +-- .../react-graphql/client/src/gql/queries.ts | 180 ++++++++---------- examples/react-graphql/client/src/queries.ts | 144 -------------- .../client/src/views/Activity/Activity.tsx | 41 +++- .../src/views/Identity/IdentitiyManager.tsx | 5 +- .../src/views/Identity/IdentityDetail.tsx | 5 +- .../client/src/views/Issue/Issue.tsx | 18 +- .../client/src/views/Request/Request.tsx | 24 ++- examples/react-graphql/server/index.ts | 13 +- examples/react-graphql/server/package.json | 1 + examples/react-graphql/server/yarn.lock | 10 +- 14 files changed, 194 insertions(+), 320 deletions(-) delete mode 100644 examples/react-graphql/client/src/queries.ts diff --git a/examples/react-graphql/client/src/components/ActivityItem/ActivityItem.tsx b/examples/react-graphql/client/src/components/ActivityItem/ActivityItem.tsx index 691bdf911..97082b56a 100644 --- a/examples/react-graphql/client/src/components/ActivityItem/ActivityItem.tsx +++ b/examples/react-graphql/client/src/components/ActivityItem/ActivityItem.tsx @@ -19,7 +19,7 @@ interface Props { /** * The timestamp for when this message was recieved or sent */ - date: number + date: string /** * The activity that is taking place */ @@ -33,13 +33,13 @@ interface Props { /** * The issuer of this message item */ - sender: Types.Identity + from: Types.Identity /** * The subject */ showRequest: () => void - receiver: Types.Identity + to: Types.Identity attachments: any renderAttachments?: (attachmentItem: any, itemIndex: number) => React.ReactNode } @@ -47,8 +47,8 @@ interface Props { const Component: React.FC = ({ attachments, renderAttachments, - sender, - receiver, + from, + to, type, showRequest, date, @@ -60,23 +60,23 @@ const Component: React.FC = ({ {type == 'sdr' ? ( - {sender.shortId} requested information from you + {from.shortId} requested information from you ) : type == 'w3c.vc' ? ( - {sender.did === receiver?.did ? 'You' : sender.shortId} issued a credential to - {receiver ? receiver.shortId : 'yourself'} + {from.did === to?.did ? 'You' : from.shortId} issued a credential to + {to ? to.shortId : 'yourself'} ) : ( - You shared credentials with {receiver ? receiver.shortId : 'yourself'} + You shared credentials with {to ? to.shortId : 'yourself'} )} - {formatDistanceToNow(date) + ' ago'} + {formatDistanceToNow(Date.parse(date)) + ' ago'} {type == 'sdr' && ( diff --git a/examples/react-graphql/client/src/components/Credential/Credential.tsx b/examples/react-graphql/client/src/components/Credential/Credential.tsx index 150f6d03e..27de782ad 100644 --- a/examples/react-graphql/client/src/components/Credential/Credential.tsx +++ b/examples/react-graphql/client/src/components/Credential/Credential.tsx @@ -6,16 +6,16 @@ import './Credential.css' const S = require('sugar/string') interface Props { - iss: Types.Identity - sub: Types.Identity + issuer: Types.Identity + subject: Types.Identity onClick?: () => void - fields: Types.Field[] + claims: Types.Field[] detailMode?: Boolean jwt?: string selected?: boolean } -const Component: React.FC = ({ onClick, detailMode, fields, jwt, iss, sub, selected }) => { +const Component: React.FC = ({ onClick, detailMode, claims, jwt, issuer, subject, selected }) => { const detail = detailMode ? {} : { maxWidth: 350, style: { cursor: 'pointer' }, className: 'credential_hover' } @@ -27,15 +27,15 @@ const Component: React.FC = ({ onClick, detailMode, fields, jwt, iss, sub - {iss.shortId} + {issuer.shortId} - {sub?.shortId} + {subject?.shortId} - {fields.map((field: any, i: number) => { + {claims.map((field: any, i: number) => { const fieldValueImage = !field.isObj ? field.value.endsWith('.jpg') || field.value.endsWith('.png') : false @@ -56,7 +56,7 @@ const Component: React.FC = ({ onClick, detailMode, fields, jwt, iss, sub ) })} - {!detailMode && fields.length > 2 && ( + {!detailMode && claims.length > 2 && ( ... diff --git a/examples/react-graphql/client/src/components/Request/Request.tsx b/examples/react-graphql/client/src/components/Request/Request.tsx index a68c9a6b7..0e850eef7 100644 --- a/examples/react-graphql/client/src/components/Request/Request.tsx +++ b/examples/react-graphql/client/src/components/Request/Request.tsx @@ -46,7 +46,7 @@ const Component: React.FC = ({ sdr, sender, receiver, threadId, close }) setValid(valid) } - const [actionSendJwt] = useMutation(mutations.actionSendJwt, { + const [sendMessageDidCommAlpha1] = useMutation(mutations.sendMessageDidCommAlpha1, { refetchQueries: [ { query: queries.allMessages, @@ -54,7 +54,7 @@ const Component: React.FC = ({ sdr, sender, receiver, threadId, close }) }, ], onCompleted: response => { - if (response?.actionSendJwt?.id) { + if (response?.sendMessageDidCommAlpha1?.id) { updateSending(false) window.toastProvider.addMessage('Response sent!', { variant: 'success' }) close() @@ -69,11 +69,14 @@ const Component: React.FC = ({ sdr, sender, receiver, threadId, close }) if (response.signPresentationJwt) { updateSending(true) - actionSendJwt({ + sendMessageDidCommAlpha1({ variables: { - to: sender.did, - from: appState.defaultDid, - jwt: response.signPresentationJwt.raw, + data: { + to: sender.did, + from: appState.defaultDid, + type: 'jwt', + body: response.signPresentationJwt.raw, + }, }, }) } diff --git a/examples/react-graphql/client/src/gql/mutations.ts b/examples/react-graphql/client/src/gql/mutations.ts index 4a109e4d0..d60e962d5 100644 --- a/examples/react-graphql/client/src/gql/mutations.ts +++ b/examples/react-graphql/client/src/gql/mutations.ts @@ -1,5 +1,13 @@ import { gql } from 'apollo-boost' +export const createIdentity = gql` + mutation createIdentity($type: String) { + createIdentity(type: $type) { + did + } + } +` + export const deleteIdentity = gql` mutation deleteIdentity($type: String, $did: String) { deleteIdentity(type: $type, did: $did) @@ -27,18 +35,10 @@ export const signSdrJwt = gql` signSdrJwt(data: $data) } ` -export const actionSendJwt = gql` - mutation actionSendJwt($from: String!, $to: String!, $jwt: String!) { - actionSendJwt(from: $from, to: $to, jwt: $jwt) { +export const sendMessageDidCommAlpha1 = gql` + mutation sendMessageDidCommAlpha1($data: SendMessageDidCommAlpha1Input!, $url: String) { + sendMessageDidCommAlpha1(data: $data, url: $url, save: true) { id } } ` - -export const createIdentity = gql` - mutation createIdentity($type: String) { - createIdentity(type: $type) { - did - } - } -` diff --git a/examples/react-graphql/client/src/gql/queries.ts b/examples/react-graphql/client/src/gql/queries.ts index 2cdf22f01..28a9b01e0 100644 --- a/examples/react-graphql/client/src/gql/queries.ts +++ b/examples/react-graphql/client/src/gql/queries.ts @@ -2,27 +2,25 @@ import { gql } from 'apollo-boost' export const credential = gql` query credential($id: ID!) { - credential(id: $id) { + credential(hash: $id) { hash - rowId - iss { + issuanceDate + expirationDate + claims { + type + value + isObj + } + issuer { did shortId: shortDid profileImage: latestClaimValue(type: "profileImage") } - sub { + subject { did shortId: shortDid profileImage: latestClaimValue(type: "profileImage") } - jwt - nbf - iat - fields { - isObj - type - value - } } } ` @@ -44,8 +42,6 @@ export const allIdentities = gql` isManaged did shortId: shortDid - firstName - lastName profileImage: latestClaimValue(type: "profileImage") } } @@ -59,7 +55,7 @@ export const managedIdentities = gql` } managedIdentities { did - type + provider shortId: shortDid profileImage: latestClaimValue(type: "profileImage") } @@ -72,46 +68,31 @@ export const queryMessage = gql` id threadId type - timestamp - sdr(sub: $defaultDid) { - iss { - did { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - url - } - claimType + createdAt + sdr(did: $defaultDid) { reason + claimType + claimValue essential - vc { - hash - rowId - iss { + credentials { + issuer { did shortId: shortDid profileImage: latestClaimValue(type: "profileImage") } - sub { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - jwt - fields { + claims { type value - isObj } + raw } } - sender { + from { did shortId: shortDid profileImage: latestClaimValue(type: "profileImage") } - receiver { + to { did shortId: shortDid profileImage: latestClaimValue(type: "profileImage") @@ -124,80 +105,73 @@ export const allMessages = gql` query allMessages($activeDid: String!) { identity(did: $activeDid) { did - messagesAll { - id - raw - data - threadId - type - timestamp - sender { + profileImage: latestClaimValue(type: "profileImage") + name: latestClaimValue(type: "name") + } + receivedMessages: messages(input: { where: [{ column: to, value: [$activeDid] }] }) { + id + type + createdAt + credentials { + hash + claims { + type + value + isObj + } + issuer { did shortId: shortDid profileImage: latestClaimValue(type: "profileImage") } - sdr(sub: $activeDid) { - iss { - did { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - url - } - claimType - reason - essential - vc { - hash - rowId - iss { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - sub { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - jwt - fields { - type - value - isObj - } - } - } - receiver { + subject { did shortId: shortDid profileImage: latestClaimValue(type: "profileImage") } - vc { - rowId - hash - iss { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - sub { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - fields { - type - value - isObj - } - } - metaData { + } + from { + did + profileImage: latestClaimValue(type: "profileImage") + name: latestClaimValue(type: "name") + } + to { + did + profileImage: latestClaimValue(type: "profileImage") + name: latestClaimValue(type: "name") + } + } + sentMessages: messages(input: { where: [{ column: from, value: [$activeDid] }] }) { + id + type + createdAt + credentials { + hash + claims { type value - id + isObj } + issuer { + did + shortId: shortDid + profileImage: latestClaimValue(type: "profileImage") + } + subject { + did + shortId: shortDid + profileImage: latestClaimValue(type: "profileImage") + } + } + from { + did + profileImage: latestClaimValue(type: "profileImage") + name: latestClaimValue(type: "name") + } + to { + did + profileImage: latestClaimValue(type: "profileImage") + name: latestClaimValue(type: "name") } } } diff --git a/examples/react-graphql/client/src/queries.ts b/examples/react-graphql/client/src/queries.ts deleted file mode 100644 index cfd39a63d..000000000 --- a/examples/react-graphql/client/src/queries.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { gql } from 'apollo-boost' - -export const credential = gql` - query credential($id: ID!) { - credential(id: $id) { - hash - rowId - iss { - did - shortId: shortDid - } - sub { - did - shortId: shortDid - } - jwt - nbf - iat - fields { - isObj - type - value - } - } - } -` - -export const identity = gql` - query identity($did: String!) { - identity(did: $did) { - did - provider - shortId: shortDid - } - } -` - -export const managedIdentities = gql` - query managedIdentities { - identityProviders { - type - description - } - managedIdentities { - did - provider - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - } -` - -export const createIdentity = gql` - mutation createIdentity($type: String) { - createIdentity(type: $type) { - did - } - } -` - -export const deleteIdentity = gql` - mutation deleteIdentity($type: String, $did: String) { - deleteIdentity(type: $type, did: $did) - } -` - -export const signCredentialJwt = gql` - mutation signCredentialJwt($data: SignCredentialInput!) { - signCredentialJwt(data: $data) { - raw - } - } -` - -export const signPresentationJwt = gql` - mutation signPresentationJwt($data: SignPresentationInput!) { - signPresentationJwt(data: $data) { - raw - } - } -` - -export const signSdrJwt = gql` - mutation signSdrJwt($data: SDRInput!) { - signSdrJwt(data: $data) - } -` -export const actionSendJwt = gql` - mutation actionSendJwt($from: String!, $to: String!, $jwt: String!) { - actionSendJwt(from: $from, to: $to, jwt: $jwt) { - id - } - } -` - -export const allMessages = gql` - query allMessages($activeDid: String!) { - identity(did: $activeDid) { - did - messagesAll { - id - raw - data - threadId - type - timestamp - sender { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - receiver { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - vc { - rowId - hash - iss { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - sub { - did - shortId: shortDid - profileImage: latestClaimValue(type: "profileImage") - } - fields { - type - value - isObj - } - } - metaData { - type - id - value - } - } - } - } -` diff --git a/examples/react-graphql/client/src/views/Activity/Activity.tsx b/examples/react-graphql/client/src/views/Activity/Activity.tsx index 839758def..892b39c13 100644 --- a/examples/react-graphql/client/src/views/Activity/Activity.tsx +++ b/examples/react-graphql/client/src/views/Activity/Activity.tsx @@ -21,24 +21,49 @@ const Activity: React.FC = () => { return ( - {data?.identity?.messagesAll?.map((msg: any) => ( +

Received messages

+ {data?.receivedMessages?.map((msg: any) => ( history.push(`${url}/sdr/${msg.id}`)} - attachments={msg.vc} + attachments={msg.credentials} renderAttachments={(attachment: any) => ( history.push(`${url}/credential/${attachment.hash}`)} - fields={attachment.fields} + claims={attachment.claims} + /> + )} + /> + ))} + +

Sent messages

+ {data?.sentMessages?.map((msg: any) => ( + history.push(`${url}/sdr/${msg.id}`)} + attachments={msg.credentials} + renderAttachments={(attachment: any) => ( + history.push(`${url}/credential/${attachment.hash}`)} + claims={attachment.claims} /> )} /> diff --git a/examples/react-graphql/client/src/views/Identity/IdentitiyManager.tsx b/examples/react-graphql/client/src/views/Identity/IdentitiyManager.tsx index a8e7c73aa..090584e14 100644 --- a/examples/react-graphql/client/src/views/Identity/IdentitiyManager.tsx +++ b/examples/react-graphql/client/src/views/Identity/IdentitiyManager.tsx @@ -4,7 +4,8 @@ import Page from '../../layout/Page' import Panel from '../../components/Panel/Panel' import Avatar from '../../components/Avatar/Avatar' import { useHistory, useRouteMatch, useParams } from 'react-router-dom' -import * as queries from '../../queries' +import * as queries from '../../gql/queries' +import * as mutations from '../../gql/mutations' import { useQuery, useMutation } from '@apollo/react-hooks' import { AppContext } from '../../context/AppProvider' @@ -15,7 +16,7 @@ const Component = () => { const [appState, setDefaultDid] = useContext(AppContext) const { defaultDid } = appState const { data: managedIdentitiesData } = useQuery(queries.managedIdentities) - const [createIdentity] = useMutation(queries.createIdentity, { + const [createIdentity] = useMutation(mutations.createIdentity, { refetchQueries: [{ query: queries.managedIdentities }], }) diff --git a/examples/react-graphql/client/src/views/Identity/IdentityDetail.tsx b/examples/react-graphql/client/src/views/Identity/IdentityDetail.tsx index 554652604..315b74374 100644 --- a/examples/react-graphql/client/src/views/Identity/IdentityDetail.tsx +++ b/examples/react-graphql/client/src/views/Identity/IdentityDetail.tsx @@ -3,7 +3,8 @@ import { Box, Heading, Button, Text } from 'rimble-ui' import { useParams, useHistory } from 'react-router-dom' import { AppContext } from '../../context/AppProvider' import { useMutation } from '@apollo/react-hooks' -import * as queries from '../../queries' +import * as queries from '../../gql/queries' +import * as mutations from '../../gql/mutations' interface IdentityDetail {} @@ -12,7 +13,7 @@ const Component: React.FC = () => { let history = useHistory() const [appState, setDefaultDid] = useContext(AppContext) const { defaultDid } = appState - const [deleteIdentity] = useMutation(queries.deleteIdentity, { + const [deleteIdentity] = useMutation(mutations.deleteIdentity, { refetchQueries: [{ query: queries.managedIdentities }], }) diff --git a/examples/react-graphql/client/src/views/Issue/Issue.tsx b/examples/react-graphql/client/src/views/Issue/Issue.tsx index 09956932e..c5a13d511 100644 --- a/examples/react-graphql/client/src/views/Issue/Issue.tsx +++ b/examples/react-graphql/client/src/views/Issue/Issue.tsx @@ -4,7 +4,8 @@ import Page from '../../layout/Page' import Panel from '../../components/Panel/Panel' import { AppContext } from '../../context/AppProvider' import { useQuery, useMutation } from '@apollo/react-hooks' -import * as queries from '../../queries' +import * as queries from '../../gql/queries' +import * as mutations from '../../gql/mutations' declare global { interface Window { @@ -18,8 +19,8 @@ const Component = () => { const [receiver, setReceiver] = useState('did:web:uport.me') const [claimType, setClaimType] = useState('name') const [claimValue, setClaimValue] = useState('Alice') - const [signVc] = useMutation(queries.signCredentialJwt) - const [sendJwt] = useMutation(queries.actionSendJwt, { + const [signVc] = useMutation(mutations.signCredentialJwt) + const [sendMessageDidCommAlpha1] = useMutation(mutations.sendMessageDidCommAlpha1, { refetchQueries: [ { query: queries.allMessages, @@ -49,11 +50,14 @@ const Component = () => { console.log(data) - const { data: dataSend } = await sendJwt({ + const { data: dataSend } = await sendMessageDidCommAlpha1({ variables: { - from: appState.defaultDid, - to: receiver, - jwt: data.signCredentialJwt.raw, + data: { + from: appState.defaultDid, + to: receiver, + type: 'jwt', + body: data.signCredentialJwt.raw, + }, }, }) diff --git a/examples/react-graphql/client/src/views/Request/Request.tsx b/examples/react-graphql/client/src/views/Request/Request.tsx index 5eb7bcb83..2bda94b55 100644 --- a/examples/react-graphql/client/src/views/Request/Request.tsx +++ b/examples/react-graphql/client/src/views/Request/Request.tsx @@ -4,7 +4,8 @@ import Page from '../../layout/Page' import Panel from '../../components/Panel/Panel' import { AppContext } from '../../context/AppProvider' import { useQuery, useMutation } from '@apollo/react-hooks' -import * as queries from '../../queries' +import * as queries from '../../gql/queries' +import * as mutations from '../../gql/mutations' declare global { interface Window { @@ -21,29 +22,32 @@ const Component = () => { const [claimReason, updateClaimReason] = useState() const [claimTypeRequired, updateClaimTypeRequired] = useState(false) const [jwt, setJwt] = useState() - const [actionSendJwt] = useMutation(queries.actionSendJwt, { + const [sendMessageDidCommAlpha1] = useMutation(mutations.sendMessageDidCommAlpha1, { onCompleted: response => { - if (response?.actionSendJwt?.id) { + if (response?.sendMessageDidCommAlpha1?.id) { setIsSending(false) window.toastProvider.addMessage('Request sent!', { variant: 'success' }) } }, }) - const [actionSignSDR] = useMutation(queries.signSdrJwt, { + const [actionSignSDR] = useMutation(mutations.signSdrJwt, { onCompleted: response => { - if (response && response.actionSignSDR) { - setJwt(response.actionSignSDR) + if (response && response.signSdrJwt) { + setJwt(response.signSdrJwt) setIsSending(true) if (receiver) { setIsSending(true) - actionSendJwt({ + sendMessageDidCommAlpha1({ variables: { - from: appState.defaultDid, - to: receiver, - jwt: response.signSdrJwt, + data: { + from: appState.defaultDid, + to: receiver, + type: 'jwt', + body: response.signSdrJwt, + }, }, }) } diff --git a/examples/react-graphql/server/index.ts b/examples/react-graphql/server/index.ts index a7d85c75c..fe2ccb888 100644 --- a/examples/react-graphql/server/index.ts +++ b/examples/react-graphql/server/index.ts @@ -1,5 +1,6 @@ import * as Daf from 'daf-core' import { JwtMessageHandler } from 'daf-did-jwt' +import { DIDCommActionHandler, DIDCommMessageHandler, DIDCommGql } from 'daf-did-comm' import { W3cMessageHandler, W3cActionHandler, W3cGql } from 'daf-w3c' import { SdrMessageHandler, SdrActionHandler, SdrGql } from 'daf-selective-disclosure' import { TrustGraphServiceController, TrustGraphGql, TrustGraphActionHandler } from 'daf-trust-graph' @@ -12,7 +13,6 @@ import merge from 'lodash.merge' import ws from 'ws' import { createConnection } from 'typeorm' -TrustGraphServiceController.webSocketImpl = ws const infuraProjectId = '5ffc47f65c4042ce847ef66a3fa70d4c' let didResolver = new DafResolver({ infuraProjectId }) @@ -33,21 +33,20 @@ const identityProviders = [ rpcUrl: 'https://rinkeby.infura.io/v3/' + infuraProjectId, }), ] -const serviceControllers = [TrustGraphServiceController] const messageHandler = new UrlMessageHandler() messageHandler + .setNext(new DIDCommMessageHandler()) .setNext(new JwtMessageHandler()) .setNext(new W3cMessageHandler()) .setNext(new SdrMessageHandler()) -const actionHandler = new TrustGraphActionHandler() +const actionHandler = new DIDCommActionHandler() actionHandler.setNext(new W3cActionHandler()).setNext(new SdrActionHandler()) export const agent = new Daf.Agent({ dbConnection, identityProviders, - serviceControllers, didResolver, messageHandler, actionHandler, @@ -58,14 +57,14 @@ const server = new ApolloServer({ Daf.Gql.baseTypeDefs, Daf.Gql.Core.typeDefs, Daf.Gql.IdentityManager.typeDefs, - TrustGraphGql.typeDefs, + DIDCommGql.typeDefs, W3cGql.typeDefs, SdrGql.typeDefs, ], resolvers: merge( Daf.Gql.Core.resolvers, Daf.Gql.IdentityManager.resolvers, - TrustGraphGql.resolvers, + DIDCommGql.resolvers, W3cGql.resolvers, SdrGql.resolvers, ), @@ -83,8 +82,6 @@ const server = new ApolloServer({ }) const main = async () => { - await agent.setupServices() - await agent.listen() const info = await server.listen() console.log(`🚀 Server ready at ${info.url}`) } diff --git a/examples/react-graphql/server/package.json b/examples/react-graphql/server/package.json index d8aeb00ba..3954da7d5 100644 --- a/examples/react-graphql/server/package.json +++ b/examples/react-graphql/server/package.json @@ -13,6 +13,7 @@ "dependencies": { "apollo-server": "^2.9.16", "daf-core": "../../../packages/daf-core", + "daf-did-comm": "../../../packages/daf-did-comm", "daf-did-jwt": "../../../packages/daf-did-jwt", "daf-ethr-did": "../../../packages/daf-ethr-did", "daf-libsodium": "../../../packages/daf-libsodium", diff --git a/examples/react-graphql/server/yarn.lock b/examples/react-graphql/server/yarn.lock index 741b85282..c5ba5fcca 100644 --- a/examples/react-graphql/server/yarn.lock +++ b/examples/react-graphql/server/yarn.lock @@ -875,6 +875,14 @@ daf-core@../../../packages/daf-core, daf-core@^4.0.0-beta.45: events "^3.0.0" typeorm "^0.2.24" +daf-did-comm@../../../packages/daf-did-comm: + version "4.0.0-beta.45" + dependencies: + cross-fetch "^3.0.4" + daf-core "^4.0.0-beta.45" + debug "^4.1.1" + uuid "^3.3.3" + daf-did-jwt@../../../packages/daf-did-jwt, daf-did-jwt@^4.0.0-beta.45: version "4.0.0-beta.45" dependencies: @@ -2456,7 +2464,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.1.0: +uuid@^3.1.0, uuid@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==