From ced26b250340ebc21f021b041f4bb791140b36da Mon Sep 17 00:00:00 2001 From: Lucas Cunha Date: Fri, 12 Jul 2019 18:37:21 -0300 Subject: [PATCH 1/3] Handle alias UCAs on Claim transformation --- __test__/claim/Claim.test.js | 2 +- package-lock.json | 4 ++-- package.json | 2 +- src/claim/Claim.js | 21 +++++++++++++-------- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/__test__/claim/Claim.test.js b/__test__/claim/Claim.test.js index 11a66d52..44593f4c 100644 --- a/__test__/claim/Claim.test.js +++ b/__test__/claim/Claim.test.js @@ -306,7 +306,7 @@ describe('Claim Constructions tests', () => { // converting UCAs to Claims const evidencesClaim = new Claim(identifier, evidencesUCA.getPlainValue()); - const evidencesClaimForAliasUCA = new Claim(identifier, evidencesAliasUCA.getPlainValue()); + const evidencesClaimForAliasUCA = new Claim(aliasIdentifier, evidencesAliasUCA.getPlainValue()); // should map to the same claim expect(evidencesClaimForAliasUCA.identifier).toEqual(evidencesClaim.identifier); diff --git a/package-lock.json b/package-lock.json index e8e60063..374b858e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -229,8 +229,8 @@ } }, "@identity.com/uca": { - "version": "1.0.13", - "resolved": "git+https://github.com/identity-com/uca.git#254d3ceb68084786584fc7b09d7bf8488c715057", + "version": "git+https://github.com/identity-com/uca.git#49c11ecdbf802db6f5f2030b218d3acb38eabf4c", + "from": "git+https://github.com/identity-com/uca.git#49c11ecdbf802db6f5f2030b218d3acb38eabf4c", "requires": { "flat": "^4.1.0", "lodash": "^4.17.11", diff --git a/package.json b/package.json index c922257c..c398c4b5 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "rimraf": "^2.6.2" }, "dependencies": { - "@identity.com/uca": "1.0.13", + "@identity.com/uca": "git+https://github.com/identity-com/uca#49c11ecdbf802db6f5f2030b218d3acb38eabf4c", "ajv": "^6.10.0", "babel-runtime": "^6.26.0", "bitcoinjs-lib": "git+https://github.com/dabura667/bitcoinjs-lib.git#bcash330", diff --git a/src/claim/Claim.js b/src/claim/Claim.js index b6372726..6c96829a 100644 --- a/src/claim/Claim.js +++ b/src/claim/Claim.js @@ -6,6 +6,10 @@ const { services } = require('../services'); const validIdentifiers = _.map(definitions, d => d.identifier); +const getDefinition = (identifier, version) => ( + version ? _.find(definitions, { identifier, version }) : _.find(definitions, { identifier }) +); + function getBaseIdentifiers(identifier) { const claimRegex = /claim-cvc:(.*)\.(.*)-v\d*/; let isNewIdentifier = true; @@ -18,23 +22,26 @@ function getBaseIdentifiers(identifier) { return { identifierComponents, isNewIdentifier }; } -function adaptIdentifierIfNeeded(identifier) { - const { isNewIdentifier, identifierComponents } = getBaseIdentifiers(identifier); +function adaptIdentifierIfNeeded(identifier, version) { + const definition = getDefinition(identifier, version); + const resolvedIdentifier = (definition && definition.alias) ? definition.type : identifier; + + const { isNewIdentifier, identifierComponents } = getBaseIdentifiers(resolvedIdentifier); - if (!isNewIdentifier && !_.find(definitions, { identifier })) { + if (!isNewIdentifier && !getDefinition(resolvedIdentifier, version)) { const newIdentifier = `claim-cvc:${identifierComponents[1]}.${identifierComponents[2]}-v1`; const foundNewIdentifier = _.find(definitions, { identifier: newIdentifier }); if (foundNewIdentifier) { return newIdentifier; } - throw new Error(`${identifier} is not defined`); + throw new Error(`${resolvedIdentifier} is not defined`); } return identifier; } class Claim extends UserCollectableAttribute { constructor(identifier, value, version) { - const currentIdentifier = adaptIdentifierIfNeeded(identifier); + const currentIdentifier = adaptIdentifierIfNeeded(identifier, version); super(currentIdentifier, value, version, definitions); this.initialize(currentIdentifier, value, version); } @@ -49,9 +56,7 @@ class Claim extends UserCollectableAttribute { initializeAttestableValue() { const { value } = this; - const definition = this.version - ? _.find(definitions, { identifier: this.identifier, version: this.version }) - : _.find(definitions, { identifier: this.identifier }); + const definition = getDefinition(this.identifier, this.version); // Trying to construct UCA with a existing attestableValue const parsedAttestableValue = Claim.parseAttestableValue(value); From bd7144017d70fe211b68d99b4553835a7992f73c Mon Sep 17 00:00:00 2001 From: Lucas Cunha Date: Fri, 12 Jul 2019 18:40:06 -0300 Subject: [PATCH 2/3] Bump version --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 374b858e..2a3fb4f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@identity.com/credential-commons", - "version": "1.0.22", + "version": "1.0.23", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c398c4b5..be12555f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@identity.com/credential-commons", - "version": "1.0.22", + "version": "1.0.23", "author": "Identity.com Community", "license": "MIT", "description": "Verifiable Credential and Attestation Library", From 660a662f6af2d7d0df39b70956b54c4a139e4ac6 Mon Sep 17 00:00:00 2001 From: Lucas Cunha Date: Fri, 12 Jul 2019 19:06:08 -0300 Subject: [PATCH 3/3] Update uca --- package-lock.json | 5 +++-- package.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2a3fb4f7..2481f7bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -229,8 +229,9 @@ } }, "@identity.com/uca": { - "version": "git+https://github.com/identity-com/uca.git#49c11ecdbf802db6f5f2030b218d3acb38eabf4c", - "from": "git+https://github.com/identity-com/uca.git#49c11ecdbf802db6f5f2030b218d3acb38eabf4c", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@identity.com/uca/-/uca-1.0.14.tgz", + "integrity": "sha512-9DS9Ri3bIx1d9NYF+VWkX6I7bRf8lIK9r6eakUcZ+HHEPwOScTciRn2FoEf2wzR1ZUkU3zNVH7zNKscclmCgkQ==", "requires": { "flat": "^4.1.0", "lodash": "^4.17.11", diff --git a/package.json b/package.json index be12555f..13247c9a 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "rimraf": "^2.6.2" }, "dependencies": { - "@identity.com/uca": "git+https://github.com/identity-com/uca#49c11ecdbf802db6f5f2030b218d3acb38eabf4c", + "@identity.com/uca": "1.0.14", "ajv": "^6.10.0", "babel-runtime": "^6.26.0", "bitcoinjs-lib": "git+https://github.com/dabura667/bitcoinjs-lib.git#bcash330",