Skip to content

Commit

Permalink
Merge pull request #1173 from uport-project/next
Browse files Browse the repository at this point in the history
chore: new minor release
  • Loading branch information
mirceanis committed May 2, 2023
2 parents 373634d + 2621947 commit b7218cb
Show file tree
Hide file tree
Showing 86 changed files with 20,949 additions and 6,048 deletions.
1 change: 1 addition & 0 deletions .github/workflows/build-and-test-on-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ jobs:
with:
node-version: 18
cache: 'pnpm'
- run: pnpm add -g pnpm

- run: pnpm install
- run: pnpm build
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/build-test-publish-on-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ jobs:
with:
node-version: 18
cache: 'pnpm'
- run: pnpm add -g pnpm

- run: pnpm install
- run: pnpm build
Expand Down
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
"Keypair",
"arrayify",
"ethersproject"
]
],
"jest.autoRun": "off"
}
9 changes: 8 additions & 1 deletion __tests__/localAgent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import {
} from '../packages/credential-ld/src'
import { EthrDIDProvider } from '../packages/did-provider-ethr/src'
import { WebDIDProvider } from '../packages/did-provider-web/src'
import { getResolver as getDidPeerResolver, PeerDIDProvider } from '../packages/did-provider-peer/src'
import { getDidKeyResolver, KeyDIDProvider } from '../packages/did-provider-key/src'
import { getDidPkhResolver, PkhDIDProvider } from '../packages/did-provider-pkh/src'
import { getDidJwkResolver, JwkDIDProvider } from '../packages/did-provider-jwk/src'
Expand Down Expand Up @@ -91,8 +92,9 @@ import utils from './shared/utils'
import web3 from './shared/web3'
import credentialStatus from './shared/credentialStatus'
import ethrDidFlowSigned from "./shared/ethrDidFlowSigned";
import didCommWithPeerDidFlow from './shared/didCommWithPeerDidFlow.js'

jest.setTimeout(60000)
jest.setTimeout(120000)

const infuraProjectId = '3586660d179141e3801c3895de1c2eba'
const secretKey = '29739248cad1bd1a0fc4d9b75cd4d2990de535baf5caadfdf8d8f86664aa830c'
Expand Down Expand Up @@ -199,6 +201,9 @@ const setup = async (options?: IAgentOptions): Promise<boolean> => {
'did:key': new KeyDIDProvider({
defaultKms: 'local',
}),
'did:peer': new PeerDIDProvider({
defaultKms: 'local'
}),
'did:pkh': new PkhDIDProvider({
defaultKms: 'local',
}),
Expand All @@ -224,6 +229,7 @@ const setup = async (options?: IAgentOptions): Promise<boolean> => {
...getDidKeyResolver(),
...getDidPkhResolver(),
...getDidJwkResolver(),
...getDidPeerResolver(),
...new FakeDidResolver(() => agent).getDidFakeResolver(),
}),
new DataStore(dbConnection),
Expand Down Expand Up @@ -294,6 +300,7 @@ describe('Local integration tests', () => {
utils(testContext)
web3(testContext)
didCommWithEthrDidFlow(testContext)
didCommWithPeerDidFlow(testContext)
credentialStatus(testContext)
ethrDidFlowSigned(testContext)
})
2 changes: 1 addition & 1 deletion __tests__/localJsonStoreAgent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ import utils from './shared/utils'
import { JsonFileStore } from './utils/json-file-store'
import credentialStatus from './shared/credentialStatus'

jest.setTimeout(60000)
jest.setTimeout(120000)

const infuraProjectId = '3586660d179141e3801c3895de1c2eba'
const secretKey = '29739248cad1bd1a0fc4d9b75cd4d2990de535baf5caadfdf8d8f86664aa830c'
Expand Down
2 changes: 1 addition & 1 deletion __tests__/localMemoryStoreAgent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ import utils from './shared/utils.js'
import credentialStatus from './shared/credentialStatus.js'
import credentialInterop from './shared/credentialInterop.js'

