Skip to content

Commit

Permalink
fix(addVcVerifier): update package-lock version
Browse files Browse the repository at this point in the history
  • Loading branch information
whitneypurdum committed Jun 29, 2022
2 parents ce037f4 + 90b74b1 commit 9eb00ac
Show file tree
Hide file tree
Showing 15 changed files with 219 additions and 21 deletions.
36 changes: 36 additions & 0 deletions docs/CHANGELOG.md
@@ -1,3 +1,39 @@
## [6.0.0-alpha.24](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.23...v6.0.0-alpha.24) (2022-06-28)


### Features

* **RevokeClaim:** add endpoint to fetch claims by revoker (current user) ([80cf934](https://github.com/energywebfoundation/iam-client-lib/commit/80cf93485d7f53460ab5df78b37f40fe5eedb4c7))
* **revokeClaim:** make did param required ([b6648d6](https://github.com/energywebfoundation/iam-client-lib/commit/b6648d6549b569fb6a74ccaba8b5c5b970ce7806))

## [6.0.0-alpha.23](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.22...v6.0.0-alpha.23) (2022-06-28)


### Bug Fixes

* cache client authentication ([619845d](https://github.com/energywebfoundation/iam-client-lib/commit/619845d320833e9adbc330bde5c35f15d735e57d))

## [6.0.0-alpha.22](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.21...v6.0.0-alpha.22) (2022-06-27)


### Features

* add createdAt property to Claim interface ([c71344d](https://github.com/energywebfoundation/iam-client-lib/commit/c71344d24ba3f99373306ba56cdcd94ed713d59f))

## [6.0.0-alpha.21](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.20...v6.0.0-alpha.21) (2022-06-23)


### Bug Fixes

* throw an error when a did document update failed ([e7c1ae9](https://github.com/energywebfoundation/iam-client-lib/commit/e7c1ae9b892b9fbfafca6bdbe4c375d40317f1f8))

## [6.0.0-alpha.20](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.19...v6.0.0-alpha.20) (2022-06-22)


### Bug Fixes

* cache-client token refresh ([05e9f1a](https://github.com/energywebfoundation/iam-client-lib/commit/05e9f1a216f091d412319f8ce2590d5183080e46))

## [6.0.0-alpha.19](https://github.com/energywebfoundation/iam-client-lib/compare/v6.0.0-alpha.18...v6.0.0-alpha.19) (2022-06-20)


Expand Down
22 changes: 22 additions & 0 deletions docs/api/classes/modules_cache_client.CacheClient.md
Expand Up @@ -36,6 +36,7 @@
- [getClaimById](modules_cache_client.CacheClient.md#getclaimbyid)
- [getClaimsByIssuer](modules_cache_client.CacheClient.md#getclaimsbyissuer)
- [getClaimsByRequester](modules_cache_client.CacheClient.md#getclaimsbyrequester)
- [getClaimsByRevoker](modules_cache_client.CacheClient.md#getclaimsbyrevoker)
- [getClaimsBySubject](modules_cache_client.CacheClient.md#getclaimsbysubject)
- [getClaimsBySubjects](modules_cache_client.CacheClient.md#getclaimsbysubjects)
- [getDIDsForRole](modules_cache_client.CacheClient.md#getdidsforrole)
Expand Down Expand Up @@ -371,6 +372,27 @@ ___

___

### getClaimsByRevoker

**getClaimsByRevoker**(`revoker`, `__namedParameters?`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\>

#### Parameters

| Name | Type |
| :------ | :------ |
| `revoker` | `string` |
| `__namedParameters` | [`ClaimsFilter`](../modules/modules_cache_client.md#claimsfilter) |

#### Returns

`Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\>

#### Implementation of

[ICacheClient](../interfaces/modules_cache_client.ICacheClient.md).[getClaimsByRevoker](../interfaces/modules_cache_client.ICacheClient.md#getclaimsbyrevoker)

___

### getClaimsBySubject

**getClaimsBySubject**(`subject`, `__namedParameters?`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\>
Expand Down
28 changes: 28 additions & 0 deletions docs/api/classes/modules_claims.ClaimsService.md
Expand Up @@ -30,6 +30,7 @@ claimsService.getClaimById(claim.id);
- [getClaimId](modules_claims.ClaimsService.md#getclaimid)
- [getClaimsByIssuer](modules_claims.ClaimsService.md#getclaimsbyissuer)
- [getClaimsByRequester](modules_claims.ClaimsService.md#getclaimsbyrequester)
- [getClaimsByRevoker](modules_claims.ClaimsService.md#getclaimsbyrevoker)
- [getClaimsBySubject](modules_claims.ClaimsService.md#getclaimsbysubject)
- [getClaimsBySubjects](modules_claims.ClaimsService.md#getclaimsbysubjects)
- [getNamespaceFromClaimType](modules_claims.ClaimsService.md#getnamespacefromclaimtype)
Expand Down Expand Up @@ -335,6 +336,33 @@ list of claims

___

### getClaimsByRevoker

**getClaimsByRevoker**(`options`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\>

Retrieve all claims that a user can revoke. Allow to filter by namespace

```typescript
claimsService.getClaimsByRevoker({
did: 'did:ethr:0x00...0',
namespace: 'energyweb.iam.ewc',
});
```

#### Parameters

| Name | Type |
| :------ | :------ |
| `options` | [`GetClaimsByRevokerOptions`](../interfaces/modules_claims.GetClaimsByRevokerOptions.md) |

#### Returns

`Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\>

list of claims

___

### getClaimsBySubject

**getClaimsBySubject**(`options`): `Promise`<[`Claim`](../interfaces/modules_claims.Claim.md)[]\>
Expand Down
18 changes: 18 additions & 0 deletions docs/api/interfaces/modules_cache_client.ICacheClient.md
Expand Up @@ -25,6 +25,7 @@
- [getClaimById](modules_cache_client.ICacheClient.md#getclaimbyid)
- [getClaimsByIssuer](modules_cache_client.ICacheClient.md#getclaimsbyissuer)
- [getClaimsByRequester](modules_cache_client.ICacheClient.md#getclaimsbyrequester)
- [getClaimsByRevoker](modules_cache_client.ICacheClient.md#getclaimsbyrevoker)
- [getClaimsBySubject](modules_cache_client.ICacheClient.md#getclaimsbysubject)
- [getClaimsBySubjects](modules_cache_client.ICacheClient.md#getclaimsbysubjects)
- [getDIDsForRole](modules_cache_client.ICacheClient.md#getdidsforrole)
Expand Down Expand Up @@ -235,6 +236,23 @@ ___

___

### getClaimsByRevoker

**getClaimsByRevoker**(`revoker`, `filter?`): `Promise`<[`Claim`](modules_claims.Claim.md)[]\>

#### Parameters

| Name | Type |
| :------ | :------ |
| `revoker` | `string` |
| `filter?` | [`ClaimsFilter`](../modules/modules_cache_client.md#claimsfilter) |

#### Returns

`Promise`<[`Claim`](modules_claims.Claim.md)[]\>

___

### getClaimsBySubject

**getClaimsBySubject**(`subject`, `filter?`): `Promise`<[`Claim`](modules_claims.Claim.md)[]\>
Expand Down
7 changes: 7 additions & 0 deletions docs/api/interfaces/modules_claims.Claim.md
Expand Up @@ -10,6 +10,7 @@
- [claimIssuer](modules_claims.Claim.md#claimissuer)
- [claimType](modules_claims.Claim.md#claimtype)
- [claimTypeVersion](modules_claims.Claim.md#claimtypeversion)
- [createdAt](modules_claims.Claim.md#createdat)
- [id](modules_claims.Claim.md#id)
- [isAccepted](modules_claims.Claim.md#isaccepted)
- [isRejected](modules_claims.Claim.md#isrejected)
Expand Down Expand Up @@ -50,6 +51,12 @@ ___

___

### createdAt

**createdAt**: `string`

___

### id

**id**: `string`
Expand Down
26 changes: 26 additions & 0 deletions docs/api/interfaces/modules_claims.GetClaimsByRevokerOptions.md
@@ -0,0 +1,26 @@
# Interface: GetClaimsByRevokerOptions

[modules/claims](../modules/modules_claims.md).GetClaimsByRevokerOptions

## Table of contents

### Properties

- [did](modules_claims.GetClaimsByRevokerOptions.md#did)
- [namespace](modules_claims.GetClaimsByRevokerOptions.md#namespace)

## Properties

### did

**did**: `string`

DID of the subject

___

### namespace

`Optional` **namespace**: `string`

Indicates what namespace `Claims` should be in
1 change: 1 addition & 0 deletions docs/api/modules/modules_claims.md
Expand Up @@ -22,6 +22,7 @@
- [DeleteClaimOptions](../interfaces/modules_claims.DeleteClaimOptions.md)
- [GetClaimsByIssuerOptions](../interfaces/modules_claims.GetClaimsByIssuerOptions.md)
- [GetClaimsByRequesterOptions](../interfaces/modules_claims.GetClaimsByRequesterOptions.md)
- [GetClaimsByRevokerOptions](../interfaces/modules_claims.GetClaimsByRevokerOptions.md)
- [GetClaimsBySubjectOptions](../interfaces/modules_claims.GetClaimsBySubjectOptions.md)
- [GetRevocationClaimDetailsOptions](../interfaces/modules_claims.GetRevocationClaimDetailsOptions.md)
- [GetRevocationClaimDetailsResult](../interfaces/modules_claims.GetRevocationClaimDetailsResult.md)
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "iam-client-lib",
"version": "6.0.0-alpha.19",
"version": "6.0.0-alpha.24",
"description": "Library for Decentralized Identity and Access Management",
"main": "dist/index.js",
"module": "dist/index.esm.js",
Expand Down
1 change: 1 addition & 0 deletions src/errors/error-messages.ts
Expand Up @@ -31,4 +31,5 @@ export enum ERROR_MESSAGES {
ONCHAIN_ROLE_SUBJECT_AGREEMENT_NOT_SPECIFIED = 'On-chain role subject agreement not specified',
REVOKE_CLAIM_MISSING_PARAMETERS = 'Revoke claim missing parameters. Required one of: claimId or claim',
REVOKE_CLAIM_NOT_FOUND = 'Could not find claim to revoke',
DID_DOCUMENT_NOT_UPDATED = 'DID Document was not updated',
}
5 changes: 4 additions & 1 deletion src/modules/cache-client/cache-client.interface.ts
Expand Up @@ -20,7 +20,6 @@ export interface ICacheClient {
pubKeyAndIdentityToken: IPubKeyAndIdentityToken | undefined;
login: () => Promise<void>;
isAuthEnabled: () => boolean;

getRoleDefinition: (namespace: string) => Promise<IRoleDefinition>;
getRolesDefinition: (
namespace: string[]
Expand Down Expand Up @@ -61,6 +60,10 @@ export interface ICacheClient {
filter?: ClaimsFilter
) => Promise<Claim[]>;
getClaimById: (claimId: string) => Promise<Claim | undefined>;
getClaimsByRevoker: (
revoker: string,
filter?: ClaimsFilter
) => Promise<Claim[]>;
requestClaim: (message: IClaimRequest) => Promise<void>;
issueClaim: (issuer: string, message: IClaimIssuance) => Promise<void>;
rejectClaim: (issuer: string, message: IClaimRejection) => Promise<void>;
Expand Down
50 changes: 36 additions & 14 deletions src/modules/cache-client/cache-client.service.ts
Expand Up @@ -76,12 +76,24 @@ export class CacheClient implements ICacheClient {
async authenticate() {
let tokens: AuthTokens | undefined = undefined;

const setTokens = () => {
if (!tokens) return;
if (!this.isBrowser) {
this._httpClient.defaults.headers.common[
'Authorization'
] = `Bearer ${tokens.token}`;
}
this.refresh_token = tokens.refreshToken;
};

// First try to refresh access token
try {
const refreshedTokens = await this.refreshToken();
tokens = refreshedTokens;
setTokens();

if (refreshedTokens && (await this.isAuthenticated())) {
tokens = refreshedTokens;
if (!(await this.isAuthenticated())) {
tokens = undefined;
}
} catch {
getLogger().error('[CACHE CLIENT] Failed to refresh tokens');
Expand All @@ -97,18 +109,11 @@ export class CacheClient implements ICacheClient {
});
this.pubKeyAndIdentityToken = pubKeyAndIdentityToken;
tokens = data;
setTokens();
}

// Set new tokens
if (!this.isBrowser) {
this._httpClient.defaults.headers.common[
'Authorization'
] = `Bearer ${tokens.token}`;
}
this.refresh_token = tokens.refreshToken;

// Run previously failed requests
console.log(
getLogger().info(
`[CACHE CLIENT] Running failed requests: ${this.failedRequests.length}`
);
this.failedRequests = this.failedRequests.filter((callback) => callback());
Expand Down Expand Up @@ -151,9 +156,14 @@ export class CacheClient implements ICacheClient {
});
});
if (!this.isAuthenticating) {
this.isAuthenticating = true;
await this.authenticate();
this.isAuthenticating = false;
try {
this.isAuthenticating = true;
await this.authenticate();
} catch {
return Promise.reject(error);
} finally {
this.isAuthenticating = false;
}
}
return retryOriginalRequest;
}
Expand Down Expand Up @@ -342,6 +352,18 @@ export class CacheClient implements ICacheClient {
return data;
}

async getClaimsByRevoker(revoker: string, { namespace }: ClaimsFilter = {}) {
const { data } = await this._httpClient.get<Claim[]>(
`/claim/revoker/${revoker}`,
{
params: {
namespace,
},
}
);
return data;
}

async getClaimById(claimId: string): Promise<Claim | undefined> {
const { data } = await this._httpClient.get<Claim | undefined>(
`/claim/${claimId}`
Expand Down
27 changes: 26 additions & 1 deletion src/modules/claims/claims.service.ts
Expand Up @@ -63,6 +63,7 @@ import {
GetRevocationClaimDetailsOptions,
GetRevocationClaimDetailsResult,
ClaimRevocationDetailsResult,
GetClaimsByRevokerOptions,
} from './claims.types';
import { DidRegistry } from '../did-registry/did-registry.service';
import { ClaimData } from '../did-registry/did.types';
Expand Down Expand Up @@ -274,6 +275,26 @@ export class ClaimsService {
return this._cacheClient.getClaimsBySubject(did, { isAccepted, namespace });
}

/**
* Retrieve all claims that a user can revoke. Allow to filter by namespace
*
* ```typescript
* claimsService.getClaimsByRevoker({
* did: 'did:ethr:0x00...0',
* namespace: 'energyweb.iam.ewc',
* });
* ```
*
* @param {GetClaimsByRevokerOptions} options
* @return list of claims
*/
async getClaimsByRevoker({
did,
namespace,
}: GetClaimsByRevokerOptions): Promise<Claim[]> {
return this._cacheClient.getClaimsByRevoker(did, { namespace });
}

/**
* Retrieve claim with given id.
*
Expand Down Expand Up @@ -726,11 +747,15 @@ export class ClaimsService {
hashAlg: 'SHA256',
},
};
await this._didRegistry.updateDocument({
const isDocUpdated = await this._didRegistry.updateDocument({
didAttribute: DIDAttribute.ServicePoint,
data,
did: sub,
});

if (!isDocUpdated) {
throw new Error(ERROR_MESSAGES.DID_DOCUMENT_NOT_UPDATED);
}
}
return url;
}
Expand Down

0 comments on commit 9eb00ac

Please sign in to comment.