Skip to content

Commit 8e21630

Browse files
authored
fix(deps): bump @aviarytech/did-peer to 0.0.22 (#4)
BREAKING_CHANGE: The formats for the verification methods has changed due to the version bump, now returning `Multikey` as the `type` of the Verification Methods
1 parent d94f355 commit 8e21630

File tree

8 files changed

+119
-89
lines changed

8 files changed

+119
-89
lines changed

.github/workflows/release.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,30 @@ on:
66
- 'master'
77
jobs:
88
build-test-publish:
9-
runs-on: ubuntu-18.04
9+
runs-on: ubuntu-22.04
1010
steps:
11-
- uses: actions/checkout@v3
11+
- uses: actions/checkout@v4
1212
with:
1313
fetch-depth: 0
1414
token: ${{ secrets.GH_TOKEN }}
1515

1616
- name: "Setup node with cache"
17-
uses: actions/setup-node@v3
17+
uses: actions/setup-node@v4
1818
with:
19-
node-version: 14
19+
node-version: 18
2020
cache: 'yarn'
2121

2222
- run: yarn install --frozen-lockfile
2323
- run: yarn run build
2424

2525
- name: "Setup git coordinates"
2626
run: |
27-
git config user.name uport-automation-bot
28-
git config user.email [email protected]
27+
git config user.name ${{ secrets.GH_USER }}
28+
git config user.email ${{ secrets.GH_EMAIL }}
2929
3030
- name: "Run semantic-release"
3131
env:
3232
GH_TOKEN: ${{secrets.GH_TOKEN}}
3333
NPM_TOKEN: ${{secrets.NPM_TOKEN}}
34-
if: github.ref == 'refs/heads/master'
34+
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/alpha'
3535
run: yarn run release

.github/workflows/test.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,19 @@ name: Build and Test NODE
22
on: [pull_request, workflow_dispatch, push]
33
jobs:
44
build-test:
5-
runs-on: ubuntu-18.04
5+
runs-on: ubuntu-22.04
6+
strategy:
7+
matrix:
8+
version: [ 18 ]
69
steps:
7-
- uses: actions/checkout@v3
10+
- uses: actions/checkout@v4
811
with:
912
fetch-depth: 0
1013

1114
- name: "Setup node with cache"
12-
uses: actions/setup-node@v3
15+
uses: actions/setup-node@v4
1316
with:
14-
node-version: 14
17+
node-version: ${{ matrix.version }}
1518
cache: 'yarn'
1619

1720
- run: yarn install --frozen-lockfile
@@ -23,3 +26,4 @@ jobs:
2326
uses: codecov/codecov-action@v3
2427
with:
2528
fail_ci_if_error: true
29+
token: ${{ secrets.CODECOV_TOKEN }}

example/react-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "0.1.0",
44
"private": true,
55
"dependencies": {
6-
"did-resolver": "4.0.1",
6+
"did-resolver": "4.1.0",
77
"peer-did-resolver": "../../",
88
"react": "18.2.0",
99
"react-dom": "18.2.0",

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
"url": "[email protected]:veramolabs/peer-did-resolver.git"
2323
},
2424
"dependencies": {
25-
"@aviarytech/did-peer": "^0.0.19",
26-
"did-resolver": "^4.0.0"
25+
"@aviarytech/did-peer": "^0.0.22",
26+
"did-resolver": "^4.1.0"
2727
},
2828
"scripts": {
2929
"test": "jest",

src/__tests__/resolver.test.ts

Lines changed: 90 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,103 @@
1-
import { Resolver, DIDDocument, Resolvable } from 'did-resolver'
1+
import { DIDDocument, Resolvable, Resolver } from 'did-resolver'
22
import { getResolver } from '../resolver'
33

4-
describe('web did resolver', () => {
5-
const did: string =
6-
'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ'
7-
8-
const validResponse: DIDDocument = {
9-
'@context': [
10-
'https://www.w3.org/ns/did/v1',
11-
'https://w3id.org/security/suites/ed25519-2020/v1',
12-
'https://w3id.org/security/suites/x25519-2020/v1',
13-
],
14-
id: 'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ',
15-
verificationMethod: [
16-
{
17-
id: 'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
18-
type: 'Ed25519VerificationKey2020',
19-
controller:
20-
'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ',
21-
publicKeyMultibase: 'z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
22-
},
23-
{
24-
id: 'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ#6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud',
25-
type: 'X25519KeyAgreementKey2020',
26-
controller:
27-
'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ',
28-
publicKeyMultibase: 'z6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud',
29-
},
30-
],
31-
authentication: [
32-
'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
33-
],
34-
assertionMethod: [
35-
'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
36-
],
37-
keyAgreement: [
38-
'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ#6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud',
39-
],
40-
capabilityInvocation: [
41-
'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
42-
],
43-
capabilityDelegation: [
44-
'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
45-
],
46-
service: [
47-
{
48-
id: '#didcommmessaging-0',
49-
type: 'DIDCommMessaging',
50-
serviceEndpoint: 'https://example.com/endpoint1',
51-
routingKeys: ['did:example:somemediator#somekey1'],
52-
accept: ['didcomm/v2', 'didcomm/aip2;env=rfc587'],
53-
},
54-
],
55-
}
56-
4+
describe('did:peer resolver', () => {
575
let didResolver: Resolvable
586

597
beforeAll(async () => {
608
didResolver = new Resolver(getResolver())
619
})
6210

63-
it('resolves document', async () => {
11+
it('resolves simple document with num_algo=0', async () => {
12+
expect.assertions(2)
13+
const did = 'did:peer:0z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V'
14+
const result = await didResolver.resolve(did)
15+
expect(result.didDocument).toEqual({
16+
'@context': ['https://www.w3.org/ns/did/v1', 'https://w3id.org/security/suites/ed25519-2020/v1'],
17+
id: did,
18+
verificationMethod: [
19+
{
20+
id: 'did:peer:0z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
21+
type: 'Ed25519VerificationKey2020',
22+
controller: 'did:peer:0z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
23+
publicKeyMultibase: 'z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
24+
},
25+
],
26+
authentication: [
27+
'did:peer:0z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
28+
],
29+
assertionMethod: [
30+
'did:peer:0z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
31+
],
32+
capabilityInvocation: [
33+
'did:peer:0z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
34+
],
35+
capabilityDelegation: [
36+
'did:peer:0z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
37+
],
38+
})
39+
expect(result.didResolutionMetadata.contentType).toEqual('application/did+ld+json')
40+
})
41+
42+
it('resolves simple document with num_algo=2', async () => {
43+
expect.assertions(2)
44+
const did =
45+
'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ'
46+
const result = await didResolver.resolve(did)
47+
expect(result.didDocument).toEqual({
48+
'@context': ['https://www.w3.org/ns/did/v1', 'https://w3id.org/security/multikey/v1', { '@base': did }],
49+
id: did,
50+
verificationMethod: [
51+
{
52+
id: '#key-2',
53+
type: 'Multikey',
54+
controller: did,
55+
publicKeyMultibase: 'z6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V',
56+
},
57+
{
58+
id: '#key-1',
59+
type: 'Multikey',
60+
controller: did,
61+
publicKeyMultibase: 'z6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud',
62+
},
63+
],
64+
keyAgreement: ['#key-1'],
65+
authentication: ['#key-2'],
66+
assertionMethod: ['#key-2'],
67+
service: [
68+
{
69+
id: '#service',
70+
type: 'DIDCommMessaging',
71+
serviceEndpoint: 'https://example.com/endpoint1',
72+
routingKeys: ['did:example:somemediator#somekey1'],
73+
accept: ['didcomm/v2', 'didcomm/aip2;env=rfc587'],
74+
},
75+
],
76+
})
77+
expect(result.didResolutionMetadata.contentType).toEqual('application/did+ld+json')
78+
})
79+
80+
it('resolves document with num_algo=2 and multiple service endpoints', async () => {
6481
expect.assertions(2)
82+
const did =
83+
'did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDEiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MSJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ.SeyJ0IjoiZG0iLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfQ'
6584
const result = await didResolver.resolve(did)
66-
expect(result.didDocument).toEqual(validResponse)
85+
expect(result.didDocument.service).toEqual([
86+
{
87+
id: '#service',
88+
type: 'DIDCommMessaging',
89+
serviceEndpoint: 'https://example.com/endpoint1',
90+
routingKeys: ['did:example:somemediator#somekey1'],
91+
accept: ['didcomm/v2', 'didcomm/aip2;env=rfc587'],
92+
},
93+
{
94+
id: '#service-1',
95+
type: 'DIDCommMessaging',
96+
serviceEndpoint: 'https://example.com/endpoint2',
97+
routingKeys: ['did:example:somemediator#somekey2'],
98+
accept: ['didcomm/v2', 'didcomm/aip2;env=rfc587'],
99+
},
100+
])
67101
expect(result.didResolutionMetadata.contentType).toEqual('application/did+ld+json')
68102
})
69103
})

src/resolver.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ export function getResolver(): Record<string, DIDResolver> {
3232
break
3333
}
3434

35-
// TODO: this excludes the use of query params
36-
const docIdMatchesDid = didDocument?.id === did
35+
const docIdMatchesDid = didDocument?.id === parsed.did
3736
if (!docIdMatchesDid) {
3837
err = 'resolver_error: DID document id does not match requested did'
3938
// break // uncomment this when adding more checks

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"compilerOptions": {
3-
"target": "ES2018",
3+
"target": "ES2022",
44
"module": "esnext",
55
"lib": [
66
"dom",

yarn.lock

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
"@jridgewell/gen-mapping" "^0.1.0"
1111
"@jridgewell/trace-mapping" "^0.3.9"
1212

13-
"@aviarytech/did-peer@^0.0.19":
14-
version "0.0.19"
15-
resolved "https://registry.yarnpkg.com/@aviarytech/did-peer/-/did-peer-0.0.19.tgz#5ac20d37d762f05be7a502826cb0fbb6cd319180"
16-
integrity sha512-koSwVi++RIVWgYoNHHFZ95ouVqCNlLvqDfJfThOwExkZ2YSoRW/EFXeXFe33Gm7wR9gwTgoZXgi71hHO9d5RVQ==
13+
"@aviarytech/did-peer@^0.0.22":
14+
version "0.0.22"
15+
resolved "https://registry.yarnpkg.com/@aviarytech/did-peer/-/did-peer-0.0.22.tgz#d0c15062c37fc6bf2720d31dbbf9eb23e09c2435"
16+
integrity sha512-BdA7L9wpYNLf1c3d0yB92aoj1AUWE10p408VZ4IJXfavb/oNxALZRRRJTcvMdrd5P2XXQsP5+x4bXfO24iRURg==
1717
dependencies:
1818
buffer "^6.0.3"
1919

@@ -3984,13 +3984,6 @@ cosmiconfig@^7.0.0:
39843984
path-type "^4.0.0"
39853985
yaml "^1.10.0"
39863986

3987-
cross-fetch@^3.1.5:
3988-
version "3.1.5"
3989-
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
3990-
integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
3991-
dependencies:
3992-
node-fetch "2.6.7"
3993-
39943987
cross-spawn@^7.0.2, cross-spawn@^7.0.3:
39953988
version "7.0.3"
39963989
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -4207,10 +4200,10 @@ dezalgo@^1.0.0:
42074200
asap "^2.0.0"
42084201
wrappy "1"
42094202

4210-
did-resolver@^4.0.0:
4211-
version "4.0.0"
4212-
resolved "https://registry.yarnpkg.com/did-resolver/-/did-resolver-4.0.0.tgz#fc8f657b4cd7f44c2921051fb046599fbe7d4b31"
4213-
integrity sha512-/roxrDr9EnAmLs+s9T+8+gcpilMo+IkeytcsGO7dcxvTmVJ+0Rt60HtV8o0UXHhGBo0Q+paMH/0ffXz1rqGFYg==
4203+
did-resolver@^4.1.0:
4204+
version "4.1.0"
4205+
resolved "https://registry.yarnpkg.com/did-resolver/-/did-resolver-4.1.0.tgz#740852083c4fd5bf9729d528eca5d105aff45eb6"
4206+
integrity sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==
42144207

42154208
diff-sequences@^29.0.0:
42164209
version "29.0.0"
@@ -6719,7 +6712,7 @@ node-emoji@^1.11.0:
67196712
dependencies:
67206713
lodash "^4.17.21"
67216714

6722-
node-fetch@2.6.7, node-fetch@^2.6.7:
6715+
node-fetch@^2.6.7:
67236716
version "2.6.7"
67246717
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
67256718
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==

0 commit comments

Comments
 (0)