jest.setTimeout(60000)
jest.setTimeout(120000)

const infuraProjectId = '3586660d179141e3801c3895de1c2eba'

Expand Down
2 changes: 1 addition & 1 deletion __tests__/restAgent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ import didDiscovery from './shared/didDiscovery'
import utils from './shared/utils'
import credentialStatus from './shared/credentialStatus'

jest.setTimeout(60000)
jest.setTimeout(120000)

const databaseFile = `./tmp/rest-database-${Math.random().toPrecision(5)}.sqlite`
const infuraProjectId = '3586660d179141e3801c3895de1c2eba'
Expand Down
4 changes: 2 additions & 2 deletions __tests__/shared/credentialInterop.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ export default (testContext: {
let credential = (await fs.promises.readFile(`./__tests__/fixtures/${text}`, 'utf8')).toString()
credential = JSON.parse(credential)

const { verified, error } = await agent.verifyCredential({ credential })
expect(verified).toBe(true)
const result = await agent.verifyCredential({ credential })
expect(result.verified).toBe(true)
})
})
}
76 changes: 76 additions & 0 deletions __tests__/shared/didCommWithPeerDidFlow.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
// noinspection ES6PreferShortImport

import {
IAgentOptions,
IDIDManager,
IEventListener,
IIdentifier,
IKeyManager,
IResolver,
TAgent,
} from '../../packages/core-types/src'
import { IDIDComm } from '../../packages/did-comm/src'
import { jest } from '@jest/globals'

type ConfiguredAgent = TAgent<IDIDManager & IKeyManager & IResolver & IDIDComm>

const DIDCommEventSniffer: IEventListener = {
eventTypes: ['DIDCommV2Message-sent', 'DIDCommV2Message-received', 'DIDCommV2Message-forwarded'],
onEvent: jest.fn(() => Promise.resolve()),
}

export default (testContext: {
getAgent: () => ConfiguredAgent
setup: (options?: IAgentOptions) => Promise<boolean>
tearDown: () => Promise<boolean>
}) => {
describe('DID comm using did:peer flow', () => {
let agent: ConfiguredAgent
let sender: IIdentifier
let receiver: IIdentifier

beforeAll(async () => {
await testContext.setup({ plugins: [DIDCommEventSniffer] })
agent = testContext.getAgent()

sender = await agent.didManagerCreate({
"alias": "sender",
"provider": "did:peer",
"kms": "local",
"options": {"num_algo":2 , "service" : {"id":"12344","type":"didcommv2","serviceEndpoint":"alexexxxxx","description":"an endpoint"}
}
})

receiver = await agent.didManagerCreate({
"alias": "receiver",
"provider": "did:peer",
"kms": "local",
"options": {"num_algo":2 , "service" : {"id":"12345","type":"didcommv2","serviceEndpoint":"alexexxxxx","description":"an endpoint"}
}
})

return true
})
afterAll(testContext.tearDown)

it('should pack and unpack a message', async () => {
expect.assertions(2)

const message = {
type: 'test',
to: receiver.did,
from: sender.did,
id: 'test',
body: { hello: 'world' },
}
const packedMessage = await agent.packDIDCommMessage({
packing: 'authcrypt',
message,
})
expect(packedMessage).toBeDefined()

const unpackedMessage = await agent.unpackDIDCommMessage(packedMessage)
expect(unpackedMessage.message.id).toEqual('test')
})
})
}
16 changes: 16 additions & 0 deletions __tests__/shared/didManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,22 @@ export default (testContext: {
expect(identifier.provider).toEqual('did:jwk')
})

it('should create identifier using did:key with an imported key', async () => {
// keyType supports 'Secp256k1', 'Ed25519', 'X25519'
const keyType = 'Secp256k1'
identifier = await agent.didManagerCreate({
provider: 'did:key',
alias: 'keyTest',
options: {
keyType,
privateKeyHex: 'f3157fbbb356a0d56a84a1a9752f81d0638cce4153168bd1b46f68a6e62b82b1',
}
})
expect(identifier.provider).toEqual('did:key')
expect(identifier.keys[0].type).toEqual(keyType)
expect(identifier.controllerKeyId).toEqual(identifier.keys[0].kid)
})

it('should throw error for existing alias provider combo', async () => {
await expect(
agent.didManagerCreate({
Expand Down
17 changes: 9 additions & 8 deletions __tests__/shared/resolveDid.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,32 +39,32 @@ export default (testContext: {
let identifier: IIdentifier = await agent.didManagerCreate({
// this expects the `did:ethr` provider to matchPrefix and use the `arbitrum:goerli` network specifier
provider: 'did:pkh',
options: { chainId: "1"}
});
options: { chainId: '1' },
})

const result = await agent.resolveDid({ didUrl: identifier.did});
const result = await agent.resolveDid({ didUrl: identifier.did })
const didDoc = result.didDocument
expect(didDoc?.id).toEqual(identifier.did)
expect(result).toHaveProperty('didDocumentMetadata')
expect(result).toHaveProperty('didResolutionMetadata')

//let cred = await agent.createVerifiableCredential()
});
})

it('should resolve did:jwk', async () => {
let identifier: IIdentifier = await agent.didManagerCreate({
provider: 'did:jwk',
// keyType supports 'Secp256k1', 'Secp256r1', 'Ed25519', 'X25519'
options: {
keyType: "Ed25519"
}
keyType: 'Ed25519',
},
})
const result = await agent.resolveDid({ didUrl: identifier.did})
const result = await agent.resolveDid({ didUrl: identifier.did })
const didDoc = result.didDocument
expect(didDoc?.id).toEqual(identifier.did)
expect(result).toHaveProperty('didDocumentMetadata')
expect(result).toHaveProperty('didResolutionMetadata')
});
})

it('should resolve imported fake did', async () => {
const did = 'did:fake:myfakedid'
Expand Down Expand Up @@ -112,6 +112,7 @@ export default (testContext: {
keyAgreement: ['did:fake:myfakedid#fake-key-1'],
authentication: ['did:fake:myfakedid#fake-key-1'],
assertionMethod: ['did:fake:myfakedid#fake-key-1'],
'@context': ['https://www.w3.org/ns/did/v1', 'https://w3id.org/security/suites/ed25519-2018/v1'],
})
expect(resolved).toHaveProperty('didDocumentMetadata')
expect(resolved).toHaveProperty('didResolutionMetadata')
Expand Down
32 changes: 32 additions & 0 deletions __tests__/shared/verifiableDataLD.ts
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,38 @@ export default (testContext: {
expect(verifiableCredential).toEqual(verifiableCredential2)
})

it('should create verifiable credential with external context', async () => {
const credential = await agent.createVerifiableCredential({
credential: {
issuer: { id: pkhIdentifier.did },
'@context': [
'https://www.w3.org/2018/credentials/v1',
'https://veramo.io/contexts/discord-kudos/v1'
],
type: ['VerifiableCredential', 'DiscordKudos'],
issuanceDate: new Date().toISOString(),
credentialSubject: {
id: pkhIdentifier.did,
kudos: 'Thank you',
},
},
proofFormat: 'lds',
fetchRemoteContexts: true,
})

// Check credential:
expect(credential).toHaveProperty('proof')
expect(credential).toHaveProperty('proof.jws')
expect(credential['type']).toEqual(['VerifiableCredential', 'DiscordKudos'])

const result = await agent.verifyCredential({
credential,
fetchRemoteContexts: true
})
expect(result.verified).toBe(true)

})

describe('credential verification policies', () => {
it('can verify credential at a particular time', async () => {
const issuanceDate = '2019-08-19T09:15:20.000Z' // 1566206120
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
"test": "cross-env NODE_OPTIONS=\"--experimental-vm-modules --experimental-import-meta-resolve\" jest",
"test:watch": "pnpm test --watch --verbose",
"test:browser": "cd packages/test-react-app && pnpm test:browser",
"veramo": "cross-env ./packages/cli/bin/veramo.js",
"veramo": "cross-env NODE_NO_WARNINGS=1 ./packages/cli/bin/veramo.js",
"prettier": "prettier --write \"{packages,docs,__tests__,!build}/**/*.{ts,js,json,md,yml}\"",
"build-clean": "rimraf ./packages/*/build ./packages/*/api ./packages/*/node_modules ./packages/*/tsconfig.tsbuildinfo ./temp ./tmp && jest --clearCache",
"build-clean": "rimraf --glob ./packages/*/build ./packages/*/api ./packages/*/node_modules ./packages/*/tsconfig.tsbuildinfo ./temp ./tmp && jest --clearCache",
"publish:latest": "lerna publish --conventional-commits --include-merged-tags --create-release github --yes --dist-tag latest --registry \"https://registry.npmjs.org/:_authToken=${NPM_TOKEN}\"",
"publish:next": "lerna publish --conventional-prerelease --force-publish --canary --no-git-tag-version --include-merged-tags --preid next --pre-dist-tag next --yes --registry \"https://registry.npmjs.org/:_authToken=${NPM_TOKEN}\"",
"publish:unstable": "lerna publish --conventional-prerelease --force-publish --canary --no-git-tag-version --include-merged-tags --preid unstable --pre-dist-tag unstable --yes --registry \"https://registry.npmjs.org/:_authToken=${NPM_TOKEN}\"",
Expand Down Expand Up @@ -63,7 +63,7 @@
"openapi-types": "12.1.0",
"prettier": "2.8.3",
"pretty-quick": "3.1.3",
"rimraf": "4.1.1",
"rimraf": "^4.4.1",
"semantic-release": "20.0.2",
"ts-jest": "29.0.5",
"ts-json-schema-generator": "1.2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/bin/veramo.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/usr/bin/env node
#!/usr/bin/env node

import '../build/cli.js'
2 changes: 2 additions & 0 deletions packages/cli/default/default.yml
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ didResolver:
$ref: /web-did-resolver
key:
$ref: /did-key-resolver
peer:
$require: '@veramo/did-provider-peer?t=function&p=/peer#getResolver'
pkh:
$require: '@veramo/did-provider-pkh?t=function&p=/pkh#getDidPkhResolver'
elem:
Expand Down
3 changes: 2 additions & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
"@veramo/did-manager": "^5.1.2",
"@veramo/did-provider-ethr": "^5.1.2",
"@veramo/did-provider-key": "^5.1.2",
"@veramo/did-provider-peer": "^5.1.2",
"@veramo/did-provider-pkh": "^5.1.2",
"@veramo/did-provider-web": "^5.1.2",
"@veramo/did-resolver": "^5.1.2",
Expand All @@ -72,7 +73,7 @@
"dotenv": "^16.0.0",
"ethr-did-resolver": "^8.0.0",
"express": "^4.18.2",
"express-handlebars": "^6.0.2",
"express-handlebars": "^7.0.0",
"fuzzy": "^0.1.3",
"handlebars": "^4.7.6",
"inquirer": "^9.1.4",
Expand Down
1 change: 1 addition & 0 deletions packages/cli/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
{ "path": "../did-manager" },
{ "path": "../did-provider-ethr" },
{ "path": "../did-provider-key" },
{ "path": "../did-provider-peer" },
{ "path": "../did-provider-pkh" },
{ "path": "../did-provider-web" },
{ "path": "../did-resolver" },
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"@veramo/core-types": "^5.1.2",
"debug": "^4.3.4",
"events": "^3.2.0",
"z-schema": "^5.0.5"
"z-schema": "^6.0.0"
},
"devDependencies": {
"@types/debug": "4.1.7",
Expand Down
Loading

0 comments on commit b7218cb

Please sign in to comment.